From 1a4b96c73ef383e8fcecf8a97eb3592be5d441e2 Mon Sep 17 00:00:00 2001 From: Venkateswarlu Boggavarapu Date: Wed, 6 May 2026 00:18:51 -0400 Subject: [PATCH 01/59] feat(cli): Add `feast projects delete` command (closes #5095) (#6318) * feat(cli): Add `feast projects delete` command (closes #5095) Exposes project deletion via the CLI. The new `feast projects delete ` command calls store.registry.delete_project() which is already implemented in all concrete registries. - Adds interactive confirmation prompt with --yes/-y flag for scripting - Catches both FeastObjectNotFoundException and ProjectNotFoundException - Exits with code 1 for non-existent projects Signed-off-by: Venkateswarlu Boggavarapu * fix(cli): align project_list and project_current with master implementation Addresses Devin Review findings: - Fix project_list: use utils.tags_list_to_dict() instead of manual tag.split(), and print tabulated output matching master - Fix project_current: call store.get_project(name=None) with error handling instead of store.project Both functions now match master branch exactly. Only project_delete is new code from this PR. Signed-off-by: Venkateswarlu Boggavarapu * refactor(cli): use store.delete_project() instead of registry directly Refactor project listing and deletion commands in CLI. * feat(cli): add delete_project method to FeatureStore Added a method to delete a project from the registry. * fix(store): fix list_saved_datasets indentation in feature_store.py --------- Signed-off-by: Venkateswarlu Boggavarapu --- sdk/python/feast/cli/projects.py | 51 +++++++++++++++++++++++++------ sdk/python/feast/feature_store.py | 13 ++++++++ 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/sdk/python/feast/cli/projects.py b/sdk/python/feast/cli/projects.py index ea8d5b573a6..c552a058635 100644 --- a/sdk/python/feast/cli/projects.py +++ b/sdk/python/feast/cli/projects.py @@ -3,7 +3,7 @@ from feast import utils from feast.cli.cli_options import tagsOption -from feast.errors import FeastObjectNotFoundException +from feast.errors import FeastObjectNotFoundException, ProjectNotFoundException from feast.repo_operations import create_feature_store @@ -23,16 +23,16 @@ def project_describe(ctx: click.Context, name: str): Describe a project """ store = create_feature_store(ctx) - try: project = store.get_project(name) except FeastObjectNotFoundException as e: print(e) exit(1) - print( yaml.dump( - yaml.safe_load(str(project)), default_flow_style=False, sort_keys=False + yaml.safe_load(str(project)), + default_flow_style=False, + sort_keys=False, ) ) @@ -44,20 +44,52 @@ def project_current(ctx: click.Context): Returns the current project configured with FeatureStore object """ store = create_feature_store(ctx) - try: project = store.get_project(name=None) except FeastObjectNotFoundException as e: print(e) exit(1) - print( yaml.dump( - yaml.safe_load(str(project)), default_flow_style=False, sort_keys=False + yaml.safe_load(str(project)), + default_flow_style=False, + sort_keys=False, ) ) +@projects_cmd.command("delete") +@click.argument("name", type=click.STRING) +@click.option( + "-y", + "--yes", + is_flag=True, + default=False, + help="Skip confirmation prompt and delete immediately.", +) +@click.pass_context +def project_delete(ctx: click.Context, name: str, yes: bool): + """ + Delete a project and all its resources from the registry. + """ + store = create_feature_store(ctx) + + if not yes: + click.confirm( + f"Are you sure you want to delete project '{name}'? " + "This will remove all associated resources from the registry.", + abort=True, + ) + + try: + store.delete_project(name) + except (FeastObjectNotFoundException, ProjectNotFoundException) as e: + print(str(e)) + raise SystemExit(1) + + print(f"Project '{name}' deleted successfully.") + + @projects_cmd.command(name="list") @tagsOption @click.pass_context @@ -70,11 +102,12 @@ def project_list(ctx: click.Context, tags: list[str]): tags_filter = utils.tags_list_to_dict(tags) for project in store.list_projects(tags=tags_filter): table.append([project.name, project.description, project.tags, project.owner]) - from tabulate import tabulate print( tabulate( - table, headers=["NAME", "DESCRIPTION", "TAGS", "OWNER"], tablefmt="plain" + table, + headers=["NAME", "DESCRIPTION", "TAGS", "OWNER"], + tablefmt="plain", ) ) diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index f95bbf10c03..bfc71db875e 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -3401,6 +3401,19 @@ def get_project(self, name: Optional[str]) -> Project: """ return self.registry.get_project(name or self.project) + def delete_project(self, name: str, commit: bool = True) -> None: + """ + Deletes a project from the registry. + + Args: + name: Name of the project to delete. + commit: Whether the change should be persisted immediately. + + Raises: + ProjectNotFoundException: The project could not be found. + """ + return self.registry.delete_project(name, commit=commit) + def list_saved_datasets( self, allow_cache: bool = False, tags: Optional[dict[str, str]] = None ) -> List[SavedDataset]: From a4fde83d125ed1ec18a353871101f07ac51b4be7 Mon Sep 17 00:00:00 2001 From: Abhishek Kumbhar Date: Wed, 6 May 2026 06:18:58 +0100 Subject: [PATCH 02/59] fix: Scope feature view name conflict check to current project in file-based registry (#6369) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: scope feature view name conflict check to current project in file-based registry _check_conflicting_feature_view_names built its lookup map from all feature views in cached_registry_proto without filtering by project. In a shared file-based registry with multiple projects, this caused false ConflictingFeatureViewNames errors when two different projects defined feature views with the same name. Add a project parameter to both _check_conflicting_feature_view_names and _existing_feature_view_names_to_fvs, and filter each collection by fv.spec.project == project so only same-project views are compared. Fixes #6209 Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> * chore: suppress detect-secrets false positive in openlineage-secret manifest The placeholder value your-marquez-api-key in openlineage-secret_v1_secret.yaml triggers detect-secrets. Mark it as an allowlist exception. Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> * test: use a real temp parquet file in cross-project conflict test FileSource requires the file to exist when apply() succeeds (no early exception). Replace the bare path string with a mkstemp() path so the test passes in CI. Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> * test: use prep_file_source to create a valid parquet file in cross-project test apply() reads the parquet schema when the apply succeeds (no early exception). Use the prep_file_source() helper — the same pattern all other tests that call apply() use — to produce a real, schema-valid parquet file instead of an empty temp file. Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> * test: add registry-level cross-project name conflict regression test Replace the FeatureStore-level test (which fought parquet inference and dill source extraction) with a direct Registry-level test mirroring the pattern in test_sql_registry.py. Two tests in tests/unit/infra/registry/test_file_registry.py: - test_same_project_name_conflict_batch_vs_stream: confirms that a FeatureView and StreamFeatureView with the same name in the same project still raise ConflictingFeatureViewNames (existing behaviour) - test_cross_project_name_does_not_conflict_batch_vs_stream: confirms that the same name across different projects and different view types no longer raises (the bug fixed by this PR) Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> * test: add teardown to file_registry fixture to match sql test style Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> --------- Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com> --- .../openlineage-secret_v1_secret.yaml | 2 +- sdk/python/feast/infra/registry/registry.py | 21 ++-- .../unit/infra/registry/test_file_registry.py | 95 +++++++++++++++++++ 3 files changed, 111 insertions(+), 7 deletions(-) create mode 100644 sdk/python/tests/unit/infra/registry/test_file_registry.py diff --git a/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml b/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml index 40483cc0c43..a66a41e8466 100644 --- a/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml +++ b/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml @@ -3,4 +3,4 @@ kind: Secret metadata: name: openlineage-secret stringData: - api_key: your-marquez-api-key + api_key: your-marquez-api-key # pragma: allowlist secret diff --git a/sdk/python/feast/infra/registry/registry.py b/sdk/python/feast/infra/registry/registry.py index f3437b08f30..e26595ad4af 100644 --- a/sdk/python/feast/infra/registry/registry.py +++ b/sdk/python/feast/infra/registry/registry.py @@ -764,7 +764,7 @@ def apply_feature_view( self._prepare_registry_for_changes(project) assert self.cached_registry_proto - self._check_conflicting_feature_view_names(feature_view) + self._check_conflicting_feature_view_names(feature_view, project) existing_feature_views_of_same_type: RepeatedCompositeFieldContainer if isinstance(feature_view, StreamFeatureView): existing_feature_views_of_same_type = ( @@ -1360,23 +1360,32 @@ def _get_registry_proto( return registry_proto - def _check_conflicting_feature_view_names(self, feature_view: BaseFeatureView): - name_to_fv_protos = self._existing_feature_view_names_to_fvs() + def _check_conflicting_feature_view_names( + self, feature_view: BaseFeatureView, project: str + ): + name_to_fv_protos = self._existing_feature_view_names_to_fvs(project) if feature_view.name in name_to_fv_protos: if not isinstance( name_to_fv_protos.get(feature_view.name), feature_view.proto_class ): raise ConflictingFeatureViewNames(feature_view.name) - def _existing_feature_view_names_to_fvs(self) -> Dict[str, Message]: + def _existing_feature_view_names_to_fvs(self, project: str) -> Dict[str, Message]: assert self.cached_registry_proto odfvs = { fv.spec.name: fv for fv in self.cached_registry_proto.on_demand_feature_views + if fv.spec.project == project + } + fvs = { + fv.spec.name: fv + for fv in self.cached_registry_proto.feature_views + if fv.spec.project == project } - fvs = {fv.spec.name: fv for fv in self.cached_registry_proto.feature_views} sfv = { - fv.spec.name: fv for fv in self.cached_registry_proto.stream_feature_views + fv.spec.name: fv + for fv in self.cached_registry_proto.stream_feature_views + if fv.spec.project == project } return {**odfvs, **fvs, **sfv} diff --git a/sdk/python/tests/unit/infra/registry/test_file_registry.py b/sdk/python/tests/unit/infra/registry/test_file_registry.py new file mode 100644 index 00000000000..07b443e7eaa --- /dev/null +++ b/sdk/python/tests/unit/infra/registry/test_file_registry.py @@ -0,0 +1,95 @@ +import tempfile +from datetime import timedelta + +import pytest + +from feast import Field +from feast.data_source import PushSource +from feast.entity import Entity +from feast.errors import ConflictingFeatureViewNames +from feast.feature_view import FeatureView +from feast.infra.offline_stores.file_source import FileSource +from feast.infra.registry.registry import Registry +from feast.repo_config import RegistryConfig +from feast.stream_feature_view import StreamFeatureView +from feast.types import Float32 +from feast.value_type import ValueType + + +@pytest.fixture +def file_registry(): + fd, registry_path = tempfile.mkstemp() + config = RegistryConfig(path=registry_path) + registry = Registry("test_project", config, None) + yield registry + registry.teardown() + + +def _make_sources(): + file_source = FileSource( + path="driver_stats.parquet", + timestamp_field="event_timestamp", + created_timestamp_column="created", + ) + push_source = PushSource(name="driver_push", batch_source=file_source) + return file_source, push_source + + +def test_same_project_name_conflict_batch_vs_stream(file_registry): + """A FeatureView and StreamFeatureView with the same name in the same project must raise ConflictingFeatureViewNames.""" + entity = Entity(name="driver", value_type=ValueType.STRING, join_keys=["driver_id"]) + file_registry.apply_entity(entity, "test_project") + + file_source, push_source = _make_sources() + + batch_view = FeatureView( + name="driver_activity", + entities=[entity], + ttl=timedelta(days=1), + schema=[Field(name="conv_rate", dtype=Float32)], + source=file_source, + ) + file_registry.apply_feature_view(batch_view, "test_project") + + stream_view = StreamFeatureView( + name="driver_activity", + source=push_source, + entities=[entity], + schema=[Field(name="conv_rate", dtype=Float32)], + timestamp_field="event_timestamp", + ) + with pytest.raises(ConflictingFeatureViewNames): + file_registry.apply_feature_view(stream_view, "test_project") + + +def test_cross_project_name_does_not_conflict_batch_vs_stream(file_registry): + """A FeatureView in project_a and a StreamFeatureView with the same name in project_b + must not raise ConflictingFeatureViewNames. + + Before the fix, _existing_feature_view_names_to_fvs scanned all projects, + so the type mismatch between the two projects triggered a spurious error. + """ + entity = Entity(name="driver", value_type=ValueType.STRING, join_keys=["driver_id"]) + file_registry.apply_entity(entity, "project_a") + file_registry.apply_entity(entity, "project_b") + + file_source, push_source = _make_sources() + + batch_view = FeatureView( + name="driver_activity", + entities=[entity], + ttl=timedelta(days=1), + schema=[Field(name="conv_rate", dtype=Float32)], + source=file_source, + ) + file_registry.apply_feature_view(batch_view, "project_a") + + stream_view = StreamFeatureView( + name="driver_activity", + source=push_source, + entities=[entity], + schema=[Field(name="conv_rate", dtype=Float32)], + timestamp_field="event_timestamp", + ) + # Must not raise — same name, different project, different type. + file_registry.apply_feature_view(stream_view, "project_b") From 63c5eb152a33bb30a75bf2d704e9aac310db2eab Mon Sep 17 00:00:00 2001 From: ntkathole Date: Sun, 3 May 2026 14:47:39 +0530 Subject: [PATCH 03/59] fix: Fix intermittent async test failures for DynamoDB and Redis DynamoDB (integration tests): - Add conftest.py with dynamodb_local_environment fixture that creates a fully isolated Environment (its own DynamoDB Local container + FileDataSourceCreator) with dummy AWS credentials set *before* any boto client is instantiated. This prevents the expired STS session token present in CI from bleeding into the lazy aiobotocore client and causing UnrecognizedClientException on DynamoDB Local 2.x. - test_push_features_and_read_async: scope to mongodb only via the shared environment; add test_push_features_and_read_async_dynamodb that uses the isolated fixture for the same coverage. - test_async_online_retrieval_with_event_timestamps_dynamo: replace shared environment + broken monkeypatch fixture with the isolated dynamodb_local_environment fixture. Redis (unit test): - Replace asyncio.get_event_loop().run_until_complete() with asyncio.run() in test_online_write_batch_async_skip_dedup_single_pipeline to fix RuntimeError: There is no current event loop in thread 'MainThread' on Python 3.10+. Signed-off-by: ntkathole --- .../openlineage-secret_v1_secret.yaml | 2 +- .../integration/online_store/conftest.py | 173 ++++++++++++++++++ .../test_push_features_to_online_store.py | 35 +++- .../online_store/test_universal_online.py | 13 +- .../unit/infra/online_store/test_redis.py | 2 +- 5 files changed, 220 insertions(+), 5 deletions(-) create mode 100644 sdk/python/tests/integration/online_store/conftest.py diff --git a/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml b/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml index a66a41e8466..aae8a81d7f5 100644 --- a/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml +++ b/infra/feast-operator/bundle/manifests/openlineage-secret_v1_secret.yaml @@ -3,4 +3,4 @@ kind: Secret metadata: name: openlineage-secret stringData: - api_key: your-marquez-api-key # pragma: allowlist secret + api_key: your-marquez-api-key #pragma: allowlist secret diff --git a/sdk/python/tests/integration/online_store/conftest.py b/sdk/python/tests/integration/online_store/conftest.py new file mode 100644 index 00000000000..42b507231dc --- /dev/null +++ b/sdk/python/tests/integration/online_store/conftest.py @@ -0,0 +1,173 @@ +""" +Fixtures for online-store integration tests. +""" + +from typing import Dict + +import pytest +from testcontainers.core.container import DockerContainer +from testcontainers.core.waiting_utils import wait_for_logs + +from tests.universal.feature_repos.universal.online_store_creator import ( + OnlineStoreCreator, +) + + +class _SharedDbDynamoDBOnlineStoreCreator(OnlineStoreCreator): + """DynamoDB Local container started with ``-sharedDb -inMemory``. + + Why ``-sharedDb`` + ----------------- + DynamoDB Local 2.x namespaces tables by the **access key ID** in the + request signature. In CI, the sync ``boto3`` client and the async + ``aiobotocore`` client can resolve credentials from *different* sources + (env vars, credential file, ``credential_process``, container IAM role, + etc.) even after ``monkeypatch.setenv`` has set fake keys—because the + credential chain is evaluated lazily and various caches may hold stale + values. + + When the two clients end up using *different* access keys, the sync + client creates tables in namespace A while the async client queries + namespace B, which is empty → ``ResourceNotFoundException``. + + ``-sharedDb`` collapses all namespaces into a single in-memory database, + making table visibility completely independent of which credentials each + client uses. This is the correct setting for integration tests that want + to verify async read/write behaviour without caring about credential + isolation. + """ + + def __init__(self, project_name: str, **kwargs): + super().__init__(project_name) + self.container = ( + DockerContainer("amazon/dynamodb-local:latest") + .with_exposed_ports("8000") + .with_command("-jar DynamoDBLocal.jar -sharedDb -inMemory") + ) + + def create_online_store(self) -> Dict[str, str]: + self.container.start() + wait_for_logs( + container=self.container, + predicate="Initializing DynamoDB Local with the following configuration:", + timeout=10, + ) + exposed_port = self.container.get_exposed_port("8000") + return { + "type": "dynamodb", + "endpoint_url": f"http://localhost:{exposed_port}", + "region": "us-west-2", + } + + def teardown(self): + self.container.stop() + + +@pytest.fixture +async def dynamodb_local_environment(monkeypatch, worker_id): + """Isolated, self-contained Environment for DynamoDB async tests. + + Root cause of the async credential failures + ------------------------------------------- + DynamoDB Local 2.x isolates tables **per access key ID**. In CI, + ``boto3`` (sync, used to provision tables via ``store.apply()``) and + ``aiobotocore`` (async, used for reads/writes in the test body) may + resolve credentials from *different* sources even when ``monkeypatch`` + has set fake static keys—the credential chain is evaluated lazily and + caches may hold stale values from a real AWS session configured in the + runner environment. + + When the two clients end up using different access key IDs they land in + different DynamoDB Local namespaces: + + * sync client → namespace ``KEY_A`` → tables exist ✓ + * async client → namespace ``KEY_B`` → tables not found → ``ResourceNotFoundException`` + + Fix: ``_SharedDbDynamoDBOnlineStoreCreator`` + -------------------------------------------- + The isolated container is started with ``-sharedDb -inMemory``. In + shared-DB mode DynamoDB Local stores *all* tables in a single namespace + regardless of the access key, so sync and async clients always see the + same tables. + + Why async + ``await fs.initialize()`` before yielding + ----------------------------------------------------- + Calling ``await fs.initialize()`` eagerly creates the ``aiobotocore`` + client inside this fixture's event loop (the *same* loop the test will + run in). This pre-caches: + + 1. ``FeatureStore._provider`` so the identical ``DynamoDBOnlineStore`` + instance is reused for the entire test. + 2. The aiobotocore client, which is now unambiguously pointed at our + isolated container's ``endpoint_url``. + + Yields + ------ + tuple[Environment, TestData] + ``(environment, (entities, datasets, data_sources))`` + """ + from feast.infra.online_stores.dynamodb import DynamoDBOnlineStore + from tests.universal.feature_repos.integration_test_repo_config import ( + IntegrationTestRepoConfig, + ) + from tests.universal.feature_repos.repo_configuration import ( + construct_test_environment, + construct_universal_test_data, + ) + from tests.universal.feature_repos.universal.data_sources.file import ( + FileDataSourceCreator, + ) + + # Set fake static credentials before any boto client is created. + # These are accepted by DynamoDB Local regardless of validity. + monkeypatch.setenv("AWS_ACCESS_KEY_ID", "fakeaccesskey000000") + monkeypatch.setenv( + "AWS_SECRET_ACCESS_KEY", "fakesecretkey0000000000000000000000000000" + ) + monkeypatch.delenv("AWS_SESSION_TOKEN", raising=False) + monkeypatch.delenv("AWS_SECURITY_TOKEN", raising=False) + # Prevent IMDS from injecting real session tokens on EC2-backed runners. + monkeypatch.setenv("AWS_EC2_METADATA_DISABLED", "true") + # Disable the container credentials provider (ECS/EKS IAM roles). + monkeypatch.delenv("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", raising=False) + monkeypatch.delenv("AWS_CONTAINER_CREDENTIALS_FULL_URI", raising=False) + # Ensure no profile redirects boto to a different credential source. + monkeypatch.delenv("AWS_PROFILE", raising=False) + monkeypatch.delenv("AWS_DEFAULT_PROFILE", raising=False) + + # Reset class-level boto3 client caches so that no stale client from a + # previous test in this worker bleeds into our isolated environment. + DynamoDBOnlineStore._dynamodb_client = None + DynamoDBOnlineStore._dynamodb_resource = None + + config = IntegrationTestRepoConfig( + provider="local", + offline_store_creator=FileDataSourceCreator, + online_store_creator=_SharedDbDynamoDBOnlineStoreCreator, + online_store=None, + ) + + environment = construct_test_environment( + config, + fixture_request=None, + worker_id=worker_id, + ) + environment.setup() + + # FileDataSourceCreator writes only local Parquet files — no AWS calls. + universal_test_data = construct_universal_test_data(environment) + + # Eagerly initialise the aiobotocore client in *this* event loop so it + # is guaranteed to point at our container and is reused throughout the + # test body without lazy-init surprises. + await environment.feature_store.initialize() + + yield environment, universal_test_data + + # Cleanly shut down the async client before the container disappears. + await environment.feature_store.close() + environment.teardown() + + # Flush class-level caches so the next test starts completely fresh. + DynamoDBOnlineStore._dynamodb_client = None + DynamoDBOnlineStore._dynamodb_resource = None diff --git a/sdk/python/tests/integration/online_store/test_push_features_to_online_store.py b/sdk/python/tests/integration/online_store/test_push_features_to_online_store.py index 536864ed97e..55a4eb12adc 100644 --- a/sdk/python/tests/integration/online_store/test_push_features_to_online_store.py +++ b/sdk/python/tests/integration/online_store/test_push_features_to_online_store.py @@ -47,7 +47,7 @@ def test_push_features_and_read(store): @pytest.mark.integration -@pytest.mark.universal_online_stores(only=["dynamodb", "mongodb"]) +@pytest.mark.universal_online_stores(only=["mongodb"]) async def test_push_features_and_read_async(store): await store.push_async("location_stats_push_source", _ingest_df()) @@ -56,3 +56,36 @@ async def test_push_features_and_read_async(store): entity_rows=[{"location_id": 1}], ) assert_response(online_resp) + + +@pytest.mark.asyncio +@pytest.mark.integration +@pytest.mark.universal_online_stores +async def test_push_features_and_read_async_dynamodb(dynamodb_local_environment): + """Async push + async read for DynamoDB with a credential-isolated environment. + + DynamoDB Local 2.x rejects requests that carry an expired AWS session + token. In CI, real (possibly expired) STS credentials exist in the + environment. The shared ``environment`` fixture resolves credentials + before the async client is created, so those bad credentials bleed in. + + This test uses ``dynamodb_local_environment``, which sets dummy + credentials *before* any boto client is instantiated, guaranteeing that + both the sync boto3 table-provisioning client and the async aiobotocore + client start with clean, token-free credentials. + """ + environment, universal_test_data = dynamodb_local_environment + store = environment.feature_store + _, _, data_sources = universal_test_data + + feature_views = construct_universal_feature_views(data_sources) + location_fv = feature_views.pushed_locations + store.apply([location(), location_fv]) + + await store.push_async("location_stats_push_source", _ingest_df()) + + online_resp = await store.get_online_features_async( + features=["pushable_location_stats:temperature"], + entity_rows=[{"location_id": 1}], + ) + assert_response(online_resp) diff --git a/sdk/python/tests/integration/online_store/test_universal_online.py b/sdk/python/tests/integration/online_store/test_universal_online.py index f72ac64586c..109eea454c0 100644 --- a/sdk/python/tests/integration/online_store/test_universal_online.py +++ b/sdk/python/tests/integration/online_store/test_universal_online.py @@ -532,10 +532,19 @@ async def test_async_online_retrieval_with_event_timestamps( @pytest.mark.asyncio @pytest.mark.integration -@pytest.mark.universal_online_stores(only=["dynamodb"]) +@pytest.mark.universal_online_stores async def test_async_online_retrieval_with_event_timestamps_dynamo( - environment, universal_data_sources + dynamodb_local_environment, ): + """Async online retrieval for DynamoDB with a credential-isolated environment. + + Uses ``dynamodb_local_environment`` (its own DynamoDB Local container + + FileDataSourceCreator) so that dummy credentials are set before any boto + client is created. This avoids the expired-STS-token problem that + occurs when aiobotocore lazily resolves credentials from the shared + environment in CI. + """ + environment, universal_data_sources = dynamodb_local_environment await _do_async_retrieval_test(environment, universal_data_sources) diff --git a/sdk/python/tests/unit/infra/online_store/test_redis.py b/sdk/python/tests/unit/infra/online_store/test_redis.py index b9b5dd3e97e..68eb28c4c11 100644 --- a/sdk/python/tests/unit/infra/online_store/test_redis.py +++ b/sdk/python/tests/unit/infra/online_store/test_redis.py @@ -468,7 +468,7 @@ async def _run(): config, feature_view, data, progress=None ) - asyncio.get_event_loop().run_until_complete(_run()) + asyncio.run(_run()) assert mock_async_client.pipeline.call_count == 1 async_pipe.hmget.assert_not_called() From 45416901e488b657f45601edda8804d6fe82a714 Mon Sep 17 00:00:00 2001 From: Srihari Date: Tue, 5 May 2026 17:41:20 +0530 Subject: [PATCH 04/59] fix: replace broken .claude skill symlink with correct relative path Signed-off-by: Srihari --- .claude/skills/feast-user-guide/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/skills/feast-user-guide/SKILL.md b/.claude/skills/feast-user-guide/SKILL.md index 09477c59800..9fd50297875 120000 --- a/.claude/skills/feast-user-guide/SKILL.md +++ b/.claude/skills/feast-user-guide/SKILL.md @@ -1 +1 @@ -../../../../skills/feast-user-guide/SKILL.md \ No newline at end of file +../../../skills/feast-user-guide/SKILL.md \ No newline at end of file From 86ef0bcf6d66f3eb0690d7017714fd0b29c149c9 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Wed, 6 May 2026 11:40:50 +0530 Subject: [PATCH 05/59] fix: Update go-feature-server base image to Go 1.25 and fix operator Dockerfile COPY permissions Signed-off-by: ntkathole --- go/infra/docker/feature-server/Dockerfile | 3 +- infra/feast-operator/Dockerfile | 10 +-- infra/feast-operator/Makefile | 2 +- infra/feast-operator/go.mod | 48 +++++----- infra/feast-operator/go.sum | 103 +++++++++++----------- 5 files changed, 83 insertions(+), 83 deletions(-) diff --git a/go/infra/docker/feature-server/Dockerfile b/go/infra/docker/feature-server/Dockerfile index b1fcda18c9b..3f7a2ab7b94 100644 --- a/go/infra/docker/feature-server/Dockerfile +++ b/go/infra/docker/feature-server/Dockerfile @@ -1,4 +1,5 @@ -FROM golang:1.24.12 +FROM golang:1.25 +ENV GOTOOLCHAIN=auto # Update the package list and install the ca-certificates package RUN apt-get update && apt-get install -y ca-certificates diff --git a/infra/feast-operator/Dockerfile b/infra/feast-operator/Dockerfile index e3a4ebbed28..9d27bbcaf3f 100644 --- a/infra/feast-operator/Dockerfile +++ b/infra/feast-operator/Dockerfile @@ -5,16 +5,16 @@ ARG TARGETARCH ENV GOTOOLCHAIN=auto # Copy the Go Modules manifests -COPY go.mod go.mod -COPY go.sum go.sum +COPY --chown=1001:0 go.mod go.mod +COPY --chown=1001:0 go.sum go.sum # cache deps before building and copying source so that we don't need to re-download as much # and so that source changes don't invalidate our downloaded layer RUN go mod download # Copy the go source -COPY cmd/main.go cmd/main.go -COPY api/ api/ -COPY internal/controller/ internal/controller/ +COPY --chown=1001:0 cmd/main.go cmd/main.go +COPY --chown=1001:0 api/ api/ +COPY --chown=1001:0 internal/controller/ internal/controller/ # Build # the GOARCH has not a default value to allow the binary be built according to the host where the command diff --git a/infra/feast-operator/Makefile b/infra/feast-operator/Makefile index b9515682e06..14fc6fe7824 100644 --- a/infra/feast-operator/Makefile +++ b/infra/feast-operator/Makefile @@ -241,7 +241,7 @@ ENVSUBST = $(LOCALBIN)/envsubst ## Tool Versions KUSTOMIZE_VERSION ?= v5.4.3 CONTROLLER_TOOLS_VERSION ?= v0.18.0 -CRD_REF_DOCS_VERSION ?= v0.3.0 +CRD_REF_DOCS_VERSION ?= v0.2.0 ENVTEST_VERSION ?= release-0.21 GOLANGCI_LINT_VERSION ?= v2.1.0 ENVSUBST_VERSION ?= v1.4.2 diff --git a/infra/feast-operator/go.mod b/infra/feast-operator/go.mod index c243e03d71b..72bdf42b6a2 100644 --- a/infra/feast-operator/go.mod +++ b/infra/feast-operator/go.mod @@ -7,15 +7,15 @@ require ( github.com/onsi/gomega v1.36.2 github.com/openshift/api v0.0.0-20240912201240-0a8800162826 // release-4.17 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.33.0 - k8s.io/apimachinery v0.33.0 - k8s.io/client-go v0.33.0 + k8s.io/api v0.33.1 + k8s.io/apimachinery v0.33.1 + k8s.io/client-go v0.33.1 sigs.k8s.io/controller-runtime v0.21.0 ) require ( - github.com/prometheus-operator/prometheus-operator/pkg/client v0.75.0 - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 + github.com/prometheus-operator/prometheus-operator/pkg/client v0.83.0 + k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979 ) require ( @@ -26,17 +26,17 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/emicklei/go-restful/v3 v3.12.1 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/evanphx/json-patch/v5 v5.9.11 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonpointer v0.21.1 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/swag v0.23.1 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/btree v1.1.3 // indirect @@ -49,12 +49,12 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/mailru/easyjson v0.9.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.75.0 // indirect + github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.83.0 // indirect github.com/prometheus/client_golang v1.22.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect @@ -75,29 +75,29 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect - golang.org/x/time v0.9.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/text v0.25.0 // indirect + golang.org/x/time v0.11.0 // indirect golang.org/x/tools v0.28.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect google.golang.org/grpc v1.68.1 // indirect - google.golang.org/protobuf v1.36.5 // indirect + google.golang.org/protobuf v1.36.6 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - k8s.io/apiextensions-apiserver v0.33.0 // indirect - k8s.io/apiserver v0.33.0 // indirect - k8s.io/component-base v0.33.0 // indirect + k8s.io/apiextensions-apiserver v0.33.1 // indirect + k8s.io/apiserver v0.33.1 // indirect + k8s.io/component-base v0.33.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/infra/feast-operator/go.sum b/infra/feast-operator/go.sum index 47e16adc5e2..e2454886924 100644 --- a/infra/feast-operator/go.sum +++ b/infra/feast-operator/go.sum @@ -15,18 +15,18 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= -github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= -github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k= +github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU= github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/fxamacker/cbor/v2 v2.8.0 h1:fFtUGXUzXPHTIUdne5+zzMPTfffl3RD5qYnkY40vtxU= +github.com/fxamacker/cbor/v2 v2.8.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -34,12 +34,12 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic= +github.com/go-openapi/jsonpointer v0.21.1/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU= +github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -80,8 +80,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -97,13 +97,12 @@ github.com/openshift/api v0.0.0-20240912201240-0a8800162826 h1:A8D9SN/hJUwAbdO0r github.com/openshift/api v0.0.0-20240912201240-0a8800162826/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.75.0 h1:62MgqpTrtjNd8cc0RJSFJ1OHqgSrThgHehGVuQaF/fc= -github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.75.0/go.mod h1:XYrdZw5dW12Cjkt4ndbeNZZTBp4UCHtW0ccR9+sTtPU= -github.com/prometheus-operator/prometheus-operator/pkg/client v0.75.0 h1:QcchdrYyQ9qRY0KZlEjx6gYUjPOvkZDbzOlHMp4ix88= -github.com/prometheus-operator/prometheus-operator/pkg/client v0.75.0/go.mod h1:ptPuQIiTdOvagifFhojZSJ/8VinU3/l7gOQ+Y6M0aqI= +github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.83.0 h1:j9Ce3W6X6Tzi0QnSap+YzGwpqJLJGP/7xV6P9f86jjM= +github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.83.0/go.mod h1:sSxwdmprUfmRfTknPc4KIjUd2ZIc/kirw4UdXNhOauM= +github.com/prometheus-operator/prometheus-operator/pkg/client v0.83.0 h1:odshP0+Jo6iUNGpK8MOFA6p5Yj0QOV4yLgiqFU5MVuI= +github.com/prometheus-operator/prometheus-operator/pkg/client v0.83.0/go.mod h1:6Ndhfow0psSp7dV1qp9zK5h++CDKz4eSFWPbrHd5Iic= github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= @@ -171,28 +170,28 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= -golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= -golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= +golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -211,8 +210,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -223,34 +222,34 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.33.0 h1:yTgZVn1XEe6opVpP1FylmNrIFWuDqe2H0V8CT5gxfIU= -k8s.io/api v0.33.0/go.mod h1:CTO61ECK/KU7haa3qq8sarQ0biLq2ju405IZAd9zsiM= -k8s.io/apiextensions-apiserver v0.33.0 h1:d2qpYL7Mngbsc1taA4IjJPRJ9ilnsXIrndH+r9IimOs= -k8s.io/apiextensions-apiserver v0.33.0/go.mod h1:VeJ8u9dEEN+tbETo+lFkwaaZPg6uFKLGj5vyNEwwSzc= -k8s.io/apimachinery v0.33.0 h1:1a6kHrJxb2hs4t8EE5wuR/WxKDwGN1FKH3JvDtA0CIQ= -k8s.io/apimachinery v0.33.0/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= -k8s.io/apiserver v0.33.0 h1:QqcM6c+qEEjkOODHppFXRiw/cE2zP85704YrQ9YaBbc= -k8s.io/apiserver v0.33.0/go.mod h1:EixYOit0YTxt8zrO2kBU7ixAtxFce9gKGq367nFmqI8= -k8s.io/client-go v0.33.0 h1:UASR0sAYVUzs2kYuKn/ZakZlcs2bEHaizrrHUZg0G98= -k8s.io/client-go v0.33.0/go.mod h1:kGkd+l/gNGg8GYWAPr0xF1rRKvVWvzh9vmZAMXtaKOg= -k8s.io/component-base v0.33.0 h1:Ot4PyJI+0JAD9covDhwLp9UNkUja209OzsJ4FzScBNk= -k8s.io/component-base v0.33.0/go.mod h1:aXYZLbw3kihdkOPMDhWbjGCO6sg+luw554KP51t8qCU= +k8s.io/api v0.33.1 h1:tA6Cf3bHnLIrUK4IqEgb2v++/GYUtqiu9sRVk3iBXyw= +k8s.io/api v0.33.1/go.mod h1:87esjTn9DRSRTD4fWMXamiXxJhpOIREjWOSjsW1kEHw= +k8s.io/apiextensions-apiserver v0.33.1 h1:N7ccbSlRN6I2QBcXevB73PixX2dQNIW0ZRuguEE91zI= +k8s.io/apiextensions-apiserver v0.33.1/go.mod h1:uNQ52z1A1Gu75QSa+pFK5bcXc4hq7lpOXbweZgi4dqA= +k8s.io/apimachinery v0.33.1 h1:mzqXWV8tW9Rw4VeW9rEkqvnxj59k1ezDUl20tFK/oM4= +k8s.io/apimachinery v0.33.1/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= +k8s.io/apiserver v0.33.1 h1:yLgLUPDVC6tHbNcw5uE9mo1T6ELhJj7B0geifra3Qdo= +k8s.io/apiserver v0.33.1/go.mod h1:VMbE4ArWYLO01omz+k8hFjAdYfc3GVAYPrhP2tTKccs= +k8s.io/client-go v0.33.1 h1:ZZV/Ks2g92cyxWkRRnfUDsnhNn28eFpt26aGc8KbXF4= +k8s.io/client-go v0.33.1/go.mod h1:JAsUrl1ArO7uRVFWfcj6kOomSlCv+JpvIsp6usAGefA= +k8s.io/component-base v0.33.1 h1:EoJ0xA+wr77T+G8p6T3l4efT2oNwbqBVKR71E0tBIaI= +k8s.io/component-base v0.33.1/go.mod h1:guT/w/6piyPfTgq7gfvgetyXMIh10zuXA6cRRm3rDuY= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979 h1:jgJW5IePPXLGB8e/1wvd0Ich9QE97RvvF3a8J3fP/Lg= +k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= sigs.k8s.io/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8= sigs.k8s.io/controller-runtime v0.21.0/go.mod h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= +sigs.k8s.io/structured-merge-diff/v4 v4.7.0 h1:qPeWmscJcXP0snki5IYF79Z8xrl8ETFxgMd7wez1XkI= +sigs.k8s.io/structured-merge-diff/v4 v4.7.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From 5458ec8afa0d692ed5dd908826ebdf1869098036 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Wed, 6 May 2026 18:12:19 +0530 Subject: [PATCH 06/59] fix: Allow to publish from reference branch Signed-off-by: ntkathole --- .github/workflows/publish_images.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index 9a626b434dd..8b9abddcb0e 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -11,6 +11,10 @@ on: required: true default: "" type: string + ref: + description: 'Git ref to checkout (branch, tag, or SHA). Defaults to the triggering ref. Use to rebuild images from a different branch (e.g., master) when the release tag has a broken Dockerfile.' + required: false + type: string workflow_call: # Allows trigger of the workflow from another workflow inputs: custom_version: # Optional input for a custom version @@ -36,6 +40,7 @@ jobs: steps: - uses: actions/checkout@v4 with: + ref: ${{ github.event.inputs.ref || github.ref }} submodules: 'true' - id: get-version uses: ./.github/actions/get-semantic-release-version From d9ca539eb1365c171453ad4456349076bf8e00d1 Mon Sep 17 00:00:00 2001 From: bisht2050 <108942387+bisht2050@users.noreply.github.com> Date: Thu, 7 May 2026 09:45:40 +0100 Subject: [PATCH 07/59] docs: Blog Post for MongoDB integration (#6375) --- .../docs/blog/mongodb-feast-integration.md | 210 ++++++++++++++++++ .../images/blog/mongodb-feature-stores.png | Bin 0 -> 326110 bytes 2 files changed, 210 insertions(+) create mode 100644 infra/website/docs/blog/mongodb-feast-integration.md create mode 100644 infra/website/public/images/blog/mongodb-feature-stores.png diff --git a/infra/website/docs/blog/mongodb-feast-integration.md b/infra/website/docs/blog/mongodb-feast-integration.md new file mode 100644 index 00000000000..05e3764d083 --- /dev/null +++ b/infra/website/docs/blog/mongodb-feast-integration.md @@ -0,0 +1,210 @@ +--- +title: Native MongoDB Support in Feast: One Database for Operational Data, Features, and Vectors +description: Feast now ships first-class support for **MongoDB** as both an online and an offline store, plus native **Vector Search** for embedding-based retrieval. Machine Learning teams running on MongoDB can serve features at low latency, generate point-in-time-correct training datasets, and power RAG or recommender workloads, all from a single MongoDB Atlas cluster, with no separate cache, no separate warehouse, and no parallel vector database to keep in sync. +date: 2026-05-07 +authors: ["Rishabh Bisht"] +--- + + +
+MongoDB Feast Stores:@.mongodb.net" + database: "feast_online" + +offline_store: + type: mongodb + connection_string: "mongodb+srv://:@.mongodb.net" + database: "feast_offline" + +entity_key_serialization_version: 3 +``` + +### **Define a feature view backed by `MongoDBSource`** + +```py +from datetime import timedelta +from feast import Entity, FeatureView, Field +from feast.types import Float32, Int64 +from feast.infra.offline_stores.contrib.mongodb_offline_store.mongodb_source import ( + MongoDBSource, +) + +driver = Entity(name="driver", join_keys=["driver_id"]) + +driver_stats_source = MongoDBSource( + name="driver_stats_source", + database="feast_offline", + collection="driver_stats", + timestamp_field="event_timestamp", + created_timestamp_column="created", +) + +driver_stats_fv = FeatureView( + name="driver_hourly_stats", + entities=[driver], + ttl=timedelta(days=7), + schema=[ + Field(name="conv_rate", dtype=Float32), + Field(name="acc_rate", dtype=Float32), + Field(name="avg_daily_trips", dtype=Int64), + ], + online=True, + source=driver_stats_source, +) +``` + +### **Apply, materialize, and serve** + +```shell +feast apply +feast materialize-incremental $(date -u +"%Y-%m-%dT%H:%M:%S") +``` + +```py +from feast import FeatureStore + +store = FeatureStore(repo_path=".") + +features = store.get_online_features( + features=[ + "driver_hourly_stats:conv_rate", + "driver_hourly_stats:acc_rate", + "driver_hourly_stats:avg_daily_trips", + ], + entity_rows=[{"driver_id": 1001}, {"driver_id": 1002}], +).to_dict() +``` + +That's it. Same connection string, same auth model, same cluster \- features in, features out. + +## **RAG and embeddings: vector search in the same cluster** + +If you're building a RAG pipeline, a recommender, or an agent that needs nearest-neighbor lookup over feature embeddings, the online store doubles as a vector store when `vector_enabled` is set: + +``` +online_store: + type: mongodb + connection_string: "mongodb+srv://:@.mongodb.net" + database: "feast_online" + vector_enabled: true + vector_index_wait_timeout: 60 + vector_index_wait_poll_interval: 2 +``` + +Mark the embedding field on your `FeatureView`: + +```py +from feast import FeatureView, Field +from feast.types import Array, Float32, Int64, String, UnixTimestamp + +document_embeddings = FeatureView( + name="embedded_documents", + entities=[item], + schema=[ + Field( + name="vector", + dtype=Array(Float32), + vector_index=True, # ← enable vector index + vector_search_metric="COSINE", # cosine | dot product | euclidean + ), + Field(name="item_id", dtype=Int64), + Field(name="sentence_chunks", dtype=String), + Field(name="event_timestamp", dtype=UnixTimestamp), + ], + source=rag_documents_source, +) +``` + +When you run `feast apply`, Feast creates the corresponding Atlas vector search index. When the feature view is removed, the index is dropped. The `vector_index_wait_timeout` and `vector_index_wait_poll_interval` settings control how long Feast waits for newly created Atlas Search indexes to become queryable before returning. + +Querying nearest neighbors is then one call: + +```py +results = store.retrieve_online_documents_v2( + features=[ + "embedded_documents:vector", + "embedded_documents:item_id", + "embedded_documents:sentence_chunks", + ], + query=query_embedding, # list[float] of the same dim + top_k=5, + distance_metric="COSINE", +).to_df() +``` + +Under the hood, this becomes a `$vectorSearch` aggregation against your Atlas cluster \- no second system to provision, no vector data to keep in sync with the rest of your features. + +## **Why this matters** + +A few reasons we think this lands in the right place for ML teams already on MongoDB: + +* **One database for training and inference.** The same Atlas cluster powers historical retrieval, materialization, and online serving. No ETL pipelines pushing features from a warehouse. Update a feature once, see it everywhere. +* **One security and compliance posture.** Atlas networking, IAM, encryption, and audit logging cover both halves of the feature store. Architects don't have to add a new database vendor and a new threat model to say yes to ML. +* **Vector and operational data colocated.** For RAG, recommenders, and agents, the embeddings live next to the entity data they describe. Filter your vector search on operational fields with the same query language you already use. +* **Flexible schema where it helps.** Feature engineering is iterative. MongoDB's document model means adding a field to a feature view doesn't require a schema migration on day one. +* **Async serving when you need it.** The online store ships a native async path on `AsyncMongoClient`, so feature lookups don't block the rest of your serving stack. + +## **Where to next** + +* **Online store reference:** [Feast docs \- MongoDB online store](https://docs.feast.dev/master/reference/online-stores/mongodb) +* **Offline store reference:** [Feast docs \- MongoDB offline store](https://docs.feast.dev/master/reference/offline-stores/mongodb) +* **Vector search:** [Feast docs \- Vector Search](https://docs.feast.dev/master/reference/data-sources/mongodb#vector-search) +* **Tutorial:** [Integrate MongoDB with Feast](https://www.mongodb.com/docs/atlas/ai-integrations/feast/) + +If you're already on MongoDB and want to standardize your ML stack on a single backend, this is the time to try it. Spin up a feature repo, point both stores at your cluster, and let us know how it goes \- issues and PRs welcome on GitHub. \ No newline at end of file diff --git a/infra/website/public/images/blog/mongodb-feature-stores.png b/infra/website/public/images/blog/mongodb-feature-stores.png new file mode 100644 index 0000000000000000000000000000000000000000..c0705834dc9895107f60a26551163720465cf861 GIT binary patch literal 326110 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±T|(uzy|r$Aka6P)Bif?0>-GpFn@x3m~oc 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

l??P|;>W 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 literal 0 HcmV?d00001 From 57d28d4c27384f7b5ebdc85f262ba24db82a879e Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 7 May 2026 18:27:21 +0530 Subject: [PATCH 08/59] fix: Fix mongodb blog title Signed-off-by: ntkathole --- infra/website/docs/blog/mongodb-feast-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/website/docs/blog/mongodb-feast-integration.md b/infra/website/docs/blog/mongodb-feast-integration.md index 05e3764d083..7f6d6778c64 100644 --- a/infra/website/docs/blog/mongodb-feast-integration.md +++ b/infra/website/docs/blog/mongodb-feast-integration.md @@ -1,5 +1,5 @@ --- -title: Native MongoDB Support in Feast: One Database for Operational Data, Features, and Vectors +title: "Native MongoDB Support in Feast: One Database for Operational Data, Features, and Vectors" description: Feast now ships first-class support for **MongoDB** as both an online and an offline store, plus native **Vector Search** for embedding-based retrieval. Machine Learning teams running on MongoDB can serve features at low latency, generate point-in-time-correct training datasets, and power RAG or recommender workloads, all from a single MongoDB Atlas cluster, with no separate cache, no separate warehouse, and no parallel vector database to keep in sync. date: 2026-05-07 authors: ["Rishabh Bisht"] From f8389fb4037ad0280c7b0a70fafe9ab710369409 Mon Sep 17 00:00:00 2001 From: Nikhil Kathole Date: Thu, 7 May 2026 18:58:35 +0530 Subject: [PATCH 09/59] fix: Fixed formatting and image for mongo blog (#6377) Signed-off-by: ntkathole --- .../docs/blog/mongodb-feast-integration.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/infra/website/docs/blog/mongodb-feast-integration.md b/infra/website/docs/blog/mongodb-feast-integration.md index 7f6d6778c64..8a9ea4c255b 100644 --- a/infra/website/docs/blog/mongodb-feast-integration.md +++ b/infra/website/docs/blog/mongodb-feast-integration.md @@ -1,17 +1,17 @@ --- title: "Native MongoDB Support in Feast: One Database for Operational Data, Features, and Vectors" -description: Feast now ships first-class support for **MongoDB** as both an online and an offline store, plus native **Vector Search** for embedding-based retrieval. Machine Learning teams running on MongoDB can serve features at low latency, generate point-in-time-correct training datasets, and power RAG or recommender workloads, all from a single MongoDB Atlas cluster, with no separate cache, no separate warehouse, and no parallel vector database to keep in sync. +description: Feast now ships first-class support for MongoDB as both an online and an offline store, plus native Vector Search for embedding-based retrieval. Machine Learning teams running on MongoDB can serve features at low latency, generate point-in-time-correct training datasets, and power RAG or recommender workloads, all from a single MongoDB Atlas cluster, with no separate cache, no separate warehouse, and no parallel vector database to keep in sync. date: 2026-05-07 authors: ["Rishabh Bisht"] ---

-## **The three-database problem in production ML** +## The three-database problem in production ML A typical Feast deployment runs three different databases: @@ -23,41 +23,41 @@ That's three sets of credentials, three security postures, three monitoring stac For teams whose operational data already lives in MongoDB, this was especially painful. Until now, Feast had no native MongoDB option so teams either stood up parallel infrastructure they didn't want, or settled for community plugins of varying maturity. -With this release, both types of the feature store run on MongoDB \- same connection string, same auth, same backups, same observability. The features sit next to the operational data they were derived from. +With this release, both types of the feature store run on MongoDB - same connection string, same auth, same backups, same observability. The features sit next to the operational data they were derived from. -## **What's in the integration** +## What's in the integration Three components ship together as generally available: -### **1\. MongoDBOnlineStore \- low-latency feature serving** +### 1. MongoDBOnlineStore - low-latency feature serving Available in Feast `v0.61.0` and above. Built on the official PyMongo driver, with both sync and native async paths (the async implementation uses PyMongo's `AsyncMongoClient`). It supports `online_write_batch`, `online_read`, and their async equivalents. Features from multiple feature views for the same entity are colocated in a single MongoDB collection keyed by the serialized entity key, so a read for an entity is a single primary-key lookup, not a fan-out across collections. -### **2\. MongoDBOfflineStore \- historical retrieval and training-set generation** +### 2. MongoDBOfflineStore - historical retrieval and training-set generation Available in `v0.63.0` and above. Uses the MongoDB aggregation framework for retrieval, with `pandas.merge_asof` for the point-in-time join when entities repeat across timestamps. Ships with `MongoDBSource` (the `DataSource` class), `offline_write_batch` for ingest, and `persist` to write joined results to Parquet for downstream training pipelines. -### **3\. MongoDB Vector Search \- embeddings as first-class features** +### 3. MongoDB Vector Search - embeddings as first-class features -When you set `vector_enabled: true` on the online store, Feast automatically creates and manages MongoDB vector search indexes on any `FeatureView` field marked with `vector_index=True`. The `retrieve_online_documents_v2()` method runs a `$vectorSearch` aggregation under the hood and returns nearest-neighbor results as `(event_ts, entity_key, feature_dict)` tuples with a similarity score \- with `top_k` limiting and configurable distance metrics (`cosine`, `dot product`, `euclidean`). +When you set `vector_enabled: true` on the online store, Feast automatically creates and manages MongoDB vector search indexes on any `FeatureView` field marked with `vector_index=True`. The `retrieve_online_documents_v2()` method runs a `$vectorSearch` aggregation under the hood and returns nearest-neighbor results as `(event_ts, entity_key, feature_dict)` tuples with a similarity score - with `top_k` limiting and configurable distance metrics (`cosine`, `dot product`, `euclidean`). -The result: a team running RAG, recommenders, or agent workloads can store, serve, and similarity-search feature embeddings in the same Atlas cluster as their other features with no separate vector database to bolt on. +The result: a team running RAG, recommenders, or agent workloads can store, serve, and similarity-search feature embeddings in the same Atlas cluster as their other features — with no separate vector database to bolt on. ## **Quick start** -### **Install** +### Install ```shell pip install 'feast[mongodb]' ``` -### **Configure your `feature_store.yaml`** +### Configure your `feature_store.yaml` Point both the online and offline store at the same Atlas cluster. No separate Atlas feature flag or opt-in required. -``` +```yaml project: my_feature_repo registry: data/registry.db provider: local @@ -75,7 +75,7 @@ offline_store: entity_key_serialization_version: 3 ``` -### **Define a feature view backed by `MongoDBSource`** +### Define a feature view backed by `MongoDBSource` ```py from datetime import timedelta @@ -109,7 +109,7 @@ driver_stats_fv = FeatureView( ) ``` -### **Apply, materialize, and serve** +### Apply, materialize, and serve ```shell feast apply @@ -131,13 +131,13 @@ features = store.get_online_features( ).to_dict() ``` -That's it. Same connection string, same auth model, same cluster \- features in, features out. +That's it. Same connection string, same auth model, same cluster - features in, features out. -## **RAG and embeddings: vector search in the same cluster** +## RAG and embeddings: vector search in the same cluster If you're building a RAG pipeline, a recommender, or an agent that needs nearest-neighbor lookup over feature embeddings, the online store doubles as a vector store when `vector_enabled` is set: -``` +```yaml online_store: type: mongodb connection_string: "mongodb+srv://:@.mongodb.net" @@ -188,9 +188,9 @@ results = store.retrieve_online_documents_v2( ).to_df() ``` -Under the hood, this becomes a `$vectorSearch` aggregation against your Atlas cluster \- no second system to provision, no vector data to keep in sync with the rest of your features. +Under the hood, this becomes a `$vectorSearch` aggregation against your Atlas cluster - no second system to provision, no vector data to keep in sync with the rest of your features. -## **Why this matters** +## Why this matters A few reasons we think this lands in the right place for ML teams already on MongoDB: @@ -200,11 +200,11 @@ A few reasons we think this lands in the right place for ML teams already on Mon * **Flexible schema where it helps.** Feature engineering is iterative. MongoDB's document model means adding a field to a feature view doesn't require a schema migration on day one. * **Async serving when you need it.** The online store ships a native async path on `AsyncMongoClient`, so feature lookups don't block the rest of your serving stack. -## **Where to next** +## Where to next -* **Online store reference:** [Feast docs \- MongoDB online store](https://docs.feast.dev/master/reference/online-stores/mongodb) -* **Offline store reference:** [Feast docs \- MongoDB offline store](https://docs.feast.dev/master/reference/offline-stores/mongodb) -* **Vector search:** [Feast docs \- Vector Search](https://docs.feast.dev/master/reference/data-sources/mongodb#vector-search) -* **Tutorial:** [Integrate MongoDB with Feast](https://www.mongodb.com/docs/atlas/ai-integrations/feast/) +* **Online store reference:** [Feast docs - MongoDB online store](https://docs.feast.dev/master/reference/online-stores/mongodb) +* **Offline store reference:** [Feast docs - MongoDB offline store](https://docs.feast.dev/master/reference/offline-stores/mongodb) +* **Vector search:** [Feast docs - Vector Search](https://docs.feast.dev/master/reference/data-sources/mongodb#vector-search) +* **Tutorial:** [Integrate MongoDB with Feast](https://www.mongodb.com/docs/atlas/ai-integrations/feast/) -If you're already on MongoDB and want to standardize your ML stack on a single backend, this is the time to try it. Spin up a feature repo, point both stores at your cluster, and let us know how it goes \- issues and PRs welcome on GitHub. \ No newline at end of file +If you're already on MongoDB and want to standardize your ML stack on a single backend, this is the time to try it. Spin up a feature repo, point both stores at your cluster, and let us know how it goes - issues and PRs welcome on GitHub. \ No newline at end of file From bedc0effe2877e4b00753bbc123eda96e4a38223 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 7 May 2026 09:53:50 -0400 Subject: [PATCH 10/59] [WIP] Add hero image for social preview in blog posts (#6379) * Initial plan * fix: use blog hero image for social preview metadata Agent-Logs-Url: https://github.com/feast-dev/feast/sessions/8c33bcc6-0cd4-4222-95a1-bfa02f136b5b Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * fix: harden hero image extraction for blog social tags Agent-Logs-Url: https://github.com/feast-dev/feast/sessions/8c33bcc6-0cd4-4222-95a1-bfa02f136b5b Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --- infra/website/src/layouts/BaseLayout.astro | 18 +++++++++++---- infra/website/src/pages/blog/[slug].astro | 27 ++++++++++++++++++++-- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/infra/website/src/layouts/BaseLayout.astro b/infra/website/src/layouts/BaseLayout.astro index d73c7b0ebde..05d940005ba 100644 --- a/infra/website/src/layouts/BaseLayout.astro +++ b/infra/website/src/layouts/BaseLayout.astro @@ -4,9 +4,17 @@ import '../styles/global.css'; interface Props { title: string; description?: string; + socialImage?: string; + ogUrl?: string; } -const { title, description = "Feast is an end-to-end open source feature store for machine learning. It allows teams to define, manage, discover, and serve features." } = Astro.props; +const defaultSocialImage = "https://feast.dev/wp-content/uploads/2023/01/feast-og@2x.png"; +const { + title, + description = "Feast is an end-to-end open source feature store for machine learning. It allows teams to define, manage, discover, and serve features.", + socialImage = defaultSocialImage, + ogUrl = "https://feast.dev/", +} = Astro.props; --- @@ -25,16 +33,16 @@ const { title, description = "Feast is an end-to-end open source feature store f - + - + - + @@ -51,4 +59,4 @@ const { title, description = "Feast is an end-to-end open source feature store f - \ No newline at end of file + diff --git a/infra/website/src/pages/blog/[slug].astro b/infra/website/src/pages/blog/[slug].astro index 7d6a780a14c..90e8572d0b2 100644 --- a/infra/website/src/pages/blog/[slug].astro +++ b/infra/website/src/pages/blog/[slug].astro @@ -1,6 +1,25 @@ --- import BaseLayout from '../../layouts/BaseLayout.astro'; import Navigation from '../../components/Navigation.astro'; +import { readFileSync } from 'node:fs'; + +const SITE_URL = 'https://feast.dev'; + +function toAbsoluteUrl(path: string): string { + if (/^https?:\/\//i.test(path)) { + return path; + } + return new URL(path, SITE_URL).toString(); +} + +function extractHeroImage(markdown: string): string | undefined { + const heroContainerMatch = markdown.match(/]*class=["'][^"']*\bhero-image\b[^"']*["'][^>]*>([\s\S]*?)<\/div>/i); + if (!heroContainerMatch?.[1]) { + return undefined; + } + const imageMatch = heroContainerMatch[1].match(/]*\bsrc=["']([^"']+)["'][^>]*>/i); + return imageMatch?.[1]; +} export async function getStaticPaths() { const posts = await Astro.glob('../../../docs/blog/*.md'); @@ -17,9 +36,13 @@ export async function getStaticPaths() { const { post } = Astro.props; const { title, description, date, authors = [] } = post.frontmatter; +const blogUrl = `${SITE_URL}/blog/${Astro.params.slug}/`; +const frontmatterImage = post.frontmatter.hero_image || post.frontmatter.heroImage || post.frontmatter.image; +const heroImage = frontmatterImage || extractHeroImage(readFileSync(post.file, 'utf-8')); +const socialImage = heroImage ? toAbsoluteUrl(heroImage) : undefined; --- - +
@@ -316,4 +339,4 @@ const { title, description, date, authors = [] } = post.frontmatter; font-size: 18px; } } - \ No newline at end of file + From 728aa2e039dab8d51f2f714f544cf1afeea78acd Mon Sep 17 00:00:00 2001 From: nquinn408 <57655411+nquinn408@users.noreply.github.com> Date: Thu, 7 May 2026 17:07:25 -0700 Subject: [PATCH 11/59] feat: Support non-string map key types (#6382) (#6383) --- docs/getting-started/concepts/feast-types.md | 6 +- docs/reference/type-system.md | 54 +- protos/feast/types/Value.proto | 29 + pyproject.toml | 2 +- .../protos/feast/core/Aggregation_pb2.pyi | 65 +- .../protos/feast/core/DataFormat_pb2.pyi | 354 ++- .../protos/feast/core/DataSource_pb2.pyi | 711 +++-- .../protos/feast/core/DatastoreTable_pb2.pyi | 70 +- .../feast/protos/feast/core/Entity_pb2.pyi | 181 +- .../protos/feast/core/FeatureService_pb2.pyi | 444 +-- .../protos/feast/core/FeatureTable_pb2.pyi | 213 +- .../feast/core/FeatureViewProjection_pb2.pyi | 135 +- .../feast/core/FeatureViewVersion_pb2.pyi | 103 +- .../protos/feast/core/FeatureView_pb2.pyi | 359 ++- .../feast/protos/feast/core/Feature_pb2.pyi | 99 +- .../protos/feast/core/InfraObject_pb2.pyi | 104 +- .../feast/core/OnDemandFeatureView_pb2.pyi | 404 +-- .../protos/feast/core/Permission_pb2.pyi | 225 +- .../feast/protos/feast/core/Policy_pb2.pyi | 172 +- .../feast/protos/feast/core/Project_pb2.pyi | 143 +- .../feast/protos/feast/core/Registry_pb2.pyi | 224 +- .../protos/feast/core/SavedDataset_pb2.pyi | 299 +- .../protos/feast/core/SqliteTable_pb2.pyi | 38 +- .../feast/protos/feast/core/Store_pb2.pyi | 223 +- .../feast/core/StreamFeatureView_pb2.pyi | 288 +- .../protos/feast/core/Transformation_pb2.pyi | 105 +- .../feast/core/ValidationProfile_pb2.pyi | 170 +- .../feast/registry/RegistryServer_pb2.pyi | 2812 +++++++++-------- .../protos/feast/serving/Connector_pb2.pyi | 133 +- .../protos/feast/serving/GrpcServer_pb2.pyi | 238 +- .../feast/serving/ServingService_pb2.pyi | 448 +-- .../serving/TransformationService_pb2.pyi | 145 +- .../feast/protos/feast/storage/Redis_pb2.pyi | 60 +- .../protos/feast/types/EntityKey_pb2.pyi | 48 +- .../feast/protos/feast/types/Field_pb2.pyi | 81 +- .../feast/protos/feast/types/Value_pb2.py | 92 +- .../feast/protos/feast/types/Value_pb2.pyi | 816 +++-- sdk/python/feast/type_map.py | 103 + sdk/python/feast/types.py | 5 + sdk/python/feast/value_type.py | 1 + sdk/python/tests/unit/test_type_map.py | 112 + 41 files changed, 5776 insertions(+), 4538 deletions(-) diff --git a/docs/getting-started/concepts/feast-types.md b/docs/getting-started/concepts/feast-types.md index df95ea3bc2a..7d864b6a18f 100644 --- a/docs/getting-started/concepts/feast-types.md +++ b/docs/getting-started/concepts/feast-types.md @@ -12,7 +12,7 @@ Feast supports the following categories of data types: - **UUID types**: `Uuid` and `TimeUuid` for universally unique identifiers. Stored as strings at the proto level but deserialized to `uuid.UUID` objects in Python. - **Array types**: ordered lists of any primitive type, e.g. `Array(Int64)`, `Array(String)`, `Array(Uuid)`. - **Set types**: unordered collections of unique values for any primitive type, e.g. `Set(String)`, `Set(Int64)`. Set types are not inferred by any backend and must be explicitly declared. They are best suited for online serving use cases. -- **Map types**: dictionary-like structures with string keys and values that can be any supported Feast type (including nested maps), e.g. `Map`, `Array(Map)`. +- **Map types**: dictionary-like structures. `Map` has string keys and values that can be any supported Feast type (including nested maps), e.g. `Map`, `Array(Map)`. `ScalarMap` has non-string scalar keys (int, float, bool, UUID, Decimal, bytes, datetime) — Feast infers `ScalarMap` automatically when the first key is not a string. `ScalarMap` must be explicitly declared in schema and is not inferred by any backend. - **JSON type**: opaque JSON data stored as a string at the proto level but semantically distinct from `String` — backends use native JSON types (`jsonb`, `VARIANT`, etc.), e.g. `Json`, `Array(Json)`. - **Struct type**: schema-aware structured type with named, typed fields. Unlike `Map` (which is schema-free), a `Struct` declares its field names and their types, enabling schema validation, e.g. `Struct({"name": String, "age": Int32})`. @@ -41,8 +41,8 @@ Map, JSON, and Struct types are supported across all major Feast backends: | Spark | `struct<...>` | `Struct` | | Spark | `array>` | `Array(Struct(...))` | | MSSQL | `nvarchar(max)` | `Map`, `Json`, `Struct` | -| DynamoDB | Proto bytes | `Map`, `Json`, `Struct` | -| Redis | Proto bytes | `Map`, `Json`, `Struct` | +| DynamoDB | Proto bytes | `Map`, `Json`, `Struct`, `ScalarMap` | +| Redis | Proto bytes | `Map`, `Json`, `Struct`, `ScalarMap` | | Milvus | `VARCHAR` (serialized) | `Map`, `Json`, `Struct` | **Note**: When the backend native type is ambiguous (e.g., `jsonb` could be `Map`, `Json`, or `Struct`), the **schema-declared Feast type takes precedence**. The backend-to-Feast type mappings above are only used for schema inference when no explicit type is provided. diff --git a/docs/reference/type-system.md b/docs/reference/type-system.md index 6353d41d90c..eb483c6e769 100644 --- a/docs/reference/type-system.md +++ b/docs/reference/type-system.md @@ -116,8 +116,13 @@ Map types allow storing dictionary-like data structures: |------------|-------------|-------------| | `Map` | `Dict[str, Any]` | Dictionary with string keys and values of any supported Feast type (including nested maps) | | `Array(Map)` | `List[Dict[str, Any]]` | List of dictionaries | +| `ScalarMap` | `Dict[Any, Any]` | Dictionary with non-string scalar keys (int, float, bool, UUID, Decimal, bytes, datetime) and values of any supported Feast type | -**Note:** Map keys must always be strings. Map values can be any supported Feast type, including primitives, arrays, or nested maps at the proto level. However, the PyArrow representation is `map`, which means backends that rely on PyArrow schemas (e.g., during materialization) treat Map as string-to-string. +**Note:** `Map` keys must always be strings. `ScalarMap` supports non-string scalar keys — Feast infers `ScalarMap` automatically when the first key of a dict is not a string. Map values can be any supported Feast type, including primitives, arrays, or nested maps at the proto level. However, the PyArrow representation is `map`, which means backends that rely on PyArrow schemas (e.g., during materialization) treat Map as string-to-string. + +{% hint style="warning" %} +`ScalarMap` is **not** inferred from any backend schema. You must declare it explicitly in your feature view schema. It is best suited for online serving use cases where the online store serializes proto bytes directly (e.g., Redis, DynamoDB, SQLite). +{% endhint %} **Backend support for Map:** @@ -129,7 +134,7 @@ Map types allow storing dictionary-like data structures: | Spark | `map` | `map<>` → `Map`, `array>` → `Array(Map)` | | Athena | `map` | Inferred as `Map` | | MSSQL | `nvarchar(max)` | Serialized as string | -| DynamoDB / Redis | Proto bytes | Full proto Map support | +| DynamoDB / Redis | Proto bytes | Full proto Map and ScalarMap support | ### JSON Type @@ -197,7 +202,7 @@ from datetime import timedelta from feast import Entity, FeatureView, Field, FileSource from feast.types import ( Int32, Int64, Float32, Float64, String, Bytes, Bool, UnixTimestamp, - Uuid, TimeUuid, Decimal, Array, Set, Map, Json, Struct + Uuid, TimeUuid, Decimal, Array, Set, Map, ScalarMap, Json, Struct ) # Define a data source @@ -257,6 +262,7 @@ user_features = FeatureView( Field(name="user_preferences", dtype=Map), Field(name="metadata", dtype=Map), Field(name="activity_log", dtype=Array(Map)), + Field(name="event_counts", dtype=ScalarMap), # non-string keys, e.g. {1001: 5, 1002: 12} # Nested collection types Field(name="weekly_scores", dtype=Array(Array(Float64))), @@ -383,7 +389,7 @@ Field(name="grouped_tags", dtype=Array(Set(Array(String)))) Maps can store complex nested data structures: ```python -# Simple map +# Simple map (string keys) user_preferences = { "theme": "dark", "language": "en", @@ -411,6 +417,44 @@ activity_log = [ ] ``` +### ScalarMap Type Usage Examples + +`ScalarMap` supports non-string keys. Feast infers it automatically when the first dict key is not a string: + +```python +import uuid +import decimal + +# Integer keys — e.g., category ID → item count +event_counts = {1001: 5, 1002: 12, 1003: 0} + +# UUID keys — e.g., session ID → score +import uuid +session_scores = { + uuid.UUID("6ba7b810-9dad-11d1-80b4-00c04fd430c8"): 0.95, + uuid.UUID("a8098c1a-f86e-11da-bd1a-00112444be1e"): 0.87, +} + +# Decimal keys — e.g., price bucket → product name +price_tier = { + decimal.Decimal("9.99"): "budget", + decimal.Decimal("49.99"): "standard", + decimal.Decimal("99.99"): "premium", +} + +# Type inference: Feast automatically picks SCALAR_MAP when the key is non-string +from feast.type_map import python_type_to_feast_value_type +from feast.value_type import ValueType + +python_type_to_feast_value_type({1: "a"}) # → ValueType.SCALAR_MAP +python_type_to_feast_value_type({"a": 1}) # → ValueType.MAP +python_type_to_feast_value_type({}) # → ValueType.MAP (empty dict defaults to MAP) +``` + +{% hint style="warning" %} +`ScalarMap` must be **explicitly declared** in your feature view schema — it is never inferred from backend type schemas. It is best suited for online serving via stores that use proto byte serialization (e.g., Redis, DynamoDB, SQLite). Materialization paths that use PyArrow (e.g., BigQuery, Snowflake, Redshift, Spark) do not have native `ScalarMap` support. +{% endhint %} + ### JSON Type Usage Examples Feast's `Json` type stores values as JSON strings at the proto level. You can pass either a @@ -461,7 +505,7 @@ Each of these columns must be associated with a Feast type, which requires conve * `source_datatype_to_feast_value_type` calls the appropriate method in `type_map.py`. For example, if a `SnowflakeSource` is being examined, `snowflake_python_type_to_feast_value_type` from `type_map.py` will be called. {% hint style="info" %} -**Types that cannot be inferred:** `Set`, `Json`, `Struct`, `Decimal`, `PdfBytes`, and `ImageBytes` types are never inferred from backend schemas. If you use these types, you must declare them explicitly in your feature view schema. +**Types that cannot be inferred:** `Set`, `Json`, `Struct`, `Decimal`, `ScalarMap`, `PdfBytes`, and `ImageBytes` types are never inferred from backend schemas. If you use these types, you must declare them explicitly in your feature view schema. {% endhint %} ### Materialization diff --git a/protos/feast/types/Value.proto b/protos/feast/types/Value.proto index 6c8082a43b9..086617ea66e 100644 --- a/protos/feast/types/Value.proto +++ b/protos/feast/types/Value.proto @@ -68,6 +68,7 @@ message ValueType { DECIMAL = 44; DECIMAL_LIST = 45; DECIMAL_SET = 46; + SCALAR_MAP = 47; } } @@ -118,6 +119,7 @@ message Value { string decimal_val = 44; StringList decimal_list_val = 45; StringSet decimal_set_val = 46; + ScalarMap scalar_map_val = 47; } } @@ -194,3 +196,30 @@ message MapList { message RepeatedValue { repeated Value val = 1; } + +// Map key for maps with non-string keys. +// Excludes string (handled by Map) and all collection types (not valid as keys). +message MapKey { + oneof key { + int32 int32_key = 1; + int64 int64_key = 2; + float float_key = 3; + double double_key = 4; + bool bool_key = 5; + int64 unix_timestamp_key = 6; + bytes bytes_key = 7; + string uuid_key = 8; + string time_uuid_key = 9; + string decimal_key = 10; + } +} + +message ScalarMapEntry { + MapKey key = 1; + Value value = 2; +} + +// Map with non-string keys. For string-keyed maps use Map. +message ScalarMap { + repeated ScalarMapEntry val = 1; +} diff --git a/pyproject.toml b/pyproject.toml index a7b6b79ae33..a2b63ca2882 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ dependencies = [ "uvicorn-worker", "gunicorn; platform_system != 'Windows'", "dask[dataframe]>=2024.2.1", - "prometheus_client", + "prometheus_client>=0.20.0,<0.25.0", "psutil", "bigtree>=0.19.2", "pyjwt", diff --git a/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi b/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi index 4c6bd7c089c..4b5c1cac9a9 100644 --- a/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi @@ -2,44 +2,49 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.message + +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Aggregation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Aggregation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - COLUMN_FIELD_NUMBER: builtins.int - FUNCTION_FIELD_NUMBER: builtins.int - TIME_WINDOW_FIELD_NUMBER: builtins.int - SLIDE_INTERVAL_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - column: builtins.str - function: builtins.str - @property - def time_window(self) -> google.protobuf.duration_pb2.Duration: ... - @property - def slide_interval(self) -> google.protobuf.duration_pb2.Duration: ... - name: builtins.str + COLUMN_FIELD_NUMBER: _builtins.int + FUNCTION_FIELD_NUMBER: _builtins.int + TIME_WINDOW_FIELD_NUMBER: _builtins.int + SLIDE_INTERVAL_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + column: _builtins.str + function: _builtins.str + name: _builtins.str + @_builtins.property + def time_window(self) -> _duration_pb2.Duration: ... + @_builtins.property + def slide_interval(self) -> _duration_pb2.Duration: ... def __init__( self, *, - column: builtins.str = ..., - function: builtins.str = ..., - time_window: google.protobuf.duration_pb2.Duration | None = ..., - slide_interval: google.protobuf.duration_pb2.Duration | None = ..., - name: builtins.str = ..., + column: _builtins.str = ..., + function: _builtins.str = ..., + time_window: _duration_pb2.Duration | None = ..., + slide_interval: _duration_pb2.Duration | None = ..., + name: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["slide_interval", b"slide_interval", "time_window", b"time_window"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["column", b"column", "function", b"function", "name", b"name", "slide_interval", b"slide_interval", "time_window", b"time_window"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["slide_interval", b"slide_interval", "time_window", b"time_window"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["column", b"column", "function", b"function", "name", b"name", "slide_interval", b"slide_interval", "time_window", b"time_window"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Aggregation = Aggregation +Global___Aggregation: _TypeAlias = Aggregation # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi b/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi index 193fb82a776..fa5291fac26 100644 --- a/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi @@ -16,272 +16,318 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing + +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated else: - import typing_extensions + from typing_extensions import deprecated as _deprecated -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FileFormat(google.protobuf.message.Message): +@_typing.final +class FileFormat(_message.Message): """Defines the file format encoding the features/entity data in files""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class ParquetFormat(google.protobuf.message.Message): + @_typing.final + class ParquetFormat(_message.Message): """Defines options for the Parquet data format""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__( self, ) -> None: ... - PARQUET_FORMAT_FIELD_NUMBER: builtins.int - DELTA_FORMAT_FIELD_NUMBER: builtins.int - @property - def parquet_format(self) -> global___FileFormat.ParquetFormat: ... - @property - def delta_format(self) -> global___TableFormat.DeltaFormat: + PARQUET_FORMAT_FIELD_NUMBER: _builtins.int + DELTA_FORMAT_FIELD_NUMBER: _builtins.int + @_builtins.property + def parquet_format(self) -> Global___FileFormat.ParquetFormat: ... + @_builtins.property + @_deprecated("""This field has been marked as deprecated using proto field options.""") + def delta_format(self) -> Global___TableFormat.DeltaFormat: """Deprecated: Delta Lake is a table format, not a file format. Use TableFormat.DeltaFormat instead for Delta Lake support. """ + def __init__( self, *, - parquet_format: global___FileFormat.ParquetFormat | None = ..., - delta_format: global___TableFormat.DeltaFormat | None = ..., + parquet_format: Global___FileFormat.ParquetFormat | None = ..., + delta_format: Global___TableFormat.DeltaFormat | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["parquet_format", "delta_format"] | None: ... - -global___FileFormat = FileFormat - -class TableFormat(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class IcebergFormat(google.protobuf.message.Message): + _HasFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["parquet_format", "delta_format"] # noqa: Y015 + _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... + +Global___FileFormat: _TypeAlias = FileFormat # noqa: Y015 + +@_typing.final +class TableFormat(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class IcebergFormat(_message.Message): """Defines options for Apache Iceberg table format""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class PropertiesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class PropertiesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CATALOG_FIELD_NUMBER: builtins.int - NAMESPACE_FIELD_NUMBER: builtins.int - PROPERTIES_FIELD_NUMBER: builtins.int - catalog: builtins.str + CATALOG_FIELD_NUMBER: _builtins.int + NAMESPACE_FIELD_NUMBER: _builtins.int + PROPERTIES_FIELD_NUMBER: _builtins.int + catalog: _builtins.str """Optional catalog name for the Iceberg table""" - namespace: builtins.str + namespace: _builtins.str """Optional namespace (schema/database) within the catalog""" - @property - def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def properties(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """Additional properties for Iceberg configuration Examples: warehouse location, snapshot-id, as-of-timestamp, etc. """ + def __init__( self, *, - catalog: builtins.str = ..., - namespace: builtins.str = ..., - properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + catalog: _builtins.str = ..., + namespace: _builtins.str = ..., + properties: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["catalog", b"catalog", "namespace", b"namespace", "properties", b"properties"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["catalog", b"catalog", "namespace", b"namespace", "properties", b"properties"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class DeltaFormat(google.protobuf.message.Message): + @_typing.final + class DeltaFormat(_message.Message): """Defines options for Delta Lake table format""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class PropertiesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class PropertiesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CHECKPOINT_LOCATION_FIELD_NUMBER: builtins.int - PROPERTIES_FIELD_NUMBER: builtins.int - checkpoint_location: builtins.str + CHECKPOINT_LOCATION_FIELD_NUMBER: _builtins.int + PROPERTIES_FIELD_NUMBER: _builtins.int + checkpoint_location: _builtins.str """Optional checkpoint location for Delta transaction logs""" - @property - def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def properties(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """Additional properties for Delta configuration Examples: auto-optimize settings, vacuum settings, etc. """ + def __init__( self, *, - checkpoint_location: builtins.str = ..., - properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + checkpoint_location: _builtins.str = ..., + properties: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["checkpoint_location", b"checkpoint_location", "properties", b"properties"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["checkpoint_location", b"checkpoint_location", "properties", b"properties"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class HudiFormat(google.protobuf.message.Message): + @_typing.final + class HudiFormat(_message.Message): """Defines options for Apache Hudi table format""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class PropertiesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class PropertiesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - TABLE_TYPE_FIELD_NUMBER: builtins.int - RECORD_KEY_FIELD_NUMBER: builtins.int - PRECOMBINE_FIELD_FIELD_NUMBER: builtins.int - PROPERTIES_FIELD_NUMBER: builtins.int - table_type: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + TABLE_TYPE_FIELD_NUMBER: _builtins.int + RECORD_KEY_FIELD_NUMBER: _builtins.int + PRECOMBINE_FIELD_FIELD_NUMBER: _builtins.int + PROPERTIES_FIELD_NUMBER: _builtins.int + table_type: _builtins.str """Type of Hudi table (COPY_ON_WRITE or MERGE_ON_READ)""" - record_key: builtins.str + record_key: _builtins.str """Field(s) that uniquely identify a record""" - precombine_field: builtins.str + precombine_field: _builtins.str """Field used to determine the latest version of a record""" - @property - def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def properties(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """Additional properties for Hudi configuration Examples: compaction strategy, indexing options, etc. """ + def __init__( self, *, - table_type: builtins.str = ..., - record_key: builtins.str = ..., - precombine_field: builtins.str = ..., - properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + table_type: _builtins.str = ..., + record_key: _builtins.str = ..., + precombine_field: _builtins.str = ..., + properties: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["precombine_field", b"precombine_field", "properties", b"properties", "record_key", b"record_key", "table_type", b"table_type"]) -> None: ... - - ICEBERG_FORMAT_FIELD_NUMBER: builtins.int - DELTA_FORMAT_FIELD_NUMBER: builtins.int - HUDI_FORMAT_FIELD_NUMBER: builtins.int - @property - def iceberg_format(self) -> global___TableFormat.IcebergFormat: ... - @property - def delta_format(self) -> global___TableFormat.DeltaFormat: ... - @property - def hudi_format(self) -> global___TableFormat.HudiFormat: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["precombine_field", b"precombine_field", "properties", b"properties", "record_key", b"record_key", "table_type", b"table_type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + ICEBERG_FORMAT_FIELD_NUMBER: _builtins.int + DELTA_FORMAT_FIELD_NUMBER: _builtins.int + HUDI_FORMAT_FIELD_NUMBER: _builtins.int + @_builtins.property + def iceberg_format(self) -> Global___TableFormat.IcebergFormat: ... + @_builtins.property + def delta_format(self) -> Global___TableFormat.DeltaFormat: ... + @_builtins.property + def hudi_format(self) -> Global___TableFormat.HudiFormat: ... def __init__( self, *, - iceberg_format: global___TableFormat.IcebergFormat | None = ..., - delta_format: global___TableFormat.DeltaFormat | None = ..., - hudi_format: global___TableFormat.HudiFormat | None = ..., + iceberg_format: Global___TableFormat.IcebergFormat | None = ..., + delta_format: Global___TableFormat.DeltaFormat | None = ..., + hudi_format: Global___TableFormat.HudiFormat | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["iceberg_format", "delta_format", "hudi_format"] | None: ... - -global___TableFormat = TableFormat - -class StreamFormat(google.protobuf.message.Message): + _HasFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["iceberg_format", "delta_format", "hudi_format"] # noqa: Y015 + _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... + +Global___TableFormat: _TypeAlias = TableFormat # noqa: Y015 + +@_typing.final +class StreamFormat(_message.Message): """Defines the data format encoding features/entity data in data streams""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class ProtoFormat(google.protobuf.message.Message): + @_typing.final + class ProtoFormat(_message.Message): """Defines options for the protobuf data format""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - CLASS_PATH_FIELD_NUMBER: builtins.int - class_path: builtins.str + CLASS_PATH_FIELD_NUMBER: _builtins.int + class_path: _builtins.str """Classpath to the generated Java Protobuf class that can be used to decode Feature data from the obtained stream message """ def __init__( self, *, - class_path: builtins.str = ..., + class_path: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["class_path", b"class_path"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["class_path", b"class_path"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class AvroFormat(google.protobuf.message.Message): + @_typing.final + class AvroFormat(_message.Message): """Defines options for the avro data format""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - SCHEMA_JSON_FIELD_NUMBER: builtins.int - schema_json: builtins.str + SCHEMA_JSON_FIELD_NUMBER: _builtins.int + schema_json: _builtins.str """Optional if used in a File DataSource as schema is embedded in avro file. Specifies the schema of the Avro message as JSON string. """ def __init__( self, *, - schema_json: builtins.str = ..., + schema_json: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["schema_json", b"schema_json"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["schema_json", b"schema_json"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class JsonFormat(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class JsonFormat(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SCHEMA_JSON_FIELD_NUMBER: builtins.int - schema_json: builtins.str + SCHEMA_JSON_FIELD_NUMBER: _builtins.int + schema_json: _builtins.str def __init__( self, *, - schema_json: builtins.str = ..., + schema_json: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["schema_json", b"schema_json"]) -> None: ... - - AVRO_FORMAT_FIELD_NUMBER: builtins.int - PROTO_FORMAT_FIELD_NUMBER: builtins.int - JSON_FORMAT_FIELD_NUMBER: builtins.int - @property - def avro_format(self) -> global___StreamFormat.AvroFormat: ... - @property - def proto_format(self) -> global___StreamFormat.ProtoFormat: ... - @property - def json_format(self) -> global___StreamFormat.JsonFormat: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["schema_json", b"schema_json"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + AVRO_FORMAT_FIELD_NUMBER: _builtins.int + PROTO_FORMAT_FIELD_NUMBER: _builtins.int + JSON_FORMAT_FIELD_NUMBER: _builtins.int + @_builtins.property + def avro_format(self) -> Global___StreamFormat.AvroFormat: ... + @_builtins.property + def proto_format(self) -> Global___StreamFormat.ProtoFormat: ... + @_builtins.property + def json_format(self) -> Global___StreamFormat.JsonFormat: ... def __init__( self, *, - avro_format: global___StreamFormat.AvroFormat | None = ..., - proto_format: global___StreamFormat.ProtoFormat | None = ..., - json_format: global___StreamFormat.JsonFormat | None = ..., + avro_format: Global___StreamFormat.AvroFormat | None = ..., + proto_format: Global___StreamFormat.ProtoFormat | None = ..., + json_format: Global___StreamFormat.JsonFormat | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["avro_format", "proto_format", "json_format"] | None: ... - -global___StreamFormat = StreamFormat + _HasFieldArgType: _TypeAlias = _typing.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["avro_format", "proto_format", "json_format"] # noqa: Y015 + _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... + +Global___StreamFormat: _TypeAlias = StreamFormat # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi b/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi index 7876e1adc98..308141fb6f2 100644 --- a/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi @@ -16,40 +16,42 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.core.DataFormat_pb2 -import feast.core.Feature_pb2 -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import DataFormat_pb2 as _DataFormat_pb2 # type: ignore[attr-defined] +from feast.core import Feature_pb2 as _Feature_pb2 # type: ignore[attr-defined] +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class DataSource(google.protobuf.message.Message): +@_typing.final +class DataSource(_message.Message): """Defines a Data Source that can be used source Feature data Next available id: 28 """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor class _SourceType: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _SourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DataSource._SourceType.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _SourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DataSource._SourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor INVALID: DataSource._SourceType.ValueType # 0 BATCH_FILE: DataSource._SourceType.ValueType # 1 BATCH_SNOWFLAKE: DataSource._SourceType.ValueType # 8 @@ -83,510 +85,559 @@ class DataSource(google.protobuf.message.Message): BATCH_SPARK: DataSource.SourceType.ValueType # 11 BATCH_ATHENA: DataSource.SourceType.ValueType # 12 - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class FieldMappingEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class FieldMappingEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - class SourceMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EARLIESTEVENTTIMESTAMP_FIELD_NUMBER: builtins.int - LATESTEVENTTIMESTAMP_FIELD_NUMBER: builtins.int - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - @property - def earliestEventTimestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def latestEventTimestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class SourceMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + EARLIESTEVENTTIMESTAMP_FIELD_NUMBER: _builtins.int + LATESTEVENTTIMESTAMP_FIELD_NUMBER: _builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + @_builtins.property + def earliestEventTimestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def latestEventTimestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - earliestEventTimestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - latestEventTimestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + earliestEventTimestamp: _timestamp_pb2.Timestamp | None = ..., + latestEventTimestamp: _timestamp_pb2.Timestamp | None = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class FileOptions(google.protobuf.message.Message): + @_typing.final + class FileOptions(_message.Message): """Defines options for DataSource that sources features from a file""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - FILE_FORMAT_FIELD_NUMBER: builtins.int - URI_FIELD_NUMBER: builtins.int - S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: builtins.int - @property - def file_format(self) -> feast.core.DataFormat_pb2.FileFormat: ... - uri: builtins.str + FILE_FORMAT_FIELD_NUMBER: _builtins.int + URI_FIELD_NUMBER: _builtins.int + S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: _builtins.int + uri: _builtins.str """Target URL of file to retrieve and source features from. s3://path/to/file for AWS S3 storage gs://path/to/file for GCP GCS storage file:///path/to/file for local storage """ - s3_endpoint_override: builtins.str + s3_endpoint_override: _builtins.str """override AWS S3 storage endpoint with custom S3 endpoint""" + @_builtins.property + def file_format(self) -> _DataFormat_pb2.FileFormat: ... def __init__( self, *, - file_format: feast.core.DataFormat_pb2.FileFormat | None = ..., - uri: builtins.str = ..., - s3_endpoint_override: builtins.str = ..., + file_format: _DataFormat_pb2.FileFormat | None = ..., + uri: _builtins.str = ..., + s3_endpoint_override: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["file_format", b"file_format"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["file_format", b"file_format", "s3_endpoint_override", b"s3_endpoint_override", "uri", b"uri"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["file_format", b"file_format"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["file_format", b"file_format", "s3_endpoint_override", b"s3_endpoint_override", "uri", b"uri"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class BigQueryOptions(google.protobuf.message.Message): + @_typing.final + class BigQueryOptions(_message.Message): """Defines options for DataSource that sources features from a BigQuery Query""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TABLE_FIELD_NUMBER: builtins.int - QUERY_FIELD_NUMBER: builtins.int - table: builtins.str + TABLE_FIELD_NUMBER: _builtins.int + QUERY_FIELD_NUMBER: _builtins.int + table: _builtins.str """Full table reference in the form of [project:dataset.table]""" - query: builtins.str + query: _builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ def __init__( self, *, - table: builtins.str = ..., - query: builtins.str = ..., + table: _builtins.str = ..., + query: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["query", b"query", "table", b"table"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["query", b"query", "table", b"table"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class TrinoOptions(google.protobuf.message.Message): + @_typing.final + class TrinoOptions(_message.Message): """Defines options for DataSource that sources features from a Trino Query""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TABLE_FIELD_NUMBER: builtins.int - QUERY_FIELD_NUMBER: builtins.int - table: builtins.str + TABLE_FIELD_NUMBER: _builtins.int + QUERY_FIELD_NUMBER: _builtins.int + table: _builtins.str """Full table reference in the form of [project:dataset.table]""" - query: builtins.str + query: _builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ def __init__( self, *, - table: builtins.str = ..., - query: builtins.str = ..., + table: _builtins.str = ..., + query: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["query", b"query", "table", b"table"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["query", b"query", "table", b"table"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class KafkaOptions(google.protobuf.message.Message): + @_typing.final + class KafkaOptions(_message.Message): """Defines options for DataSource that sources features from Kafka messages. Each message should be a Protobuf that can be decoded with the generated Java Protobuf class at the given class path """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - KAFKA_BOOTSTRAP_SERVERS_FIELD_NUMBER: builtins.int - TOPIC_FIELD_NUMBER: builtins.int - MESSAGE_FORMAT_FIELD_NUMBER: builtins.int - WATERMARK_DELAY_THRESHOLD_FIELD_NUMBER: builtins.int - kafka_bootstrap_servers: builtins.str + KAFKA_BOOTSTRAP_SERVERS_FIELD_NUMBER: _builtins.int + TOPIC_FIELD_NUMBER: _builtins.int + MESSAGE_FORMAT_FIELD_NUMBER: _builtins.int + WATERMARK_DELAY_THRESHOLD_FIELD_NUMBER: _builtins.int + kafka_bootstrap_servers: _builtins.str """Comma separated list of Kafka bootstrap servers. Used for feature tables without a defined source host[:port]]""" - topic: builtins.str + topic: _builtins.str """Kafka topic to collect feature data from.""" - @property - def message_format(self) -> feast.core.DataFormat_pb2.StreamFormat: + @_builtins.property + def message_format(self) -> _DataFormat_pb2.StreamFormat: """Defines the stream data format encoding feature/entity data in Kafka messages.""" - @property - def watermark_delay_threshold(self) -> google.protobuf.duration_pb2.Duration: + + @_builtins.property + def watermark_delay_threshold(self) -> _duration_pb2.Duration: """Watermark delay threshold for stream data""" + def __init__( self, *, - kafka_bootstrap_servers: builtins.str = ..., - topic: builtins.str = ..., - message_format: feast.core.DataFormat_pb2.StreamFormat | None = ..., - watermark_delay_threshold: google.protobuf.duration_pb2.Duration | None = ..., + kafka_bootstrap_servers: _builtins.str = ..., + topic: _builtins.str = ..., + message_format: _DataFormat_pb2.StreamFormat | None = ..., + watermark_delay_threshold: _duration_pb2.Duration | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["message_format", b"message_format", "watermark_delay_threshold", b"watermark_delay_threshold"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["kafka_bootstrap_servers", b"kafka_bootstrap_servers", "message_format", b"message_format", "topic", b"topic", "watermark_delay_threshold", b"watermark_delay_threshold"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["message_format", b"message_format", "watermark_delay_threshold", b"watermark_delay_threshold"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["kafka_bootstrap_servers", b"kafka_bootstrap_servers", "message_format", b"message_format", "topic", b"topic", "watermark_delay_threshold", b"watermark_delay_threshold"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class KinesisOptions(google.protobuf.message.Message): + @_typing.final + class KinesisOptions(_message.Message): """Defines options for DataSource that sources features from Kinesis records. Each record should be a Protobuf that can be decoded with the generated Java Protobuf class at the given class path """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - REGION_FIELD_NUMBER: builtins.int - STREAM_NAME_FIELD_NUMBER: builtins.int - RECORD_FORMAT_FIELD_NUMBER: builtins.int - region: builtins.str + REGION_FIELD_NUMBER: _builtins.int + STREAM_NAME_FIELD_NUMBER: _builtins.int + RECORD_FORMAT_FIELD_NUMBER: _builtins.int + region: _builtins.str """AWS region of the Kinesis stream""" - stream_name: builtins.str + stream_name: _builtins.str """Name of the Kinesis stream to obtain feature data from.""" - @property - def record_format(self) -> feast.core.DataFormat_pb2.StreamFormat: + @_builtins.property + def record_format(self) -> _DataFormat_pb2.StreamFormat: """Defines the data format encoding the feature/entity data in Kinesis records. Kinesis Data Sources support Avro and Proto as data formats. """ + def __init__( self, *, - region: builtins.str = ..., - stream_name: builtins.str = ..., - record_format: feast.core.DataFormat_pb2.StreamFormat | None = ..., + region: _builtins.str = ..., + stream_name: _builtins.str = ..., + record_format: _DataFormat_pb2.StreamFormat | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["record_format", b"record_format"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["record_format", b"record_format", "region", b"region", "stream_name", b"stream_name"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["record_format", b"record_format"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["record_format", b"record_format", "region", b"region", "stream_name", b"stream_name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class RedshiftOptions(google.protobuf.message.Message): + @_typing.final + class RedshiftOptions(_message.Message): """Defines options for DataSource that sources features from a Redshift Query""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TABLE_FIELD_NUMBER: builtins.int - QUERY_FIELD_NUMBER: builtins.int - SCHEMA_FIELD_NUMBER: builtins.int - DATABASE_FIELD_NUMBER: builtins.int - table: builtins.str + TABLE_FIELD_NUMBER: _builtins.int + QUERY_FIELD_NUMBER: _builtins.int + SCHEMA_FIELD_NUMBER: _builtins.int + DATABASE_FIELD_NUMBER: _builtins.int + table: _builtins.str """Redshift table name""" - query: builtins.str + query: _builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ - schema: builtins.str + schema: _builtins.str """Redshift schema name""" - database: builtins.str + database: _builtins.str """Redshift database name""" def __init__( self, *, - table: builtins.str = ..., - query: builtins.str = ..., - schema: builtins.str = ..., - database: builtins.str = ..., + table: _builtins.str = ..., + query: _builtins.str = ..., + schema: _builtins.str = ..., + database: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class AthenaOptions(google.protobuf.message.Message): + @_typing.final + class AthenaOptions(_message.Message): """Defines options for DataSource that sources features from a Athena Query""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TABLE_FIELD_NUMBER: builtins.int - QUERY_FIELD_NUMBER: builtins.int - DATABASE_FIELD_NUMBER: builtins.int - DATA_SOURCE_FIELD_NUMBER: builtins.int - table: builtins.str + TABLE_FIELD_NUMBER: _builtins.int + QUERY_FIELD_NUMBER: _builtins.int + DATABASE_FIELD_NUMBER: _builtins.int + DATA_SOURCE_FIELD_NUMBER: _builtins.int + table: _builtins.str """Athena table name""" - query: builtins.str + query: _builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ - database: builtins.str + database: _builtins.str """Athena database name""" - data_source: builtins.str + data_source: _builtins.str """Athena schema name""" def __init__( self, *, - table: builtins.str = ..., - query: builtins.str = ..., - database: builtins.str = ..., - data_source: builtins.str = ..., + table: _builtins.str = ..., + query: _builtins.str = ..., + database: _builtins.str = ..., + data_source: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["data_source", b"data_source", "database", b"database", "query", b"query", "table", b"table"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["data_source", b"data_source", "database", b"database", "query", b"query", "table", b"table"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class SnowflakeOptions(google.protobuf.message.Message): + @_typing.final + class SnowflakeOptions(_message.Message): """Defines options for DataSource that sources features from a Snowflake Query""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TABLE_FIELD_NUMBER: builtins.int - QUERY_FIELD_NUMBER: builtins.int - SCHEMA_FIELD_NUMBER: builtins.int - DATABASE_FIELD_NUMBER: builtins.int - table: builtins.str + TABLE_FIELD_NUMBER: _builtins.int + QUERY_FIELD_NUMBER: _builtins.int + SCHEMA_FIELD_NUMBER: _builtins.int + DATABASE_FIELD_NUMBER: _builtins.int + table: _builtins.str """Snowflake table name""" - query: builtins.str + query: _builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ - schema: builtins.str + schema: _builtins.str """Snowflake schema name""" - database: builtins.str + database: _builtins.str """Snowflake schema name""" def __init__( self, *, - table: builtins.str = ..., - query: builtins.str = ..., - schema: builtins.str = ..., - database: builtins.str = ..., + table: _builtins.str = ..., + query: _builtins.str = ..., + schema: _builtins.str = ..., + database: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class SparkOptions(google.protobuf.message.Message): + @_typing.final + class SparkOptions(_message.Message): """Defines options for DataSource that sources features from a spark table/query""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TABLE_FIELD_NUMBER: builtins.int - QUERY_FIELD_NUMBER: builtins.int - PATH_FIELD_NUMBER: builtins.int - FILE_FORMAT_FIELD_NUMBER: builtins.int - DATE_PARTITION_COLUMN_FORMAT_FIELD_NUMBER: builtins.int - TABLE_FORMAT_FIELD_NUMBER: builtins.int - table: builtins.str + TABLE_FIELD_NUMBER: _builtins.int + QUERY_FIELD_NUMBER: _builtins.int + PATH_FIELD_NUMBER: _builtins.int + FILE_FORMAT_FIELD_NUMBER: _builtins.int + DATE_PARTITION_COLUMN_FORMAT_FIELD_NUMBER: _builtins.int + TABLE_FORMAT_FIELD_NUMBER: _builtins.int + table: _builtins.str """Table name""" - query: builtins.str + query: _builtins.str """Spark SQl query that returns the table, this is an alternative to `table`""" - path: builtins.str + path: _builtins.str """Path from which spark can read the table, this is an alternative to `table`""" - file_format: builtins.str + file_format: _builtins.str """Format of files at `path` (e.g. parquet, avro, etc)""" - date_partition_column_format: builtins.str + date_partition_column_format: _builtins.str """Date Format of date partition column (e.g. %Y-%m-%d)""" - @property - def table_format(self) -> feast.core.DataFormat_pb2.TableFormat: + @_builtins.property + def table_format(self) -> _DataFormat_pb2.TableFormat: """Table Format (e.g. iceberg, delta, hudi)""" + def __init__( self, *, - table: builtins.str = ..., - query: builtins.str = ..., - path: builtins.str = ..., - file_format: builtins.str = ..., - date_partition_column_format: builtins.str = ..., - table_format: feast.core.DataFormat_pb2.TableFormat | None = ..., + table: _builtins.str = ..., + query: _builtins.str = ..., + path: _builtins.str = ..., + file_format: _builtins.str = ..., + date_partition_column_format: _builtins.str = ..., + table_format: _DataFormat_pb2.TableFormat | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["table_format", b"table_format"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["date_partition_column_format", b"date_partition_column_format", "file_format", b"file_format", "path", b"path", "query", b"query", "table", b"table", "table_format", b"table_format"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["table_format", b"table_format"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["date_partition_column_format", b"date_partition_column_format", "file_format", b"file_format", "path", b"path", "query", b"query", "table", b"table", "table_format", b"table_format"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class CustomSourceOptions(google.protobuf.message.Message): + @_typing.final + class CustomSourceOptions(_message.Message): """Defines configuration for custom third-party data sources.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - CONFIGURATION_FIELD_NUMBER: builtins.int - configuration: builtins.bytes + CONFIGURATION_FIELD_NUMBER: _builtins.int + configuration: _builtins.bytes """Serialized configuration information for the data source. The implementer of the custom data source is responsible for serializing and deserializing data from bytes """ def __init__( self, *, - configuration: builtins.bytes = ..., + configuration: _builtins.bytes = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["configuration", b"configuration"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["configuration", b"configuration"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class RequestDataOptions(google.protobuf.message.Message): + @_typing.final + class RequestDataOptions(_message.Message): """Defines options for DataSource that sources features from request data""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class DeprecatedSchemaEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class DeprecatedSchemaEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: feast.types.Value_pb2.ValueType.Enum.ValueType + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _Value_pb2.ValueType.Enum.ValueType def __init__( self, *, - key: builtins.str = ..., - value: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., + key: _builtins.str = ..., + value: _Value_pb2.ValueType.Enum.ValueType = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - DEPRECATED_SCHEMA_FIELD_NUMBER: builtins.int - SCHEMA_FIELD_NUMBER: builtins.int - @property - def deprecated_schema(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, feast.types.Value_pb2.ValueType.Enum.ValueType]: + DEPRECATED_SCHEMA_FIELD_NUMBER: _builtins.int + SCHEMA_FIELD_NUMBER: _builtins.int + @_builtins.property + def deprecated_schema(self) -> _containers.ScalarMap[_builtins.str, _Value_pb2.ValueType.Enum.ValueType]: """Mapping of feature name to type""" - @property - def schema(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: ... + + @_builtins.property + def schema(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: ... def __init__( self, *, - deprecated_schema: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.ValueType.Enum.ValueType] | None = ..., - schema: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + deprecated_schema: _abc.Mapping[_builtins.str, _Value_pb2.ValueType.Enum.ValueType] | None = ..., + schema: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["deprecated_schema", b"deprecated_schema", "schema", b"schema"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["deprecated_schema", b"deprecated_schema", "schema", b"schema"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class PushOptions(google.protobuf.message.Message): + @_typing.final + class PushOptions(_message.Message): """Defines options for DataSource that supports pushing data to it. This allows data to be pushed to the online store on-demand, such as by stream consumers. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__( self, ) -> None: ... - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - FIELD_MAPPING_FIELD_NUMBER: builtins.int - TIMESTAMP_FIELD_FIELD_NUMBER: builtins.int - DATE_PARTITION_COLUMN_FIELD_NUMBER: builtins.int - CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int - DATA_SOURCE_CLASS_TYPE_FIELD_NUMBER: builtins.int - BATCH_SOURCE_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - FILE_OPTIONS_FIELD_NUMBER: builtins.int - BIGQUERY_OPTIONS_FIELD_NUMBER: builtins.int - KAFKA_OPTIONS_FIELD_NUMBER: builtins.int - KINESIS_OPTIONS_FIELD_NUMBER: builtins.int - REDSHIFT_OPTIONS_FIELD_NUMBER: builtins.int - REQUEST_DATA_OPTIONS_FIELD_NUMBER: builtins.int - CUSTOM_OPTIONS_FIELD_NUMBER: builtins.int - SNOWFLAKE_OPTIONS_FIELD_NUMBER: builtins.int - PUSH_OPTIONS_FIELD_NUMBER: builtins.int - SPARK_OPTIONS_FIELD_NUMBER: builtins.int - TRINO_OPTIONS_FIELD_NUMBER: builtins.int - ATHENA_OPTIONS_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + FIELD_MAPPING_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_FIELD_NUMBER: _builtins.int + DATE_PARTITION_COLUMN_FIELD_NUMBER: _builtins.int + CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: _builtins.int + DATA_SOURCE_CLASS_TYPE_FIELD_NUMBER: _builtins.int + BATCH_SOURCE_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + FILE_OPTIONS_FIELD_NUMBER: _builtins.int + BIGQUERY_OPTIONS_FIELD_NUMBER: _builtins.int + KAFKA_OPTIONS_FIELD_NUMBER: _builtins.int + KINESIS_OPTIONS_FIELD_NUMBER: _builtins.int + REDSHIFT_OPTIONS_FIELD_NUMBER: _builtins.int + REQUEST_DATA_OPTIONS_FIELD_NUMBER: _builtins.int + CUSTOM_OPTIONS_FIELD_NUMBER: _builtins.int + SNOWFLAKE_OPTIONS_FIELD_NUMBER: _builtins.int + PUSH_OPTIONS_FIELD_NUMBER: _builtins.int + SPARK_OPTIONS_FIELD_NUMBER: _builtins.int + TRINO_OPTIONS_FIELD_NUMBER: _builtins.int + ATHENA_OPTIONS_FIELD_NUMBER: _builtins.int + name: _builtins.str """Unique name of data source within the project""" - project: builtins.str + project: _builtins.str """Name of Feast project that this data source belongs to.""" - description: builtins.str - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - owner: builtins.str - type: global___DataSource.SourceType.ValueType - @property - def field_mapping(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """Defines mapping between fields in the sourced data - and fields in parent FeatureTable. - """ - timestamp_field: builtins.str + description: _builtins.str + owner: _builtins.str + type: Global___DataSource.SourceType.ValueType + timestamp_field: _builtins.str """Must specify event timestamp column name""" - date_partition_column: builtins.str + date_partition_column: _builtins.str """(Optional) Specify partition column useful for file sources """ - created_timestamp_column: builtins.str + created_timestamp_column: _builtins.str """Must specify creation timestamp column name""" - data_source_class_type: builtins.str + data_source_class_type: _builtins.str """This is an internal field that is represents the python class for the data source object a proto object represents. This should be set by feast, and not by users. The field is used primarily by custom data sources and is mandatory for them to set. Feast may set it for first party sources as well. """ - @property - def batch_source(self) -> global___DataSource: + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def field_mapping(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + """Defines mapping between fields in the sourced data + and fields in parent FeatureTable. + """ + + @_builtins.property + def batch_source(self) -> Global___DataSource: """Optional batch source for streaming sources for historical features and materialization.""" - @property - def meta(self) -> global___DataSource.SourceMeta: ... - @property - def file_options(self) -> global___DataSource.FileOptions: ... - @property - def bigquery_options(self) -> global___DataSource.BigQueryOptions: ... - @property - def kafka_options(self) -> global___DataSource.KafkaOptions: ... - @property - def kinesis_options(self) -> global___DataSource.KinesisOptions: ... - @property - def redshift_options(self) -> global___DataSource.RedshiftOptions: ... - @property - def request_data_options(self) -> global___DataSource.RequestDataOptions: ... - @property - def custom_options(self) -> global___DataSource.CustomSourceOptions: ... - @property - def snowflake_options(self) -> global___DataSource.SnowflakeOptions: ... - @property - def push_options(self) -> global___DataSource.PushOptions: ... - @property - def spark_options(self) -> global___DataSource.SparkOptions: ... - @property - def trino_options(self) -> global___DataSource.TrinoOptions: ... - @property - def athena_options(self) -> global___DataSource.AthenaOptions: ... + + @_builtins.property + def meta(self) -> Global___DataSource.SourceMeta: ... + @_builtins.property + def file_options(self) -> Global___DataSource.FileOptions: ... + @_builtins.property + def bigquery_options(self) -> Global___DataSource.BigQueryOptions: ... + @_builtins.property + def kafka_options(self) -> Global___DataSource.KafkaOptions: ... + @_builtins.property + def kinesis_options(self) -> Global___DataSource.KinesisOptions: ... + @_builtins.property + def redshift_options(self) -> Global___DataSource.RedshiftOptions: ... + @_builtins.property + def request_data_options(self) -> Global___DataSource.RequestDataOptions: ... + @_builtins.property + def custom_options(self) -> Global___DataSource.CustomSourceOptions: ... + @_builtins.property + def snowflake_options(self) -> Global___DataSource.SnowflakeOptions: ... + @_builtins.property + def push_options(self) -> Global___DataSource.PushOptions: ... + @_builtins.property + def spark_options(self) -> Global___DataSource.SparkOptions: ... + @_builtins.property + def trino_options(self) -> Global___DataSource.TrinoOptions: ... + @_builtins.property + def athena_options(self) -> Global___DataSource.AthenaOptions: ... def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - description: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - owner: builtins.str = ..., - type: global___DataSource.SourceType.ValueType = ..., - field_mapping: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - timestamp_field: builtins.str = ..., - date_partition_column: builtins.str = ..., - created_timestamp_column: builtins.str = ..., - data_source_class_type: builtins.str = ..., - batch_source: global___DataSource | None = ..., - meta: global___DataSource.SourceMeta | None = ..., - file_options: global___DataSource.FileOptions | None = ..., - bigquery_options: global___DataSource.BigQueryOptions | None = ..., - kafka_options: global___DataSource.KafkaOptions | None = ..., - kinesis_options: global___DataSource.KinesisOptions | None = ..., - redshift_options: global___DataSource.RedshiftOptions | None = ..., - request_data_options: global___DataSource.RequestDataOptions | None = ..., - custom_options: global___DataSource.CustomSourceOptions | None = ..., - snowflake_options: global___DataSource.SnowflakeOptions | None = ..., - push_options: global___DataSource.PushOptions | None = ..., - spark_options: global___DataSource.SparkOptions | None = ..., - trino_options: global___DataSource.TrinoOptions | None = ..., - athena_options: global___DataSource.AthenaOptions | None = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + description: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + owner: _builtins.str = ..., + type: Global___DataSource.SourceType.ValueType = ..., + field_mapping: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + timestamp_field: _builtins.str = ..., + date_partition_column: _builtins.str = ..., + created_timestamp_column: _builtins.str = ..., + data_source_class_type: _builtins.str = ..., + batch_source: Global___DataSource | None = ..., + meta: Global___DataSource.SourceMeta | None = ..., + file_options: Global___DataSource.FileOptions | None = ..., + bigquery_options: Global___DataSource.BigQueryOptions | None = ..., + kafka_options: Global___DataSource.KafkaOptions | None = ..., + kinesis_options: Global___DataSource.KinesisOptions | None = ..., + redshift_options: Global___DataSource.RedshiftOptions | None = ..., + request_data_options: Global___DataSource.RequestDataOptions | None = ..., + custom_options: Global___DataSource.CustomSourceOptions | None = ..., + snowflake_options: Global___DataSource.SnowflakeOptions | None = ..., + push_options: Global___DataSource.PushOptions | None = ..., + spark_options: Global___DataSource.SparkOptions | None = ..., + trino_options: Global___DataSource.TrinoOptions | None = ..., + athena_options: Global___DataSource.AthenaOptions | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "custom_options", b"custom_options", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "options", b"options", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "trino_options", b"trino_options"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "custom_options", b"custom_options", "data_source_class_type", b"data_source_class_type", "date_partition_column", b"date_partition_column", "description", b"description", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "name", b"name", "options", b"options", "owner", b"owner", "project", b"project", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "tags", b"tags", "timestamp_field", b"timestamp_field", "trino_options", b"trino_options", "type", b"type"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["options", b"options"]) -> typing_extensions.Literal["file_options", "bigquery_options", "kafka_options", "kinesis_options", "redshift_options", "request_data_options", "custom_options", "snowflake_options", "push_options", "spark_options", "trino_options", "athena_options"] | None: ... - -global___DataSource = DataSource - -class DataSourceList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - DATASOURCES_FIELD_NUMBER: builtins.int - @property - def datasources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataSource]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "custom_options", b"custom_options", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "options", b"options", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "trino_options", b"trino_options"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "custom_options", b"custom_options", "data_source_class_type", b"data_source_class_type", "date_partition_column", b"date_partition_column", "description", b"description", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "name", b"name", "options", b"options", "owner", b"owner", "project", b"project", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "tags", b"tags", "timestamp_field", b"timestamp_field", "trino_options", b"trino_options", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_options: _TypeAlias = _typing.Literal["file_options", "bigquery_options", "kafka_options", "kinesis_options", "redshift_options", "request_data_options", "custom_options", "snowflake_options", "push_options", "spark_options", "trino_options", "athena_options"] # noqa: Y015 + _WhichOneofArgType_options: _TypeAlias = _typing.Literal["options", b"options"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_options) -> _WhichOneofReturnType_options | None: ... + +Global___DataSource: _TypeAlias = DataSource # noqa: Y015 + +@_typing.final +class DataSourceList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + DATASOURCES_FIELD_NUMBER: _builtins.int + @_builtins.property + def datasources(self) -> _containers.RepeatedCompositeFieldContainer[Global___DataSource]: ... def __init__( self, *, - datasources: collections.abc.Iterable[global___DataSource] | None = ..., + datasources: _abc.Iterable[Global___DataSource] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["datasources", b"datasources"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["datasources", b"datasources"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataSourceList = DataSourceList +Global___DataSourceList: _TypeAlias = DataSourceList # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi b/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi index 6339a97536e..f9a451e8560 100644 --- a/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi @@ -16,52 +16,60 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.wrappers_pb2 + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import wrappers_pb2 as _wrappers_pb2 +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class DatastoreTable(google.protobuf.message.Message): +@_typing.final +class DatastoreTable(_message.Message): """Represents a Datastore table""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - PROJECT_ID_FIELD_NUMBER: builtins.int - NAMESPACE_FIELD_NUMBER: builtins.int - DATABASE_FIELD_NUMBER: builtins.int - project: builtins.str + PROJECT_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + PROJECT_ID_FIELD_NUMBER: _builtins.int + NAMESPACE_FIELD_NUMBER: _builtins.int + DATABASE_FIELD_NUMBER: _builtins.int + project: _builtins.str """Feast project of the table""" - name: builtins.str + name: _builtins.str """Name of the table""" - @property - def project_id(self) -> google.protobuf.wrappers_pb2.StringValue: + @_builtins.property + def project_id(self) -> _wrappers_pb2.StringValue: """GCP project id""" - @property - def namespace(self) -> google.protobuf.wrappers_pb2.StringValue: + + @_builtins.property + def namespace(self) -> _wrappers_pb2.StringValue: """Datastore namespace""" - @property - def database(self) -> google.protobuf.wrappers_pb2.StringValue: + + @_builtins.property + def database(self) -> _wrappers_pb2.StringValue: """Firestore database""" + def __init__( self, *, - project: builtins.str = ..., - name: builtins.str = ..., - project_id: google.protobuf.wrappers_pb2.StringValue | None = ..., - namespace: google.protobuf.wrappers_pb2.StringValue | None = ..., - database: google.protobuf.wrappers_pb2.StringValue | None = ..., + project: _builtins.str = ..., + name: _builtins.str = ..., + project_id: _wrappers_pb2.StringValue | None = ..., + namespace: _wrappers_pb2.StringValue | None = ..., + database: _wrappers_pb2.StringValue | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["database", b"database", "namespace", b"namespace", "project_id", b"project_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "name", b"name", "namespace", b"namespace", "project", b"project", "project_id", b"project_id"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "namespace", b"namespace", "project_id", b"project_id"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "name", b"name", "namespace", b"namespace", "project", b"project", "project_id", b"project_id"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DatastoreTable = DatastoreTable +Global___DatastoreTable: _TypeAlias = DatastoreTable # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Entity_pb2.pyi b/sdk/python/feast/protos/feast/core/Entity_pb2.pyi index 025817edfee..b88884b41c3 100644 --- a/sdk/python/feast/protos/feast/core/Entity_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Entity_pb2.pyi @@ -16,130 +16,147 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Entity(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Entity(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___EntitySpecV2: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___EntitySpecV2: """User-specified specifications of this entity.""" - @property - def meta(self) -> global___EntityMeta: + + @_builtins.property + def meta(self) -> Global___EntityMeta: """System-populated metadata for this entity.""" + def __init__( self, *, - spec: global___EntitySpecV2 | None = ..., - meta: global___EntityMeta | None = ..., + spec: Global___EntitySpecV2 | None = ..., + meta: Global___EntityMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Entity = Entity +Global___Entity: _TypeAlias = Entity # noqa: Y015 -class EntitySpecV2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EntitySpecV2(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - VALUE_TYPE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - JOIN_KEY_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + VALUE_TYPE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + JOIN_KEY_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the entity.""" - project: builtins.str + project: _builtins.str """Name of Feast project that this feature table belongs to.""" - value_type: feast.types.Value_pb2.ValueType.Enum.ValueType + value_type: _Value_pb2.ValueType.Enum.ValueType """Type of the entity.""" - description: builtins.str + description: _builtins.str """Description of the entity.""" - join_key: builtins.str + join_key: _builtins.str """Join key for the entity (i.e. name of the column the entity maps to).""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """User defined metadata""" - owner: builtins.str + owner: _builtins.str """Owner of the entity.""" + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + """User defined metadata""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - value_type: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., - description: builtins.str = ..., - join_key: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - owner: builtins.str = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + value_type: _Value_pb2.ValueType.Enum.ValueType = ..., + description: _builtins.str = ..., + join_key: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + owner: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "join_key", b"join_key", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags", "value_type", b"value_type"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "join_key", b"join_key", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags", "value_type", b"value_type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EntitySpecV2 = EntitySpecV2 +Global___EntitySpecV2: _TypeAlias = EntitySpecV2 # noqa: Y015 -class EntityMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EntityMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EntityMeta = EntityMeta +Global___EntityMeta: _TypeAlias = EntityMeta # noqa: Y015 -class EntityList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EntityList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ENTITIES_FIELD_NUMBER: builtins.int - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Entity]: ... + ENTITIES_FIELD_NUMBER: _builtins.int + @_builtins.property + def entities(self) -> _containers.RepeatedCompositeFieldContainer[Global___Entity]: ... def __init__( self, *, - entities: collections.abc.Iterable[global___Entity] | None = ..., + entities: _abc.Iterable[Global___Entity] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entities", b"entities"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EntityList = EntityList +Global___EntityList: _TypeAlias = EntityList # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi index 6d5879e52cb..125c198db48 100644 --- a/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi @@ -2,305 +2,349 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import feast.core.FeatureViewProjection_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import FeatureViewProjection_pb2 as _FeatureViewProjection_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FeatureService(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureService(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___FeatureServiceSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___FeatureServiceSpec: """User-specified specifications of this feature service.""" - @property - def meta(self) -> global___FeatureServiceMeta: + + @_builtins.property + def meta(self) -> Global___FeatureServiceMeta: """System-populated metadata for this feature service.""" + def __init__( self, *, - spec: global___FeatureServiceSpec | None = ..., - meta: global___FeatureServiceMeta | None = ..., + spec: Global___FeatureServiceSpec | None = ..., + meta: Global___FeatureServiceMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureService = FeatureService +Global___FeatureService: _TypeAlias = FeatureService # noqa: Y015 -class FeatureServiceSpec(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureServiceSpec(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - LOGGING_CONFIG_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + LOGGING_CONFIG_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the Feature Service. Must be unique. Not updated.""" - project: builtins.str + project: _builtins.str """Name of Feast project that this Feature Service belongs to.""" - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureViewProjection_pb2.FeatureViewProjection]: + description: _builtins.str + """Description of the feature service.""" + owner: _builtins.str + """Owner of the feature service.""" + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureViewProjection_pb2.FeatureViewProjection]: """Represents a projection that's to be applied on top of the FeatureView. Contains data such as the features to use from a FeatureView. """ - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" - description: builtins.str - """Description of the feature service.""" - owner: builtins.str - """Owner of the feature service.""" - @property - def logging_config(self) -> global___LoggingConfig: + + @_builtins.property + def logging_config(self) -> Global___LoggingConfig: """(optional) if provided logging will be enabled for this feature service.""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - features: collections.abc.Iterable[feast.core.FeatureViewProjection_pb2.FeatureViewProjection] | None = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - description: builtins.str = ..., - owner: builtins.str = ..., - logging_config: global___LoggingConfig | None = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + features: _abc.Iterable[_FeatureViewProjection_pb2.FeatureViewProjection] | None = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + description: _builtins.str = ..., + owner: _builtins.str = ..., + logging_config: Global___LoggingConfig | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["logging_config", b"logging_config"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "features", b"features", "logging_config", b"logging_config", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["logging_config", b"logging_config"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "features", b"features", "logging_config", b"logging_config", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureServiceSpec = FeatureServiceSpec +Global___FeatureServiceSpec: _TypeAlias = FeatureServiceSpec # noqa: Y015 -class FeatureServiceMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureServiceMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: """Time where this Feature Service is created""" - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: """Time where this Feature Service is last updated""" + def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... - -global___FeatureServiceMeta = FeatureServiceMeta - -class LoggingConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class FileDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PATH_FIELD_NUMBER: builtins.int - S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: builtins.int - PARTITION_BY_FIELD_NUMBER: builtins.int - path: builtins.str - s3_endpoint_override: builtins.str - @property - def partition_by(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___FeatureServiceMeta: _TypeAlias = FeatureServiceMeta # noqa: Y015 + +@_typing.final +class LoggingConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class FileDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PATH_FIELD_NUMBER: _builtins.int + S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: _builtins.int + PARTITION_BY_FIELD_NUMBER: _builtins.int + path: _builtins.str + s3_endpoint_override: _builtins.str + @_builtins.property + def partition_by(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """column names to use for partitioning""" + def __init__( self, *, - path: builtins.str = ..., - s3_endpoint_override: builtins.str = ..., - partition_by: collections.abc.Iterable[builtins.str] | None = ..., + path: _builtins.str = ..., + s3_endpoint_override: _builtins.str = ..., + partition_by: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["partition_by", b"partition_by", "path", b"path", "s3_endpoint_override", b"s3_endpoint_override"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["partition_by", b"partition_by", "path", b"path", "s3_endpoint_override", b"s3_endpoint_override"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class BigQueryDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class BigQueryDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TABLE_REF_FIELD_NUMBER: builtins.int - table_ref: builtins.str + TABLE_REF_FIELD_NUMBER: _builtins.int + table_ref: _builtins.str """Full table reference in the form of [project:dataset.table]""" def __init__( self, *, - table_ref: builtins.str = ..., + table_ref: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["table_ref", b"table_ref"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["table_ref", b"table_ref"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class RedshiftDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class RedshiftDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TABLE_NAME_FIELD_NUMBER: builtins.int - table_name: builtins.str + TABLE_NAME_FIELD_NUMBER: _builtins.int + table_name: _builtins.str """Destination table name. ClusterId and database will be taken from an offline store config""" def __init__( self, *, - table_name: builtins.str = ..., + table_name: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["table_name", b"table_name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class AthenaDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class AthenaDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TABLE_NAME_FIELD_NUMBER: builtins.int - table_name: builtins.str + TABLE_NAME_FIELD_NUMBER: _builtins.int + table_name: _builtins.str """Destination table name. data_source and database will be taken from an offline store config""" def __init__( self, *, - table_name: builtins.str = ..., + table_name: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["table_name", b"table_name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class SnowflakeDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class SnowflakeDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TABLE_NAME_FIELD_NUMBER: builtins.int - table_name: builtins.str + TABLE_NAME_FIELD_NUMBER: _builtins.int + table_name: _builtins.str """Destination table name. Schema and database will be taken from an offline store config""" def __init__( self, *, - table_name: builtins.str = ..., + table_name: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["table_name", b"table_name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class CustomDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class CustomDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class ConfigEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class ConfigEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - KIND_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - kind: builtins.str - @property - def config(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + KIND_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + kind: _builtins.str + @_builtins.property + def config(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... def __init__( self, *, - kind: builtins.str = ..., - config: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + kind: _builtins.str = ..., + config: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "kind", b"kind"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "kind", b"kind"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class CouchbaseColumnarDestination(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class CouchbaseColumnarDestination(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - DATABASE_FIELD_NUMBER: builtins.int - SCOPE_FIELD_NUMBER: builtins.int - COLLECTION_FIELD_NUMBER: builtins.int - database: builtins.str + DATABASE_FIELD_NUMBER: _builtins.int + SCOPE_FIELD_NUMBER: _builtins.int + COLLECTION_FIELD_NUMBER: _builtins.int + database: _builtins.str """Destination database name""" - scope: builtins.str + scope: _builtins.str """Destination scope name""" - collection: builtins.str + collection: _builtins.str """Destination collection name""" def __init__( self, *, - database: builtins.str = ..., - scope: builtins.str = ..., - collection: builtins.str = ..., + database: _builtins.str = ..., + scope: _builtins.str = ..., + collection: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["collection", b"collection", "database", b"database", "scope", b"scope"]) -> None: ... - - SAMPLE_RATE_FIELD_NUMBER: builtins.int - FILE_DESTINATION_FIELD_NUMBER: builtins.int - BIGQUERY_DESTINATION_FIELD_NUMBER: builtins.int - REDSHIFT_DESTINATION_FIELD_NUMBER: builtins.int - SNOWFLAKE_DESTINATION_FIELD_NUMBER: builtins.int - CUSTOM_DESTINATION_FIELD_NUMBER: builtins.int - ATHENA_DESTINATION_FIELD_NUMBER: builtins.int - COUCHBASE_COLUMNAR_DESTINATION_FIELD_NUMBER: builtins.int - sample_rate: builtins.float - @property - def file_destination(self) -> global___LoggingConfig.FileDestination: ... - @property - def bigquery_destination(self) -> global___LoggingConfig.BigQueryDestination: ... - @property - def redshift_destination(self) -> global___LoggingConfig.RedshiftDestination: ... - @property - def snowflake_destination(self) -> global___LoggingConfig.SnowflakeDestination: ... - @property - def custom_destination(self) -> global___LoggingConfig.CustomDestination: ... - @property - def athena_destination(self) -> global___LoggingConfig.AthenaDestination: ... - @property - def couchbase_columnar_destination(self) -> global___LoggingConfig.CouchbaseColumnarDestination: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["collection", b"collection", "database", b"database", "scope", b"scope"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + SAMPLE_RATE_FIELD_NUMBER: _builtins.int + FILE_DESTINATION_FIELD_NUMBER: _builtins.int + BIGQUERY_DESTINATION_FIELD_NUMBER: _builtins.int + REDSHIFT_DESTINATION_FIELD_NUMBER: _builtins.int + SNOWFLAKE_DESTINATION_FIELD_NUMBER: _builtins.int + CUSTOM_DESTINATION_FIELD_NUMBER: _builtins.int + ATHENA_DESTINATION_FIELD_NUMBER: _builtins.int + COUCHBASE_COLUMNAR_DESTINATION_FIELD_NUMBER: _builtins.int + sample_rate: _builtins.float + @_builtins.property + def file_destination(self) -> Global___LoggingConfig.FileDestination: ... + @_builtins.property + def bigquery_destination(self) -> Global___LoggingConfig.BigQueryDestination: ... + @_builtins.property + def redshift_destination(self) -> Global___LoggingConfig.RedshiftDestination: ... + @_builtins.property + def snowflake_destination(self) -> Global___LoggingConfig.SnowflakeDestination: ... + @_builtins.property + def custom_destination(self) -> Global___LoggingConfig.CustomDestination: ... + @_builtins.property + def athena_destination(self) -> Global___LoggingConfig.AthenaDestination: ... + @_builtins.property + def couchbase_columnar_destination(self) -> Global___LoggingConfig.CouchbaseColumnarDestination: ... def __init__( self, *, - sample_rate: builtins.float = ..., - file_destination: global___LoggingConfig.FileDestination | None = ..., - bigquery_destination: global___LoggingConfig.BigQueryDestination | None = ..., - redshift_destination: global___LoggingConfig.RedshiftDestination | None = ..., - snowflake_destination: global___LoggingConfig.SnowflakeDestination | None = ..., - custom_destination: global___LoggingConfig.CustomDestination | None = ..., - athena_destination: global___LoggingConfig.AthenaDestination | None = ..., - couchbase_columnar_destination: global___LoggingConfig.CouchbaseColumnarDestination | None = ..., + sample_rate: _builtins.float = ..., + file_destination: Global___LoggingConfig.FileDestination | None = ..., + bigquery_destination: Global___LoggingConfig.BigQueryDestination | None = ..., + redshift_destination: Global___LoggingConfig.RedshiftDestination | None = ..., + snowflake_destination: Global___LoggingConfig.SnowflakeDestination | None = ..., + custom_destination: Global___LoggingConfig.CustomDestination | None = ..., + athena_destination: Global___LoggingConfig.AthenaDestination | None = ..., + couchbase_columnar_destination: Global___LoggingConfig.CouchbaseColumnarDestination | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "snowflake_destination", b"snowflake_destination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "sample_rate", b"sample_rate", "snowflake_destination", b"snowflake_destination"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["destination", b"destination"]) -> typing_extensions.Literal["file_destination", "bigquery_destination", "redshift_destination", "snowflake_destination", "custom_destination", "athena_destination", "couchbase_columnar_destination"] | None: ... - -global___LoggingConfig = LoggingConfig - -class FeatureServiceList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FEATURESERVICES_FIELD_NUMBER: builtins.int - @property - def featureservices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureService]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "snowflake_destination", b"snowflake_destination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "sample_rate", b"sample_rate", "snowflake_destination", b"snowflake_destination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_destination: _TypeAlias = _typing.Literal["file_destination", "bigquery_destination", "redshift_destination", "snowflake_destination", "custom_destination", "athena_destination", "couchbase_columnar_destination"] # noqa: Y015 + _WhichOneofArgType_destination: _TypeAlias = _typing.Literal["destination", b"destination"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_destination) -> _WhichOneofReturnType_destination | None: ... + +Global___LoggingConfig: _TypeAlias = LoggingConfig # noqa: Y015 + +@_typing.final +class FeatureServiceList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FEATURESERVICES_FIELD_NUMBER: _builtins.int + @_builtins.property + def featureservices(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureService]: ... def __init__( self, *, - featureservices: collections.abc.Iterable[global___FeatureService] | None = ..., + featureservices: _abc.Iterable[Global___FeatureService] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["featureservices", b"featureservices"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["featureservices", b"featureservices"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureServiceList = FeatureServiceList +Global___FeatureServiceList: _TypeAlias = FeatureServiceList # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi index dd41c2d214a..c6ff726e507 100644 --- a/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi @@ -16,151 +16,174 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.core.DataSource_pb2 -import feast.core.Feature_pb2 -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import Feature_pb2 as _Feature_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FeatureTable(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureTable(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___FeatureTableSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___FeatureTableSpec: """User-specified specifications of this feature table.""" - @property - def meta(self) -> global___FeatureTableMeta: + + @_builtins.property + def meta(self) -> Global___FeatureTableMeta: """System-populated metadata for this feature table.""" + def __init__( self, *, - spec: global___FeatureTableSpec | None = ..., - meta: global___FeatureTableMeta | None = ..., + spec: Global___FeatureTableSpec | None = ..., + meta: Global___FeatureTableMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureTable = FeatureTable +Global___FeatureTable: _TypeAlias = FeatureTable # noqa: Y015 -class FeatureTableSpec(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureTableSpec(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class LabelsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class LabelsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ENTITIES_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - LABELS_FIELD_NUMBER: builtins.int - MAX_AGE_FIELD_NUMBER: builtins.int - BATCH_SOURCE_FIELD_NUMBER: builtins.int - STREAM_SOURCE_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ENTITIES_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + LABELS_FIELD_NUMBER: _builtins.int + MAX_AGE_FIELD_NUMBER: _builtins.int + BATCH_SOURCE_FIELD_NUMBER: _builtins.int + STREAM_SOURCE_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the feature table. Must be unique. Not updated.""" - project: builtins.str + project: _builtins.str """Name of Feast project that this feature table belongs to.""" - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List names of entities to associate with the Features defined in this Feature Table. Not updatable. """ - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of features specifications for each feature defined with this feature table.""" - @property - def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def labels(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" - @property - def max_age(self) -> google.protobuf.duration_pb2.Duration: + + @_builtins.property + def max_age(self) -> _duration_pb2.Duration: """Features in this feature table can only be retrieved from online serving younger than max age. Age is measured as the duration of time between the feature's event timestamp and when the feature is retrieved Feature values outside max age will be returned as unset values and indicated to end user """ - @property - def batch_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def batch_source(self) -> _DataSource_pb2.DataSource: """Batch/Offline DataSource to source batch/offline feature data. Only batch DataSource can be specified (ie source type should start with 'BATCH_') """ - @property - def stream_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def stream_source(self) -> _DataSource_pb2.DataSource: """Stream/Online DataSource to source stream/online feature data. Only stream DataSource can be specified (ie source type should start with 'STREAM_') """ + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - entities: collections.abc.Iterable[builtins.str] | None = ..., - features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - max_age: google.protobuf.duration_pb2.Duration | None = ..., - batch_source: feast.core.DataSource_pb2.DataSource | None = ..., - stream_source: feast.core.DataSource_pb2.DataSource | None = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + entities: _abc.Iterable[_builtins.str] | None = ..., + features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + labels: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + max_age: _duration_pb2.Duration | None = ..., + batch_source: _DataSource_pb2.DataSource | None = ..., + stream_source: _DataSource_pb2.DataSource | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "max_age", b"max_age", "stream_source", b"stream_source"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "entities", b"entities", "features", b"features", "labels", b"labels", "max_age", b"max_age", "name", b"name", "project", b"project", "stream_source", b"stream_source"]) -> None: ... - -global___FeatureTableSpec = FeatureTableSpec - -class FeatureTableMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - HASH_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: - """Time where this Feature Table is created""" - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: - """Time where this Feature Table is last updated""" - revision: builtins.int + _HasFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "max_age", b"max_age", "stream_source", b"stream_source"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "entities", b"entities", "features", b"features", "labels", b"labels", "max_age", b"max_age", "name", b"name", "project", b"project", "stream_source", b"stream_source"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___FeatureTableSpec: _TypeAlias = FeatureTableSpec # noqa: Y015 + +@_typing.final +class FeatureTableMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + HASH_FIELD_NUMBER: _builtins.int + revision: _builtins.int """Auto incrementing revision no. of this Feature Table""" - hash: builtins.str + hash: _builtins.str """Hash entities, features, batch_source and stream_source to inform JobService if jobs should be restarted should hash change """ + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: + """Time where this Feature Table is created""" + + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: + """Time where this Feature Table is last updated""" + def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - revision: builtins.int = ..., - hash: builtins.str = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + revision: _builtins.int = ..., + hash: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "hash", b"hash", "last_updated_timestamp", b"last_updated_timestamp", "revision", b"revision"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "hash", b"hash", "last_updated_timestamp", b"last_updated_timestamp", "revision", b"revision"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureTableMeta = FeatureTableMeta +Global___FeatureTableMeta: _TypeAlias = FeatureTableMeta # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi index 6fd1010f2e4..b5b8c976400 100644 --- a/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi @@ -2,91 +2,104 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import feast.core.DataSource_pb2 -import feast.core.Feature_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import Feature_pb2 as _Feature_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FeatureViewProjection(google.protobuf.message.Message): +@_typing.final +class FeatureViewProjection(_message.Message): """A projection to be applied on top of a FeatureView. Contains the modifications to a FeatureView such as the features subset to use. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class JoinKeyMapEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class JoinKeyMapEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int - FEATURE_VIEW_NAME_ALIAS_FIELD_NUMBER: builtins.int - FEATURE_COLUMNS_FIELD_NUMBER: builtins.int - JOIN_KEY_MAP_FIELD_NUMBER: builtins.int - TIMESTAMP_FIELD_FIELD_NUMBER: builtins.int - DATE_PARTITION_COLUMN_FIELD_NUMBER: builtins.int - CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int - BATCH_SOURCE_FIELD_NUMBER: builtins.int - STREAM_SOURCE_FIELD_NUMBER: builtins.int - VERSION_TAG_FIELD_NUMBER: builtins.int - feature_view_name: builtins.str + FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_NAME_ALIAS_FIELD_NUMBER: _builtins.int + FEATURE_COLUMNS_FIELD_NUMBER: _builtins.int + JOIN_KEY_MAP_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_FIELD_NUMBER: _builtins.int + DATE_PARTITION_COLUMN_FIELD_NUMBER: _builtins.int + CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: _builtins.int + BATCH_SOURCE_FIELD_NUMBER: _builtins.int + STREAM_SOURCE_FIELD_NUMBER: _builtins.int + VERSION_TAG_FIELD_NUMBER: _builtins.int + feature_view_name: _builtins.str """The feature view name""" - feature_view_name_alias: builtins.str + feature_view_name_alias: _builtins.str """Alias for feature view name""" - @property - def feature_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + timestamp_field: _builtins.str + date_partition_column: _builtins.str + created_timestamp_column: _builtins.str + version_tag: _builtins.int + """Optional version tag for version-qualified feature references (e.g., @v2).""" + @_builtins.property + def feature_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """The features of the feature view that are a part of the feature reference.""" - @property - def join_key_map(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def join_key_map(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """Map for entity join_key overrides of feature data entity join_key to entity data join_key""" - timestamp_field: builtins.str - date_partition_column: builtins.str - created_timestamp_column: builtins.str - @property - def batch_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def batch_source(self) -> _DataSource_pb2.DataSource: """Batch/Offline DataSource where this view can retrieve offline feature data.""" - @property - def stream_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def stream_source(self) -> _DataSource_pb2.DataSource: """Streaming DataSource from where this view can consume "online" feature data.""" - version_tag: builtins.int - """Optional version tag for version-qualified feature references (e.g., @v2).""" + def __init__( self, *, - feature_view_name: builtins.str = ..., - feature_view_name_alias: builtins.str = ..., - feature_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - join_key_map: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - timestamp_field: builtins.str = ..., - date_partition_column: builtins.str = ..., - created_timestamp_column: builtins.str = ..., - batch_source: feast.core.DataSource_pb2.DataSource | None = ..., - stream_source: feast.core.DataSource_pb2.DataSource | None = ..., - version_tag: builtins.int | None = ..., + feature_view_name: _builtins.str = ..., + feature_view_name_alias: _builtins.str = ..., + feature_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + join_key_map: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + timestamp_field: _builtins.str = ..., + date_partition_column: _builtins.str = ..., + created_timestamp_column: _builtins.str = ..., + batch_source: _DataSource_pb2.DataSource | None = ..., + stream_source: _DataSource_pb2.DataSource | None = ..., + version_tag: _builtins.int | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "stream_source", b"stream_source", "version_tag", b"version_tag"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "created_timestamp_column", b"created_timestamp_column", "date_partition_column", b"date_partition_column", "feature_columns", b"feature_columns", "feature_view_name", b"feature_view_name", "feature_view_name_alias", b"feature_view_name_alias", "join_key_map", b"join_key_map", "stream_source", b"stream_source", "timestamp_field", b"timestamp_field", "version_tag", b"version_tag"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_version_tag", b"_version_tag"]) -> typing_extensions.Literal["version_tag"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "stream_source", b"stream_source", "version_tag", b"version_tag"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "created_timestamp_column", b"created_timestamp_column", "date_partition_column", b"date_partition_column", "feature_columns", b"feature_columns", "feature_view_name", b"feature_view_name", "feature_view_name_alias", b"feature_view_name_alias", "join_key_map", b"join_key_map", "stream_source", b"stream_source", "timestamp_field", b"timestamp_field", "version_tag", b"version_tag"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__version_tag: _TypeAlias = _typing.Literal["version_tag"] # noqa: Y015 + _WhichOneofArgType__version_tag: _TypeAlias = _typing.Literal["_version_tag", b"_version_tag"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType__version_tag) -> _WhichOneofReturnType__version_tag | None: ... -global___FeatureViewProjection = FeatureViewProjection +Global___FeatureViewProjection: _TypeAlias = FeatureViewProjection # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi index a6dba9d53d4..fae1911f435 100644 --- a/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi @@ -16,72 +16,79 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FeatureViewVersionRecord(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureViewVersionRecord(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int - PROJECT_ID_FIELD_NUMBER: builtins.int - VERSION_NUMBER_FIELD_NUMBER: builtins.int - FEATURE_VIEW_TYPE_FIELD_NUMBER: builtins.int - FEATURE_VIEW_PROTO_FIELD_NUMBER: builtins.int - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - VERSION_ID_FIELD_NUMBER: builtins.int - feature_view_name: builtins.str - project_id: builtins.str - version_number: builtins.int - feature_view_type: builtins.str + FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int + PROJECT_ID_FIELD_NUMBER: _builtins.int + VERSION_NUMBER_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_TYPE_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_PROTO_FIELD_NUMBER: _builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + VERSION_ID_FIELD_NUMBER: _builtins.int + feature_view_name: _builtins.str + project_id: _builtins.str + version_number: _builtins.int + feature_view_type: _builtins.str """"feature_view" | "stream_feature_view" | "on_demand_feature_view" """ - feature_view_proto: builtins.bytes + feature_view_proto: _builtins.bytes """serialized FV proto snapshot""" - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - description: builtins.str - version_id: builtins.str + description: _builtins.str + version_id: _builtins.str """auto-generated UUID for unique identification""" + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - feature_view_name: builtins.str = ..., - project_id: builtins.str = ..., - version_number: builtins.int = ..., - feature_view_type: builtins.str = ..., - feature_view_proto: builtins.bytes = ..., - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - description: builtins.str = ..., - version_id: builtins.str = ..., + feature_view_name: _builtins.str = ..., + project_id: _builtins.str = ..., + version_number: _builtins.int = ..., + feature_view_type: _builtins.str = ..., + feature_view_proto: _builtins.bytes = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + description: _builtins.str = ..., + version_id: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view_name", b"feature_view_name", "feature_view_proto", b"feature_view_proto", "feature_view_type", b"feature_view_type", "project_id", b"project_id", "version_id", b"version_id", "version_number", b"version_number"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view_name", b"feature_view_name", "feature_view_proto", b"feature_view_proto", "feature_view_type", b"feature_view_type", "project_id", b"project_id", "version_id", b"version_id", "version_number", b"version_number"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureViewVersionRecord = FeatureViewVersionRecord +Global___FeatureViewVersionRecord: _TypeAlias = FeatureViewVersionRecord # noqa: Y015 -class FeatureViewVersionHistory(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureViewVersionHistory(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - RECORDS_FIELD_NUMBER: builtins.int - @property - def records(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewVersionRecord]: ... + RECORDS_FIELD_NUMBER: _builtins.int + @_builtins.property + def records(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureViewVersionRecord]: ... def __init__( self, *, - records: collections.abc.Iterable[global___FeatureViewVersionRecord] | None = ..., + records: _abc.Iterable[Global___FeatureViewVersionRecord] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["records", b"records"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["records", b"records"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureViewVersionHistory = FeatureViewVersionHistory +Global___FeatureViewVersionHistory: _TypeAlias = FeatureViewVersionHistory # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi index 4e22ad1b12b..575b4dfedb1 100644 --- a/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi @@ -16,238 +16,269 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.core.DataSource_pb2 -import feast.core.Feature_pb2 -import feast.core.Transformation_pb2 -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import Feature_pb2 as _Feature_pb2 +from feast.core import Transformation_pb2 as _Transformation_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FeatureView(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureView(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___FeatureViewSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___FeatureViewSpec: """User-specified specifications of this feature view.""" - @property - def meta(self) -> global___FeatureViewMeta: + + @_builtins.property + def meta(self) -> Global___FeatureViewMeta: """System-populated metadata for this feature view.""" + def __init__( self, *, - spec: global___FeatureViewSpec | None = ..., - meta: global___FeatureViewMeta | None = ..., + spec: Global___FeatureViewSpec | None = ..., + meta: Global___FeatureViewMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureView = FeatureView +Global___FeatureView: _TypeAlias = FeatureView # noqa: Y015 -class FeatureViewSpec(google.protobuf.message.Message): +@_typing.final +class FeatureViewSpec(_message.Message): """Next available id: 20 TODO(adchia): refactor common fields from this and ODFV into separate metadata proto """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ENTITIES_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - TTL_FIELD_NUMBER: builtins.int - BATCH_SOURCE_FIELD_NUMBER: builtins.int - ONLINE_FIELD_NUMBER: builtins.int - STREAM_SOURCE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - ENTITY_COLUMNS_FIELD_NUMBER: builtins.int - OFFLINE_FIELD_NUMBER: builtins.int - SOURCE_VIEWS_FIELD_NUMBER: builtins.int - FEATURE_TRANSFORMATION_FIELD_NUMBER: builtins.int - MODE_FIELD_NUMBER: builtins.int - ENABLE_VALIDATION_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - ORG_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ENTITIES_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + TTL_FIELD_NUMBER: _builtins.int + BATCH_SOURCE_FIELD_NUMBER: _builtins.int + ONLINE_FIELD_NUMBER: _builtins.int + STREAM_SOURCE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + ENTITY_COLUMNS_FIELD_NUMBER: _builtins.int + OFFLINE_FIELD_NUMBER: _builtins.int + SOURCE_VIEWS_FIELD_NUMBER: _builtins.int + FEATURE_TRANSFORMATION_FIELD_NUMBER: _builtins.int + MODE_FIELD_NUMBER: _builtins.int + ENABLE_VALIDATION_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ORG_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the feature view. Must be unique. Not updated.""" - project: builtins.str + project: _builtins.str """Name of Feast project that this feature view belongs to.""" - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + online: _builtins.bool + """Whether these features should be served online or not + This is also used to determine whether the features should be written to the online store + """ + description: _builtins.str + """Description of the feature view.""" + owner: _builtins.str + """Owner of the feature view.""" + offline: _builtins.bool + """Whether these features should be written to the offline store""" + mode: _builtins.str + """The transformation mode (e.g., "python", "pandas", "spark", "sql", "ray")""" + enable_validation: _builtins.bool + """Whether schema validation is enabled during materialization""" + version: _builtins.str + """User-specified version pin (e.g. "latest", "v2", "version2")""" + org: _builtins.str + """Organizational unit that owns this feature view (e.g. "ads", "search").""" + @_builtins.property + def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of names of entities associated with this feature view.""" - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of specifications for each feature defined as part of this feature view.""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" - @property - def ttl(self) -> google.protobuf.duration_pb2.Duration: + + @_builtins.property + def ttl(self) -> _duration_pb2.Duration: """Features in this feature view can only be retrieved from online serving younger than ttl. Ttl is measured as the duration of time between the feature's event timestamp and when the feature is retrieved Feature values outside ttl will be returned as unset values and indicated to end user """ - @property - def batch_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def batch_source(self) -> _DataSource_pb2.DataSource: """Batch/Offline DataSource where this view can retrieve offline feature data. Optional: if not set, the feature view has no associated batch data source (e.g. purely derived views). """ - online: builtins.bool - """Whether these features should be served online or not - This is also used to determine whether the features should be written to the online store - """ - @property - def stream_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def stream_source(self) -> _DataSource_pb2.DataSource: """Streaming DataSource from where this view can consume "online" feature data. Optional: only required for streaming feature views. """ - description: builtins.str - """Description of the feature view.""" - owner: builtins.str - """Owner of the feature view.""" - @property - def entity_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + + @_builtins.property + def entity_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of specifications for each entity defined as part of this feature view.""" - offline: builtins.bool - """Whether these features should be written to the offline store""" - @property - def source_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewSpec]: ... - @property - def feature_transformation(self) -> feast.core.Transformation_pb2.FeatureTransformationV2: + + @_builtins.property + def source_views(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureViewSpec]: ... + @_builtins.property + def feature_transformation(self) -> _Transformation_pb2.FeatureTransformationV2: """Feature transformation for batch feature views""" - mode: builtins.str - """The transformation mode (e.g., "python", "pandas", "spark", "sql", "ray")""" - enable_validation: builtins.bool - """Whether schema validation is enabled during materialization""" - version: builtins.str - """User-specified version pin (e.g. "latest", "v2", "version2")""" - org: builtins.str - """Organizational unit that owns this feature view (e.g. "ads", "search").""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - entities: collections.abc.Iterable[builtins.str] | None = ..., - features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - ttl: google.protobuf.duration_pb2.Duration | None = ..., - batch_source: feast.core.DataSource_pb2.DataSource | None = ..., - online: builtins.bool = ..., - stream_source: feast.core.DataSource_pb2.DataSource | None = ..., - description: builtins.str = ..., - owner: builtins.str = ..., - entity_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - offline: builtins.bool = ..., - source_views: collections.abc.Iterable[global___FeatureViewSpec] | None = ..., - feature_transformation: feast.core.Transformation_pb2.FeatureTransformationV2 | None = ..., - mode: builtins.str = ..., - enable_validation: builtins.bool = ..., - version: builtins.str = ..., - org: builtins.str = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + entities: _abc.Iterable[_builtins.str] | None = ..., + features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + ttl: _duration_pb2.Duration | None = ..., + batch_source: _DataSource_pb2.DataSource | None = ..., + online: _builtins.bool = ..., + stream_source: _DataSource_pb2.DataSource | None = ..., + description: _builtins.str = ..., + owner: _builtins.str = ..., + entity_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + offline: _builtins.bool = ..., + source_views: _abc.Iterable[Global___FeatureViewSpec] | None = ..., + feature_transformation: _Transformation_pb2.FeatureTransformationV2 | None = ..., + mode: _builtins.str = ..., + enable_validation: _builtins.bool = ..., + version: _builtins.str = ..., + org: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "ttl", b"ttl"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "description", b"description", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "offline", b"offline", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "source_views", b"source_views", "stream_source", b"stream_source", "tags", b"tags", "ttl", b"ttl", "version", b"version"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "ttl", b"ttl"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "description", b"description", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "offline", b"offline", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "source_views", b"source_views", "stream_source", b"stream_source", "tags", b"tags", "ttl", b"ttl", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureViewSpec = FeatureViewSpec +Global___FeatureViewSpec: _TypeAlias = FeatureViewSpec # noqa: Y015 -class FeatureViewMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureViewMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - MATERIALIZATION_INTERVALS_FIELD_NUMBER: builtins.int - CURRENT_VERSION_NUMBER_FIELD_NUMBER: builtins.int - VERSION_ID_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + MATERIALIZATION_INTERVALS_FIELD_NUMBER: _builtins.int + CURRENT_VERSION_NUMBER_FIELD_NUMBER: _builtins.int + VERSION_ID_FIELD_NUMBER: _builtins.int + current_version_number: _builtins.int + """The current version number of this feature view in the version history.""" + version_id: _builtins.str + """Auto-generated UUID identifying this specific version.""" + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: """Time where this Feature View is created""" - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: """Time where this Feature View is last updated""" - @property - def materialization_intervals(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MaterializationInterval]: + + @_builtins.property + def materialization_intervals(self) -> _containers.RepeatedCompositeFieldContainer[Global___MaterializationInterval]: """List of pairs (start_time, end_time) for which this feature view has been materialized.""" - current_version_number: builtins.int - """The current version number of this feature view in the version history.""" - version_id: builtins.str - """Auto-generated UUID identifying this specific version.""" + def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - materialization_intervals: collections.abc.Iterable[global___MaterializationInterval] | None = ..., - current_version_number: builtins.int = ..., - version_id: builtins.str = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + materialization_intervals: _abc.Iterable[Global___MaterializationInterval] | None = ..., + current_version_number: _builtins.int = ..., + version_id: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "materialization_intervals", b"materialization_intervals", "version_id", b"version_id"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "materialization_intervals", b"materialization_intervals", "version_id", b"version_id"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureViewMeta = FeatureViewMeta +Global___FeatureViewMeta: _TypeAlias = FeatureViewMeta # noqa: Y015 -class MaterializationInterval(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MaterializationInterval(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - START_TIME_FIELD_NUMBER: builtins.int - END_TIME_FIELD_NUMBER: builtins.int - @property - def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + START_TIME_FIELD_NUMBER: _builtins.int + END_TIME_FIELD_NUMBER: _builtins.int + @_builtins.property + def start_time(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def end_time(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., - end_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., + start_time: _timestamp_pb2.Timestamp | None = ..., + end_time: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["end_time", b"end_time", "start_time", b"start_time"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["end_time", b"end_time", "start_time", b"start_time"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MaterializationInterval = MaterializationInterval +Global___MaterializationInterval: _TypeAlias = MaterializationInterval # noqa: Y015 -class FeatureViewList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureViewList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATUREVIEWS_FIELD_NUMBER: builtins.int - @property - def featureviews(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureView]: ... + FEATUREVIEWS_FIELD_NUMBER: _builtins.int + @_builtins.property + def featureviews(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureView]: ... def __init__( self, *, - featureviews: collections.abc.Iterable[global___FeatureView] | None = ..., + featureviews: _abc.Iterable[Global___FeatureView] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["featureviews", b"featureviews"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["featureviews", b"featureviews"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureViewList = FeatureViewList +Global___FeatureViewList: _TypeAlias = FeatureViewList # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Feature_pb2.pyi b/sdk/python/feast/protos/feast/core/Feature_pb2.pyi index aa56630424f..2355c4c10d4 100644 --- a/sdk/python/feast/protos/feast/core/Feature_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Feature_pb2.pyi @@ -16,72 +16,79 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class FeatureSpecV2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureSpecV2(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - NAME_FIELD_NUMBER: builtins.int - VALUE_TYPE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - VECTOR_INDEX_FIELD_NUMBER: builtins.int - VECTOR_SEARCH_METRIC_FIELD_NUMBER: builtins.int - VECTOR_LENGTH_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + VALUE_TYPE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + VECTOR_INDEX_FIELD_NUMBER: _builtins.int + VECTOR_SEARCH_METRIC_FIELD_NUMBER: _builtins.int + VECTOR_LENGTH_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the feature. Not updatable.""" - value_type: feast.types.Value_pb2.ValueType.Enum.ValueType + value_type: _Value_pb2.ValueType.Enum.ValueType """Value type of the feature. Not updatable.""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """Tags for user defined metadata on a feature""" - description: builtins.str + description: _builtins.str """Description of the feature.""" - vector_index: builtins.bool + vector_index: _builtins.bool """Field indicating the vector will be indexed for vector similarity search""" - vector_search_metric: builtins.str + vector_search_metric: _builtins.str """Metric used for vector similarity search.""" - vector_length: builtins.int + vector_length: _builtins.int """Field indicating the vector length""" + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + """Tags for user defined metadata on a feature""" + def __init__( self, *, - name: builtins.str = ..., - value_type: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - description: builtins.str = ..., - vector_index: builtins.bool = ..., - vector_search_metric: builtins.str = ..., - vector_length: builtins.int = ..., + name: _builtins.str = ..., + value_type: _Value_pb2.ValueType.Enum.ValueType = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + description: _builtins.str = ..., + vector_index: _builtins.bool = ..., + vector_search_metric: _builtins.str = ..., + vector_length: _builtins.int = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "tags", b"tags", "value_type", b"value_type", "vector_index", b"vector_index", "vector_length", b"vector_length", "vector_search_metric", b"vector_search_metric"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "name", b"name", "tags", b"tags", "value_type", b"value_type", "vector_index", b"vector_index", "vector_length", b"vector_length", "vector_search_metric", b"vector_search_metric"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureSpecV2 = FeatureSpecV2 +Global___FeatureSpecV2: _TypeAlias = FeatureSpecV2 # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi b/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi index f0a704c604a..cc9a4193181 100644 --- a/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi @@ -16,81 +16,93 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import collections.abc -import feast.core.DatastoreTable_pb2 -import feast.core.SqliteTable_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.core import DatastoreTable_pb2 as _DatastoreTable_pb2 +from feast.core import SqliteTable_pb2 as _SqliteTable_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Infra(google.protobuf.message.Message): +@_typing.final +class Infra(_message.Message): """Represents a set of infrastructure objects managed by Feast""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - INFRA_OBJECTS_FIELD_NUMBER: builtins.int - @property - def infra_objects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___InfraObject]: + INFRA_OBJECTS_FIELD_NUMBER: _builtins.int + @_builtins.property + def infra_objects(self) -> _containers.RepeatedCompositeFieldContainer[Global___InfraObject]: """List of infrastructure objects managed by Feast""" + def __init__( self, *, - infra_objects: collections.abc.Iterable[global___InfraObject] | None = ..., + infra_objects: _abc.Iterable[Global___InfraObject] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["infra_objects", b"infra_objects"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["infra_objects", b"infra_objects"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Infra = Infra +Global___Infra: _TypeAlias = Infra # noqa: Y015 -class InfraObject(google.protobuf.message.Message): +@_typing.final +class InfraObject(_message.Message): """Represents a single infrastructure object managed by Feast""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class CustomInfra(google.protobuf.message.Message): + @_typing.final + class CustomInfra(_message.Message): """Allows for custom infra objects to be added""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - FIELD_FIELD_NUMBER: builtins.int - field: builtins.bytes + FIELD_FIELD_NUMBER: _builtins.int + field: _builtins.bytes def __init__( self, *, - field: builtins.bytes = ..., + field: _builtins.bytes = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["field", b"field"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["field", b"field"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - INFRA_OBJECT_CLASS_TYPE_FIELD_NUMBER: builtins.int - DATASTORE_TABLE_FIELD_NUMBER: builtins.int - SQLITE_TABLE_FIELD_NUMBER: builtins.int - CUSTOM_INFRA_FIELD_NUMBER: builtins.int - infra_object_class_type: builtins.str + INFRA_OBJECT_CLASS_TYPE_FIELD_NUMBER: _builtins.int + DATASTORE_TABLE_FIELD_NUMBER: _builtins.int + SQLITE_TABLE_FIELD_NUMBER: _builtins.int + CUSTOM_INFRA_FIELD_NUMBER: _builtins.int + infra_object_class_type: _builtins.str """Represents the Python class for the infrastructure object""" - @property - def datastore_table(self) -> feast.core.DatastoreTable_pb2.DatastoreTable: ... - @property - def sqlite_table(self) -> feast.core.SqliteTable_pb2.SqliteTable: ... - @property - def custom_infra(self) -> global___InfraObject.CustomInfra: ... + @_builtins.property + def datastore_table(self) -> _DatastoreTable_pb2.DatastoreTable: ... + @_builtins.property + def sqlite_table(self) -> _SqliteTable_pb2.SqliteTable: ... + @_builtins.property + def custom_infra(self) -> Global___InfraObject.CustomInfra: ... def __init__( self, *, - infra_object_class_type: builtins.str = ..., - datastore_table: feast.core.DatastoreTable_pb2.DatastoreTable | None = ..., - sqlite_table: feast.core.SqliteTable_pb2.SqliteTable | None = ..., - custom_infra: global___InfraObject.CustomInfra | None = ..., + infra_object_class_type: _builtins.str = ..., + datastore_table: _DatastoreTable_pb2.DatastoreTable | None = ..., + sqlite_table: _SqliteTable_pb2.SqliteTable | None = ..., + custom_infra: Global___InfraObject.CustomInfra | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "sqlite_table", b"sqlite_table"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "infra_object_class_type", b"infra_object_class_type", "sqlite_table", b"sqlite_table"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["infra_object", b"infra_object"]) -> typing_extensions.Literal["datastore_table", "sqlite_table", "custom_infra"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "sqlite_table", b"sqlite_table"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "infra_object_class_type", b"infra_object_class_type", "sqlite_table", b"sqlite_table"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_infra_object: _TypeAlias = _typing.Literal["datastore_table", "sqlite_table", "custom_infra"] # noqa: Y015 + _WhichOneofArgType_infra_object: _TypeAlias = _typing.Literal["infra_object", b"infra_object"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_infra_object) -> _WhichOneofReturnType_infra_object | None: ... -global___InfraObject = InfraObject +Global___InfraObject: _TypeAlias = InfraObject # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi b/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi index 52998281a3f..289ffd07de3 100644 --- a/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi @@ -16,257 +16,299 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.core.Aggregation_pb2 -import feast.core.DataSource_pb2 -import feast.core.FeatureViewProjection_pb2 -import feast.core.FeatureView_pb2 -import feast.core.Feature_pb2 -import feast.core.Transformation_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import Aggregation_pb2 as _Aggregation_pb2 +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import FeatureViewProjection_pb2 as _FeatureViewProjection_pb2 +from feast.core import FeatureView_pb2 as _FeatureView_pb2 +from feast.core import Feature_pb2 as _Feature_pb2 +from feast.core import Transformation_pb2 as _Transformation_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing + +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated else: - import typing_extensions + from typing_extensions import deprecated as _deprecated -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class OnDemandFeatureView(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OnDemandFeatureView(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___OnDemandFeatureViewSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___OnDemandFeatureViewSpec: """User-specified specifications of this feature view.""" - @property - def meta(self) -> global___OnDemandFeatureViewMeta: ... + + @_builtins.property + def meta(self) -> Global___OnDemandFeatureViewMeta: ... def __init__( self, *, - spec: global___OnDemandFeatureViewSpec | None = ..., - meta: global___OnDemandFeatureViewMeta | None = ..., + spec: Global___OnDemandFeatureViewSpec | None = ..., + meta: Global___OnDemandFeatureViewMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OnDemandFeatureView = OnDemandFeatureView +Global___OnDemandFeatureView: _TypeAlias = OnDemandFeatureView # noqa: Y015 -class OnDemandFeatureViewSpec(google.protobuf.message.Message): +@_typing.final +class OnDemandFeatureViewSpec(_message.Message): """Next available id: 19""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class SourcesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class SourcesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___OnDemandSource: ... + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> Global___OnDemandSource: ... def __init__( self, *, - key: builtins.str = ..., - value: global___OnDemandSource | None = ..., + key: _builtins.str = ..., + value: Global___OnDemandSource | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - SOURCES_FIELD_NUMBER: builtins.int - USER_DEFINED_FUNCTION_FIELD_NUMBER: builtins.int - FEATURE_TRANSFORMATION_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - MODE_FIELD_NUMBER: builtins.int - WRITE_TO_ONLINE_STORE_FIELD_NUMBER: builtins.int - ENTITIES_FIELD_NUMBER: builtins.int - ENTITY_COLUMNS_FIELD_NUMBER: builtins.int - SINGLETON_FIELD_NUMBER: builtins.int - AGGREGATIONS_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - ORG_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + SOURCES_FIELD_NUMBER: _builtins.int + USER_DEFINED_FUNCTION_FIELD_NUMBER: _builtins.int + FEATURE_TRANSFORMATION_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + MODE_FIELD_NUMBER: _builtins.int + WRITE_TO_ONLINE_STORE_FIELD_NUMBER: _builtins.int + ENTITIES_FIELD_NUMBER: _builtins.int + ENTITY_COLUMNS_FIELD_NUMBER: _builtins.int + SINGLETON_FIELD_NUMBER: _builtins.int + AGGREGATIONS_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ORG_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the feature view. Must be unique. Not updated.""" - project: builtins.str + project: _builtins.str """Name of Feast project that this feature view belongs to.""" - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + description: _builtins.str + """Description of the on demand feature view.""" + owner: _builtins.str + """Owner of the on demand feature view.""" + mode: _builtins.str + write_to_online_store: _builtins.bool + singleton: _builtins.bool + version: _builtins.str + """User-specified version pin (e.g. "latest", "v2", "version2")""" + org: _builtins.str + """Organizational unit that owns this feature view (e.g. "ads", "search").""" + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of features specifications for each feature defined with this feature view.""" - @property - def sources(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___OnDemandSource]: + + @_builtins.property + def sources(self) -> _containers.MessageMap[_builtins.str, Global___OnDemandSource]: """Map of sources for this feature view.""" - @property - def user_defined_function(self) -> global___UserDefinedFunction: ... - @property - def feature_transformation(self) -> feast.core.Transformation_pb2.FeatureTransformationV2: + + @_builtins.property + @_deprecated("""This field has been marked as deprecated using proto field options.""") + def user_defined_function(self) -> Global___UserDefinedFunction: ... + @_builtins.property + def feature_transformation(self) -> _Transformation_pb2.FeatureTransformationV2: """Oneof with {user_defined_function, on_demand_substrait_transformation}""" - description: builtins.str - """Description of the on demand feature view.""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata.""" - owner: builtins.str - """Owner of the on demand feature view.""" - mode: builtins.str - write_to_online_store: builtins.bool - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + + @_builtins.property + def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of names of entities associated with this feature view.""" - @property - def entity_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + + @_builtins.property + def entity_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of specifications for each entity defined as part of this feature view.""" - singleton: builtins.bool - @property - def aggregations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Aggregation_pb2.Aggregation]: + + @_builtins.property + def aggregations(self) -> _containers.RepeatedCompositeFieldContainer[_Aggregation_pb2.Aggregation]: """Aggregation definitions""" - version: builtins.str - """User-specified version pin (e.g. "latest", "v2", "version2")""" - org: builtins.str - """Organizational unit that owns this feature view (e.g. "ads", "search").""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - sources: collections.abc.Mapping[builtins.str, global___OnDemandSource] | None = ..., - user_defined_function: global___UserDefinedFunction | None = ..., - feature_transformation: feast.core.Transformation_pb2.FeatureTransformationV2 | None = ..., - description: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - owner: builtins.str = ..., - mode: builtins.str = ..., - write_to_online_store: builtins.bool = ..., - entities: collections.abc.Iterable[builtins.str] | None = ..., - entity_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - singleton: builtins.bool = ..., - aggregations: collections.abc.Iterable[feast.core.Aggregation_pb2.Aggregation] | None = ..., - version: builtins.str = ..., - org: builtins.str = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + sources: _abc.Mapping[_builtins.str, Global___OnDemandSource] | None = ..., + user_defined_function: Global___UserDefinedFunction | None = ..., + feature_transformation: _Transformation_pb2.FeatureTransformationV2 | None = ..., + description: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + owner: _builtins.str = ..., + mode: _builtins.str = ..., + write_to_online_store: _builtins.bool = ..., + entities: _abc.Iterable[_builtins.str] | None = ..., + entity_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + singleton: _builtins.bool = ..., + aggregations: _abc.Iterable[_Aggregation_pb2.Aggregation] | None = ..., + version: _builtins.str = ..., + org: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["feature_transformation", b"feature_transformation", "user_defined_function", b"user_defined_function"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["aggregations", b"aggregations", "description", b"description", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "org", b"org", "owner", b"owner", "project", b"project", "singleton", b"singleton", "sources", b"sources", "tags", b"tags", "user_defined_function", b"user_defined_function", "version", b"version", "write_to_online_store", b"write_to_online_store"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feature_transformation", b"feature_transformation", "user_defined_function", b"user_defined_function"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["aggregations", b"aggregations", "description", b"description", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "org", b"org", "owner", b"owner", "project", b"project", "singleton", b"singleton", "sources", b"sources", "tags", b"tags", "user_defined_function", b"user_defined_function", "version", b"version", "write_to_online_store", b"write_to_online_store"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OnDemandFeatureViewSpec = OnDemandFeatureViewSpec +Global___OnDemandFeatureViewSpec: _TypeAlias = OnDemandFeatureViewSpec # noqa: Y015 -class OnDemandFeatureViewMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OnDemandFeatureViewMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - CURRENT_VERSION_NUMBER_FIELD_NUMBER: builtins.int - VERSION_ID_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: - """Time where this Feature View is created""" - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: - """Time where this Feature View is last updated""" - current_version_number: builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + CURRENT_VERSION_NUMBER_FIELD_NUMBER: _builtins.int + VERSION_ID_FIELD_NUMBER: _builtins.int + current_version_number: _builtins.int """The current version number of this feature view in the version history.""" - version_id: builtins.str + version_id: _builtins.str """Auto-generated UUID identifying this specific version.""" + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: + """Time where this Feature View is created""" + + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: + """Time where this Feature View is last updated""" + def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - current_version_number: builtins.int = ..., - version_id: builtins.str = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + current_version_number: _builtins.int = ..., + version_id: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "version_id", b"version_id"]) -> None: ... - -global___OnDemandFeatureViewMeta = OnDemandFeatureViewMeta - -class OnDemandSource(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FEATURE_VIEW_FIELD_NUMBER: builtins.int - FEATURE_VIEW_PROJECTION_FIELD_NUMBER: builtins.int - REQUEST_DATA_SOURCE_FIELD_NUMBER: builtins.int - @property - def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... - @property - def feature_view_projection(self) -> feast.core.FeatureViewProjection_pb2.FeatureViewProjection: ... - @property - def request_data_source(self) -> feast.core.DataSource_pb2.DataSource: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "version_id", b"version_id"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___OnDemandFeatureViewMeta: _TypeAlias = OnDemandFeatureViewMeta # noqa: Y015 + +@_typing.final +class OnDemandSource(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_PROJECTION_FIELD_NUMBER: _builtins.int + REQUEST_DATA_SOURCE_FIELD_NUMBER: _builtins.int + @_builtins.property + def feature_view(self) -> _FeatureView_pb2.FeatureView: ... + @_builtins.property + def feature_view_projection(self) -> _FeatureViewProjection_pb2.FeatureViewProjection: ... + @_builtins.property + def request_data_source(self) -> _DataSource_pb2.DataSource: ... def __init__( self, *, - feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., - feature_view_projection: feast.core.FeatureViewProjection_pb2.FeatureViewProjection | None = ..., - request_data_source: feast.core.DataSource_pb2.DataSource | None = ..., + feature_view: _FeatureView_pb2.FeatureView | None = ..., + feature_view_projection: _FeatureViewProjection_pb2.FeatureViewProjection | None = ..., + request_data_source: _DataSource_pb2.DataSource | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["source", b"source"]) -> typing_extensions.Literal["feature_view", "feature_view_projection", "request_data_source"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_source: _TypeAlias = _typing.Literal["feature_view", "feature_view_projection", "request_data_source"] # noqa: Y015 + _WhichOneofArgType_source: _TypeAlias = _typing.Literal["source", b"source"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_source) -> _WhichOneofReturnType_source | None: ... -global___OnDemandSource = OnDemandSource +Global___OnDemandSource: _TypeAlias = OnDemandSource # noqa: Y015 -class UserDefinedFunction(google.protobuf.message.Message): +@_deprecated("""This message has been marked as deprecated using proto message options.""") +@_typing.final +class UserDefinedFunction(_message.Message): """Serialized representation of python function.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - BODY_FIELD_NUMBER: builtins.int - BODY_TEXT_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + BODY_FIELD_NUMBER: _builtins.int + BODY_TEXT_FIELD_NUMBER: _builtins.int + name: _builtins.str """The function name""" - body: builtins.bytes + body: _builtins.bytes """The python-syntax function body (serialized by dill)""" - body_text: builtins.str + body_text: _builtins.str """The string representation of the udf""" def __init__( self, *, - name: builtins.str = ..., - body: builtins.bytes = ..., - body_text: builtins.str = ..., + name: _builtins.str = ..., + body: _builtins.bytes = ..., + body_text: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "body_text", b"body_text", "name", b"name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "body_text", b"body_text", "name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UserDefinedFunction = UserDefinedFunction +Global___UserDefinedFunction: _TypeAlias = UserDefinedFunction # noqa: Y015 -class OnDemandFeatureViewList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OnDemandFeatureViewList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ONDEMANDFEATUREVIEWS_FIELD_NUMBER: builtins.int - @property - def ondemandfeatureviews(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OnDemandFeatureView]: ... + ONDEMANDFEATUREVIEWS_FIELD_NUMBER: _builtins.int + @_builtins.property + def ondemandfeatureviews(self) -> _containers.RepeatedCompositeFieldContainer[Global___OnDemandFeatureView]: ... def __init__( self, *, - ondemandfeatureviews: collections.abc.Iterable[global___OnDemandFeatureView] | None = ..., + ondemandfeatureviews: _abc.Iterable[Global___OnDemandFeatureView] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["ondemandfeatureviews", b"ondemandfeatureviews"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ondemandfeatureviews", b"ondemandfeatureviews"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OnDemandFeatureViewList = OnDemandFeatureViewList +Global___OnDemandFeatureViewList: _TypeAlias = OnDemandFeatureViewList # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Permission_pb2.pyi b/sdk/python/feast/protos/feast/core/Permission_pb2.pyi index b2387d29465..4acc8ac3e1e 100644 --- a/sdk/python/feast/protos/feast/core/Permission_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Permission_pb2.pyi @@ -2,55 +2,62 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import feast.core.Policy_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import Policy_pb2 as _Policy_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Permission(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Permission(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___PermissionSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___PermissionSpec: """User-specified specifications of this permission.""" - @property - def meta(self) -> global___PermissionMeta: + + @_builtins.property + def meta(self) -> Global___PermissionMeta: """System-populated metadata for this permission.""" + def __init__( self, *, - spec: global___PermissionSpec | None = ..., - meta: global___PermissionMeta | None = ..., + spec: Global___PermissionSpec | None = ..., + meta: Global___PermissionMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Permission = Permission +Global___Permission: _TypeAlias = Permission # noqa: Y015 -class PermissionSpec(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PermissionSpec(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _AuthzedAction: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _AuthzedActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PermissionSpec._AuthzedAction.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _AuthzedActionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[PermissionSpec._AuthzedAction.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor CREATE: PermissionSpec._AuthzedAction.ValueType # 0 DESCRIBE: PermissionSpec._AuthzedAction.ValueType # 1 UPDATE: PermissionSpec._AuthzedAction.ValueType # 2 @@ -71,11 +78,11 @@ class PermissionSpec(google.protobuf.message.Message): WRITE_OFFLINE: PermissionSpec.AuthzedAction.ValueType # 7 class _Type: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PermissionSpec._Type.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[PermissionSpec._Type.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor FEATURE_VIEW: PermissionSpec._Type.ValueType # 0 ON_DEMAND_FEATURE_VIEW: PermissionSpec._Type.ValueType # 1 BATCH_FEATURE_VIEW: PermissionSpec._Type.ValueType # 2 @@ -101,96 +108,108 @@ class PermissionSpec(google.protobuf.message.Message): PERMISSION: PermissionSpec.Type.ValueType # 9 PROJECT: PermissionSpec.Type.ValueType # 10 - class RequiredTagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class RequiredTagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - TYPES_FIELD_NUMBER: builtins.int - NAME_PATTERNS_FIELD_NUMBER: builtins.int - REQUIRED_TAGS_FIELD_NUMBER: builtins.int - ACTIONS_FIELD_NUMBER: builtins.int - POLICY_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + TYPES_FIELD_NUMBER: _builtins.int + NAME_PATTERNS_FIELD_NUMBER: _builtins.int + REQUIRED_TAGS_FIELD_NUMBER: _builtins.int + ACTIONS_FIELD_NUMBER: _builtins.int + POLICY_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the permission. Must be unique. Not updated.""" - project: builtins.str + project: _builtins.str """Name of Feast project.""" - @property - def types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___PermissionSpec.Type.ValueType]: ... - @property - def name_patterns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def required_tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def actions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___PermissionSpec.AuthzedAction.ValueType]: + @_builtins.property + def types(self) -> _containers.RepeatedScalarFieldContainer[Global___PermissionSpec.Type.ValueType]: ... + @_builtins.property + def name_patterns(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + @_builtins.property + def required_tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def actions(self) -> _containers.RepeatedScalarFieldContainer[Global___PermissionSpec.AuthzedAction.ValueType]: """List of actions.""" - @property - def policy(self) -> feast.core.Policy_pb2.Policy: + + @_builtins.property + def policy(self) -> _Policy_pb2.Policy: """the policy.""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - types: collections.abc.Iterable[global___PermissionSpec.Type.ValueType] | None = ..., - name_patterns: collections.abc.Iterable[builtins.str] | None = ..., - required_tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - actions: collections.abc.Iterable[global___PermissionSpec.AuthzedAction.ValueType] | None = ..., - policy: feast.core.Policy_pb2.Policy | None = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + types: _abc.Iterable[Global___PermissionSpec.Type.ValueType] | None = ..., + name_patterns: _abc.Iterable[_builtins.str] | None = ..., + required_tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + actions: _abc.Iterable[Global___PermissionSpec.AuthzedAction.ValueType] | None = ..., + policy: _Policy_pb2.Policy | None = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["policy", b"policy"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["actions", b"actions", "name", b"name", "name_patterns", b"name_patterns", "policy", b"policy", "project", b"project", "required_tags", b"required_tags", "tags", b"tags", "types", b"types"]) -> None: ... - -global___PermissionSpec = PermissionSpec - -class PermissionMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["policy", b"policy"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["actions", b"actions", "name", b"name", "name_patterns", b"name_patterns", "policy", b"policy", "project", b"project", "required_tags", b"required_tags", "tags", b"tags", "types", b"types"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___PermissionSpec: _TypeAlias = PermissionSpec # noqa: Y015 + +@_typing.final +class PermissionMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PermissionMeta = PermissionMeta +Global___PermissionMeta: _TypeAlias = PermissionMeta # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Policy_pb2.pyi b/sdk/python/feast/protos/feast/core/Policy_pb2.pyi index 8410e396586..6c8b6e49206 100644 --- a/sdk/python/feast/protos/feast/core/Policy_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Policy_pb2.pyi @@ -2,122 +2,142 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Policy(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Policy(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ROLE_BASED_POLICY_FIELD_NUMBER: builtins.int - GROUP_BASED_POLICY_FIELD_NUMBER: builtins.int - NAMESPACE_BASED_POLICY_FIELD_NUMBER: builtins.int - COMBINED_GROUP_NAMESPACE_POLICY_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ROLE_BASED_POLICY_FIELD_NUMBER: _builtins.int + GROUP_BASED_POLICY_FIELD_NUMBER: _builtins.int + NAMESPACE_BASED_POLICY_FIELD_NUMBER: _builtins.int + COMBINED_GROUP_NAMESPACE_POLICY_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the policy.""" - project: builtins.str + project: _builtins.str """Name of Feast project.""" - @property - def role_based_policy(self) -> global___RoleBasedPolicy: ... - @property - def group_based_policy(self) -> global___GroupBasedPolicy: ... - @property - def namespace_based_policy(self) -> global___NamespaceBasedPolicy: ... - @property - def combined_group_namespace_policy(self) -> global___CombinedGroupNamespacePolicy: ... + @_builtins.property + def role_based_policy(self) -> Global___RoleBasedPolicy: ... + @_builtins.property + def group_based_policy(self) -> Global___GroupBasedPolicy: ... + @_builtins.property + def namespace_based_policy(self) -> Global___NamespaceBasedPolicy: ... + @_builtins.property + def combined_group_namespace_policy(self) -> Global___CombinedGroupNamespacePolicy: ... def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - role_based_policy: global___RoleBasedPolicy | None = ..., - group_based_policy: global___GroupBasedPolicy | None = ..., - namespace_based_policy: global___NamespaceBasedPolicy | None = ..., - combined_group_namespace_policy: global___CombinedGroupNamespacePolicy | None = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + role_based_policy: Global___RoleBasedPolicy | None = ..., + group_based_policy: Global___GroupBasedPolicy | None = ..., + namespace_based_policy: Global___NamespaceBasedPolicy | None = ..., + combined_group_namespace_policy: Global___CombinedGroupNamespacePolicy | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "role_based_policy", b"role_based_policy"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "name", b"name", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "project", b"project", "role_based_policy", b"role_based_policy"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["policy_type", b"policy_type"]) -> typing_extensions.Literal["role_based_policy", "group_based_policy", "namespace_based_policy", "combined_group_namespace_policy"] | None: ... - -global___Policy = Policy - -class RoleBasedPolicy(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - ROLES_FIELD_NUMBER: builtins.int - @property - def roles(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + _HasFieldArgType: _TypeAlias = _typing.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "role_based_policy", b"role_based_policy"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "name", b"name", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "project", b"project", "role_based_policy", b"role_based_policy"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_policy_type: _TypeAlias = _typing.Literal["role_based_policy", "group_based_policy", "namespace_based_policy", "combined_group_namespace_policy"] # noqa: Y015 + _WhichOneofArgType_policy_type: _TypeAlias = _typing.Literal["policy_type", b"policy_type"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_policy_type) -> _WhichOneofReturnType_policy_type | None: ... + +Global___Policy: _TypeAlias = Policy # noqa: Y015 + +@_typing.final +class RoleBasedPolicy(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ROLES_FIELD_NUMBER: _builtins.int + @_builtins.property + def roles(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of roles in this policy.""" + def __init__( self, *, - roles: collections.abc.Iterable[builtins.str] | None = ..., + roles: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["roles", b"roles"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["roles", b"roles"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RoleBasedPolicy = RoleBasedPolicy +Global___RoleBasedPolicy: _TypeAlias = RoleBasedPolicy # noqa: Y015 -class GroupBasedPolicy(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GroupBasedPolicy(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - GROUPS_FIELD_NUMBER: builtins.int - @property - def groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + GROUPS_FIELD_NUMBER: _builtins.int + @_builtins.property + def groups(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of groups in this policy.""" + def __init__( self, *, - groups: collections.abc.Iterable[builtins.str] | None = ..., + groups: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["groups", b"groups"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["groups", b"groups"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GroupBasedPolicy = GroupBasedPolicy +Global___GroupBasedPolicy: _TypeAlias = GroupBasedPolicy # noqa: Y015 -class NamespaceBasedPolicy(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class NamespaceBasedPolicy(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAMESPACES_FIELD_NUMBER: builtins.int - @property - def namespaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + NAMESPACES_FIELD_NUMBER: _builtins.int + @_builtins.property + def namespaces(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of namespaces in this policy.""" + def __init__( self, *, - namespaces: collections.abc.Iterable[builtins.str] | None = ..., + namespaces: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["namespaces", b"namespaces"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["namespaces", b"namespaces"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NamespaceBasedPolicy = NamespaceBasedPolicy +Global___NamespaceBasedPolicy: _TypeAlias = NamespaceBasedPolicy # noqa: Y015 -class CombinedGroupNamespacePolicy(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class CombinedGroupNamespacePolicy(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - GROUPS_FIELD_NUMBER: builtins.int - NAMESPACES_FIELD_NUMBER: builtins.int - @property - def groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + GROUPS_FIELD_NUMBER: _builtins.int + NAMESPACES_FIELD_NUMBER: _builtins.int + @_builtins.property + def groups(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of groups in this policy.""" - @property - def namespaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + + @_builtins.property + def namespaces(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of namespaces in this policy.""" + def __init__( self, *, - groups: collections.abc.Iterable[builtins.str] | None = ..., - namespaces: collections.abc.Iterable[builtins.str] | None = ..., + groups: _abc.Iterable[_builtins.str] | None = ..., + namespaces: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["groups", b"groups", "namespaces", b"namespaces"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["groups", b"groups", "namespaces", b"namespaces"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CombinedGroupNamespacePolicy = CombinedGroupNamespacePolicy +Global___CombinedGroupNamespacePolicy: _TypeAlias = CombinedGroupNamespacePolicy # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Project_pb2.pyi b/sdk/python/feast/protos/feast/core/Project_pb2.pyi index e3cce2ec425..d3844463544 100644 --- a/sdk/python/feast/protos/feast/core/Project_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Project_pb2.pyi @@ -16,104 +16,121 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Project(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Project(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___ProjectSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___ProjectSpec: """User-specified specifications of this entity.""" - @property - def meta(self) -> global___ProjectMeta: + + @_builtins.property + def meta(self) -> Global___ProjectMeta: """System-populated metadata for this entity.""" + def __init__( self, *, - spec: global___ProjectSpec | None = ..., - meta: global___ProjectMeta | None = ..., + spec: Global___ProjectSpec | None = ..., + meta: Global___ProjectMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Project = Project +Global___Project: _TypeAlias = Project # noqa: Y015 -class ProjectSpec(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ProjectSpec(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - NAME_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the Project""" - description: builtins.str + description: _builtins.str """Description of the Project""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """User defined metadata""" - owner: builtins.str + owner: _builtins.str """Owner of the Project""" + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + """User defined metadata""" + def __init__( self, *, - name: builtins.str = ..., - description: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - owner: builtins.str = ..., + name: _builtins.str = ..., + description: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + owner: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "owner", b"owner", "tags", b"tags"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "name", b"name", "owner", b"owner", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ProjectSpec = ProjectSpec +Global___ProjectSpec: _TypeAlias = ProjectSpec # noqa: Y015 -class ProjectMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ProjectMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: """Time when the Project is created""" - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: """Time when the Project is last updated with registry changes (Apply stage)""" + def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ProjectMeta = ProjectMeta +Global___ProjectMeta: _TypeAlias = ProjectMeta # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Registry_pb2.pyi b/sdk/python/feast/protos/feast/core/Registry_pb2.pyi index 29bd76323e3..5aafdaf21fd 100644 --- a/sdk/python/feast/protos/feast/core/Registry_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Registry_pb2.pyi @@ -16,130 +16,144 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import collections.abc -import feast.core.DataSource_pb2 -import feast.core.Entity_pb2 -import feast.core.FeatureService_pb2 -import feast.core.FeatureTable_pb2 -import feast.core.FeatureViewVersion_pb2 -import feast.core.FeatureView_pb2 -import feast.core.InfraObject_pb2 -import feast.core.OnDemandFeatureView_pb2 -import feast.core.Permission_pb2 -import feast.core.Project_pb2 -import feast.core.SavedDataset_pb2 -import feast.core.StreamFeatureView_pb2 -import feast.core.ValidationProfile_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import Entity_pb2 as _Entity_pb2 +from feast.core import FeatureService_pb2 as _FeatureService_pb2 +from feast.core import FeatureTable_pb2 as _FeatureTable_pb2 +from feast.core import FeatureViewVersion_pb2 as _FeatureViewVersion_pb2 +from feast.core import FeatureView_pb2 as _FeatureView_pb2 +from feast.core import InfraObject_pb2 as _InfraObject_pb2 +from feast.core import OnDemandFeatureView_pb2 as _OnDemandFeatureView_pb2 +from feast.core import Permission_pb2 as _Permission_pb2 +from feast.core import Project_pb2 as _Project_pb2 +from feast.core import SavedDataset_pb2 as _SavedDataset_pb2 +from feast.core import StreamFeatureView_pb2 as _StreamFeatureView_pb2 +from feast.core import ValidationProfile_pb2 as _ValidationProfile_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing + +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated else: - import typing_extensions + from typing_extensions import deprecated as _deprecated -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Registry(google.protobuf.message.Message): +@_typing.final +class Registry(_message.Message): """Next id: 19""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - ENTITIES_FIELD_NUMBER: builtins.int - FEATURE_TABLES_FIELD_NUMBER: builtins.int - FEATURE_VIEWS_FIELD_NUMBER: builtins.int - DATA_SOURCES_FIELD_NUMBER: builtins.int - ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: builtins.int - STREAM_FEATURE_VIEWS_FIELD_NUMBER: builtins.int - FEATURE_SERVICES_FIELD_NUMBER: builtins.int - SAVED_DATASETS_FIELD_NUMBER: builtins.int - VALIDATION_REFERENCES_FIELD_NUMBER: builtins.int - INFRA_FIELD_NUMBER: builtins.int - PROJECT_METADATA_FIELD_NUMBER: builtins.int - REGISTRY_SCHEMA_VERSION_FIELD_NUMBER: builtins.int - VERSION_ID_FIELD_NUMBER: builtins.int - LAST_UPDATED_FIELD_NUMBER: builtins.int - PERMISSIONS_FIELD_NUMBER: builtins.int - PROJECTS_FIELD_NUMBER: builtins.int - FEATURE_VIEW_VERSION_HISTORY_FIELD_NUMBER: builtins.int - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Entity_pb2.Entity]: ... - @property - def feature_tables(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureTable_pb2.FeatureTable]: ... - @property - def feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureView_pb2.FeatureView]: ... - @property - def data_sources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.DataSource_pb2.DataSource]: ... - @property - def on_demand_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView]: ... - @property - def stream_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.StreamFeatureView_pb2.StreamFeatureView]: ... - @property - def feature_services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureService_pb2.FeatureService]: ... - @property - def saved_datasets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.SavedDataset_pb2.SavedDataset]: ... - @property - def validation_references(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.ValidationProfile_pb2.ValidationReference]: ... - @property - def infra(self) -> feast.core.InfraObject_pb2.Infra: ... - @property - def project_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProjectMetadata]: - """Tracking metadata of Feast by project""" - registry_schema_version: builtins.str + ENTITIES_FIELD_NUMBER: _builtins.int + FEATURE_TABLES_FIELD_NUMBER: _builtins.int + FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + DATA_SOURCES_FIELD_NUMBER: _builtins.int + ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + STREAM_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + FEATURE_SERVICES_FIELD_NUMBER: _builtins.int + SAVED_DATASETS_FIELD_NUMBER: _builtins.int + VALIDATION_REFERENCES_FIELD_NUMBER: _builtins.int + INFRA_FIELD_NUMBER: _builtins.int + PROJECT_METADATA_FIELD_NUMBER: _builtins.int + REGISTRY_SCHEMA_VERSION_FIELD_NUMBER: _builtins.int + VERSION_ID_FIELD_NUMBER: _builtins.int + LAST_UPDATED_FIELD_NUMBER: _builtins.int + PERMISSIONS_FIELD_NUMBER: _builtins.int + PROJECTS_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_VERSION_HISTORY_FIELD_NUMBER: _builtins.int + registry_schema_version: _builtins.str """to support migrations; incremented when schema is changed""" - version_id: builtins.str + version_id: _builtins.str """version id, random string generated on each update of the data; now used only for debugging purposes""" - @property - def last_updated(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Permission_pb2.Permission]: ... - @property - def projects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Project_pb2.Project]: ... - @property - def feature_view_version_history(self) -> feast.core.FeatureViewVersion_pb2.FeatureViewVersionHistory: ... + @_builtins.property + def entities(self) -> _containers.RepeatedCompositeFieldContainer[_Entity_pb2.Entity]: ... + @_builtins.property + def feature_tables(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureTable_pb2.FeatureTable]: ... + @_builtins.property + def feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureView_pb2.FeatureView]: ... + @_builtins.property + def data_sources(self) -> _containers.RepeatedCompositeFieldContainer[_DataSource_pb2.DataSource]: ... + @_builtins.property + def on_demand_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_OnDemandFeatureView_pb2.OnDemandFeatureView]: ... + @_builtins.property + def stream_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_StreamFeatureView_pb2.StreamFeatureView]: ... + @_builtins.property + def feature_services(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureService_pb2.FeatureService]: ... + @_builtins.property + def saved_datasets(self) -> _containers.RepeatedCompositeFieldContainer[_SavedDataset_pb2.SavedDataset]: ... + @_builtins.property + def validation_references(self) -> _containers.RepeatedCompositeFieldContainer[_ValidationProfile_pb2.ValidationReference]: ... + @_builtins.property + def infra(self) -> _InfraObject_pb2.Infra: ... + @_builtins.property + @_deprecated("""This field has been marked as deprecated using proto field options.""") + def project_metadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProjectMetadata]: + """Tracking metadata of Feast by project""" + + @_builtins.property + def last_updated(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def permissions(self) -> _containers.RepeatedCompositeFieldContainer[_Permission_pb2.Permission]: ... + @_builtins.property + def projects(self) -> _containers.RepeatedCompositeFieldContainer[_Project_pb2.Project]: ... + @_builtins.property + def feature_view_version_history(self) -> _FeatureViewVersion_pb2.FeatureViewVersionHistory: ... def __init__( self, *, - entities: collections.abc.Iterable[feast.core.Entity_pb2.Entity] | None = ..., - feature_tables: collections.abc.Iterable[feast.core.FeatureTable_pb2.FeatureTable] | None = ..., - feature_views: collections.abc.Iterable[feast.core.FeatureView_pb2.FeatureView] | None = ..., - data_sources: collections.abc.Iterable[feast.core.DataSource_pb2.DataSource] | None = ..., - on_demand_feature_views: collections.abc.Iterable[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., - stream_feature_views: collections.abc.Iterable[feast.core.StreamFeatureView_pb2.StreamFeatureView] | None = ..., - feature_services: collections.abc.Iterable[feast.core.FeatureService_pb2.FeatureService] | None = ..., - saved_datasets: collections.abc.Iterable[feast.core.SavedDataset_pb2.SavedDataset] | None = ..., - validation_references: collections.abc.Iterable[feast.core.ValidationProfile_pb2.ValidationReference] | None = ..., - infra: feast.core.InfraObject_pb2.Infra | None = ..., - project_metadata: collections.abc.Iterable[global___ProjectMetadata] | None = ..., - registry_schema_version: builtins.str = ..., - version_id: builtins.str = ..., - last_updated: google.protobuf.timestamp_pb2.Timestamp | None = ..., - permissions: collections.abc.Iterable[feast.core.Permission_pb2.Permission] | None = ..., - projects: collections.abc.Iterable[feast.core.Project_pb2.Project] | None = ..., - feature_view_version_history: feast.core.FeatureViewVersion_pb2.FeatureViewVersionHistory | None = ..., + entities: _abc.Iterable[_Entity_pb2.Entity] | None = ..., + feature_tables: _abc.Iterable[_FeatureTable_pb2.FeatureTable] | None = ..., + feature_views: _abc.Iterable[_FeatureView_pb2.FeatureView] | None = ..., + data_sources: _abc.Iterable[_DataSource_pb2.DataSource] | None = ..., + on_demand_feature_views: _abc.Iterable[_OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., + stream_feature_views: _abc.Iterable[_StreamFeatureView_pb2.StreamFeatureView] | None = ..., + feature_services: _abc.Iterable[_FeatureService_pb2.FeatureService] | None = ..., + saved_datasets: _abc.Iterable[_SavedDataset_pb2.SavedDataset] | None = ..., + validation_references: _abc.Iterable[_ValidationProfile_pb2.ValidationReference] | None = ..., + infra: _InfraObject_pb2.Infra | None = ..., + project_metadata: _abc.Iterable[Global___ProjectMetadata] | None = ..., + registry_schema_version: _builtins.str = ..., + version_id: _builtins.str = ..., + last_updated: _timestamp_pb2.Timestamp | None = ..., + permissions: _abc.Iterable[_Permission_pb2.Permission] | None = ..., + projects: _abc.Iterable[_Project_pb2.Project] | None = ..., + feature_view_version_history: _FeatureViewVersion_pb2.FeatureViewVersionHistory | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["feature_view_version_history", b"feature_view_version_history", "infra", b"infra", "last_updated", b"last_updated"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["data_sources", b"data_sources", "entities", b"entities", "feature_services", b"feature_services", "feature_tables", b"feature_tables", "feature_view_version_history", b"feature_view_version_history", "feature_views", b"feature_views", "infra", b"infra", "last_updated", b"last_updated", "on_demand_feature_views", b"on_demand_feature_views", "permissions", b"permissions", "project_metadata", b"project_metadata", "projects", b"projects", "registry_schema_version", b"registry_schema_version", "saved_datasets", b"saved_datasets", "stream_feature_views", b"stream_feature_views", "validation_references", b"validation_references", "version_id", b"version_id"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feature_view_version_history", b"feature_view_version_history", "infra", b"infra", "last_updated", b"last_updated"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["data_sources", b"data_sources", "entities", b"entities", "feature_services", b"feature_services", "feature_tables", b"feature_tables", "feature_view_version_history", b"feature_view_version_history", "feature_views", b"feature_views", "infra", b"infra", "last_updated", b"last_updated", "on_demand_feature_views", b"on_demand_feature_views", "permissions", b"permissions", "project_metadata", b"project_metadata", "projects", b"projects", "registry_schema_version", b"registry_schema_version", "saved_datasets", b"saved_datasets", "stream_feature_views", b"stream_feature_views", "validation_references", b"validation_references", "version_id", b"version_id"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Registry = Registry +Global___Registry: _TypeAlias = Registry # noqa: Y015 -class ProjectMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ProjectMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - PROJECT_UUID_FIELD_NUMBER: builtins.int - project: builtins.str - project_uuid: builtins.str + PROJECT_FIELD_NUMBER: _builtins.int + PROJECT_UUID_FIELD_NUMBER: _builtins.int + project: _builtins.str + project_uuid: _builtins.str def __init__( self, *, - project: builtins.str = ..., - project_uuid: builtins.str = ..., + project: _builtins.str = ..., + project_uuid: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "project_uuid", b"project_uuid"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["project", b"project", "project_uuid", b"project_uuid"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ProjectMetadata = ProjectMetadata +Global___ProjectMetadata: _TypeAlias = ProjectMetadata # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi b/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi index 47525b64ede..e2c1fb27c4f 100644 --- a/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi @@ -16,177 +16,202 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.core.DataSource_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import DataSource_pb2 as _DataSource_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class SavedDatasetSpec(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SavedDatasetSpec(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - JOIN_KEYS_FIELD_NUMBER: builtins.int - FULL_FEATURE_NAMES_FIELD_NUMBER: builtins.int - STORAGE_FIELD_NUMBER: builtins.int - FEATURE_SERVICE_NAME_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + JOIN_KEYS_FIELD_NUMBER: _builtins.int + FULL_FEATURE_NAMES_FIELD_NUMBER: _builtins.int + STORAGE_FIELD_NUMBER: _builtins.int + FEATURE_SERVICE_NAME_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the dataset. Must be unique since it's possible to overwrite dataset by name""" - project: builtins.str + project: _builtins.str """Name of Feast project that this Dataset belongs to.""" - @property - def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """list of feature references with format ":" """ - @property - def join_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """entity columns + request columns from all feature views used during retrieval""" - full_feature_names: builtins.bool + full_feature_names: _builtins.bool """Whether full feature names are used in stored data""" - @property - def storage(self) -> global___SavedDatasetStorage: ... - feature_service_name: builtins.str + feature_service_name: _builtins.str """Optional and only populated if generated from a feature service fetch""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def features(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + """list of feature references with format ":" """ + + @_builtins.property + def join_keys(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + """entity columns + request columns from all feature views used during retrieval""" + + @_builtins.property + def storage(self) -> Global___SavedDatasetStorage: ... + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - features: collections.abc.Iterable[builtins.str] | None = ..., - join_keys: collections.abc.Iterable[builtins.str] | None = ..., - full_feature_names: builtins.bool = ..., - storage: global___SavedDatasetStorage | None = ..., - feature_service_name: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + features: _abc.Iterable[_builtins.str] | None = ..., + join_keys: _abc.Iterable[_builtins.str] | None = ..., + full_feature_names: _builtins.bool = ..., + storage: Global___SavedDatasetStorage | None = ..., + feature_service_name: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["storage", b"storage"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_service_name", b"feature_service_name", "features", b"features", "full_feature_names", b"full_feature_names", "join_keys", b"join_keys", "name", b"name", "project", b"project", "storage", b"storage", "tags", b"tags"]) -> None: ... - -global___SavedDatasetSpec = SavedDatasetSpec - -class SavedDatasetStorage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FILE_STORAGE_FIELD_NUMBER: builtins.int - BIGQUERY_STORAGE_FIELD_NUMBER: builtins.int - REDSHIFT_STORAGE_FIELD_NUMBER: builtins.int - SNOWFLAKE_STORAGE_FIELD_NUMBER: builtins.int - TRINO_STORAGE_FIELD_NUMBER: builtins.int - SPARK_STORAGE_FIELD_NUMBER: builtins.int - CUSTOM_STORAGE_FIELD_NUMBER: builtins.int - ATHENA_STORAGE_FIELD_NUMBER: builtins.int - @property - def file_storage(self) -> feast.core.DataSource_pb2.DataSource.FileOptions: ... - @property - def bigquery_storage(self) -> feast.core.DataSource_pb2.DataSource.BigQueryOptions: ... - @property - def redshift_storage(self) -> feast.core.DataSource_pb2.DataSource.RedshiftOptions: ... - @property - def snowflake_storage(self) -> feast.core.DataSource_pb2.DataSource.SnowflakeOptions: ... - @property - def trino_storage(self) -> feast.core.DataSource_pb2.DataSource.TrinoOptions: ... - @property - def spark_storage(self) -> feast.core.DataSource_pb2.DataSource.SparkOptions: ... - @property - def custom_storage(self) -> feast.core.DataSource_pb2.DataSource.CustomSourceOptions: ... - @property - def athena_storage(self) -> feast.core.DataSource_pb2.DataSource.AthenaOptions: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["storage", b"storage"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_service_name", b"feature_service_name", "features", b"features", "full_feature_names", b"full_feature_names", "join_keys", b"join_keys", "name", b"name", "project", b"project", "storage", b"storage", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SavedDatasetSpec: _TypeAlias = SavedDatasetSpec # noqa: Y015 + +@_typing.final +class SavedDatasetStorage(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FILE_STORAGE_FIELD_NUMBER: _builtins.int + BIGQUERY_STORAGE_FIELD_NUMBER: _builtins.int + REDSHIFT_STORAGE_FIELD_NUMBER: _builtins.int + SNOWFLAKE_STORAGE_FIELD_NUMBER: _builtins.int + TRINO_STORAGE_FIELD_NUMBER: _builtins.int + SPARK_STORAGE_FIELD_NUMBER: _builtins.int + CUSTOM_STORAGE_FIELD_NUMBER: _builtins.int + ATHENA_STORAGE_FIELD_NUMBER: _builtins.int + @_builtins.property + def file_storage(self) -> _DataSource_pb2.DataSource.FileOptions: ... + @_builtins.property + def bigquery_storage(self) -> _DataSource_pb2.DataSource.BigQueryOptions: ... + @_builtins.property + def redshift_storage(self) -> _DataSource_pb2.DataSource.RedshiftOptions: ... + @_builtins.property + def snowflake_storage(self) -> _DataSource_pb2.DataSource.SnowflakeOptions: ... + @_builtins.property + def trino_storage(self) -> _DataSource_pb2.DataSource.TrinoOptions: ... + @_builtins.property + def spark_storage(self) -> _DataSource_pb2.DataSource.SparkOptions: ... + @_builtins.property + def custom_storage(self) -> _DataSource_pb2.DataSource.CustomSourceOptions: ... + @_builtins.property + def athena_storage(self) -> _DataSource_pb2.DataSource.AthenaOptions: ... def __init__( self, *, - file_storage: feast.core.DataSource_pb2.DataSource.FileOptions | None = ..., - bigquery_storage: feast.core.DataSource_pb2.DataSource.BigQueryOptions | None = ..., - redshift_storage: feast.core.DataSource_pb2.DataSource.RedshiftOptions | None = ..., - snowflake_storage: feast.core.DataSource_pb2.DataSource.SnowflakeOptions | None = ..., - trino_storage: feast.core.DataSource_pb2.DataSource.TrinoOptions | None = ..., - spark_storage: feast.core.DataSource_pb2.DataSource.SparkOptions | None = ..., - custom_storage: feast.core.DataSource_pb2.DataSource.CustomSourceOptions | None = ..., - athena_storage: feast.core.DataSource_pb2.DataSource.AthenaOptions | None = ..., + file_storage: _DataSource_pb2.DataSource.FileOptions | None = ..., + bigquery_storage: _DataSource_pb2.DataSource.BigQueryOptions | None = ..., + redshift_storage: _DataSource_pb2.DataSource.RedshiftOptions | None = ..., + snowflake_storage: _DataSource_pb2.DataSource.SnowflakeOptions | None = ..., + trino_storage: _DataSource_pb2.DataSource.TrinoOptions | None = ..., + spark_storage: _DataSource_pb2.DataSource.SparkOptions | None = ..., + custom_storage: _DataSource_pb2.DataSource.CustomSourceOptions | None = ..., + athena_storage: _DataSource_pb2.DataSource.AthenaOptions | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["file_storage", "bigquery_storage", "redshift_storage", "snowflake_storage", "trino_storage", "spark_storage", "custom_storage", "athena_storage"] | None: ... - -global___SavedDatasetStorage = SavedDatasetStorage - -class SavedDatasetMeta(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - MIN_EVENT_TIMESTAMP_FIELD_NUMBER: builtins.int - MAX_EVENT_TIMESTAMP_FIELD_NUMBER: builtins.int - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + _HasFieldArgType: _TypeAlias = _typing.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_kind: _TypeAlias = _typing.Literal["file_storage", "bigquery_storage", "redshift_storage", "snowflake_storage", "trino_storage", "spark_storage", "custom_storage", "athena_storage"] # noqa: Y015 + _WhichOneofArgType_kind: _TypeAlias = _typing.Literal["kind", b"kind"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_kind) -> _WhichOneofReturnType_kind | None: ... + +Global___SavedDatasetStorage: _TypeAlias = SavedDatasetStorage # noqa: Y015 + +@_typing.final +class SavedDatasetMeta(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + MIN_EVENT_TIMESTAMP_FIELD_NUMBER: _builtins.int + MAX_EVENT_TIMESTAMP_FIELD_NUMBER: _builtins.int + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: """Time when this saved dataset is created""" - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: """Time when this saved dataset is last updated""" - @property - def min_event_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + + @_builtins.property + def min_event_timestamp(self) -> _timestamp_pb2.Timestamp: """Min timestamp in the dataset (needed for retrieval)""" - @property - def max_event_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + + @_builtins.property + def max_event_timestamp(self) -> _timestamp_pb2.Timestamp: """Max timestamp in the dataset (needed for retrieval)""" + def __init__( self, *, - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - min_event_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - max_event_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + min_event_timestamp: _timestamp_pb2.Timestamp | None = ..., + max_event_timestamp: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"]) -> None: ... - -global___SavedDatasetMeta = SavedDatasetMeta - -class SavedDataset(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___SavedDatasetSpec: ... - @property - def meta(self) -> global___SavedDatasetMeta: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SavedDatasetMeta: _TypeAlias = SavedDatasetMeta # noqa: Y015 + +@_typing.final +class SavedDataset(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___SavedDatasetSpec: ... + @_builtins.property + def meta(self) -> Global___SavedDatasetMeta: ... def __init__( self, *, - spec: global___SavedDatasetSpec | None = ..., - meta: global___SavedDatasetMeta | None = ..., + spec: Global___SavedDatasetSpec | None = ..., + meta: Global___SavedDatasetMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SavedDataset = SavedDataset +Global___SavedDataset: _TypeAlias = SavedDataset # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi b/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi index 10ecebf362b..43d97f7d188 100644 --- a/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi @@ -16,35 +16,39 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class SqliteTable(google.protobuf.message.Message): +@_typing.final +class SqliteTable(_message.Message): """Represents a Sqlite table""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - path: builtins.str + PATH_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + path: _builtins.str """Absolute path of the table""" - name: builtins.str + name: _builtins.str """Name of the table""" def __init__( self, *, - path: builtins.str = ..., - name: builtins.str = ..., + path: _builtins.str = ..., + name: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "path", b"path"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "path", b"path"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SqliteTable = SqliteTable +Global___SqliteTable: _TypeAlias = SqliteTable # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Store_pb2.pyi b/sdk/python/feast/protos/feast/core/Store_pb2.pyi index 5ee957d184f..718654b267c 100644 --- a/sdk/python/feast/protos/feast/core/Store_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Store_pb2.pyi @@ -16,37 +16,39 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Store(google.protobuf.message.Message): +@_typing.final +class Store(_message.Message): """Store provides a location where Feast reads and writes feature values. Feature values will be written to the Store in the form of FeatureRow elements. The way FeatureRow is encoded and decoded when it is written to and read from the Store depends on the type of the Store. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor class _StoreType: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _StoreTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Store._StoreType.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _StoreTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Store._StoreType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor INVALID: Store._StoreType.ValueType # 0 REDIS: Store._StoreType.ValueType # 1 """Redis stores a FeatureRow element as a key, value pair. @@ -76,48 +78,51 @@ class Store(google.protobuf.message.Message): """ REDIS_CLUSTER: Store.StoreType.ValueType # 4 - class RedisConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - HOST_FIELD_NUMBER: builtins.int - PORT_FIELD_NUMBER: builtins.int - INITIAL_BACKOFF_MS_FIELD_NUMBER: builtins.int - MAX_RETRIES_FIELD_NUMBER: builtins.int - FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: builtins.int - SSL_FIELD_NUMBER: builtins.int - host: builtins.str - port: builtins.int - initial_backoff_ms: builtins.int + @_typing.final + class RedisConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + HOST_FIELD_NUMBER: _builtins.int + PORT_FIELD_NUMBER: _builtins.int + INITIAL_BACKOFF_MS_FIELD_NUMBER: _builtins.int + MAX_RETRIES_FIELD_NUMBER: _builtins.int + FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: _builtins.int + SSL_FIELD_NUMBER: _builtins.int + host: _builtins.str + port: _builtins.int + initial_backoff_ms: _builtins.int """Optional. The number of milliseconds to wait before retrying failed Redis connection. By default, Feast uses exponential backoff policy and "initial_backoff_ms" sets the initial wait duration. """ - max_retries: builtins.int + max_retries: _builtins.int """Optional. Maximum total number of retries for connecting to Redis. Default to zero retries.""" - flush_frequency_seconds: builtins.int + flush_frequency_seconds: _builtins.int """Optional. How often flush data to redis""" - ssl: builtins.bool + ssl: _builtins.bool """Optional. Connect over SSL.""" def __init__( self, *, - host: builtins.str = ..., - port: builtins.int = ..., - initial_backoff_ms: builtins.int = ..., - max_retries: builtins.int = ..., - flush_frequency_seconds: builtins.int = ..., - ssl: builtins.bool = ..., + host: _builtins.str = ..., + port: _builtins.int = ..., + initial_backoff_ms: _builtins.int = ..., + max_retries: _builtins.int = ..., + flush_frequency_seconds: _builtins.int = ..., + ssl: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["flush_frequency_seconds", b"flush_frequency_seconds", "host", b"host", "initial_backoff_ms", b"initial_backoff_ms", "max_retries", b"max_retries", "port", b"port", "ssl", b"ssl"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["flush_frequency_seconds", b"flush_frequency_seconds", "host", b"host", "initial_backoff_ms", b"initial_backoff_ms", "max_retries", b"max_retries", "port", b"port", "ssl", b"ssl"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class RedisClusterConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class RedisClusterConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _ReadFrom: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _ReadFromEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Store.RedisClusterConfig._ReadFrom.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _ReadFromEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Store.RedisClusterConfig._ReadFrom.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MASTER: Store.RedisClusterConfig._ReadFrom.ValueType # 0 MASTER_PREFERRED: Store.RedisClusterConfig._ReadFrom.ValueType # 1 REPLICA: Store.RedisClusterConfig._ReadFrom.ValueType # 2 @@ -131,50 +136,52 @@ class Store(google.protobuf.message.Message): REPLICA: Store.RedisClusterConfig.ReadFrom.ValueType # 2 REPLICA_PREFERRED: Store.RedisClusterConfig.ReadFrom.ValueType # 3 - CONNECTION_STRING_FIELD_NUMBER: builtins.int - INITIAL_BACKOFF_MS_FIELD_NUMBER: builtins.int - MAX_RETRIES_FIELD_NUMBER: builtins.int - FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: builtins.int - KEY_PREFIX_FIELD_NUMBER: builtins.int - ENABLE_FALLBACK_FIELD_NUMBER: builtins.int - FALLBACK_PREFIX_FIELD_NUMBER: builtins.int - READ_FROM_FIELD_NUMBER: builtins.int - connection_string: builtins.str + CONNECTION_STRING_FIELD_NUMBER: _builtins.int + INITIAL_BACKOFF_MS_FIELD_NUMBER: _builtins.int + MAX_RETRIES_FIELD_NUMBER: _builtins.int + FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: _builtins.int + KEY_PREFIX_FIELD_NUMBER: _builtins.int + ENABLE_FALLBACK_FIELD_NUMBER: _builtins.int + FALLBACK_PREFIX_FIELD_NUMBER: _builtins.int + READ_FROM_FIELD_NUMBER: _builtins.int + connection_string: _builtins.str """List of Redis Uri for all the nodes in Redis Cluster, comma separated. Eg. host1:6379, host2:6379""" - initial_backoff_ms: builtins.int - max_retries: builtins.int - flush_frequency_seconds: builtins.int + initial_backoff_ms: _builtins.int + max_retries: _builtins.int + flush_frequency_seconds: _builtins.int """Optional. How often flush data to redis""" - key_prefix: builtins.str + key_prefix: _builtins.str """Optional. Append a prefix to the Redis Key""" - enable_fallback: builtins.bool + enable_fallback: _builtins.bool """Optional. Enable fallback to another key prefix if the original key is not present. Useful for migrating key prefix without re-ingestion. Disabled by default. """ - fallback_prefix: builtins.str + fallback_prefix: _builtins.str """Optional. This would be the fallback prefix to use if enable_fallback is true.""" - read_from: global___Store.RedisClusterConfig.ReadFrom.ValueType + read_from: Global___Store.RedisClusterConfig.ReadFrom.ValueType def __init__( self, *, - connection_string: builtins.str = ..., - initial_backoff_ms: builtins.int = ..., - max_retries: builtins.int = ..., - flush_frequency_seconds: builtins.int = ..., - key_prefix: builtins.str = ..., - enable_fallback: builtins.bool = ..., - fallback_prefix: builtins.str = ..., - read_from: global___Store.RedisClusterConfig.ReadFrom.ValueType = ..., + connection_string: _builtins.str = ..., + initial_backoff_ms: _builtins.int = ..., + max_retries: _builtins.int = ..., + flush_frequency_seconds: _builtins.int = ..., + key_prefix: _builtins.str = ..., + enable_fallback: _builtins.bool = ..., + fallback_prefix: _builtins.str = ..., + read_from: Global___Store.RedisClusterConfig.ReadFrom.ValueType = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["connection_string", b"connection_string", "enable_fallback", b"enable_fallback", "fallback_prefix", b"fallback_prefix", "flush_frequency_seconds", b"flush_frequency_seconds", "initial_backoff_ms", b"initial_backoff_ms", "key_prefix", b"key_prefix", "max_retries", b"max_retries", "read_from", b"read_from"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["connection_string", b"connection_string", "enable_fallback", b"enable_fallback", "fallback_prefix", b"fallback_prefix", "flush_frequency_seconds", b"flush_frequency_seconds", "initial_backoff_ms", b"initial_backoff_ms", "key_prefix", b"key_prefix", "max_retries", b"max_retries", "read_from", b"read_from"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - class Subscription(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class Subscription(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - EXCLUDE_FIELD_NUMBER: builtins.int - project: builtins.str + PROJECT_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + EXCLUDE_FIELD_NUMBER: _builtins.int + project: _builtins.str """Name of project that the feature sets belongs to. This can be one of - [project_name] - * @@ -182,7 +189,7 @@ class Store(google.protobuf.message.Message): be matched. It is NOT possible to provide an asterisk with a string in order to do pattern matching. """ - name: builtins.str + name: _builtins.str """Name of the desired feature set. Asterisks can be used as wildcards in the name. Matching on names is only permitted if a specific project is defined. It is disallowed If the project name is set to "*" @@ -191,44 +198,50 @@ class Store(google.protobuf.message.Message): - my-feature-set* can be used to match all features prefixed by "my-feature-set" - my-feature-set-6 can be used to select a single feature set """ - exclude: builtins.bool + exclude: _builtins.bool """All matches with exclude enabled will be filtered out instead of added""" def __init__( self, *, - project: builtins.str = ..., - name: builtins.str = ..., - exclude: builtins.bool = ..., + project: _builtins.str = ..., + name: _builtins.str = ..., + exclude: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["exclude", b"exclude", "name", b"name", "project", b"project"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - SUBSCRIPTIONS_FIELD_NUMBER: builtins.int - REDIS_CONFIG_FIELD_NUMBER: builtins.int - REDIS_CLUSTER_CONFIG_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["exclude", b"exclude", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + SUBSCRIPTIONS_FIELD_NUMBER: _builtins.int + REDIS_CONFIG_FIELD_NUMBER: _builtins.int + REDIS_CLUSTER_CONFIG_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the store.""" - type: global___Store.StoreType.ValueType + type: Global___Store.StoreType.ValueType """Type of store.""" - @property - def subscriptions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Store.Subscription]: + @_builtins.property + def subscriptions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Store.Subscription]: """Feature sets to subscribe to.""" - @property - def redis_config(self) -> global___Store.RedisConfig: ... - @property - def redis_cluster_config(self) -> global___Store.RedisClusterConfig: ... + + @_builtins.property + def redis_config(self) -> Global___Store.RedisConfig: ... + @_builtins.property + def redis_cluster_config(self) -> Global___Store.RedisClusterConfig: ... def __init__( self, *, - name: builtins.str = ..., - type: global___Store.StoreType.ValueType = ..., - subscriptions: collections.abc.Iterable[global___Store.Subscription] | None = ..., - redis_config: global___Store.RedisConfig | None = ..., - redis_cluster_config: global___Store.RedisClusterConfig | None = ..., + name: _builtins.str = ..., + type: Global___Store.StoreType.ValueType = ..., + subscriptions: _abc.Iterable[Global___Store.Subscription] | None = ..., + redis_config: Global___Store.RedisConfig | None = ..., + redis_cluster_config: Global___Store.RedisClusterConfig | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["config", b"config", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "name", b"name", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config", "subscriptions", b"subscriptions", "type", b"type"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["config", b"config"]) -> typing_extensions.Literal["redis_config", "redis_cluster_config"] | None: ... - -global___Store = Store + _HasFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "name", b"name", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config", "subscriptions", b"subscriptions", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_config: _TypeAlias = _typing.Literal["redis_config", "redis_cluster_config"] # noqa: Y015 + _WhichOneofArgType_config: _TypeAlias = _typing.Literal["config", b"config"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_config) -> _WhichOneofReturnType_config | None: ... + +Global___Store: _TypeAlias = Store # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi b/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi index 26ff6a42534..3fafb889540 100644 --- a/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi @@ -16,178 +16,206 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.core.Aggregation_pb2 -import feast.core.DataSource_pb2 -import feast.core.FeatureView_pb2 -import feast.core.Feature_pb2 -import feast.core.OnDemandFeatureView_pb2 -import feast.core.Transformation_pb2 -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.core import Aggregation_pb2 as _Aggregation_pb2 +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import FeatureView_pb2 as _FeatureView_pb2 +from feast.core import Feature_pb2 as _Feature_pb2 +from feast.core import OnDemandFeatureView_pb2 as _OnDemandFeatureView_pb2 +from feast.core import Transformation_pb2 as _Transformation_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing + +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated else: - import typing_extensions + from typing_extensions import deprecated as _deprecated -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class StreamFeatureView(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StreamFeatureView(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SPEC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - @property - def spec(self) -> global___StreamFeatureViewSpec: + SPEC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + @_builtins.property + def spec(self) -> Global___StreamFeatureViewSpec: """User-specified specifications of this feature view.""" - @property - def meta(self) -> feast.core.FeatureView_pb2.FeatureViewMeta: ... + + @_builtins.property + def meta(self) -> _FeatureView_pb2.FeatureViewMeta: ... def __init__( self, *, - spec: global___StreamFeatureViewSpec | None = ..., - meta: feast.core.FeatureView_pb2.FeatureViewMeta | None = ..., + spec: Global___StreamFeatureViewSpec | None = ..., + meta: _FeatureView_pb2.FeatureViewMeta | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamFeatureView = StreamFeatureView +Global___StreamFeatureView: _TypeAlias = StreamFeatureView # noqa: Y015 -class StreamFeatureViewSpec(google.protobuf.message.Message): +@_typing.final +class StreamFeatureViewSpec(_message.Message): """Next available id: 23""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ENTITIES_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - ENTITY_COLUMNS_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - TTL_FIELD_NUMBER: builtins.int - BATCH_SOURCE_FIELD_NUMBER: builtins.int - STREAM_SOURCE_FIELD_NUMBER: builtins.int - ONLINE_FIELD_NUMBER: builtins.int - USER_DEFINED_FUNCTION_FIELD_NUMBER: builtins.int - MODE_FIELD_NUMBER: builtins.int - AGGREGATIONS_FIELD_NUMBER: builtins.int - TIMESTAMP_FIELD_FIELD_NUMBER: builtins.int - FEATURE_TRANSFORMATION_FIELD_NUMBER: builtins.int - ENABLE_TILING_FIELD_NUMBER: builtins.int - TILING_HOP_SIZE_FIELD_NUMBER: builtins.int - ENABLE_VALIDATION_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - ORG_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ENTITIES_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + ENTITY_COLUMNS_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + TTL_FIELD_NUMBER: _builtins.int + BATCH_SOURCE_FIELD_NUMBER: _builtins.int + STREAM_SOURCE_FIELD_NUMBER: _builtins.int + ONLINE_FIELD_NUMBER: _builtins.int + USER_DEFINED_FUNCTION_FIELD_NUMBER: _builtins.int + MODE_FIELD_NUMBER: _builtins.int + AGGREGATIONS_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_FIELD_NUMBER: _builtins.int + FEATURE_TRANSFORMATION_FIELD_NUMBER: _builtins.int + ENABLE_TILING_FIELD_NUMBER: _builtins.int + TILING_HOP_SIZE_FIELD_NUMBER: _builtins.int + ENABLE_VALIDATION_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ORG_FIELD_NUMBER: _builtins.int + name: _builtins.str """Name of the feature view. Must be unique. Not updated.""" - project: builtins.str + project: _builtins.str """Name of Feast project that this feature view belongs to.""" - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + description: _builtins.str + """Description of the feature view.""" + owner: _builtins.str + """Owner of the feature view.""" + online: _builtins.bool + """Whether these features should be served online or not""" + mode: _builtins.str + """Mode of execution""" + timestamp_field: _builtins.str + """Timestamp field for aggregation""" + enable_tiling: _builtins.bool + """Enable tiling for efficient window aggregation""" + enable_validation: _builtins.bool + """Whether schema validation is enabled during materialization""" + version: _builtins.str + """User-specified version pin (e.g. "latest", "v2", "version2")""" + org: _builtins.str + """Organizational unit that owns this stream feature view (e.g. "ads", "search").""" + @_builtins.property + def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of names of entities associated with this feature view.""" - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of specifications for each feature defined as part of this feature view.""" - @property - def entity_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: + + @_builtins.property + def entity_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: """List of specifications for each entity defined as part of this feature view.""" - description: builtins.str - """Description of the feature view.""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" - owner: builtins.str - """Owner of the feature view.""" - @property - def ttl(self) -> google.protobuf.duration_pb2.Duration: + + @_builtins.property + def ttl(self) -> _duration_pb2.Duration: """Features in this feature view can only be retrieved from online serving younger than ttl. Ttl is measured as the duration of time between the feature's event timestamp and when the feature is retrieved Feature values outside ttl will be returned as unset values and indicated to end user """ - @property - def batch_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def batch_source(self) -> _DataSource_pb2.DataSource: """Batch/Offline DataSource where this view can retrieve offline feature data.""" - @property - def stream_source(self) -> feast.core.DataSource_pb2.DataSource: + + @_builtins.property + def stream_source(self) -> _DataSource_pb2.DataSource: """Streaming DataSource from where this view can consume "online" feature data.""" - online: builtins.bool - """Whether these features should be served online or not""" - @property - def user_defined_function(self) -> feast.core.OnDemandFeatureView_pb2.UserDefinedFunction: + + @_builtins.property + @_deprecated("""This field has been marked as deprecated using proto field options.""") + def user_defined_function(self) -> _OnDemandFeatureView_pb2.UserDefinedFunction: """Serialized function that is encoded in the streamfeatureview""" - mode: builtins.str - """Mode of execution""" - @property - def aggregations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Aggregation_pb2.Aggregation]: + + @_builtins.property + def aggregations(self) -> _containers.RepeatedCompositeFieldContainer[_Aggregation_pb2.Aggregation]: """Aggregation definitions""" - timestamp_field: builtins.str - """Timestamp field for aggregation""" - @property - def feature_transformation(self) -> feast.core.Transformation_pb2.FeatureTransformationV2: + + @_builtins.property + def feature_transformation(self) -> _Transformation_pb2.FeatureTransformationV2: """Oneof with {user_defined_function, on_demand_substrait_transformation}""" - enable_tiling: builtins.bool - """Enable tiling for efficient window aggregation""" - @property - def tiling_hop_size(self) -> google.protobuf.duration_pb2.Duration: + + @_builtins.property + def tiling_hop_size(self) -> _duration_pb2.Duration: """Hop size for tiling (e.g., 5 minutes). Determines the granularity of pre-aggregated tiles. If not specified, defaults to 5 minutes. Only used when enable_tiling is true. """ - enable_validation: builtins.bool - """Whether schema validation is enabled during materialization""" - version: builtins.str - """User-specified version pin (e.g. "latest", "v2", "version2")""" - org: builtins.str - """Organizational unit that owns this stream feature view (e.g. "ads", "search").""" + def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - entities: collections.abc.Iterable[builtins.str] | None = ..., - features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - entity_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., - description: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - owner: builtins.str = ..., - ttl: google.protobuf.duration_pb2.Duration | None = ..., - batch_source: feast.core.DataSource_pb2.DataSource | None = ..., - stream_source: feast.core.DataSource_pb2.DataSource | None = ..., - online: builtins.bool = ..., - user_defined_function: feast.core.OnDemandFeatureView_pb2.UserDefinedFunction | None = ..., - mode: builtins.str = ..., - aggregations: collections.abc.Iterable[feast.core.Aggregation_pb2.Aggregation] | None = ..., - timestamp_field: builtins.str = ..., - feature_transformation: feast.core.Transformation_pb2.FeatureTransformationV2 | None = ..., - enable_tiling: builtins.bool = ..., - tiling_hop_size: google.protobuf.duration_pb2.Duration | None = ..., - enable_validation: builtins.bool = ..., - version: builtins.str = ..., - org: builtins.str = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + entities: _abc.Iterable[_builtins.str] | None = ..., + features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + entity_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + description: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + owner: _builtins.str = ..., + ttl: _duration_pb2.Duration | None = ..., + batch_source: _DataSource_pb2.DataSource | None = ..., + stream_source: _DataSource_pb2.DataSource | None = ..., + online: _builtins.bool = ..., + user_defined_function: _OnDemandFeatureView_pb2.UserDefinedFunction | None = ..., + mode: _builtins.str = ..., + aggregations: _abc.Iterable[_Aggregation_pb2.Aggregation] | None = ..., + timestamp_field: _builtins.str = ..., + feature_transformation: _Transformation_pb2.FeatureTransformationV2 | None = ..., + enable_tiling: _builtins.bool = ..., + tiling_hop_size: _duration_pb2.Duration | None = ..., + enable_validation: _builtins.bool = ..., + version: _builtins.str = ..., + org: _builtins.str = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "tiling_hop_size", b"tiling_hop_size", "ttl", b"ttl", "user_defined_function", b"user_defined_function"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["aggregations", b"aggregations", "batch_source", b"batch_source", "description", b"description", "enable_tiling", b"enable_tiling", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "stream_source", b"stream_source", "tags", b"tags", "tiling_hop_size", b"tiling_hop_size", "timestamp_field", b"timestamp_field", "ttl", b"ttl", "user_defined_function", b"user_defined_function", "version", b"version"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "tiling_hop_size", b"tiling_hop_size", "ttl", b"ttl", "user_defined_function", b"user_defined_function"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["aggregations", b"aggregations", "batch_source", b"batch_source", "description", b"description", "enable_tiling", b"enable_tiling", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "stream_source", b"stream_source", "tags", b"tags", "tiling_hop_size", b"tiling_hop_size", "timestamp_field", b"timestamp_field", "ttl", b"ttl", "user_defined_function", b"user_defined_function", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamFeatureViewSpec = StreamFeatureViewSpec +Global___StreamFeatureViewSpec: _TypeAlias = StreamFeatureViewSpec # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi b/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi index fb56ab5bc73..d8aacf9f812 100644 --- a/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi @@ -2,83 +2,94 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class UserDefinedFunctionV2(google.protobuf.message.Message): +@_typing.final +class UserDefinedFunctionV2(_message.Message): """Serialized representation of python function.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - BODY_FIELD_NUMBER: builtins.int - BODY_TEXT_FIELD_NUMBER: builtins.int - MODE_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + BODY_FIELD_NUMBER: _builtins.int + BODY_TEXT_FIELD_NUMBER: _builtins.int + MODE_FIELD_NUMBER: _builtins.int + name: _builtins.str """The function name""" - body: builtins.bytes + body: _builtins.bytes """The python-syntax function body (serialized by dill)""" - body_text: builtins.str + body_text: _builtins.str """The string representation of the udf""" - mode: builtins.str + mode: _builtins.str """The transformation mode (e.g., "python", "pandas", "ray", "spark", "sql")""" def __init__( self, *, - name: builtins.str = ..., - body: builtins.bytes = ..., - body_text: builtins.str = ..., - mode: builtins.str = ..., + name: _builtins.str = ..., + body: _builtins.bytes = ..., + body_text: _builtins.str = ..., + mode: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "body_text", b"body_text", "mode", b"mode", "name", b"name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "body_text", b"body_text", "mode", b"mode", "name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UserDefinedFunctionV2 = UserDefinedFunctionV2 +Global___UserDefinedFunctionV2: _TypeAlias = UserDefinedFunctionV2 # noqa: Y015 -class FeatureTransformationV2(google.protobuf.message.Message): +@_typing.final +class FeatureTransformationV2(_message.Message): """A feature transformation executed as a user-defined function""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - USER_DEFINED_FUNCTION_FIELD_NUMBER: builtins.int - SUBSTRAIT_TRANSFORMATION_FIELD_NUMBER: builtins.int - @property - def user_defined_function(self) -> global___UserDefinedFunctionV2: ... - @property - def substrait_transformation(self) -> global___SubstraitTransformationV2: ... + USER_DEFINED_FUNCTION_FIELD_NUMBER: _builtins.int + SUBSTRAIT_TRANSFORMATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def user_defined_function(self) -> Global___UserDefinedFunctionV2: ... + @_builtins.property + def substrait_transformation(self) -> Global___SubstraitTransformationV2: ... def __init__( self, *, - user_defined_function: global___UserDefinedFunctionV2 | None = ..., - substrait_transformation: global___SubstraitTransformationV2 | None = ..., + user_defined_function: Global___UserDefinedFunctionV2 | None = ..., + substrait_transformation: Global___SubstraitTransformationV2 | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["transformation", b"transformation"]) -> typing_extensions.Literal["user_defined_function", "substrait_transformation"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_transformation: _TypeAlias = _typing.Literal["user_defined_function", "substrait_transformation"] # noqa: Y015 + _WhichOneofArgType_transformation: _TypeAlias = _typing.Literal["transformation", b"transformation"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_transformation) -> _WhichOneofReturnType_transformation | None: ... -global___FeatureTransformationV2 = FeatureTransformationV2 +Global___FeatureTransformationV2: _TypeAlias = FeatureTransformationV2 # noqa: Y015 -class SubstraitTransformationV2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SubstraitTransformationV2(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SUBSTRAIT_PLAN_FIELD_NUMBER: builtins.int - IBIS_FUNCTION_FIELD_NUMBER: builtins.int - substrait_plan: builtins.bytes - ibis_function: builtins.bytes + SUBSTRAIT_PLAN_FIELD_NUMBER: _builtins.int + IBIS_FUNCTION_FIELD_NUMBER: _builtins.int + substrait_plan: _builtins.bytes + ibis_function: _builtins.bytes def __init__( self, *, - substrait_plan: builtins.bytes = ..., - ibis_function: builtins.bytes = ..., + substrait_plan: _builtins.bytes = ..., + ibis_function: _builtins.bytes = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["ibis_function", b"ibis_function", "substrait_plan", b"substrait_plan"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ibis_function", b"ibis_function", "substrait_plan", b"substrait_plan"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SubstraitTransformationV2 = SubstraitTransformationV2 +Global___SubstraitTransformationV2: _TypeAlias = SubstraitTransformationV2 # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi b/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi index 93da1e0f5e8..16cc081f054 100644 --- a/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi @@ -16,121 +16,139 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys -import typing +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class GEValidationProfiler(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GEValidationProfiler(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class UserDefinedProfiler(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class UserDefinedProfiler(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - BODY_FIELD_NUMBER: builtins.int - body: builtins.bytes + BODY_FIELD_NUMBER: _builtins.int + body: _builtins.bytes """The python-syntax function body (serialized by dill)""" def __init__( self, *, - body: builtins.bytes = ..., + body: _builtins.bytes = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["body", b"body"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROFILER_FIELD_NUMBER: builtins.int - @property - def profiler(self) -> global___GEValidationProfiler.UserDefinedProfiler: ... + PROFILER_FIELD_NUMBER: _builtins.int + @_builtins.property + def profiler(self) -> Global___GEValidationProfiler.UserDefinedProfiler: ... def __init__( self, *, - profiler: global___GEValidationProfiler.UserDefinedProfiler | None = ..., + profiler: Global___GEValidationProfiler.UserDefinedProfiler | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["profiler", b"profiler"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["profiler", b"profiler"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["profiler", b"profiler"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["profiler", b"profiler"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GEValidationProfiler = GEValidationProfiler +Global___GEValidationProfiler: _TypeAlias = GEValidationProfiler # noqa: Y015 -class GEValidationProfile(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GEValidationProfile(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - EXPECTATION_SUITE_FIELD_NUMBER: builtins.int - expectation_suite: builtins.bytes + EXPECTATION_SUITE_FIELD_NUMBER: _builtins.int + expectation_suite: _builtins.bytes """JSON-serialized ExpectationSuite object""" def __init__( self, *, - expectation_suite: builtins.bytes = ..., + expectation_suite: _builtins.bytes = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["expectation_suite", b"expectation_suite"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["expectation_suite", b"expectation_suite"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GEValidationProfile = GEValidationProfile +Global___GEValidationProfile: _TypeAlias = GEValidationProfile # noqa: Y015 -class ValidationReference(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ValidationReference(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - REFERENCE_DATASET_NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - GE_PROFILER_FIELD_NUMBER: builtins.int - GE_PROFILE_FIELD_NUMBER: builtins.int - name: builtins.str + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + REFERENCE_DATASET_NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + GE_PROFILER_FIELD_NUMBER: _builtins.int + GE_PROFILE_FIELD_NUMBER: _builtins.int + name: _builtins.str """Unique name of validation reference within the project""" - reference_dataset_name: builtins.str + reference_dataset_name: _builtins.str """Name of saved dataset used as reference dataset""" - project: builtins.str + project: _builtins.str """Name of Feast project that this object source belongs to""" - description: builtins.str + description: _builtins.str """Description of the validation reference""" - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """User defined metadata""" - @property - def ge_profiler(self) -> global___GEValidationProfiler: ... - @property - def ge_profile(self) -> global___GEValidationProfile: ... + + @_builtins.property + def ge_profiler(self) -> Global___GEValidationProfiler: ... + @_builtins.property + def ge_profile(self) -> Global___GEValidationProfile: ... def __init__( self, *, - name: builtins.str = ..., - reference_dataset_name: builtins.str = ..., - project: builtins.str = ..., - description: builtins.str = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - ge_profiler: global___GEValidationProfiler | None = ..., - ge_profile: global___GEValidationProfile | None = ..., + name: _builtins.str = ..., + reference_dataset_name: _builtins.str = ..., + project: _builtins.str = ..., + description: _builtins.str = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + ge_profiler: Global___GEValidationProfiler | None = ..., + ge_profile: Global___GEValidationProfile | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["cached_profile", b"cached_profile", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "profiler", b"profiler"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["cached_profile", b"cached_profile", "description", b"description", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "name", b"name", "profiler", b"profiler", "project", b"project", "reference_dataset_name", b"reference_dataset_name", "tags", b"tags"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["cached_profile", b"cached_profile"]) -> typing_extensions.Literal["ge_profile"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["profiler", b"profiler"]) -> typing_extensions.Literal["ge_profiler"] | None: ... - -global___ValidationReference = ValidationReference + _HasFieldArgType: _TypeAlias = _typing.Literal["cached_profile", b"cached_profile", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "profiler", b"profiler"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["cached_profile", b"cached_profile", "description", b"description", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "name", b"name", "profiler", b"profiler", "project", b"project", "reference_dataset_name", b"reference_dataset_name", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_cached_profile: _TypeAlias = _typing.Literal["ge_profile"] # noqa: Y015 + _WhichOneofArgType_cached_profile: _TypeAlias = _typing.Literal["cached_profile", b"cached_profile"] # noqa: Y015 + _WhichOneofReturnType_profiler: _TypeAlias = _typing.Literal["ge_profiler"] # noqa: Y015 + _WhichOneofArgType_profiler: _TypeAlias = _typing.Literal["profiler", b"profiler"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_cached_profile) -> _WhichOneofReturnType_cached_profile | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_profiler) -> _WhichOneofReturnType_profiler | None: ... + +Global___ValidationReference: _TypeAlias = ValidationReference # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi b/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi index a1f1b99365d..7dd137bc89e 100644 --- a/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi +++ b/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi @@ -2,1841 +2,2053 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import feast.core.DataSource_pb2 -import feast.core.Entity_pb2 -import feast.core.FeatureService_pb2 -import feast.core.FeatureView_pb2 -import feast.core.InfraObject_pb2 -import feast.core.OnDemandFeatureView_pb2 -import feast.core.Permission_pb2 -import feast.core.Project_pb2 -import feast.core.Registry_pb2 -import feast.core.SavedDataset_pb2 -import feast.core.StreamFeatureView_pb2 -import feast.core.ValidationProfile_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.core import DataSource_pb2 as _DataSource_pb2 +from feast.core import Entity_pb2 as _Entity_pb2 +from feast.core import FeatureService_pb2 as _FeatureService_pb2 +from feast.core import FeatureView_pb2 as _FeatureView_pb2 +from feast.core import InfraObject_pb2 as _InfraObject_pb2 +from feast.core import OnDemandFeatureView_pb2 as _OnDemandFeatureView_pb2 +from feast.core import Permission_pb2 as _Permission_pb2 +from feast.core import Project_pb2 as _Project_pb2 +from feast.core import Registry_pb2 as _Registry_pb2 +from feast.core import SavedDataset_pb2 as _SavedDataset_pb2 +from feast.core import StreamFeatureView_pb2 as _StreamFeatureView_pb2 +from feast.core import ValidationProfile_pb2 as _ValidationProfile_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class PaginationParams(google.protobuf.message.Message): +@_typing.final +class PaginationParams(_message.Message): """Common pagination and sorting messages""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - PAGE_FIELD_NUMBER: builtins.int - LIMIT_FIELD_NUMBER: builtins.int - page: builtins.int + PAGE_FIELD_NUMBER: _builtins.int + LIMIT_FIELD_NUMBER: _builtins.int + page: _builtins.int """1-based page number""" - limit: builtins.int + limit: _builtins.int """Number of items per page""" def __init__( self, *, - page: builtins.int = ..., - limit: builtins.int = ..., + page: _builtins.int = ..., + limit: _builtins.int = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["limit", b"limit", "page", b"page"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["limit", b"limit", "page", b"page"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PaginationParams = PaginationParams +Global___PaginationParams: _TypeAlias = PaginationParams # noqa: Y015 -class SortingParams(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SortingParams(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SORT_BY_FIELD_NUMBER: builtins.int - SORT_ORDER_FIELD_NUMBER: builtins.int - sort_by: builtins.str + SORT_BY_FIELD_NUMBER: _builtins.int + SORT_ORDER_FIELD_NUMBER: _builtins.int + sort_by: _builtins.str """Field to sort by (supports dot notation)""" - sort_order: builtins.str + sort_order: _builtins.str """"asc" or "desc" """ def __init__( self, *, - sort_by: builtins.str = ..., - sort_order: builtins.str = ..., + sort_by: _builtins.str = ..., + sort_order: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["sort_by", b"sort_by", "sort_order", b"sort_order"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["sort_by", b"sort_by", "sort_order", b"sort_order"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SortingParams = SortingParams +Global___SortingParams: _TypeAlias = SortingParams # noqa: Y015 -class PaginationMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PaginationMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PAGE_FIELD_NUMBER: builtins.int - LIMIT_FIELD_NUMBER: builtins.int - TOTAL_COUNT_FIELD_NUMBER: builtins.int - TOTAL_PAGES_FIELD_NUMBER: builtins.int - HAS_NEXT_FIELD_NUMBER: builtins.int - HAS_PREVIOUS_FIELD_NUMBER: builtins.int - page: builtins.int - limit: builtins.int - total_count: builtins.int - total_pages: builtins.int - has_next: builtins.bool - has_previous: builtins.bool + PAGE_FIELD_NUMBER: _builtins.int + LIMIT_FIELD_NUMBER: _builtins.int + TOTAL_COUNT_FIELD_NUMBER: _builtins.int + TOTAL_PAGES_FIELD_NUMBER: _builtins.int + HAS_NEXT_FIELD_NUMBER: _builtins.int + HAS_PREVIOUS_FIELD_NUMBER: _builtins.int + page: _builtins.int + limit: _builtins.int + total_count: _builtins.int + total_pages: _builtins.int + has_next: _builtins.bool + has_previous: _builtins.bool def __init__( self, *, - page: builtins.int = ..., - limit: builtins.int = ..., - total_count: builtins.int = ..., - total_pages: builtins.int = ..., - has_next: builtins.bool = ..., - has_previous: builtins.bool = ..., + page: _builtins.int = ..., + limit: _builtins.int = ..., + total_count: _builtins.int = ..., + total_pages: _builtins.int = ..., + has_next: _builtins.bool = ..., + has_previous: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["has_next", b"has_next", "has_previous", b"has_previous", "limit", b"limit", "page", b"page", "total_count", b"total_count", "total_pages", b"total_pages"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["has_next", b"has_next", "has_previous", b"has_previous", "limit", b"limit", "page", b"page", "total_count", b"total_count", "total_pages", b"total_pages"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PaginationMetadata = PaginationMetadata +Global___PaginationMetadata: _TypeAlias = PaginationMetadata # noqa: Y015 -class RefreshRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RefreshRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - project: builtins.str + PROJECT_FIELD_NUMBER: _builtins.int + project: _builtins.str def __init__( self, *, - project: builtins.str = ..., + project: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RefreshRequest = RefreshRequest +Global___RefreshRequest: _TypeAlias = RefreshRequest # noqa: Y015 -class UpdateInfraRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateInfraRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - INFRA_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def infra(self) -> feast.core.InfraObject_pb2.Infra: ... - project: builtins.str - commit: builtins.bool + INFRA_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def infra(self) -> _InfraObject_pb2.Infra: ... def __init__( self, *, - infra: feast.core.InfraObject_pb2.Infra | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + infra: _InfraObject_pb2.Infra | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["infra", b"infra"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "infra", b"infra", "project", b"project"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["infra", b"infra"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "infra", b"infra", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateInfraRequest = UpdateInfraRequest +Global___UpdateInfraRequest: _TypeAlias = UpdateInfraRequest # noqa: Y015 -class GetInfraRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetInfraRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInfraRequest = GetInfraRequest +Global___GetInfraRequest: _TypeAlias = GetInfraRequest # noqa: Y015 -class ListProjectMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListProjectMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListProjectMetadataRequest = ListProjectMetadataRequest +Global___ListProjectMetadataRequest: _TypeAlias = ListProjectMetadataRequest # noqa: Y015 -class ListProjectMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListProjectMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_METADATA_FIELD_NUMBER: builtins.int - @property - def project_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Registry_pb2.ProjectMetadata]: ... + PROJECT_METADATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def project_metadata(self) -> _containers.RepeatedCompositeFieldContainer[_Registry_pb2.ProjectMetadata]: ... def __init__( self, *, - project_metadata: collections.abc.Iterable[feast.core.Registry_pb2.ProjectMetadata] | None = ..., + project_metadata: _abc.Iterable[_Registry_pb2.ProjectMetadata] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["project_metadata", b"project_metadata"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["project_metadata", b"project_metadata"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListProjectMetadataResponse = ListProjectMetadataResponse +Global___ListProjectMetadataResponse: _TypeAlias = ListProjectMetadataResponse # noqa: Y015 -class ApplyMaterializationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ApplyMaterializationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_VIEW_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - START_DATE_FIELD_NUMBER: builtins.int - END_DATE_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... - project: builtins.str - @property - def start_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def end_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - commit: builtins.bool + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + START_DATE_FIELD_NUMBER: _builtins.int + END_DATE_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def feature_view(self) -> _FeatureView_pb2.FeatureView: ... + @_builtins.property + def start_date(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def end_date(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., - project: builtins.str = ..., - start_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., - end_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., - commit: builtins.bool = ..., + feature_view: _FeatureView_pb2.FeatureView | None = ..., + project: _builtins.str = ..., + start_date: _timestamp_pb2.Timestamp | None = ..., + end_date: _timestamp_pb2.Timestamp | None = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["end_date", b"end_date", "feature_view", b"feature_view", "start_date", b"start_date"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "end_date", b"end_date", "feature_view", b"feature_view", "project", b"project", "start_date", b"start_date"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["end_date", b"end_date", "feature_view", b"feature_view", "start_date", b"start_date"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "end_date", b"end_date", "feature_view", b"feature_view", "project", b"project", "start_date", b"start_date"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyMaterializationRequest = ApplyMaterializationRequest +Global___ApplyMaterializationRequest: _TypeAlias = ApplyMaterializationRequest # noqa: Y015 -class ApplyEntityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ApplyEntityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ENTITY_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def entity(self) -> feast.core.Entity_pb2.Entity: ... - project: builtins.str - commit: builtins.bool + ENTITY_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def entity(self) -> _Entity_pb2.Entity: ... def __init__( self, *, - entity: feast.core.Entity_pb2.Entity | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + entity: _Entity_pb2.Entity | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "entity", b"entity", "project", b"project"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["entity", b"entity"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "entity", b"entity", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyEntityRequest = ApplyEntityRequest +Global___ApplyEntityRequest: _TypeAlias = ApplyEntityRequest # noqa: Y015 -class GetEntityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetEntityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetEntityRequest = GetEntityRequest +Global___GetEntityRequest: _TypeAlias = GetEntityRequest # noqa: Y015 -class ListEntitiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListEntitiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListEntitiesRequest = ListEntitiesRequest +Global___ListEntitiesRequest: _TypeAlias = ListEntitiesRequest # noqa: Y015 -class ListEntitiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListEntitiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ENTITIES_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Entity_pb2.Entity]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + ENTITIES_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def entities(self) -> _containers.RepeatedCompositeFieldContainer[_Entity_pb2.Entity]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - entities: collections.abc.Iterable[feast.core.Entity_pb2.Entity] | None = ..., - pagination: global___PaginationMetadata | None = ..., + entities: _abc.Iterable[_Entity_pb2.Entity] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities", "pagination", b"pagination"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entities", b"entities", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListEntitiesResponse = ListEntitiesResponse +Global___ListEntitiesResponse: _TypeAlias = ListEntitiesResponse # noqa: Y015 -class DeleteEntityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteEntityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteEntityRequest = DeleteEntityRequest +Global___DeleteEntityRequest: _TypeAlias = DeleteEntityRequest # noqa: Y015 -class ApplyDataSourceRequest(google.protobuf.message.Message): +@_typing.final +class ApplyDataSourceRequest(_message.Message): """DataSources""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - DATA_SOURCE_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def data_source(self) -> feast.core.DataSource_pb2.DataSource: ... - project: builtins.str - commit: builtins.bool + DATA_SOURCE_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def data_source(self) -> _DataSource_pb2.DataSource: ... def __init__( self, *, - data_source: feast.core.DataSource_pb2.DataSource | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + data_source: _DataSource_pb2.DataSource | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["data_source", b"data_source"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "data_source", b"data_source", "project", b"project"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["data_source", b"data_source"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "data_source", b"data_source", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyDataSourceRequest = ApplyDataSourceRequest +Global___ApplyDataSourceRequest: _TypeAlias = ApplyDataSourceRequest # noqa: Y015 -class GetDataSourceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetDataSourceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDataSourceRequest = GetDataSourceRequest +Global___GetDataSourceRequest: _TypeAlias = GetDataSourceRequest # noqa: Y015 -class ListDataSourcesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListDataSourcesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDataSourcesRequest = ListDataSourcesRequest +Global___ListDataSourcesRequest: _TypeAlias = ListDataSourcesRequest # noqa: Y015 -class ListDataSourcesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListDataSourcesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - DATA_SOURCES_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def data_sources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.DataSource_pb2.DataSource]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + DATA_SOURCES_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def data_sources(self) -> _containers.RepeatedCompositeFieldContainer[_DataSource_pb2.DataSource]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - data_sources: collections.abc.Iterable[feast.core.DataSource_pb2.DataSource] | None = ..., - pagination: global___PaginationMetadata | None = ..., + data_sources: _abc.Iterable[_DataSource_pb2.DataSource] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["data_sources", b"data_sources", "pagination", b"pagination"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["data_sources", b"data_sources", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDataSourcesResponse = ListDataSourcesResponse +Global___ListDataSourcesResponse: _TypeAlias = ListDataSourcesResponse # noqa: Y015 -class DeleteDataSourceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteDataSourceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteDataSourceRequest = DeleteDataSourceRequest +Global___DeleteDataSourceRequest: _TypeAlias = DeleteDataSourceRequest # noqa: Y015 -class ApplyFeatureViewRequest(google.protobuf.message.Message): +@_typing.final +class ApplyFeatureViewRequest(_message.Message): """FeatureViews""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - FEATURE_VIEW_FIELD_NUMBER: builtins.int - ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: builtins.int - STREAM_FEATURE_VIEW_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... - @property - def on_demand_feature_view(self) -> feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView: ... - @property - def stream_feature_view(self) -> feast.core.StreamFeatureView_pb2.StreamFeatureView: ... - project: builtins.str - commit: builtins.bool + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: _builtins.int + STREAM_FEATURE_VIEW_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def feature_view(self) -> _FeatureView_pb2.FeatureView: ... + @_builtins.property + def on_demand_feature_view(self) -> _OnDemandFeatureView_pb2.OnDemandFeatureView: ... + @_builtins.property + def stream_feature_view(self) -> _StreamFeatureView_pb2.StreamFeatureView: ... def __init__( self, *, - feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., - on_demand_feature_view: feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., - stream_feature_view: feast.core.StreamFeatureView_pb2.StreamFeatureView | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + feature_view: _FeatureView_pb2.FeatureView | None = ..., + on_demand_feature_view: _OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., + stream_feature_view: _StreamFeatureView_pb2.StreamFeatureView | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["base_feature_view", b"base_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["base_feature_view", b"base_feature_view", "commit", b"commit", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "project", b"project", "stream_feature_view", b"stream_feature_view"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["base_feature_view", b"base_feature_view"]) -> typing_extensions.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["base_feature_view", b"base_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["base_feature_view", b"base_feature_view", "commit", b"commit", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "project", b"project", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_base_feature_view: _TypeAlias = _typing.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] # noqa: Y015 + _WhichOneofArgType_base_feature_view: _TypeAlias = _typing.Literal["base_feature_view", b"base_feature_view"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_base_feature_view) -> _WhichOneofReturnType_base_feature_view | None: ... -global___ApplyFeatureViewRequest = ApplyFeatureViewRequest +Global___ApplyFeatureViewRequest: _TypeAlias = ApplyFeatureViewRequest # noqa: Y015 -class GetFeatureViewRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetFeatureViewRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFeatureViewRequest = GetFeatureViewRequest +Global___GetFeatureViewRequest: _TypeAlias = GetFeatureViewRequest # noqa: Y015 -class ListFeatureViewsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListFeatureViewsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListFeatureViewsRequest = ListFeatureViewsRequest +Global___ListFeatureViewsRequest: _TypeAlias = ListFeatureViewsRequest # noqa: Y015 -class ListFeatureViewsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListFeatureViewsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_VIEWS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureView_pb2.FeatureView]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureView_pb2.FeatureView]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - feature_views: collections.abc.Iterable[feast.core.FeatureView_pb2.FeatureView] | None = ..., - pagination: global___PaginationMetadata | None = ..., + feature_views: _abc.Iterable[_FeatureView_pb2.FeatureView] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_views", b"feature_views", "pagination", b"pagination"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_views", b"feature_views", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListFeatureViewsResponse = ListFeatureViewsResponse +Global___ListFeatureViewsResponse: _TypeAlias = ListFeatureViewsResponse # noqa: Y015 -class DeleteFeatureViewRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteFeatureViewRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteFeatureViewRequest = DeleteFeatureViewRequest +Global___DeleteFeatureViewRequest: _TypeAlias = DeleteFeatureViewRequest # noqa: Y015 -class AnyFeatureView(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AnyFeatureView(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_VIEW_FIELD_NUMBER: builtins.int - ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: builtins.int - STREAM_FEATURE_VIEW_FIELD_NUMBER: builtins.int - @property - def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... - @property - def on_demand_feature_view(self) -> feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView: ... - @property - def stream_feature_view(self) -> feast.core.StreamFeatureView_pb2.StreamFeatureView: ... + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: _builtins.int + STREAM_FEATURE_VIEW_FIELD_NUMBER: _builtins.int + @_builtins.property + def feature_view(self) -> _FeatureView_pb2.FeatureView: ... + @_builtins.property + def on_demand_feature_view(self) -> _OnDemandFeatureView_pb2.OnDemandFeatureView: ... + @_builtins.property + def stream_feature_view(self) -> _StreamFeatureView_pb2.StreamFeatureView: ... def __init__( self, *, - feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., - on_demand_feature_view: feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., - stream_feature_view: feast.core.StreamFeatureView_pb2.StreamFeatureView | None = ..., + feature_view: _FeatureView_pb2.FeatureView | None = ..., + on_demand_feature_view: _OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., + stream_feature_view: _StreamFeatureView_pb2.StreamFeatureView | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["any_feature_view", b"any_feature_view"]) -> typing_extensions.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_any_feature_view: _TypeAlias = _typing.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] # noqa: Y015 + _WhichOneofArgType_any_feature_view: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_any_feature_view) -> _WhichOneofReturnType_any_feature_view | None: ... -global___AnyFeatureView = AnyFeatureView +Global___AnyFeatureView: _TypeAlias = AnyFeatureView # noqa: Y015 -class GetAnyFeatureViewRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetAnyFeatureViewRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAnyFeatureViewRequest = GetAnyFeatureViewRequest +Global___GetAnyFeatureViewRequest: _TypeAlias = GetAnyFeatureViewRequest # noqa: Y015 -class GetAnyFeatureViewResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetAnyFeatureViewResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ANY_FEATURE_VIEW_FIELD_NUMBER: builtins.int - @property - def any_feature_view(self) -> global___AnyFeatureView: ... + ANY_FEATURE_VIEW_FIELD_NUMBER: _builtins.int + @_builtins.property + def any_feature_view(self) -> Global___AnyFeatureView: ... def __init__( self, *, - any_feature_view: global___AnyFeatureView | None = ..., + any_feature_view: Global___AnyFeatureView | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAnyFeatureViewResponse = GetAnyFeatureViewResponse +Global___GetAnyFeatureViewResponse: _TypeAlias = GetAnyFeatureViewResponse # noqa: Y015 -class ListAllFeatureViewsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListAllFeatureViewsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - ENTITY_FIELD_NUMBER: builtins.int - FEATURE_FIELD_NUMBER: builtins.int - FEATURE_SERVICE_FIELD_NUMBER: builtins.int - DATA_SOURCE_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - entity: builtins.str - feature: builtins.str - feature_service: builtins.str - data_source: builtins.str - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... - def __init__( - self, - *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - entity: builtins.str = ..., - feature: builtins.str = ..., - feature_service: builtins.str = ..., - data_source: builtins.str = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "data_source", b"data_source", "entity", b"entity", "feature", b"feature", "feature_service", b"feature_service", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... - -global___ListAllFeatureViewsRequest = ListAllFeatureViewsRequest - -class ListAllFeatureViewsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FEATURE_VIEWS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AnyFeatureView]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... - def __init__( - self, - *, - feature_views: collections.abc.Iterable[global___AnyFeatureView] | None = ..., - pagination: global___PaginationMetadata | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_views", b"feature_views", "pagination", b"pagination"]) -> None: ... - -global___ListAllFeatureViewsResponse = ListAllFeatureViewsResponse - -class GetStreamFeatureViewRequest(google.protobuf.message.Message): + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + ENTITY_FIELD_NUMBER: _builtins.int + FEATURE_FIELD_NUMBER: _builtins.int + FEATURE_SERVICE_FIELD_NUMBER: _builtins.int + DATA_SOURCE_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + entity: _builtins.str + feature: _builtins.str + feature_service: _builtins.str + data_source: _builtins.str + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... + def __init__( + self, + *, + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + entity: _builtins.str = ..., + feature: _builtins.str = ..., + feature_service: _builtins.str = ..., + data_source: _builtins.str = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "data_source", b"data_source", "entity", b"entity", "feature", b"feature", "feature_service", b"feature_service", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ListAllFeatureViewsRequest: _TypeAlias = ListAllFeatureViewsRequest # noqa: Y015 + +@_typing.final +class ListAllFeatureViewsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def feature_views(self) -> _containers.RepeatedCompositeFieldContainer[Global___AnyFeatureView]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... + def __init__( + self, + *, + feature_views: _abc.Iterable[Global___AnyFeatureView] | None = ..., + pagination: Global___PaginationMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_views", b"feature_views", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ListAllFeatureViewsResponse: _TypeAlias = ListAllFeatureViewsResponse # noqa: Y015 + +@_typing.final +class GetStreamFeatureViewRequest(_message.Message): """StreamFeatureView""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetStreamFeatureViewRequest = GetStreamFeatureViewRequest +Global___GetStreamFeatureViewRequest: _TypeAlias = GetStreamFeatureViewRequest # noqa: Y015 -class ListStreamFeatureViewsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListStreamFeatureViewsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListStreamFeatureViewsRequest = ListStreamFeatureViewsRequest +Global___ListStreamFeatureViewsRequest: _TypeAlias = ListStreamFeatureViewsRequest # noqa: Y015 -class ListStreamFeatureViewsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListStreamFeatureViewsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - STREAM_FEATURE_VIEWS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def stream_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.StreamFeatureView_pb2.StreamFeatureView]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + STREAM_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def stream_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_StreamFeatureView_pb2.StreamFeatureView]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - stream_feature_views: collections.abc.Iterable[feast.core.StreamFeatureView_pb2.StreamFeatureView] | None = ..., - pagination: global___PaginationMetadata | None = ..., + stream_feature_views: _abc.Iterable[_StreamFeatureView_pb2.StreamFeatureView] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "stream_feature_views", b"stream_feature_views"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "stream_feature_views", b"stream_feature_views"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListStreamFeatureViewsResponse = ListStreamFeatureViewsResponse +Global___ListStreamFeatureViewsResponse: _TypeAlias = ListStreamFeatureViewsResponse # noqa: Y015 -class GetOnDemandFeatureViewRequest(google.protobuf.message.Message): +@_typing.final +class GetOnDemandFeatureViewRequest(_message.Message): """OnDemandFeatureView""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOnDemandFeatureViewRequest = GetOnDemandFeatureViewRequest +Global___GetOnDemandFeatureViewRequest: _TypeAlias = GetOnDemandFeatureViewRequest # noqa: Y015 -class ListOnDemandFeatureViewsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListOnDemandFeatureViewsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOnDemandFeatureViewsRequest = ListOnDemandFeatureViewsRequest +Global___ListOnDemandFeatureViewsRequest: _TypeAlias = ListOnDemandFeatureViewsRequest # noqa: Y015 -class ListOnDemandFeatureViewsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListOnDemandFeatureViewsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def on_demand_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def on_demand_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_OnDemandFeatureView_pb2.OnDemandFeatureView]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - on_demand_feature_views: collections.abc.Iterable[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., - pagination: global___PaginationMetadata | None = ..., + on_demand_feature_views: _abc.Iterable[_OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["on_demand_feature_views", b"on_demand_feature_views", "pagination", b"pagination"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["on_demand_feature_views", b"on_demand_feature_views", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOnDemandFeatureViewsResponse = ListOnDemandFeatureViewsResponse +Global___ListOnDemandFeatureViewsResponse: _TypeAlias = ListOnDemandFeatureViewsResponse # noqa: Y015 -class ApplyFeatureServiceRequest(google.protobuf.message.Message): +@_typing.final +class ApplyFeatureServiceRequest(_message.Message): """FeatureServices""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - FEATURE_SERVICE_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def feature_service(self) -> feast.core.FeatureService_pb2.FeatureService: ... - project: builtins.str - commit: builtins.bool + FEATURE_SERVICE_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def feature_service(self) -> _FeatureService_pb2.FeatureService: ... def __init__( self, *, - feature_service: feast.core.FeatureService_pb2.FeatureService | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + feature_service: _FeatureService_pb2.FeatureService | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["feature_service", b"feature_service"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "feature_service", b"feature_service", "project", b"project"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feature_service", b"feature_service"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "feature_service", b"feature_service", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyFeatureServiceRequest = ApplyFeatureServiceRequest +Global___ApplyFeatureServiceRequest: _TypeAlias = ApplyFeatureServiceRequest # noqa: Y015 -class GetFeatureServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetFeatureServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFeatureServiceRequest = GetFeatureServiceRequest +Global___GetFeatureServiceRequest: _TypeAlias = GetFeatureServiceRequest # noqa: Y015 -class ListFeatureServicesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListFeatureServicesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - FEATURE_VIEW_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - feature_view: builtins.str - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + feature_view: _builtins.str + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - feature_view: builtins.str = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + feature_view: _builtins.str = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListFeatureServicesRequest = ListFeatureServicesRequest +Global___ListFeatureServicesRequest: _TypeAlias = ListFeatureServicesRequest # noqa: Y015 -class ListFeatureServicesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListFeatureServicesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_SERVICES_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def feature_services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureService_pb2.FeatureService]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + FEATURE_SERVICES_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def feature_services(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureService_pb2.FeatureService]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - feature_services: collections.abc.Iterable[feast.core.FeatureService_pb2.FeatureService] | None = ..., - pagination: global___PaginationMetadata | None = ..., + feature_services: _abc.Iterable[_FeatureService_pb2.FeatureService] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_services", b"feature_services", "pagination", b"pagination"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_services", b"feature_services", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListFeatureServicesResponse = ListFeatureServicesResponse +Global___ListFeatureServicesResponse: _TypeAlias = ListFeatureServicesResponse # noqa: Y015 -class DeleteFeatureServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteFeatureServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteFeatureServiceRequest = DeleteFeatureServiceRequest +Global___DeleteFeatureServiceRequest: _TypeAlias = DeleteFeatureServiceRequest # noqa: Y015 -class ApplySavedDatasetRequest(google.protobuf.message.Message): +@_typing.final +class ApplySavedDatasetRequest(_message.Message): """SavedDataset""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - SAVED_DATASET_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def saved_dataset(self) -> feast.core.SavedDataset_pb2.SavedDataset: ... - project: builtins.str - commit: builtins.bool + SAVED_DATASET_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def saved_dataset(self) -> _SavedDataset_pb2.SavedDataset: ... def __init__( self, *, - saved_dataset: feast.core.SavedDataset_pb2.SavedDataset | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + saved_dataset: _SavedDataset_pb2.SavedDataset | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["saved_dataset", b"saved_dataset"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "project", b"project", "saved_dataset", b"saved_dataset"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["saved_dataset", b"saved_dataset"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "project", b"project", "saved_dataset", b"saved_dataset"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplySavedDatasetRequest = ApplySavedDatasetRequest +Global___ApplySavedDatasetRequest: _TypeAlias = ApplySavedDatasetRequest # noqa: Y015 -class GetSavedDatasetRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetSavedDatasetRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSavedDatasetRequest = GetSavedDatasetRequest +Global___GetSavedDatasetRequest: _TypeAlias = GetSavedDatasetRequest # noqa: Y015 -class ListSavedDatasetsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListSavedDatasetsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListSavedDatasetsRequest = ListSavedDatasetsRequest +Global___ListSavedDatasetsRequest: _TypeAlias = ListSavedDatasetsRequest # noqa: Y015 -class ListSavedDatasetsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListSavedDatasetsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - SAVED_DATASETS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def saved_datasets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.SavedDataset_pb2.SavedDataset]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + SAVED_DATASETS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def saved_datasets(self) -> _containers.RepeatedCompositeFieldContainer[_SavedDataset_pb2.SavedDataset]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - saved_datasets: collections.abc.Iterable[feast.core.SavedDataset_pb2.SavedDataset] | None = ..., - pagination: global___PaginationMetadata | None = ..., + saved_datasets: _abc.Iterable[_SavedDataset_pb2.SavedDataset] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "saved_datasets", b"saved_datasets"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "saved_datasets", b"saved_datasets"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListSavedDatasetsResponse = ListSavedDatasetsResponse +Global___ListSavedDatasetsResponse: _TypeAlias = ListSavedDatasetsResponse # noqa: Y015 -class DeleteSavedDatasetRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteSavedDatasetRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteSavedDatasetRequest = DeleteSavedDatasetRequest +Global___DeleteSavedDatasetRequest: _TypeAlias = DeleteSavedDatasetRequest # noqa: Y015 -class ApplyValidationReferenceRequest(google.protobuf.message.Message): +@_typing.final +class ApplyValidationReferenceRequest(_message.Message): """ValidationReference""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - VALIDATION_REFERENCE_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def validation_reference(self) -> feast.core.ValidationProfile_pb2.ValidationReference: ... - project: builtins.str - commit: builtins.bool + VALIDATION_REFERENCE_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def validation_reference(self) -> _ValidationProfile_pb2.ValidationReference: ... def __init__( self, *, - validation_reference: feast.core.ValidationProfile_pb2.ValidationReference | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + validation_reference: _ValidationProfile_pb2.ValidationReference | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["validation_reference", b"validation_reference"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "project", b"project", "validation_reference", b"validation_reference"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["validation_reference", b"validation_reference"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "project", b"project", "validation_reference", b"validation_reference"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyValidationReferenceRequest = ApplyValidationReferenceRequest +Global___ApplyValidationReferenceRequest: _TypeAlias = ApplyValidationReferenceRequest # noqa: Y015 -class GetValidationReferenceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetValidationReferenceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetValidationReferenceRequest = GetValidationReferenceRequest +Global___GetValidationReferenceRequest: _TypeAlias = GetValidationReferenceRequest # noqa: Y015 -class ListValidationReferencesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListValidationReferencesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListValidationReferencesRequest = ListValidationReferencesRequest +Global___ListValidationReferencesRequest: _TypeAlias = ListValidationReferencesRequest # noqa: Y015 -class ListValidationReferencesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListValidationReferencesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VALIDATION_REFERENCES_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def validation_references(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.ValidationProfile_pb2.ValidationReference]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + VALIDATION_REFERENCES_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def validation_references(self) -> _containers.RepeatedCompositeFieldContainer[_ValidationProfile_pb2.ValidationReference]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - validation_references: collections.abc.Iterable[feast.core.ValidationProfile_pb2.ValidationReference] | None = ..., - pagination: global___PaginationMetadata | None = ..., + validation_references: _abc.Iterable[_ValidationProfile_pb2.ValidationReference] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "validation_references", b"validation_references"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "validation_references", b"validation_references"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListValidationReferencesResponse = ListValidationReferencesResponse +Global___ListValidationReferencesResponse: _TypeAlias = ListValidationReferencesResponse # noqa: Y015 -class DeleteValidationReferenceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteValidationReferenceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteValidationReferenceRequest = DeleteValidationReferenceRequest +Global___DeleteValidationReferenceRequest: _TypeAlias = DeleteValidationReferenceRequest # noqa: Y015 -class ApplyPermissionRequest(google.protobuf.message.Message): +@_typing.final +class ApplyPermissionRequest(_message.Message): """Permissions""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - PERMISSION_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def permission(self) -> feast.core.Permission_pb2.Permission: ... - project: builtins.str - commit: builtins.bool + PERMISSION_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + project: _builtins.str + commit: _builtins.bool + @_builtins.property + def permission(self) -> _Permission_pb2.Permission: ... def __init__( self, *, - permission: feast.core.Permission_pb2.Permission | None = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + permission: _Permission_pb2.Permission | None = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["permission", b"permission"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "permission", b"permission", "project", b"project"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["permission", b"permission"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "permission", b"permission", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyPermissionRequest = ApplyPermissionRequest +Global___ApplyPermissionRequest: _TypeAlias = ApplyPermissionRequest # noqa: Y015 -class GetPermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetPermissionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPermissionRequest = GetPermissionRequest +Global___GetPermissionRequest: _TypeAlias = GetPermissionRequest # noqa: Y015 -class ListPermissionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListPermissionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListPermissionsRequest = ListPermissionsRequest +Global___ListPermissionsRequest: _TypeAlias = ListPermissionsRequest # noqa: Y015 -class ListPermissionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListPermissionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PERMISSIONS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Permission_pb2.Permission]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + PERMISSIONS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def permissions(self) -> _containers.RepeatedCompositeFieldContainer[_Permission_pb2.Permission]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - permissions: collections.abc.Iterable[feast.core.Permission_pb2.Permission] | None = ..., - pagination: global___PaginationMetadata | None = ..., + permissions: _abc.Iterable[_Permission_pb2.Permission] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "permissions", b"permissions"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "permissions", b"permissions"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListPermissionsResponse = ListPermissionsResponse +Global___ListPermissionsResponse: _TypeAlias = ListPermissionsResponse # noqa: Y015 -class DeletePermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeletePermissionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - project: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + project: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - project: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + project: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeletePermissionRequest = DeletePermissionRequest +Global___DeletePermissionRequest: _TypeAlias = DeletePermissionRequest # noqa: Y015 -class ApplyProjectRequest(google.protobuf.message.Message): +@_typing.final +class ApplyProjectRequest(_message.Message): """Projects""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - @property - def project(self) -> feast.core.Project_pb2.Project: ... - commit: builtins.bool + PROJECT_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + commit: _builtins.bool + @_builtins.property + def project(self) -> _Project_pb2.Project: ... def __init__( self, *, - project: feast.core.Project_pb2.Project | None = ..., - commit: builtins.bool = ..., + project: _Project_pb2.Project | None = ..., + commit: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["project", b"project"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "project", b"project"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["project", b"project"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ApplyProjectRequest = ApplyProjectRequest +Global___ApplyProjectRequest: _TypeAlias = ApplyProjectRequest # noqa: Y015 -class GetProjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetProjectRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - name: builtins.str - allow_cache: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + name: _builtins.str + allow_cache: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - allow_cache: builtins.bool = ..., + name: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetProjectRequest = GetProjectRequest +Global___GetProjectRequest: _TypeAlias = GetProjectRequest # noqa: Y015 -class ListProjectsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListProjectsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ALLOW_CACHE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - allow_cache: builtins.bool - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + allow_cache: _builtins.bool + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - allow_cache: builtins.bool = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + allow_cache: _builtins.bool = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListProjectsRequest = ListProjectsRequest +Global___ListProjectsRequest: _TypeAlias = ListProjectsRequest # noqa: Y015 -class ListProjectsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListProjectsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECTS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def projects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Project_pb2.Project]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... + PROJECTS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def projects(self) -> _containers.RepeatedCompositeFieldContainer[_Project_pb2.Project]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - projects: collections.abc.Iterable[feast.core.Project_pb2.Project] | None = ..., - pagination: global___PaginationMetadata | None = ..., + projects: _abc.Iterable[_Project_pb2.Project] | None = ..., + pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "projects", b"projects"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "projects", b"projects"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListProjectsResponse = ListProjectsResponse +Global___ListProjectsResponse: _TypeAlias = ListProjectsResponse # noqa: Y015 -class DeleteProjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteProjectRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - COMMIT_FIELD_NUMBER: builtins.int - name: builtins.str - commit: builtins.bool + NAME_FIELD_NUMBER: _builtins.int + COMMIT_FIELD_NUMBER: _builtins.int + name: _builtins.str + commit: _builtins.bool def __init__( self, *, - name: builtins.str = ..., - commit: builtins.bool = ..., + name: _builtins.str = ..., + commit: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteProjectRequest = DeleteProjectRequest +Global___DeleteProjectRequest: _TypeAlias = DeleteProjectRequest # noqa: Y015 -class EntityReference(google.protobuf.message.Message): +@_typing.final +class EntityReference(_message.Message): """Lineage""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - type: builtins.str + TYPE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + type: _builtins.str """"dataSource", "entity", "featureView", "featureService" """ - name: builtins.str + name: _builtins.str def __init__( self, *, - type: builtins.str = ..., - name: builtins.str = ..., + type: _builtins.str = ..., + name: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "type", b"type"]) -> None: ... - -global___EntityReference = EntityReference + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -class EntityRelation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +Global___EntityReference: _TypeAlias = EntityReference # noqa: Y015 - SOURCE_FIELD_NUMBER: builtins.int - TARGET_FIELD_NUMBER: builtins.int - @property - def source(self) -> global___EntityReference: ... - @property - def target(self) -> global___EntityReference: ... +@_typing.final +class EntityRelation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SOURCE_FIELD_NUMBER: _builtins.int + TARGET_FIELD_NUMBER: _builtins.int + @_builtins.property + def source(self) -> Global___EntityReference: ... + @_builtins.property + def target(self) -> Global___EntityReference: ... def __init__( self, *, - source: global___EntityReference | None = ..., - target: global___EntityReference | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["source", b"source", "target", b"target"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["source", b"source", "target", b"target"]) -> None: ... - -global___EntityRelation = EntityRelation - -class GetRegistryLineageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + source: Global___EntityReference | None = ..., + target: Global___EntityReference | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["source", b"source", "target", b"target"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["source", b"source", "target", b"target"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___EntityRelation: _TypeAlias = EntityRelation # noqa: Y015 + +@_typing.final +class GetRegistryLineageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - PROJECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - FILTER_OBJECT_TYPE_FIELD_NUMBER: builtins.int - FILTER_OBJECT_NAME_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - allow_cache: builtins.bool - filter_object_type: builtins.str - filter_object_name: builtins.str - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... + PROJECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + FILTER_OBJECT_TYPE_FIELD_NUMBER: _builtins.int + FILTER_OBJECT_NAME_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + allow_cache: _builtins.bool + filter_object_type: _builtins.str + filter_object_name: _builtins.str + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... def __init__( self, *, - project: builtins.str = ..., - allow_cache: builtins.bool = ..., - filter_object_type: builtins.str = ..., - filter_object_name: builtins.str = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., + project: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + filter_object_type: _builtins.str = ..., + filter_object_name: _builtins.str = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "filter_object_name", b"filter_object_name", "filter_object_type", b"filter_object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "filter_object_name", b"filter_object_name", "filter_object_type", b"filter_object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRegistryLineageRequest = GetRegistryLineageRequest +Global___GetRegistryLineageRequest: _TypeAlias = GetRegistryLineageRequest # noqa: Y015 -class GetRegistryLineageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetRegistryLineageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - RELATIONSHIPS_FIELD_NUMBER: builtins.int - INDIRECT_RELATIONSHIPS_FIELD_NUMBER: builtins.int - RELATIONSHIPS_PAGINATION_FIELD_NUMBER: builtins.int - INDIRECT_RELATIONSHIPS_PAGINATION_FIELD_NUMBER: builtins.int - @property - def relationships(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityRelation]: ... - @property - def indirect_relationships(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityRelation]: ... - @property - def relationships_pagination(self) -> global___PaginationMetadata: ... - @property - def indirect_relationships_pagination(self) -> global___PaginationMetadata: ... + RELATIONSHIPS_FIELD_NUMBER: _builtins.int + INDIRECT_RELATIONSHIPS_FIELD_NUMBER: _builtins.int + RELATIONSHIPS_PAGINATION_FIELD_NUMBER: _builtins.int + INDIRECT_RELATIONSHIPS_PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def relationships(self) -> _containers.RepeatedCompositeFieldContainer[Global___EntityRelation]: ... + @_builtins.property + def indirect_relationships(self) -> _containers.RepeatedCompositeFieldContainer[Global___EntityRelation]: ... + @_builtins.property + def relationships_pagination(self) -> Global___PaginationMetadata: ... + @_builtins.property + def indirect_relationships_pagination(self) -> Global___PaginationMetadata: ... def __init__( self, *, - relationships: collections.abc.Iterable[global___EntityRelation] | None = ..., - indirect_relationships: collections.abc.Iterable[global___EntityRelation] | None = ..., - relationships_pagination: global___PaginationMetadata | None = ..., - indirect_relationships_pagination: global___PaginationMetadata | None = ..., + relationships: _abc.Iterable[Global___EntityRelation] | None = ..., + indirect_relationships: _abc.Iterable[Global___EntityRelation] | None = ..., + relationships_pagination: Global___PaginationMetadata | None = ..., + indirect_relationships_pagination: Global___PaginationMetadata | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships_pagination", b"relationships_pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["indirect_relationships", b"indirect_relationships", "indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships", b"relationships", "relationships_pagination", b"relationships_pagination"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships_pagination", b"relationships_pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["indirect_relationships", b"indirect_relationships", "indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships", b"relationships", "relationships_pagination", b"relationships_pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRegistryLineageResponse = GetRegistryLineageResponse +Global___GetRegistryLineageResponse: _TypeAlias = GetRegistryLineageResponse # noqa: Y015 -class GetObjectRelationshipsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PROJECT_FIELD_NUMBER: builtins.int - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_NAME_FIELD_NUMBER: builtins.int - INCLUDE_INDIRECT_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - object_type: builtins.str - object_name: builtins.str - include_indirect: builtins.bool - allow_cache: builtins.bool - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... - def __init__( - self, - *, - project: builtins.str = ..., - object_type: builtins.str = ..., - object_name: builtins.str = ..., - include_indirect: builtins.bool = ..., - allow_cache: builtins.bool = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "include_indirect", b"include_indirect", "object_name", b"object_name", "object_type", b"object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"]) -> None: ... - -global___GetObjectRelationshipsRequest = GetObjectRelationshipsRequest - -class GetObjectRelationshipsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RELATIONSHIPS_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def relationships(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityRelation]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... - def __init__( - self, - *, - relationships: collections.abc.Iterable[global___EntityRelation] | None = ..., - pagination: global___PaginationMetadata | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "relationships", b"relationships"]) -> None: ... - -global___GetObjectRelationshipsResponse = GetObjectRelationshipsResponse - -class Feature(google.protobuf.message.Message): +@_typing.final +class GetObjectRelationshipsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PROJECT_FIELD_NUMBER: _builtins.int + OBJECT_TYPE_FIELD_NUMBER: _builtins.int + OBJECT_NAME_FIELD_NUMBER: _builtins.int + INCLUDE_INDIRECT_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + object_type: _builtins.str + object_name: _builtins.str + include_indirect: _builtins.bool + allow_cache: _builtins.bool + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... + def __init__( + self, + *, + project: _builtins.str = ..., + object_type: _builtins.str = ..., + object_name: _builtins.str = ..., + include_indirect: _builtins.bool = ..., + allow_cache: _builtins.bool = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "include_indirect", b"include_indirect", "object_name", b"object_name", "object_type", b"object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___GetObjectRelationshipsRequest: _TypeAlias = GetObjectRelationshipsRequest # noqa: Y015 + +@_typing.final +class GetObjectRelationshipsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + RELATIONSHIPS_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def relationships(self) -> _containers.RepeatedCompositeFieldContainer[Global___EntityRelation]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... + def __init__( + self, + *, + relationships: _abc.Iterable[Global___EntityRelation] | None = ..., + pagination: Global___PaginationMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "relationships", b"relationships"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___GetObjectRelationshipsResponse: _TypeAlias = GetObjectRelationshipsResponse # noqa: Y015 + +@_typing.final +class Feature(_message.Message): """Feature messages""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - FEATURE_VIEW_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - OWNER_FIELD_NUMBER: builtins.int - CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - name: builtins.str - feature_view: builtins.str - type: builtins.str - description: builtins.str - owner: builtins.str - @property - def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - def __init__( - self, - *, - name: builtins.str = ..., - feature_view: builtins.str = ..., - type: builtins.str = ..., - description: builtins.str = ..., - owner: builtins.str = ..., - created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view", b"feature_view", "last_updated_timestamp", b"last_updated_timestamp", "name", b"name", "owner", b"owner", "tags", b"tags", "type", b"type"]) -> None: ... - -global___Feature = Feature - -class ListFeaturesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PROJECT_FIELD_NUMBER: builtins.int - FEATURE_VIEW_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - SORTING_FIELD_NUMBER: builtins.int - project: builtins.str - feature_view: builtins.str - name: builtins.str - allow_cache: builtins.bool - @property - def pagination(self) -> global___PaginationParams: ... - @property - def sorting(self) -> global___SortingParams: ... - def __init__( - self, - *, - project: builtins.str = ..., - feature_view: builtins.str = ..., - name: builtins.str = ..., - allow_cache: builtins.bool = ..., - pagination: global___PaginationParams | None = ..., - sorting: global___SortingParams | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"]) -> None: ... - -global___ListFeaturesRequest = ListFeaturesRequest - -class ListFeaturesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FEATURES_FIELD_NUMBER: builtins.int - PAGINATION_FIELD_NUMBER: builtins.int - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Feature]: ... - @property - def pagination(self) -> global___PaginationMetadata: ... - def __init__( - self, - *, - features: collections.abc.Iterable[global___Feature] | None = ..., - pagination: global___PaginationMetadata | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["features", b"features", "pagination", b"pagination"]) -> None: ... - -global___ListFeaturesResponse = ListFeaturesResponse - -class GetFeatureRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PROJECT_FIELD_NUMBER: builtins.int - FEATURE_VIEW_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ALLOW_CACHE_FIELD_NUMBER: builtins.int - project: builtins.str - feature_view: builtins.str - name: builtins.str - allow_cache: builtins.bool - def __init__( - self, - *, - project: builtins.str = ..., - feature_view: builtins.str = ..., - name: builtins.str = ..., - allow_cache: builtins.bool = ..., + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NAME_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + OWNER_FIELD_NUMBER: _builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + name: _builtins.str + feature_view: _builtins.str + type: _builtins.str + description: _builtins.str + owner: _builtins.str + @_builtins.property + def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + def __init__( + self, + *, + name: _builtins.str = ..., + feature_view: _builtins.str = ..., + type: _builtins.str = ..., + description: _builtins.str = ..., + owner: _builtins.str = ..., + created_timestamp: _timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view", b"feature_view", "last_updated_timestamp", b"last_updated_timestamp", "name", b"name", "owner", b"owner", "tags", b"tags", "type", b"type"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Feature: _TypeAlias = Feature # noqa: Y015 + +@_typing.final +class ListFeaturesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PROJECT_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + SORTING_FIELD_NUMBER: _builtins.int + project: _builtins.str + feature_view: _builtins.str + name: _builtins.str + allow_cache: _builtins.bool + @_builtins.property + def pagination(self) -> Global___PaginationParams: ... + @_builtins.property + def sorting(self) -> Global___SortingParams: ... + def __init__( + self, + *, + project: _builtins.str = ..., + feature_view: _builtins.str = ..., + name: _builtins.str = ..., + allow_cache: _builtins.bool = ..., + pagination: Global___PaginationParams | None = ..., + sorting: Global___SortingParams | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ListFeaturesRequest: _TypeAlias = ListFeaturesRequest # noqa: Y015 + +@_typing.final +class ListFeaturesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + FEATURES_FIELD_NUMBER: _builtins.int + PAGINATION_FIELD_NUMBER: _builtins.int + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[Global___Feature]: ... + @_builtins.property + def pagination(self) -> Global___PaginationMetadata: ... + def __init__( + self, + *, + features: _abc.Iterable[Global___Feature] | None = ..., + pagination: Global___PaginationMetadata | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["features", b"features", "pagination", b"pagination"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ListFeaturesResponse: _TypeAlias = ListFeaturesResponse # noqa: Y015 + +@_typing.final +class GetFeatureRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PROJECT_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ALLOW_CACHE_FIELD_NUMBER: _builtins.int + project: _builtins.str + feature_view: _builtins.str + name: _builtins.str + allow_cache: _builtins.bool + def __init__( + self, + *, + project: _builtins.str = ..., + feature_view: _builtins.str = ..., + name: _builtins.str = ..., + allow_cache: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFeatureRequest = GetFeatureRequest +Global___GetFeatureRequest: _TypeAlias = GetFeatureRequest # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi b/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi index f87109e0fa5..4e40abd912f 100644 --- a/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi @@ -2,96 +2,107 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import feast.serving.ServingService_pb2 -import feast.types.EntityKey_pb2 -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.serving import ServingService_pb2 as _ServingService_pb2 # type: ignore[attr-defined] +from feast.types import EntityKey_pb2 as _EntityKey_pb2 # type: ignore[attr-defined] +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class ConnectorFeature(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ConnectorFeature(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - REFERENCE_FIELD_NUMBER: builtins.int - TIMESTAMP_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - @property - def reference(self) -> feast.serving.ServingService_pb2.FeatureReferenceV2: ... - @property - def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - @property - def value(self) -> feast.types.Value_pb2.Value: ... + REFERENCE_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + @_builtins.property + def reference(self) -> _ServingService_pb2.FeatureReferenceV2: ... + @_builtins.property + def timestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def value(self) -> _Value_pb2.Value: ... def __init__( self, *, - reference: feast.serving.ServingService_pb2.FeatureReferenceV2 | None = ..., - timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - value: feast.types.Value_pb2.Value | None = ..., + reference: _ServingService_pb2.FeatureReferenceV2 | None = ..., + timestamp: _timestamp_pb2.Timestamp | None = ..., + value: _Value_pb2.Value | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ConnectorFeature = ConnectorFeature +Global___ConnectorFeature: _TypeAlias = ConnectorFeature # noqa: Y015 -class ConnectorFeatureList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ConnectorFeatureList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURELIST_FIELD_NUMBER: builtins.int - @property - def featureList(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectorFeature]: ... + FEATURELIST_FIELD_NUMBER: _builtins.int + @_builtins.property + def featureList(self) -> _containers.RepeatedCompositeFieldContainer[Global___ConnectorFeature]: ... def __init__( self, *, - featureList: collections.abc.Iterable[global___ConnectorFeature] | None = ..., + featureList: _abc.Iterable[Global___ConnectorFeature] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["featureList", b"featureList"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["featureList", b"featureList"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ConnectorFeatureList = ConnectorFeatureList +Global___ConnectorFeatureList: _TypeAlias = ConnectorFeatureList # noqa: Y015 -class OnlineReadRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OnlineReadRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ENTITYKEYS_FIELD_NUMBER: builtins.int - VIEW_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - @property - def entityKeys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.EntityKey_pb2.EntityKey]: ... - view: builtins.str - @property - def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + ENTITYKEYS_FIELD_NUMBER: _builtins.int + VIEW_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + view: _builtins.str + @_builtins.property + def entityKeys(self) -> _containers.RepeatedCompositeFieldContainer[_EntityKey_pb2.EntityKey]: ... + @_builtins.property + def features(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... def __init__( self, *, - entityKeys: collections.abc.Iterable[feast.types.EntityKey_pb2.EntityKey] | None = ..., - view: builtins.str = ..., - features: collections.abc.Iterable[builtins.str] | None = ..., + entityKeys: _abc.Iterable[_EntityKey_pb2.EntityKey] | None = ..., + view: _builtins.str = ..., + features: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["entityKeys", b"entityKeys", "features", b"features", "view", b"view"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entityKeys", b"entityKeys", "features", b"features", "view", b"view"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OnlineReadRequest = OnlineReadRequest +Global___OnlineReadRequest: _TypeAlias = OnlineReadRequest # noqa: Y015 -class OnlineReadResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OnlineReadResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - RESULTS_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectorFeatureList]: ... + RESULTS_FIELD_NUMBER: _builtins.int + @_builtins.property + def results(self) -> _containers.RepeatedCompositeFieldContainer[Global___ConnectorFeatureList]: ... def __init__( self, *, - results: collections.abc.Iterable[global___ConnectorFeatureList] | None = ..., + results: _abc.Iterable[Global___ConnectorFeatureList] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["results", b"results"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OnlineReadResponse = OnlineReadResponse +Global___OnlineReadResponse: _TypeAlias = OnlineReadResponse # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi b/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi index a83cd87a16e..f63321d5d36 100644 --- a/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi @@ -2,162 +2,182 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class PushRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PushRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class FeaturesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class FeaturesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - class TypedFeaturesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> feast.types.Value_pb2.Value: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class TypedFeaturesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> _Value_pb2.Value: ... def __init__( self, *, - key: builtins.str = ..., - value: feast.types.Value_pb2.Value | None = ..., + key: _builtins.str = ..., + value: _Value_pb2.Value | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - FEATURES_FIELD_NUMBER: builtins.int - STREAM_FEATURE_VIEW_FIELD_NUMBER: builtins.int - ALLOW_REGISTRY_CACHE_FIELD_NUMBER: builtins.int - TO_FIELD_NUMBER: builtins.int - TYPED_FEATURES_FIELD_NUMBER: builtins.int - @property - def features(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - stream_feature_view: builtins.str - allow_registry_cache: builtins.bool - to: builtins.str - @property - def typed_features(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + FEATURES_FIELD_NUMBER: _builtins.int + STREAM_FEATURE_VIEW_FIELD_NUMBER: _builtins.int + ALLOW_REGISTRY_CACHE_FIELD_NUMBER: _builtins.int + TO_FIELD_NUMBER: _builtins.int + TYPED_FEATURES_FIELD_NUMBER: _builtins.int + stream_feature_view: _builtins.str + allow_registry_cache: _builtins.bool + to: _builtins.str + @_builtins.property + def features(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def typed_features(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.Value]: ... def __init__( self, *, - features: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - stream_feature_view: builtins.str = ..., - allow_registry_cache: builtins.bool = ..., - to: builtins.str = ..., - typed_features: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., + features: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + stream_feature_view: _builtins.str = ..., + allow_registry_cache: _builtins.bool = ..., + to: _builtins.str = ..., + typed_features: _abc.Mapping[_builtins.str, _Value_pb2.Value] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_registry_cache", b"allow_registry_cache", "features", b"features", "stream_feature_view", b"stream_feature_view", "to", b"to", "typed_features", b"typed_features"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_registry_cache", b"allow_registry_cache", "features", b"features", "stream_feature_view", b"stream_feature_view", "to", b"to", "typed_features", b"typed_features"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PushRequest = PushRequest +Global___PushRequest: _TypeAlias = PushRequest # noqa: Y015 -class PushResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PushResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int - status: builtins.bool + STATUS_FIELD_NUMBER: _builtins.int + status: _builtins.bool def __init__( self, *, - status: builtins.bool = ..., + status: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PushResponse = PushResponse +Global___PushResponse: _TypeAlias = PushResponse # noqa: Y015 -class WriteToOnlineStoreRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class WriteToOnlineStoreRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class FeaturesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class FeaturesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - class TypedFeaturesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> feast.types.Value_pb2.Value: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class TypedFeaturesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> _Value_pb2.Value: ... def __init__( self, *, - key: builtins.str = ..., - value: feast.types.Value_pb2.Value | None = ..., + key: _builtins.str = ..., + value: _Value_pb2.Value | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - FEATURES_FIELD_NUMBER: builtins.int - FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int - ALLOW_REGISTRY_CACHE_FIELD_NUMBER: builtins.int - TYPED_FEATURES_FIELD_NUMBER: builtins.int - @property - def features(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - feature_view_name: builtins.str - allow_registry_cache: builtins.bool - @property - def typed_features(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + FEATURES_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int + ALLOW_REGISTRY_CACHE_FIELD_NUMBER: _builtins.int + TYPED_FEATURES_FIELD_NUMBER: _builtins.int + feature_view_name: _builtins.str + allow_registry_cache: _builtins.bool + @_builtins.property + def features(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def typed_features(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.Value]: ... def __init__( self, *, - features: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - feature_view_name: builtins.str = ..., - allow_registry_cache: builtins.bool = ..., - typed_features: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., + features: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + feature_view_name: _builtins.str = ..., + allow_registry_cache: _builtins.bool = ..., + typed_features: _abc.Mapping[_builtins.str, _Value_pb2.Value] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["allow_registry_cache", b"allow_registry_cache", "feature_view_name", b"feature_view_name", "features", b"features", "typed_features", b"typed_features"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_registry_cache", b"allow_registry_cache", "feature_view_name", b"feature_view_name", "features", b"features", "typed_features", b"typed_features"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___WriteToOnlineStoreRequest = WriteToOnlineStoreRequest +Global___WriteToOnlineStoreRequest: _TypeAlias = WriteToOnlineStoreRequest # noqa: Y015 -class WriteToOnlineStoreResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class WriteToOnlineStoreResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int - status: builtins.bool + STATUS_FIELD_NUMBER: _builtins.int + status: _builtins.bool def __init__( self, *, - status: builtins.bool = ..., + status: _builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___WriteToOnlineStoreResponse = WriteToOnlineStoreResponse +Global___WriteToOnlineStoreResponse: _TypeAlias = WriteToOnlineStoreResponse # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi b/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi index 1804ce0428e..5aca6dc73ab 100644 --- a/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi @@ -16,30 +16,31 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor class _FieldStatus: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 -class _FieldStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FieldStatus.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _FieldStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_FieldStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor INVALID: _FieldStatus.ValueType # 0 """Status is unset for this field.""" PRESENT: _FieldStatus.ValueType # 1 @@ -77,300 +78,345 @@ OUTSIDE_MAX_AGE: FieldStatus.ValueType # 4 """Values could be found for entity key, but field values are outside the maximum allowable range. """ -global___FieldStatus = FieldStatus +Global___FieldStatus: _TypeAlias = FieldStatus # noqa: Y015 -class GetFeastServingInfoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetFeastServingInfoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__( self, ) -> None: ... -global___GetFeastServingInfoRequest = GetFeastServingInfoRequest +Global___GetFeastServingInfoRequest: _TypeAlias = GetFeastServingInfoRequest # noqa: Y015 -class GetFeastServingInfoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetFeastServingInfoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int - version: builtins.str + VERSION_FIELD_NUMBER: _builtins.int + version: _builtins.str """Feast version of this serving deployment.""" def __init__( self, *, - version: builtins.str = ..., + version: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["version", b"version"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFeastServingInfoResponse = GetFeastServingInfoResponse +Global___GetFeastServingInfoResponse: _TypeAlias = GetFeastServingInfoResponse # noqa: Y015 -class FeatureReferenceV2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureReferenceV2(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int - FEATURE_NAME_FIELD_NUMBER: builtins.int - feature_view_name: builtins.str + FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int + FEATURE_NAME_FIELD_NUMBER: _builtins.int + feature_view_name: _builtins.str """Name of the Feature View to retrieve the feature from.""" - feature_name: builtins.str + feature_name: _builtins.str """Name of the Feature to retrieve the feature from.""" def __init__( self, *, - feature_view_name: builtins.str = ..., - feature_name: builtins.str = ..., + feature_view_name: _builtins.str = ..., + feature_name: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_name", b"feature_name", "feature_view_name", b"feature_view_name"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_name", b"feature_name", "feature_view_name", b"feature_view_name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureReferenceV2 = FeatureReferenceV2 +Global___FeatureReferenceV2: _TypeAlias = FeatureReferenceV2 # noqa: Y015 -class GetOnlineFeaturesRequestV2(google.protobuf.message.Message): +@_typing.final +class GetOnlineFeaturesRequestV2(_message.Message): """ToDo (oleksii): remove this message (since it's not used) and move EntityRow on package level""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - class EntityRow(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class EntityRow(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class FieldsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class FieldsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> feast.types.Value_pb2.Value: ... + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> _Value_pb2.Value: ... def __init__( self, *, - key: builtins.str = ..., - value: feast.types.Value_pb2.Value | None = ..., + key: _builtins.str = ..., + value: _Value_pb2.Value | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - TIMESTAMP_FIELD_NUMBER: builtins.int - FIELDS_FIELD_NUMBER: builtins.int - @property - def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + TIMESTAMP_FIELD_NUMBER: _builtins.int + FIELDS_FIELD_NUMBER: _builtins.int + @_builtins.property + def timestamp(self) -> _timestamp_pb2.Timestamp: """Request timestamp of this row. This value will be used, together with maxAge, to determine feature staleness. """ - @property - def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: + + @_builtins.property + def fields(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.Value]: """Map containing mapping of entity name to entity value.""" + def __init__( self, *, - timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., - fields: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., + timestamp: _timestamp_pb2.Timestamp | None = ..., + fields: _abc.Mapping[_builtins.str, _Value_pb2.Value] | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "timestamp", b"timestamp"]) -> None: ... - - FEATURES_FIELD_NUMBER: builtins.int - ENTITY_ROWS_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - @property - def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureReferenceV2]: + _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["fields", b"fields", "timestamp", b"timestamp"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + FEATURES_FIELD_NUMBER: _builtins.int + ENTITY_ROWS_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + project: _builtins.str + """Optional field to specify project name override. If specified, uses the + given project for retrieval. Overrides the projects specified in + Feature References if both are specified. + """ + @_builtins.property + def features(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureReferenceV2]: """List of features that are being retrieved""" - @property - def entity_rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesRequestV2.EntityRow]: + + @_builtins.property + def entity_rows(self) -> _containers.RepeatedCompositeFieldContainer[Global___GetOnlineFeaturesRequestV2.EntityRow]: """List of entity rows, containing entity id and timestamp data. Used during retrieval of feature rows and for joining feature rows into a final dataset """ - project: builtins.str - """Optional field to specify project name override. If specified, uses the - given project for retrieval. Overrides the projects specified in - Feature References if both are specified. - """ + def __init__( self, *, - features: collections.abc.Iterable[global___FeatureReferenceV2] | None = ..., - entity_rows: collections.abc.Iterable[global___GetOnlineFeaturesRequestV2.EntityRow] | None = ..., - project: builtins.str = ..., + features: _abc.Iterable[Global___FeatureReferenceV2] | None = ..., + entity_rows: _abc.Iterable[Global___GetOnlineFeaturesRequestV2.EntityRow] | None = ..., + project: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["entity_rows", b"entity_rows", "features", b"features", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entity_rows", b"entity_rows", "features", b"features", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOnlineFeaturesRequestV2 = GetOnlineFeaturesRequestV2 +Global___GetOnlineFeaturesRequestV2: _TypeAlias = GetOnlineFeaturesRequestV2 # noqa: Y015 -class FeatureList(google.protobuf.message.Message): +@_typing.final +class FeatureList(_message.Message): """In JSON "val" field can be omitted""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.str] | None = ..., + val: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureList = FeatureList +Global___FeatureList: _TypeAlias = FeatureList # noqa: Y015 -class GetOnlineFeaturesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetOnlineFeaturesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class EntitiesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class EntitiesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> feast.types.Value_pb2.RepeatedValue: ... + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> _Value_pb2.RepeatedValue: ... def __init__( self, *, - key: builtins.str = ..., - value: feast.types.Value_pb2.RepeatedValue | None = ..., + key: _builtins.str = ..., + value: _Value_pb2.RepeatedValue | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - class RequestContextEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> feast.types.Value_pb2.RepeatedValue: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class RequestContextEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> _Value_pb2.RepeatedValue: ... def __init__( self, *, - key: builtins.str = ..., - value: feast.types.Value_pb2.RepeatedValue | None = ..., + key: _builtins.str = ..., + value: _Value_pb2.RepeatedValue | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - FEATURE_SERVICE_FIELD_NUMBER: builtins.int - FEATURES_FIELD_NUMBER: builtins.int - ENTITIES_FIELD_NUMBER: builtins.int - FULL_FEATURE_NAMES_FIELD_NUMBER: builtins.int - REQUEST_CONTEXT_FIELD_NUMBER: builtins.int - INCLUDE_FEATURE_VIEW_VERSION_METADATA_FIELD_NUMBER: builtins.int - feature_service: builtins.str - @property - def features(self) -> global___FeatureList: ... - @property - def entities(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.RepeatedValue]: + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + FEATURE_SERVICE_FIELD_NUMBER: _builtins.int + FEATURES_FIELD_NUMBER: _builtins.int + ENTITIES_FIELD_NUMBER: _builtins.int + FULL_FEATURE_NAMES_FIELD_NUMBER: _builtins.int + REQUEST_CONTEXT_FIELD_NUMBER: _builtins.int + INCLUDE_FEATURE_VIEW_VERSION_METADATA_FIELD_NUMBER: _builtins.int + feature_service: _builtins.str + full_feature_names: _builtins.bool + include_feature_view_version_metadata: _builtins.bool + """Whether to include feature view version metadata in the response""" + @_builtins.property + def features(self) -> Global___FeatureList: ... + @_builtins.property + def entities(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.RepeatedValue]: """The entity data is specified in a columnar format A map of entity name -> list of values """ - full_feature_names: builtins.bool - @property - def request_context(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.RepeatedValue]: + + @_builtins.property + def request_context(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.RepeatedValue]: """Context for OnDemand Feature Transformation (was moved to dedicated parameter to avoid unnecessary separation logic on serving side) A map of variable name -> list of values """ - include_feature_view_version_metadata: builtins.bool - """Whether to include feature view version metadata in the response""" + def __init__( self, *, - feature_service: builtins.str = ..., - features: global___FeatureList | None = ..., - entities: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.RepeatedValue] | None = ..., - full_feature_names: builtins.bool = ..., - request_context: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.RepeatedValue] | None = ..., - include_feature_view_version_metadata: builtins.bool = ..., + feature_service: _builtins.str = ..., + features: Global___FeatureList | None = ..., + entities: _abc.Mapping[_builtins.str, _Value_pb2.RepeatedValue] | None = ..., + full_feature_names: _builtins.bool = ..., + request_context: _abc.Mapping[_builtins.str, _Value_pb2.RepeatedValue] | None = ..., + include_feature_view_version_metadata: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["feature_service", b"feature_service", "features", b"features", "kind", b"kind"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities", "feature_service", b"feature_service", "features", b"features", "full_feature_names", b"full_feature_names", "include_feature_view_version_metadata", b"include_feature_view_version_metadata", "kind", b"kind", "request_context", b"request_context"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["feature_service", "features"] | None: ... - -global___GetOnlineFeaturesRequest = GetOnlineFeaturesRequest - -class GetOnlineFeaturesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class FeatureVector(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALUES_FIELD_NUMBER: builtins.int - STATUSES_FIELD_NUMBER: builtins.int - EVENT_TIMESTAMPS_FIELD_NUMBER: builtins.int - @property - def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... - @property - def statuses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___FieldStatus.ValueType]: ... - @property - def event_timestamps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feature_service", b"feature_service", "features", b"features", "kind", b"kind"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entities", b"entities", "feature_service", b"feature_service", "features", b"features", "full_feature_names", b"full_feature_names", "include_feature_view_version_metadata", b"include_feature_view_version_metadata", "kind", b"kind", "request_context", b"request_context"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_kind: _TypeAlias = _typing.Literal["feature_service", "features"] # noqa: Y015 + _WhichOneofArgType_kind: _TypeAlias = _typing.Literal["kind", b"kind"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_kind) -> _WhichOneofReturnType_kind | None: ... + +Global___GetOnlineFeaturesRequest: _TypeAlias = GetOnlineFeaturesRequest # noqa: Y015 + +@_typing.final +class GetOnlineFeaturesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class FeatureVector(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + VALUES_FIELD_NUMBER: _builtins.int + STATUSES_FIELD_NUMBER: _builtins.int + EVENT_TIMESTAMPS_FIELD_NUMBER: _builtins.int + @_builtins.property + def values(self) -> _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value]: ... + @_builtins.property + def statuses(self) -> _containers.RepeatedScalarFieldContainer[Global___FieldStatus.ValueType]: ... + @_builtins.property + def event_timestamps(self) -> _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]: ... def __init__( self, *, - values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., - statuses: collections.abc.Iterable[global___FieldStatus.ValueType] | None = ..., - event_timestamps: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ..., + values: _abc.Iterable[_Value_pb2.Value] | None = ..., + statuses: _abc.Iterable[Global___FieldStatus.ValueType] | None = ..., + event_timestamps: _abc.Iterable[_timestamp_pb2.Timestamp] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["event_timestamps", b"event_timestamps", "statuses", b"statuses", "values", b"values"]) -> None: ... - - METADATA_FIELD_NUMBER: builtins.int - RESULTS_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - @property - def metadata(self) -> global___GetOnlineFeaturesResponseMetadata: ... - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesResponse.FeatureVector]: + _ClearFieldArgType: _TypeAlias = _typing.Literal["event_timestamps", b"event_timestamps", "statuses", b"statuses", "values", b"values"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + METADATA_FIELD_NUMBER: _builtins.int + RESULTS_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + status: _builtins.bool + @_builtins.property + def metadata(self) -> Global___GetOnlineFeaturesResponseMetadata: ... + @_builtins.property + def results(self) -> _containers.RepeatedCompositeFieldContainer[Global___GetOnlineFeaturesResponse.FeatureVector]: """Length of "results" array should match length of requested features. We also preserve the same order of features here as in metadata.feature_names """ - status: builtins.bool + def __init__( self, *, - metadata: global___GetOnlineFeaturesResponseMetadata | None = ..., - results: collections.abc.Iterable[global___GetOnlineFeaturesResponse.FeatureVector] | None = ..., - status: builtins.bool = ..., + metadata: Global___GetOnlineFeaturesResponseMetadata | None = ..., + results: _abc.Iterable[Global___GetOnlineFeaturesResponse.FeatureVector] | None = ..., + status: _builtins.bool = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "results", b"results", "status", b"status"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "results", b"results", "status", b"status"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOnlineFeaturesResponse = GetOnlineFeaturesResponse +Global___GetOnlineFeaturesResponse: _TypeAlias = GetOnlineFeaturesResponse # noqa: Y015 -class FeatureViewMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FeatureViewMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - name: builtins.str + NAME_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + name: _builtins.str """Feature view name (e.g., "driver_stats")""" - version: builtins.int + version: _builtins.int """Version number (e.g., 2)""" def __init__( self, *, - name: builtins.str = ..., - version: builtins.int = ..., + name: _builtins.str = ..., + version: _builtins.int = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "version", b"version"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FeatureViewMetadata = FeatureViewMetadata +Global___FeatureViewMetadata: _TypeAlias = FeatureViewMetadata # noqa: Y015 -class GetOnlineFeaturesResponseMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetOnlineFeaturesResponseMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - FEATURE_NAMES_FIELD_NUMBER: builtins.int - FEATURE_VIEW_METADATA_FIELD_NUMBER: builtins.int - @property - def feature_names(self) -> global___FeatureList: + FEATURE_NAMES_FIELD_NUMBER: _builtins.int + FEATURE_VIEW_METADATA_FIELD_NUMBER: _builtins.int + @_builtins.property + def feature_names(self) -> Global___FeatureList: """Clean feature names without @v2 syntax""" - @property - def feature_view_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewMetadata]: + + @_builtins.property + def feature_view_metadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureViewMetadata]: """Only populated when requested""" + def __init__( self, *, - feature_names: global___FeatureList | None = ..., - feature_view_metadata: collections.abc.Iterable[global___FeatureViewMetadata] | None = ..., + feature_names: Global___FeatureList | None = ..., + feature_view_metadata: _abc.Iterable[Global___FeatureViewMetadata] | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["feature_names", b"feature_names"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["feature_names", b"feature_names", "feature_view_metadata", b"feature_view_metadata"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["feature_names", b"feature_names"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_names", b"feature_names", "feature_view_metadata", b"feature_view_metadata"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOnlineFeaturesResponseMetadata = GetOnlineFeaturesResponseMetadata +Global___GetOnlineFeaturesResponseMetadata: _TypeAlias = GetOnlineFeaturesResponseMetadata # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi b/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi index 3e0752b7bdd..f21ebfd05f8 100644 --- a/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi @@ -16,26 +16,27 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor class _TransformationServiceType: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 -class _TransformationServiceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransformationServiceType.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _TransformationServiceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TransformationServiceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor TRANSFORMATION_SERVICE_TYPE_INVALID: _TransformationServiceType.ValueType # 0 TRANSFORMATION_SERVICE_TYPE_PYTHON: _TransformationServiceType.ValueType # 1 TRANSFORMATION_SERVICE_TYPE_CUSTOM: _TransformationServiceType.ValueType # 100 @@ -45,92 +46,106 @@ class TransformationServiceType(_TransformationServiceType, metaclass=_Transform TRANSFORMATION_SERVICE_TYPE_INVALID: TransformationServiceType.ValueType # 0 TRANSFORMATION_SERVICE_TYPE_PYTHON: TransformationServiceType.ValueType # 1 TRANSFORMATION_SERVICE_TYPE_CUSTOM: TransformationServiceType.ValueType # 100 -global___TransformationServiceType = TransformationServiceType +Global___TransformationServiceType: _TypeAlias = TransformationServiceType # noqa: Y015 -class ValueType(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ValueType(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - ARROW_VALUE_FIELD_NUMBER: builtins.int - arrow_value: builtins.bytes + ARROW_VALUE_FIELD_NUMBER: _builtins.int + arrow_value: _builtins.bytes """Having a oneOf provides forward compatibility if we need to support compound types that are not supported by arrow natively. """ def __init__( self, *, - arrow_value: builtins.bytes = ..., + arrow_value: _builtins.bytes = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["arrow_value", b"arrow_value", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["arrow_value", b"arrow_value", "value", b"value"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["arrow_value"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["arrow_value", b"arrow_value", "value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["arrow_value", b"arrow_value", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_value: _TypeAlias = _typing.Literal["arrow_value"] # noqa: Y015 + _WhichOneofArgType_value: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_value) -> _WhichOneofReturnType_value | None: ... -global___ValueType = ValueType +Global___ValueType: _TypeAlias = ValueType # noqa: Y015 -class GetTransformationServiceInfoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetTransformationServiceInfoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__( self, ) -> None: ... -global___GetTransformationServiceInfoRequest = GetTransformationServiceInfoRequest +Global___GetTransformationServiceInfoRequest: _TypeAlias = GetTransformationServiceInfoRequest # noqa: Y015 -class GetTransformationServiceInfoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetTransformationServiceInfoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - TRANSFORMATION_SERVICE_TYPE_DETAILS_FIELD_NUMBER: builtins.int - version: builtins.str + VERSION_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + TRANSFORMATION_SERVICE_TYPE_DETAILS_FIELD_NUMBER: _builtins.int + version: _builtins.str """Feast version of this transformation service deployment.""" - type: global___TransformationServiceType.ValueType + type: Global___TransformationServiceType.ValueType """Type of transformation service deployment. This is either Python, or custom""" - transformation_service_type_details: builtins.str + transformation_service_type_details: _builtins.str def __init__( self, *, - version: builtins.str = ..., - type: global___TransformationServiceType.ValueType = ..., - transformation_service_type_details: builtins.str = ..., + version: _builtins.str = ..., + type: Global___TransformationServiceType.ValueType = ..., + transformation_service_type_details: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["transformation_service_type_details", b"transformation_service_type_details", "type", b"type", "version", b"version"]) -> None: ... - -global___GetTransformationServiceInfoResponse = GetTransformationServiceInfoResponse - -class TransformFeaturesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - ON_DEMAND_FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int - PROJECT_FIELD_NUMBER: builtins.int - TRANSFORMATION_INPUT_FIELD_NUMBER: builtins.int - on_demand_feature_view_name: builtins.str - project: builtins.str - @property - def transformation_input(self) -> global___ValueType: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["transformation_service_type_details", b"transformation_service_type_details", "type", b"type", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___GetTransformationServiceInfoResponse: _TypeAlias = GetTransformationServiceInfoResponse # noqa: Y015 + +@_typing.final +class TransformFeaturesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + ON_DEMAND_FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int + PROJECT_FIELD_NUMBER: _builtins.int + TRANSFORMATION_INPUT_FIELD_NUMBER: _builtins.int + on_demand_feature_view_name: _builtins.str + project: _builtins.str + @_builtins.property + def transformation_input(self) -> Global___ValueType: ... def __init__( self, *, - on_demand_feature_view_name: builtins.str = ..., - project: builtins.str = ..., - transformation_input: global___ValueType | None = ..., + on_demand_feature_view_name: _builtins.str = ..., + project: _builtins.str = ..., + transformation_input: Global___ValueType | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["transformation_input", b"transformation_input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["on_demand_feature_view_name", b"on_demand_feature_view_name", "project", b"project", "transformation_input", b"transformation_input"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["transformation_input", b"transformation_input"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["on_demand_feature_view_name", b"on_demand_feature_view_name", "project", b"project", "transformation_input", b"transformation_input"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransformFeaturesRequest = TransformFeaturesRequest +Global___TransformFeaturesRequest: _TypeAlias = TransformFeaturesRequest # noqa: Y015 -class TransformFeaturesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class TransformFeaturesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - TRANSFORMATION_OUTPUT_FIELD_NUMBER: builtins.int - @property - def transformation_output(self) -> global___ValueType: ... + TRANSFORMATION_OUTPUT_FIELD_NUMBER: _builtins.int + @_builtins.property + def transformation_output(self) -> Global___ValueType: ... def __init__( self, *, - transformation_output: global___ValueType | None = ..., + transformation_output: Global___ValueType | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["transformation_output", b"transformation_output"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["transformation_output", b"transformation_output"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["transformation_output", b"transformation_output"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["transformation_output", b"transformation_output"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransformFeaturesResponse = TransformFeaturesResponse +Global___TransformFeaturesResponse: _TypeAlias = TransformFeaturesResponse # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi b/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi index 74cc2b07f0a..4ff2f7c6d14 100644 --- a/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi +++ b/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi @@ -16,39 +16,43 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class RedisKeyV2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PROJECT_FIELD_NUMBER: builtins.int - ENTITY_NAMES_FIELD_NUMBER: builtins.int - ENTITY_VALUES_FIELD_NUMBER: builtins.int - project: builtins.str - @property - def entity_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def entity_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... + from typing_extensions import TypeAlias as _TypeAlias + +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class RedisKeyV2(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + PROJECT_FIELD_NUMBER: _builtins.int + ENTITY_NAMES_FIELD_NUMBER: _builtins.int + ENTITY_VALUES_FIELD_NUMBER: _builtins.int + project: _builtins.str + @_builtins.property + def entity_names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + @_builtins.property + def entity_values(self) -> _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value]: ... def __init__( self, *, - project: builtins.str = ..., - entity_names: collections.abc.Iterable[builtins.str] | None = ..., - entity_values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., + project: _builtins.str = ..., + entity_names: _abc.Iterable[_builtins.str] | None = ..., + entity_values: _abc.Iterable[_Value_pb2.Value] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["entity_names", b"entity_names", "entity_values", b"entity_values", "project", b"project"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entity_names", b"entity_names", "entity_values", b"entity_values", "project", b"project"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RedisKeyV2 = RedisKeyV2 +Global___RedisKeyV2: _TypeAlias = RedisKeyV2 # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi b/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi index fe65e0c1b32..b3c1c18549b 100644 --- a/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi +++ b/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi @@ -16,36 +16,40 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class EntityKey(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EntityKey(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - JOIN_KEYS_FIELD_NUMBER: builtins.int - ENTITY_VALUES_FIELD_NUMBER: builtins.int - @property - def join_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def entity_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... + JOIN_KEYS_FIELD_NUMBER: _builtins.int + ENTITY_VALUES_FIELD_NUMBER: _builtins.int + @_builtins.property + def join_keys(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + @_builtins.property + def entity_values(self) -> _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value]: ... def __init__( self, *, - join_keys: collections.abc.Iterable[builtins.str] | None = ..., - entity_values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., + join_keys: _abc.Iterable[_builtins.str] | None = ..., + entity_values: _abc.Iterable[_Value_pb2.Value] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["entity_values", b"entity_values", "join_keys", b"join_keys"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["entity_values", b"entity_values", "join_keys", b"join_keys"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EntityKey = EntityKey +Global___EntityKey: _TypeAlias = EntityKey # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/types/Field_pb2.pyi b/sdk/python/feast/protos/feast/types/Field_pb2.pyi index 28a21942378..0a98517bec2 100644 --- a/sdk/python/feast/protos/feast/types/Field_pb2.pyi +++ b/sdk/python/feast/protos/feast/types/Field_pb2.pyi @@ -16,58 +16,65 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import feast.types.Value_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message + +from collections import abc as _abc +from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor -class Field(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Field(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class TagsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str def __init__( self, *, - key: builtins.str = ..., - value: builtins.str = ..., + key: _builtins.str = ..., + value: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - NAME_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - name: builtins.str - value: feast.types.Value_pb2.ValueType.Enum.ValueType - @property - def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """Tags for user defined metadata on a field""" - description: builtins.str + NAME_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + name: _builtins.str + value: _Value_pb2.ValueType.Enum.ValueType + description: _builtins.str """Description of the field.""" + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + """Tags for user defined metadata on a field""" + def __init__( self, *, - name: builtins.str = ..., - value: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., - tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - description: builtins.str = ..., + name: _builtins.str = ..., + value: _Value_pb2.ValueType.Enum.ValueType = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + description: _builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "tags", b"tags", "value", b"value"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "name", b"name", "tags", b"tags", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Field = Field +Global___Field: _TypeAlias = Field # noqa: Y015 diff --git a/sdk/python/feast/protos/feast/types/Value_pb2.py b/sdk/python/feast/protos/feast/types/Value_pb2.py index 3f6e55d3005..e8c67b76c3f 100644 --- a/sdk/python/feast/protos/feast/types/Value_pb2.py +++ b/sdk/python/feast/protos/feast/types/Value_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/types/Value.proto\x12\x0b\x66\x65\x61st.types\"\x92\x05\n\tValueType\"\x84\x05\n\x04\x45num\x12\x0b\n\x07INVALID\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\n\n\x06STRING\x10\x02\x12\t\n\x05INT32\x10\x03\x12\t\n\x05INT64\x10\x04\x12\n\n\x06\x44OUBLE\x10\x05\x12\t\n\x05\x46LOAT\x10\x06\x12\x08\n\x04\x42OOL\x10\x07\x12\x12\n\x0eUNIX_TIMESTAMP\x10\x08\x12\x0e\n\nBYTES_LIST\x10\x0b\x12\x0f\n\x0bSTRING_LIST\x10\x0c\x12\x0e\n\nINT32_LIST\x10\r\x12\x0e\n\nINT64_LIST\x10\x0e\x12\x0f\n\x0b\x44OUBLE_LIST\x10\x0f\x12\x0e\n\nFLOAT_LIST\x10\x10\x12\r\n\tBOOL_LIST\x10\x11\x12\x17\n\x13UNIX_TIMESTAMP_LIST\x10\x12\x12\x08\n\x04NULL\x10\x13\x12\x07\n\x03MAP\x10\x14\x12\x0c\n\x08MAP_LIST\x10\x15\x12\r\n\tBYTES_SET\x10\x16\x12\x0e\n\nSTRING_SET\x10\x17\x12\r\n\tINT32_SET\x10\x18\x12\r\n\tINT64_SET\x10\x19\x12\x0e\n\nDOUBLE_SET\x10\x1a\x12\r\n\tFLOAT_SET\x10\x1b\x12\x0c\n\x08\x42OOL_SET\x10\x1c\x12\x16\n\x12UNIX_TIMESTAMP_SET\x10\x1d\x12\x08\n\x04JSON\x10 \x12\r\n\tJSON_LIST\x10!\x12\n\n\x06STRUCT\x10\"\x12\x0f\n\x0bSTRUCT_LIST\x10#\x12\x08\n\x04UUID\x10$\x12\r\n\tTIME_UUID\x10%\x12\r\n\tUUID_LIST\x10&\x12\x12\n\x0eTIME_UUID_LIST\x10\'\x12\x0c\n\x08UUID_SET\x10(\x12\x11\n\rTIME_UUID_SET\x10)\x12\x0e\n\nVALUE_LIST\x10*\x12\r\n\tVALUE_SET\x10+\x12\x0b\n\x07\x44\x45\x43IMAL\x10,\x12\x10\n\x0c\x44\x45\x43IMAL_LIST\x10-\x12\x0f\n\x0b\x44\x45\x43IMAL_SET\x10.\"\xd8\r\n\x05Value\x12\x13\n\tbytes_val\x18\x01 \x01(\x0cH\x00\x12\x14\n\nstring_val\x18\x02 \x01(\tH\x00\x12\x13\n\tint32_val\x18\x03 \x01(\x05H\x00\x12\x13\n\tint64_val\x18\x04 \x01(\x03H\x00\x12\x14\n\ndouble_val\x18\x05 \x01(\x01H\x00\x12\x13\n\tfloat_val\x18\x06 \x01(\x02H\x00\x12\x12\n\x08\x62ool_val\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12unix_timestamp_val\x18\x08 \x01(\x03H\x00\x12\x30\n\x0e\x62ytes_list_val\x18\x0b \x01(\x0b\x32\x16.feast.types.BytesListH\x00\x12\x32\n\x0fstring_list_val\x18\x0c \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x30\n\x0eint32_list_val\x18\r \x01(\x0b\x32\x16.feast.types.Int32ListH\x00\x12\x30\n\x0eint64_list_val\x18\x0e \x01(\x0b\x32\x16.feast.types.Int64ListH\x00\x12\x32\n\x0f\x64ouble_list_val\x18\x0f \x01(\x0b\x32\x17.feast.types.DoubleListH\x00\x12\x30\n\x0e\x66loat_list_val\x18\x10 \x01(\x0b\x32\x16.feast.types.FloatListH\x00\x12.\n\rbool_list_val\x18\x11 \x01(\x0b\x32\x15.feast.types.BoolListH\x00\x12\x39\n\x17unix_timestamp_list_val\x18\x12 \x01(\x0b\x32\x16.feast.types.Int64ListH\x00\x12%\n\x08null_val\x18\x13 \x01(\x0e\x32\x11.feast.types.NullH\x00\x12#\n\x07map_val\x18\x14 \x01(\x0b\x32\x10.feast.types.MapH\x00\x12,\n\x0cmap_list_val\x18\x15 \x01(\x0b\x32\x14.feast.types.MapListH\x00\x12.\n\rbytes_set_val\x18\x16 \x01(\x0b\x32\x15.feast.types.BytesSetH\x00\x12\x30\n\x0estring_set_val\x18\x17 \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12.\n\rint32_set_val\x18\x18 \x01(\x0b\x32\x15.feast.types.Int32SetH\x00\x12.\n\rint64_set_val\x18\x19 \x01(\x0b\x32\x15.feast.types.Int64SetH\x00\x12\x30\n\x0e\x64ouble_set_val\x18\x1a \x01(\x0b\x32\x16.feast.types.DoubleSetH\x00\x12.\n\rfloat_set_val\x18\x1b \x01(\x0b\x32\x15.feast.types.FloatSetH\x00\x12,\n\x0c\x62ool_set_val\x18\x1c \x01(\x0b\x32\x14.feast.types.BoolSetH\x00\x12\x37\n\x16unix_timestamp_set_val\x18\x1d \x01(\x0b\x32\x15.feast.types.Int64SetH\x00\x12\x12\n\x08json_val\x18 \x01(\tH\x00\x12\x30\n\rjson_list_val\x18! \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12&\n\nstruct_val\x18\" \x01(\x0b\x32\x10.feast.types.MapH\x00\x12/\n\x0fstruct_list_val\x18# \x01(\x0b\x32\x14.feast.types.MapListH\x00\x12\x12\n\x08uuid_val\x18$ \x01(\tH\x00\x12\x17\n\rtime_uuid_val\x18% \x01(\tH\x00\x12\x30\n\ruuid_list_val\x18& \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x35\n\x12time_uuid_list_val\x18\' \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12.\n\x0cuuid_set_val\x18( \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12\x33\n\x11time_uuid_set_val\x18) \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12.\n\x08list_val\x18* \x01(\x0b\x32\x1a.feast.types.RepeatedValueH\x00\x12-\n\x07set_val\x18+ \x01(\x0b\x32\x1a.feast.types.RepeatedValueH\x00\x12\x15\n\x0b\x64\x65\x63imal_val\x18, \x01(\tH\x00\x12\x33\n\x10\x64\x65\x63imal_list_val\x18- \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x31\n\x0f\x64\x65\x63imal_set_val\x18. \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x42\x05\n\x03val\"\x18\n\tBytesList\x12\x0b\n\x03val\x18\x01 \x03(\x0c\"\x19\n\nStringList\x12\x0b\n\x03val\x18\x01 \x03(\t\"\x18\n\tInt32List\x12\x0b\n\x03val\x18\x01 \x03(\x05\"\x18\n\tInt64List\x12\x0b\n\x03val\x18\x01 \x03(\x03\"\x19\n\nDoubleList\x12\x0b\n\x03val\x18\x01 \x03(\x01\"\x18\n\tFloatList\x12\x0b\n\x03val\x18\x01 \x03(\x02\"\x17\n\x08\x42oolList\x12\x0b\n\x03val\x18\x01 \x03(\x08\"\x17\n\x08\x42ytesSet\x12\x0b\n\x03val\x18\x01 \x03(\x0c\"\x18\n\tStringSet\x12\x0b\n\x03val\x18\x01 \x03(\t\"\x17\n\x08Int32Set\x12\x0b\n\x03val\x18\x01 \x03(\x05\"\x17\n\x08Int64Set\x12\x0b\n\x03val\x18\x01 \x03(\x03\"\x18\n\tDoubleSet\x12\x0b\n\x03val\x18\x01 \x03(\x01\"\x17\n\x08\x46loatSet\x12\x0b\n\x03val\x18\x01 \x03(\x02\"\x16\n\x07\x42oolSet\x12\x0b\n\x03val\x18\x01 \x03(\x08\"m\n\x03Map\x12&\n\x03val\x18\x01 \x03(\x0b\x32\x19.feast.types.Map.ValEntry\x1a>\n\x08ValEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.Value:\x02\x38\x01\"(\n\x07MapList\x12\x1d\n\x03val\x18\x01 \x03(\x0b\x32\x10.feast.types.Map\"0\n\rRepeatedValue\x12\x1f\n\x03val\x18\x01 \x03(\x0b\x32\x12.feast.types.Value*\x10\n\x04Null\x12\x08\n\x04NULL\x10\x00\x42Q\n\x11\x66\x65\x61st.proto.typesB\nValueProtoZ0github.com/feast-dev/feast/go/protos/feast/typesb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x66\x65\x61st/types/Value.proto\x12\x0b\x66\x65\x61st.types\"\xa2\x05\n\tValueType\"\x94\x05\n\x04\x45num\x12\x0b\n\x07INVALID\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\n\n\x06STRING\x10\x02\x12\t\n\x05INT32\x10\x03\x12\t\n\x05INT64\x10\x04\x12\n\n\x06\x44OUBLE\x10\x05\x12\t\n\x05\x46LOAT\x10\x06\x12\x08\n\x04\x42OOL\x10\x07\x12\x12\n\x0eUNIX_TIMESTAMP\x10\x08\x12\x0e\n\nBYTES_LIST\x10\x0b\x12\x0f\n\x0bSTRING_LIST\x10\x0c\x12\x0e\n\nINT32_LIST\x10\r\x12\x0e\n\nINT64_LIST\x10\x0e\x12\x0f\n\x0b\x44OUBLE_LIST\x10\x0f\x12\x0e\n\nFLOAT_LIST\x10\x10\x12\r\n\tBOOL_LIST\x10\x11\x12\x17\n\x13UNIX_TIMESTAMP_LIST\x10\x12\x12\x08\n\x04NULL\x10\x13\x12\x07\n\x03MAP\x10\x14\x12\x0c\n\x08MAP_LIST\x10\x15\x12\r\n\tBYTES_SET\x10\x16\x12\x0e\n\nSTRING_SET\x10\x17\x12\r\n\tINT32_SET\x10\x18\x12\r\n\tINT64_SET\x10\x19\x12\x0e\n\nDOUBLE_SET\x10\x1a\x12\r\n\tFLOAT_SET\x10\x1b\x12\x0c\n\x08\x42OOL_SET\x10\x1c\x12\x16\n\x12UNIX_TIMESTAMP_SET\x10\x1d\x12\x08\n\x04JSON\x10 \x12\r\n\tJSON_LIST\x10!\x12\n\n\x06STRUCT\x10\"\x12\x0f\n\x0bSTRUCT_LIST\x10#\x12\x08\n\x04UUID\x10$\x12\r\n\tTIME_UUID\x10%\x12\r\n\tUUID_LIST\x10&\x12\x12\n\x0eTIME_UUID_LIST\x10\'\x12\x0c\n\x08UUID_SET\x10(\x12\x11\n\rTIME_UUID_SET\x10)\x12\x0e\n\nVALUE_LIST\x10*\x12\r\n\tVALUE_SET\x10+\x12\x0b\n\x07\x44\x45\x43IMAL\x10,\x12\x10\n\x0c\x44\x45\x43IMAL_LIST\x10-\x12\x0f\n\x0b\x44\x45\x43IMAL_SET\x10.\x12\x0e\n\nSCALAR_MAP\x10/\"\x8a\x0e\n\x05Value\x12\x13\n\tbytes_val\x18\x01 \x01(\x0cH\x00\x12\x14\n\nstring_val\x18\x02 \x01(\tH\x00\x12\x13\n\tint32_val\x18\x03 \x01(\x05H\x00\x12\x13\n\tint64_val\x18\x04 \x01(\x03H\x00\x12\x14\n\ndouble_val\x18\x05 \x01(\x01H\x00\x12\x13\n\tfloat_val\x18\x06 \x01(\x02H\x00\x12\x12\n\x08\x62ool_val\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12unix_timestamp_val\x18\x08 \x01(\x03H\x00\x12\x30\n\x0e\x62ytes_list_val\x18\x0b \x01(\x0b\x32\x16.feast.types.BytesListH\x00\x12\x32\n\x0fstring_list_val\x18\x0c \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x30\n\x0eint32_list_val\x18\r \x01(\x0b\x32\x16.feast.types.Int32ListH\x00\x12\x30\n\x0eint64_list_val\x18\x0e \x01(\x0b\x32\x16.feast.types.Int64ListH\x00\x12\x32\n\x0f\x64ouble_list_val\x18\x0f \x01(\x0b\x32\x17.feast.types.DoubleListH\x00\x12\x30\n\x0e\x66loat_list_val\x18\x10 \x01(\x0b\x32\x16.feast.types.FloatListH\x00\x12.\n\rbool_list_val\x18\x11 \x01(\x0b\x32\x15.feast.types.BoolListH\x00\x12\x39\n\x17unix_timestamp_list_val\x18\x12 \x01(\x0b\x32\x16.feast.types.Int64ListH\x00\x12%\n\x08null_val\x18\x13 \x01(\x0e\x32\x11.feast.types.NullH\x00\x12#\n\x07map_val\x18\x14 \x01(\x0b\x32\x10.feast.types.MapH\x00\x12,\n\x0cmap_list_val\x18\x15 \x01(\x0b\x32\x14.feast.types.MapListH\x00\x12.\n\rbytes_set_val\x18\x16 \x01(\x0b\x32\x15.feast.types.BytesSetH\x00\x12\x30\n\x0estring_set_val\x18\x17 \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12.\n\rint32_set_val\x18\x18 \x01(\x0b\x32\x15.feast.types.Int32SetH\x00\x12.\n\rint64_set_val\x18\x19 \x01(\x0b\x32\x15.feast.types.Int64SetH\x00\x12\x30\n\x0e\x64ouble_set_val\x18\x1a \x01(\x0b\x32\x16.feast.types.DoubleSetH\x00\x12.\n\rfloat_set_val\x18\x1b \x01(\x0b\x32\x15.feast.types.FloatSetH\x00\x12,\n\x0c\x62ool_set_val\x18\x1c \x01(\x0b\x32\x14.feast.types.BoolSetH\x00\x12\x37\n\x16unix_timestamp_set_val\x18\x1d \x01(\x0b\x32\x15.feast.types.Int64SetH\x00\x12\x12\n\x08json_val\x18 \x01(\tH\x00\x12\x30\n\rjson_list_val\x18! \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12&\n\nstruct_val\x18\" \x01(\x0b\x32\x10.feast.types.MapH\x00\x12/\n\x0fstruct_list_val\x18# \x01(\x0b\x32\x14.feast.types.MapListH\x00\x12\x12\n\x08uuid_val\x18$ \x01(\tH\x00\x12\x17\n\rtime_uuid_val\x18% \x01(\tH\x00\x12\x30\n\ruuid_list_val\x18& \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x35\n\x12time_uuid_list_val\x18\' \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12.\n\x0cuuid_set_val\x18( \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12\x33\n\x11time_uuid_set_val\x18) \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12.\n\x08list_val\x18* \x01(\x0b\x32\x1a.feast.types.RepeatedValueH\x00\x12-\n\x07set_val\x18+ \x01(\x0b\x32\x1a.feast.types.RepeatedValueH\x00\x12\x15\n\x0b\x64\x65\x63imal_val\x18, \x01(\tH\x00\x12\x33\n\x10\x64\x65\x63imal_list_val\x18- \x01(\x0b\x32\x17.feast.types.StringListH\x00\x12\x31\n\x0f\x64\x65\x63imal_set_val\x18. \x01(\x0b\x32\x16.feast.types.StringSetH\x00\x12\x30\n\x0escalar_map_val\x18/ \x01(\x0b\x32\x16.feast.types.ScalarMapH\x00\x42\x05\n\x03val\"\x18\n\tBytesList\x12\x0b\n\x03val\x18\x01 \x03(\x0c\"\x19\n\nStringList\x12\x0b\n\x03val\x18\x01 \x03(\t\"\x18\n\tInt32List\x12\x0b\n\x03val\x18\x01 \x03(\x05\"\x18\n\tInt64List\x12\x0b\n\x03val\x18\x01 \x03(\x03\"\x19\n\nDoubleList\x12\x0b\n\x03val\x18\x01 \x03(\x01\"\x18\n\tFloatList\x12\x0b\n\x03val\x18\x01 \x03(\x02\"\x17\n\x08\x42oolList\x12\x0b\n\x03val\x18\x01 \x03(\x08\"\x17\n\x08\x42ytesSet\x12\x0b\n\x03val\x18\x01 \x03(\x0c\"\x18\n\tStringSet\x12\x0b\n\x03val\x18\x01 \x03(\t\"\x17\n\x08Int32Set\x12\x0b\n\x03val\x18\x01 \x03(\x05\"\x17\n\x08Int64Set\x12\x0b\n\x03val\x18\x01 \x03(\x03\"\x18\n\tDoubleSet\x12\x0b\n\x03val\x18\x01 \x03(\x01\"\x17\n\x08\x46loatSet\x12\x0b\n\x03val\x18\x01 \x03(\x02\"\x16\n\x07\x42oolSet\x12\x0b\n\x03val\x18\x01 \x03(\x08\"m\n\x03Map\x12&\n\x03val\x18\x01 \x03(\x0b\x32\x19.feast.types.Map.ValEntry\x1a>\n\x08ValEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.Value:\x02\x38\x01\"(\n\x07MapList\x12\x1d\n\x03val\x18\x01 \x03(\x0b\x32\x10.feast.types.Map\"0\n\rRepeatedValue\x12\x1f\n\x03val\x18\x01 \x03(\x0b\x32\x12.feast.types.Value\"\xef\x01\n\x06MapKey\x12\x13\n\tint32_key\x18\x01 \x01(\x05H\x00\x12\x13\n\tint64_key\x18\x02 \x01(\x03H\x00\x12\x13\n\tfloat_key\x18\x03 \x01(\x02H\x00\x12\x14\n\ndouble_key\x18\x04 \x01(\x01H\x00\x12\x12\n\x08\x62ool_key\x18\x05 \x01(\x08H\x00\x12\x1c\n\x12unix_timestamp_key\x18\x06 \x01(\x03H\x00\x12\x13\n\tbytes_key\x18\x07 \x01(\x0cH\x00\x12\x12\n\x08uuid_key\x18\x08 \x01(\tH\x00\x12\x17\n\rtime_uuid_key\x18\t \x01(\tH\x00\x12\x15\n\x0b\x64\x65\x63imal_key\x18\n \x01(\tH\x00\x42\x05\n\x03key\"U\n\x0eScalarMapEntry\x12 \n\x03key\x18\x01 \x01(\x0b\x32\x13.feast.types.MapKey\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.feast.types.Value\"5\n\tScalarMap\x12(\n\x03val\x18\x01 \x03(\x0b\x32\x1b.feast.types.ScalarMapEntry*\x10\n\x04Null\x12\x08\n\x04NULL\x10\x00\x42Q\n\x11\x66\x65\x61st.proto.typesB\nValueProtoZ0github.com/feast-dev/feast/go/protos/feast/typesb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,48 +24,54 @@ _globals['DESCRIPTOR']._serialized_options = b'\n\021feast.proto.typesB\nValueProtoZ0github.com/feast-dev/feast/go/protos/feast/types' _globals['_MAP_VALENTRY']._options = None _globals['_MAP_VALENTRY']._serialized_options = b'8\001' - _globals['_NULL']._serialized_start=3018 - _globals['_NULL']._serialized_end=3034 + _globals['_NULL']._serialized_start=3468 + _globals['_NULL']._serialized_end=3484 _globals['_VALUETYPE']._serialized_start=41 - _globals['_VALUETYPE']._serialized_end=699 + _globals['_VALUETYPE']._serialized_end=715 _globals['_VALUETYPE_ENUM']._serialized_start=55 - _globals['_VALUETYPE_ENUM']._serialized_end=699 - _globals['_VALUE']._serialized_start=702 - _globals['_VALUE']._serialized_end=2454 - _globals['_BYTESLIST']._serialized_start=2456 - _globals['_BYTESLIST']._serialized_end=2480 - _globals['_STRINGLIST']._serialized_start=2482 - _globals['_STRINGLIST']._serialized_end=2507 - _globals['_INT32LIST']._serialized_start=2509 - _globals['_INT32LIST']._serialized_end=2533 - _globals['_INT64LIST']._serialized_start=2535 - _globals['_INT64LIST']._serialized_end=2559 - _globals['_DOUBLELIST']._serialized_start=2561 - _globals['_DOUBLELIST']._serialized_end=2586 - _globals['_FLOATLIST']._serialized_start=2588 - _globals['_FLOATLIST']._serialized_end=2612 - _globals['_BOOLLIST']._serialized_start=2614 - _globals['_BOOLLIST']._serialized_end=2637 - _globals['_BYTESSET']._serialized_start=2639 - _globals['_BYTESSET']._serialized_end=2662 - _globals['_STRINGSET']._serialized_start=2664 - _globals['_STRINGSET']._serialized_end=2688 - _globals['_INT32SET']._serialized_start=2690 - _globals['_INT32SET']._serialized_end=2713 - _globals['_INT64SET']._serialized_start=2715 - _globals['_INT64SET']._serialized_end=2738 - _globals['_DOUBLESET']._serialized_start=2740 - _globals['_DOUBLESET']._serialized_end=2764 - _globals['_FLOATSET']._serialized_start=2766 - _globals['_FLOATSET']._serialized_end=2789 - _globals['_BOOLSET']._serialized_start=2791 - _globals['_BOOLSET']._serialized_end=2813 - _globals['_MAP']._serialized_start=2815 - _globals['_MAP']._serialized_end=2924 - _globals['_MAP_VALENTRY']._serialized_start=2862 - _globals['_MAP_VALENTRY']._serialized_end=2924 - _globals['_MAPLIST']._serialized_start=2926 - _globals['_MAPLIST']._serialized_end=2966 - _globals['_REPEATEDVALUE']._serialized_start=2968 - _globals['_REPEATEDVALUE']._serialized_end=3016 + _globals['_VALUETYPE_ENUM']._serialized_end=715 + _globals['_VALUE']._serialized_start=718 + _globals['_VALUE']._serialized_end=2520 + _globals['_BYTESLIST']._serialized_start=2522 + _globals['_BYTESLIST']._serialized_end=2546 + _globals['_STRINGLIST']._serialized_start=2548 + _globals['_STRINGLIST']._serialized_end=2573 + _globals['_INT32LIST']._serialized_start=2575 + _globals['_INT32LIST']._serialized_end=2599 + _globals['_INT64LIST']._serialized_start=2601 + _globals['_INT64LIST']._serialized_end=2625 + _globals['_DOUBLELIST']._serialized_start=2627 + _globals['_DOUBLELIST']._serialized_end=2652 + _globals['_FLOATLIST']._serialized_start=2654 + _globals['_FLOATLIST']._serialized_end=2678 + _globals['_BOOLLIST']._serialized_start=2680 + _globals['_BOOLLIST']._serialized_end=2703 + _globals['_BYTESSET']._serialized_start=2705 + _globals['_BYTESSET']._serialized_end=2728 + _globals['_STRINGSET']._serialized_start=2730 + _globals['_STRINGSET']._serialized_end=2754 + _globals['_INT32SET']._serialized_start=2756 + _globals['_INT32SET']._serialized_end=2779 + _globals['_INT64SET']._serialized_start=2781 + _globals['_INT64SET']._serialized_end=2804 + _globals['_DOUBLESET']._serialized_start=2806 + _globals['_DOUBLESET']._serialized_end=2830 + _globals['_FLOATSET']._serialized_start=2832 + _globals['_FLOATSET']._serialized_end=2855 + _globals['_BOOLSET']._serialized_start=2857 + _globals['_BOOLSET']._serialized_end=2879 + _globals['_MAP']._serialized_start=2881 + _globals['_MAP']._serialized_end=2990 + _globals['_MAP_VALENTRY']._serialized_start=2928 + _globals['_MAP_VALENTRY']._serialized_end=2990 + _globals['_MAPLIST']._serialized_start=2992 + _globals['_MAPLIST']._serialized_end=3032 + _globals['_REPEATEDVALUE']._serialized_start=3034 + _globals['_REPEATEDVALUE']._serialized_end=3082 + _globals['_MAPKEY']._serialized_start=3085 + _globals['_MAPKEY']._serialized_end=3324 + _globals['_SCALARMAPENTRY']._serialized_start=3326 + _globals['_SCALARMAPENTRY']._serialized_end=3411 + _globals['_SCALARMAP']._serialized_start=3413 + _globals['_SCALARMAP']._serialized_end=3466 # @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/types/Value_pb2.pyi b/sdk/python/feast/protos/feast/types/Value_pb2.pyi index 80c6a717acf..162f8829bc1 100644 --- a/sdk/python/feast/protos/feast/types/Value_pb2.pyi +++ b/sdk/python/feast/protos/feast/types/Value_pb2.pyi @@ -16,44 +16,46 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message + +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions + from typing_extensions import TypeAlias as _TypeAlias -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor class _Null: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 -class _NullEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Null.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _NullEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Null.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor NULL: _Null.ValueType # 0 class Null(_Null, metaclass=_NullEnumTypeWrapper): ... NULL: Null.ValueType # 0 -global___Null = Null +Global___Null: _TypeAlias = Null # noqa: Y015 -class ValueType(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ValueType(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _Enum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 - class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ValueType._Enum.ValueType], builtins.type): # noqa: F821 - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _EnumEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[ValueType._Enum.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor INVALID: ValueType._Enum.ValueType # 0 BYTES: ValueType._Enum.ValueType # 1 STRING: ValueType._Enum.ValueType # 2 @@ -97,6 +99,7 @@ class ValueType(google.protobuf.message.Message): DECIMAL: ValueType._Enum.ValueType # 44 DECIMAL_LIST: ValueType._Enum.ValueType # 45 DECIMAL_SET: ValueType._Enum.ValueType # 46 + SCALAR_MAP: ValueType._Enum.ValueType # 47 class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ... INVALID: ValueType.Enum.ValueType # 0 @@ -142,453 +145,594 @@ class ValueType(google.protobuf.message.Message): DECIMAL: ValueType.Enum.ValueType # 44 DECIMAL_LIST: ValueType.Enum.ValueType # 45 DECIMAL_SET: ValueType.Enum.ValueType # 46 + SCALAR_MAP: ValueType.Enum.ValueType # 47 def __init__( self, ) -> None: ... -global___ValueType = ValueType - -class Value(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - BYTES_VAL_FIELD_NUMBER: builtins.int - STRING_VAL_FIELD_NUMBER: builtins.int - INT32_VAL_FIELD_NUMBER: builtins.int - INT64_VAL_FIELD_NUMBER: builtins.int - DOUBLE_VAL_FIELD_NUMBER: builtins.int - FLOAT_VAL_FIELD_NUMBER: builtins.int - BOOL_VAL_FIELD_NUMBER: builtins.int - UNIX_TIMESTAMP_VAL_FIELD_NUMBER: builtins.int - BYTES_LIST_VAL_FIELD_NUMBER: builtins.int - STRING_LIST_VAL_FIELD_NUMBER: builtins.int - INT32_LIST_VAL_FIELD_NUMBER: builtins.int - INT64_LIST_VAL_FIELD_NUMBER: builtins.int - DOUBLE_LIST_VAL_FIELD_NUMBER: builtins.int - FLOAT_LIST_VAL_FIELD_NUMBER: builtins.int - BOOL_LIST_VAL_FIELD_NUMBER: builtins.int - UNIX_TIMESTAMP_LIST_VAL_FIELD_NUMBER: builtins.int - NULL_VAL_FIELD_NUMBER: builtins.int - MAP_VAL_FIELD_NUMBER: builtins.int - MAP_LIST_VAL_FIELD_NUMBER: builtins.int - BYTES_SET_VAL_FIELD_NUMBER: builtins.int - STRING_SET_VAL_FIELD_NUMBER: builtins.int - INT32_SET_VAL_FIELD_NUMBER: builtins.int - INT64_SET_VAL_FIELD_NUMBER: builtins.int - DOUBLE_SET_VAL_FIELD_NUMBER: builtins.int - FLOAT_SET_VAL_FIELD_NUMBER: builtins.int - BOOL_SET_VAL_FIELD_NUMBER: builtins.int - UNIX_TIMESTAMP_SET_VAL_FIELD_NUMBER: builtins.int - JSON_VAL_FIELD_NUMBER: builtins.int - JSON_LIST_VAL_FIELD_NUMBER: builtins.int - STRUCT_VAL_FIELD_NUMBER: builtins.int - STRUCT_LIST_VAL_FIELD_NUMBER: builtins.int - UUID_VAL_FIELD_NUMBER: builtins.int - TIME_UUID_VAL_FIELD_NUMBER: builtins.int - UUID_LIST_VAL_FIELD_NUMBER: builtins.int - TIME_UUID_LIST_VAL_FIELD_NUMBER: builtins.int - UUID_SET_VAL_FIELD_NUMBER: builtins.int - TIME_UUID_SET_VAL_FIELD_NUMBER: builtins.int - LIST_VAL_FIELD_NUMBER: builtins.int - SET_VAL_FIELD_NUMBER: builtins.int - DECIMAL_VAL_FIELD_NUMBER: builtins.int - DECIMAL_LIST_VAL_FIELD_NUMBER: builtins.int - DECIMAL_SET_VAL_FIELD_NUMBER: builtins.int - bytes_val: builtins.bytes - string_val: builtins.str - int32_val: builtins.int - int64_val: builtins.int - double_val: builtins.float - float_val: builtins.float - bool_val: builtins.bool - unix_timestamp_val: builtins.int - @property - def bytes_list_val(self) -> global___BytesList: ... - @property - def string_list_val(self) -> global___StringList: ... - @property - def int32_list_val(self) -> global___Int32List: ... - @property - def int64_list_val(self) -> global___Int64List: ... - @property - def double_list_val(self) -> global___DoubleList: ... - @property - def float_list_val(self) -> global___FloatList: ... - @property - def bool_list_val(self) -> global___BoolList: ... - @property - def unix_timestamp_list_val(self) -> global___Int64List: ... - null_val: global___Null.ValueType - @property - def map_val(self) -> global___Map: ... - @property - def map_list_val(self) -> global___MapList: ... - @property - def bytes_set_val(self) -> global___BytesSet: ... - @property - def string_set_val(self) -> global___StringSet: ... - @property - def int32_set_val(self) -> global___Int32Set: ... - @property - def int64_set_val(self) -> global___Int64Set: ... - @property - def double_set_val(self) -> global___DoubleSet: ... - @property - def float_set_val(self) -> global___FloatSet: ... - @property - def bool_set_val(self) -> global___BoolSet: ... - @property - def unix_timestamp_set_val(self) -> global___Int64Set: ... - json_val: builtins.str - @property - def json_list_val(self) -> global___StringList: ... - @property - def struct_val(self) -> global___Map: ... - @property - def struct_list_val(self) -> global___MapList: ... - uuid_val: builtins.str - time_uuid_val: builtins.str - @property - def uuid_list_val(self) -> global___StringList: ... - @property - def time_uuid_list_val(self) -> global___StringList: ... - @property - def uuid_set_val(self) -> global___StringSet: ... - @property - def time_uuid_set_val(self) -> global___StringSet: ... - @property - def list_val(self) -> global___RepeatedValue: ... - @property - def set_val(self) -> global___RepeatedValue: ... - decimal_val: builtins.str - @property - def decimal_list_val(self) -> global___StringList: ... - @property - def decimal_set_val(self) -> global___StringSet: ... +Global___ValueType: _TypeAlias = ValueType # noqa: Y015 + +@_typing.final +class Value(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + BYTES_VAL_FIELD_NUMBER: _builtins.int + STRING_VAL_FIELD_NUMBER: _builtins.int + INT32_VAL_FIELD_NUMBER: _builtins.int + INT64_VAL_FIELD_NUMBER: _builtins.int + DOUBLE_VAL_FIELD_NUMBER: _builtins.int + FLOAT_VAL_FIELD_NUMBER: _builtins.int + BOOL_VAL_FIELD_NUMBER: _builtins.int + UNIX_TIMESTAMP_VAL_FIELD_NUMBER: _builtins.int + BYTES_LIST_VAL_FIELD_NUMBER: _builtins.int + STRING_LIST_VAL_FIELD_NUMBER: _builtins.int + INT32_LIST_VAL_FIELD_NUMBER: _builtins.int + INT64_LIST_VAL_FIELD_NUMBER: _builtins.int + DOUBLE_LIST_VAL_FIELD_NUMBER: _builtins.int + FLOAT_LIST_VAL_FIELD_NUMBER: _builtins.int + BOOL_LIST_VAL_FIELD_NUMBER: _builtins.int + UNIX_TIMESTAMP_LIST_VAL_FIELD_NUMBER: _builtins.int + NULL_VAL_FIELD_NUMBER: _builtins.int + MAP_VAL_FIELD_NUMBER: _builtins.int + MAP_LIST_VAL_FIELD_NUMBER: _builtins.int + BYTES_SET_VAL_FIELD_NUMBER: _builtins.int + STRING_SET_VAL_FIELD_NUMBER: _builtins.int + INT32_SET_VAL_FIELD_NUMBER: _builtins.int + INT64_SET_VAL_FIELD_NUMBER: _builtins.int + DOUBLE_SET_VAL_FIELD_NUMBER: _builtins.int + FLOAT_SET_VAL_FIELD_NUMBER: _builtins.int + BOOL_SET_VAL_FIELD_NUMBER: _builtins.int + UNIX_TIMESTAMP_SET_VAL_FIELD_NUMBER: _builtins.int + JSON_VAL_FIELD_NUMBER: _builtins.int + JSON_LIST_VAL_FIELD_NUMBER: _builtins.int + STRUCT_VAL_FIELD_NUMBER: _builtins.int + STRUCT_LIST_VAL_FIELD_NUMBER: _builtins.int + UUID_VAL_FIELD_NUMBER: _builtins.int + TIME_UUID_VAL_FIELD_NUMBER: _builtins.int + UUID_LIST_VAL_FIELD_NUMBER: _builtins.int + TIME_UUID_LIST_VAL_FIELD_NUMBER: _builtins.int + UUID_SET_VAL_FIELD_NUMBER: _builtins.int + TIME_UUID_SET_VAL_FIELD_NUMBER: _builtins.int + LIST_VAL_FIELD_NUMBER: _builtins.int + SET_VAL_FIELD_NUMBER: _builtins.int + DECIMAL_VAL_FIELD_NUMBER: _builtins.int + DECIMAL_LIST_VAL_FIELD_NUMBER: _builtins.int + DECIMAL_SET_VAL_FIELD_NUMBER: _builtins.int + SCALAR_MAP_VAL_FIELD_NUMBER: _builtins.int + bytes_val: _builtins.bytes + string_val: _builtins.str + int32_val: _builtins.int + int64_val: _builtins.int + double_val: _builtins.float + float_val: _builtins.float + bool_val: _builtins.bool + unix_timestamp_val: _builtins.int + null_val: Global___Null.ValueType + json_val: _builtins.str + uuid_val: _builtins.str + time_uuid_val: _builtins.str + decimal_val: _builtins.str + @_builtins.property + def bytes_list_val(self) -> Global___BytesList: ... + @_builtins.property + def string_list_val(self) -> Global___StringList: ... + @_builtins.property + def int32_list_val(self) -> Global___Int32List: ... + @_builtins.property + def int64_list_val(self) -> Global___Int64List: ... + @_builtins.property + def double_list_val(self) -> Global___DoubleList: ... + @_builtins.property + def float_list_val(self) -> Global___FloatList: ... + @_builtins.property + def bool_list_val(self) -> Global___BoolList: ... + @_builtins.property + def unix_timestamp_list_val(self) -> Global___Int64List: ... + @_builtins.property + def map_val(self) -> Global___Map: ... + @_builtins.property + def map_list_val(self) -> Global___MapList: ... + @_builtins.property + def bytes_set_val(self) -> Global___BytesSet: ... + @_builtins.property + def string_set_val(self) -> Global___StringSet: ... + @_builtins.property + def int32_set_val(self) -> Global___Int32Set: ... + @_builtins.property + def int64_set_val(self) -> Global___Int64Set: ... + @_builtins.property + def double_set_val(self) -> Global___DoubleSet: ... + @_builtins.property + def float_set_val(self) -> Global___FloatSet: ... + @_builtins.property + def bool_set_val(self) -> Global___BoolSet: ... + @_builtins.property + def unix_timestamp_set_val(self) -> Global___Int64Set: ... + @_builtins.property + def json_list_val(self) -> Global___StringList: ... + @_builtins.property + def struct_val(self) -> Global___Map: ... + @_builtins.property + def struct_list_val(self) -> Global___MapList: ... + @_builtins.property + def uuid_list_val(self) -> Global___StringList: ... + @_builtins.property + def time_uuid_list_val(self) -> Global___StringList: ... + @_builtins.property + def uuid_set_val(self) -> Global___StringSet: ... + @_builtins.property + def time_uuid_set_val(self) -> Global___StringSet: ... + @_builtins.property + def list_val(self) -> Global___RepeatedValue: ... + @_builtins.property + def set_val(self) -> Global___RepeatedValue: ... + @_builtins.property + def decimal_list_val(self) -> Global___StringList: ... + @_builtins.property + def decimal_set_val(self) -> Global___StringSet: ... + @_builtins.property + def scalar_map_val(self) -> Global___ScalarMap: ... def __init__( self, *, - bytes_val: builtins.bytes = ..., - string_val: builtins.str = ..., - int32_val: builtins.int = ..., - int64_val: builtins.int = ..., - double_val: builtins.float = ..., - float_val: builtins.float = ..., - bool_val: builtins.bool = ..., - unix_timestamp_val: builtins.int = ..., - bytes_list_val: global___BytesList | None = ..., - string_list_val: global___StringList | None = ..., - int32_list_val: global___Int32List | None = ..., - int64_list_val: global___Int64List | None = ..., - double_list_val: global___DoubleList | None = ..., - float_list_val: global___FloatList | None = ..., - bool_list_val: global___BoolList | None = ..., - unix_timestamp_list_val: global___Int64List | None = ..., - null_val: global___Null.ValueType = ..., - map_val: global___Map | None = ..., - map_list_val: global___MapList | None = ..., - bytes_set_val: global___BytesSet | None = ..., - string_set_val: global___StringSet | None = ..., - int32_set_val: global___Int32Set | None = ..., - int64_set_val: global___Int64Set | None = ..., - double_set_val: global___DoubleSet | None = ..., - float_set_val: global___FloatSet | None = ..., - bool_set_val: global___BoolSet | None = ..., - unix_timestamp_set_val: global___Int64Set | None = ..., - json_val: builtins.str = ..., - json_list_val: global___StringList | None = ..., - struct_val: global___Map | None = ..., - struct_list_val: global___MapList | None = ..., - uuid_val: builtins.str = ..., - time_uuid_val: builtins.str = ..., - uuid_list_val: global___StringList | None = ..., - time_uuid_list_val: global___StringList | None = ..., - uuid_set_val: global___StringSet | None = ..., - time_uuid_set_val: global___StringSet | None = ..., - list_val: global___RepeatedValue | None = ..., - set_val: global___RepeatedValue | None = ..., - decimal_val: builtins.str = ..., - decimal_list_val: global___StringList | None = ..., - decimal_set_val: global___StringSet | None = ..., + bytes_val: _builtins.bytes = ..., + string_val: _builtins.str = ..., + int32_val: _builtins.int = ..., + int64_val: _builtins.int = ..., + double_val: _builtins.float = ..., + float_val: _builtins.float = ..., + bool_val: _builtins.bool = ..., + unix_timestamp_val: _builtins.int = ..., + bytes_list_val: Global___BytesList | None = ..., + string_list_val: Global___StringList | None = ..., + int32_list_val: Global___Int32List | None = ..., + int64_list_val: Global___Int64List | None = ..., + double_list_val: Global___DoubleList | None = ..., + float_list_val: Global___FloatList | None = ..., + bool_list_val: Global___BoolList | None = ..., + unix_timestamp_list_val: Global___Int64List | None = ..., + null_val: Global___Null.ValueType = ..., + map_val: Global___Map | None = ..., + map_list_val: Global___MapList | None = ..., + bytes_set_val: Global___BytesSet | None = ..., + string_set_val: Global___StringSet | None = ..., + int32_set_val: Global___Int32Set | None = ..., + int64_set_val: Global___Int64Set | None = ..., + double_set_val: Global___DoubleSet | None = ..., + float_set_val: Global___FloatSet | None = ..., + bool_set_val: Global___BoolSet | None = ..., + unix_timestamp_set_val: Global___Int64Set | None = ..., + json_val: _builtins.str = ..., + json_list_val: Global___StringList | None = ..., + struct_val: Global___Map | None = ..., + struct_list_val: Global___MapList | None = ..., + uuid_val: _builtins.str = ..., + time_uuid_val: _builtins.str = ..., + uuid_list_val: Global___StringList | None = ..., + time_uuid_list_val: Global___StringList | None = ..., + uuid_set_val: Global___StringSet | None = ..., + time_uuid_set_val: Global___StringSet | None = ..., + list_val: Global___RepeatedValue | None = ..., + set_val: Global___RepeatedValue | None = ..., + decimal_val: _builtins.str = ..., + decimal_list_val: Global___StringList | None = ..., + decimal_set_val: Global___StringSet | None = ..., + scalar_map_val: Global___ScalarMap | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["val", b"val"]) -> typing_extensions.Literal["bytes_val", "string_val", "int32_val", "int64_val", "double_val", "float_val", "bool_val", "unix_timestamp_val", "bytes_list_val", "string_list_val", "int32_list_val", "int64_list_val", "double_list_val", "float_list_val", "bool_list_val", "unix_timestamp_list_val", "null_val", "map_val", "map_list_val", "bytes_set_val", "string_set_val", "int32_set_val", "int64_set_val", "double_set_val", "float_set_val", "bool_set_val", "unix_timestamp_set_val", "json_val", "json_list_val", "struct_val", "struct_list_val", "uuid_val", "time_uuid_val", "uuid_list_val", "time_uuid_list_val", "uuid_set_val", "time_uuid_set_val", "list_val", "set_val", "decimal_val", "decimal_list_val", "decimal_set_val"] | None: ... - -global___Value = Value - -class BytesList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "scalar_map_val", b"scalar_map_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "scalar_map_val", b"scalar_map_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_val: _TypeAlias = _typing.Literal["bytes_val", "string_val", "int32_val", "int64_val", "double_val", "float_val", "bool_val", "unix_timestamp_val", "bytes_list_val", "string_list_val", "int32_list_val", "int64_list_val", "double_list_val", "float_list_val", "bool_list_val", "unix_timestamp_list_val", "null_val", "map_val", "map_list_val", "bytes_set_val", "string_set_val", "int32_set_val", "int64_set_val", "double_set_val", "float_set_val", "bool_set_val", "unix_timestamp_set_val", "json_val", "json_list_val", "struct_val", "struct_list_val", "uuid_val", "time_uuid_val", "uuid_list_val", "time_uuid_list_val", "uuid_set_val", "time_uuid_set_val", "list_val", "set_val", "decimal_val", "decimal_list_val", "decimal_set_val", "scalar_map_val"] # noqa: Y015 + _WhichOneofArgType_val: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_val) -> _WhichOneofReturnType_val | None: ... + +Global___Value: _TypeAlias = Value # noqa: Y015 + +@_typing.final +class BytesList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.bytes] | None = ..., + val: _abc.Iterable[_builtins.bytes] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BytesList = BytesList +Global___BytesList: _TypeAlias = BytesList # noqa: Y015 -class StringList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StringList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.str] | None = ..., + val: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StringList = StringList +Global___StringList: _TypeAlias = StringList # noqa: Y015 -class Int32List(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Int32List(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.int] | None = ..., + val: _abc.Iterable[_builtins.int] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Int32List = Int32List +Global___Int32List: _TypeAlias = Int32List # noqa: Y015 -class Int64List(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Int64List(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.int] | None = ..., + val: _abc.Iterable[_builtins.int] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Int64List = Int64List +Global___Int64List: _TypeAlias = Int64List # noqa: Y015 -class DoubleList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DoubleList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.float] | None = ..., + val: _abc.Iterable[_builtins.float] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DoubleList = DoubleList +Global___DoubleList: _TypeAlias = DoubleList # noqa: Y015 -class FloatList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FloatList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.float] | None = ..., + val: _abc.Iterable[_builtins.float] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FloatList = FloatList +Global___FloatList: _TypeAlias = FloatList # noqa: Y015 -class BoolList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class BoolList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bool]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.bool] | None = ..., + val: _abc.Iterable[_builtins.bool] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BoolList = BoolList +Global___BoolList: _TypeAlias = BoolList # noqa: Y015 -class BytesSet(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class BytesSet(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.bytes] | None = ..., + val: _abc.Iterable[_builtins.bytes] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BytesSet = BytesSet +Global___BytesSet: _TypeAlias = BytesSet # noqa: Y015 -class StringSet(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StringSet(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.str] | None = ..., + val: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StringSet = StringSet +Global___StringSet: _TypeAlias = StringSet # noqa: Y015 -class Int32Set(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Int32Set(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.int] | None = ..., + val: _abc.Iterable[_builtins.int] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Int32Set = Int32Set +Global___Int32Set: _TypeAlias = Int32Set # noqa: Y015 -class Int64Set(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Int64Set(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.int] | None = ..., + val: _abc.Iterable[_builtins.int] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Int64Set = Int64Set +Global___Int64Set: _TypeAlias = Int64Set # noqa: Y015 -class DoubleSet(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DoubleSet(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.float] | None = ..., + val: _abc.Iterable[_builtins.float] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DoubleSet = DoubleSet +Global___DoubleSet: _TypeAlias = DoubleSet # noqa: Y015 -class FloatSet(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FloatSet(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.float] | None = ..., + val: _abc.Iterable[_builtins.float] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FloatSet = FloatSet +Global___FloatSet: _TypeAlias = FloatSet # noqa: Y015 -class BoolSet(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class BoolSet(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bool]: ... def __init__( self, *, - val: collections.abc.Iterable[builtins.bool] | None = ..., + val: _abc.Iterable[_builtins.bool] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BoolSet = BoolSet +Global___BoolSet: _TypeAlias = BoolSet # noqa: Y015 -class Map(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Map(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - class ValEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class ValEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___Value: ... + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + @_builtins.property + def value(self) -> Global___Value: ... def __init__( self, *, - key: builtins.str = ..., - value: global___Value | None = ..., + key: _builtins.str = ..., + value: Global___Value | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Value]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.MessageMap[_builtins.str, Global___Value]: ... def __init__( self, *, - val: collections.abc.Mapping[builtins.str, global___Value] | None = ..., + val: _abc.Mapping[_builtins.str, Global___Value] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Map = Map +Global___Map: _TypeAlias = Map # noqa: Y015 -class MapList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MapList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Map]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedCompositeFieldContainer[Global___Map]: ... def __init__( self, *, - val: collections.abc.Iterable[global___Map] | None = ..., + val: _abc.Iterable[Global___Map] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MapList = MapList +Global___MapList: _TypeAlias = MapList # noqa: Y015 -class RepeatedValue(google.protobuf.message.Message): +@_typing.final +class RepeatedValue(_message.Message): """This is to avoid an issue of being unable to specify `repeated value` in oneofs or maps In JSON "val" field can be omitted """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor + + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedCompositeFieldContainer[Global___Value]: ... + def __init__( + self, + *, + val: _abc.Iterable[Global___Value] | None = ..., + ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___RepeatedValue: _TypeAlias = RepeatedValue # noqa: Y015 + +@_typing.final +class MapKey(_message.Message): + """Map key for maps with non-string keys. + Excludes string (handled by Map) and all collection types (not valid as keys). + """ + + DESCRIPTOR: _descriptor.Descriptor + + INT32_KEY_FIELD_NUMBER: _builtins.int + INT64_KEY_FIELD_NUMBER: _builtins.int + FLOAT_KEY_FIELD_NUMBER: _builtins.int + DOUBLE_KEY_FIELD_NUMBER: _builtins.int + BOOL_KEY_FIELD_NUMBER: _builtins.int + UNIX_TIMESTAMP_KEY_FIELD_NUMBER: _builtins.int + BYTES_KEY_FIELD_NUMBER: _builtins.int + UUID_KEY_FIELD_NUMBER: _builtins.int + TIME_UUID_KEY_FIELD_NUMBER: _builtins.int + DECIMAL_KEY_FIELD_NUMBER: _builtins.int + int32_key: _builtins.int + int64_key: _builtins.int + float_key: _builtins.float + double_key: _builtins.float + bool_key: _builtins.bool + unix_timestamp_key: _builtins.int + bytes_key: _builtins.bytes + uuid_key: _builtins.str + time_uuid_key: _builtins.str + decimal_key: _builtins.str + def __init__( + self, + *, + int32_key: _builtins.int = ..., + int64_key: _builtins.int = ..., + float_key: _builtins.float = ..., + double_key: _builtins.float = ..., + bool_key: _builtins.bool = ..., + unix_timestamp_key: _builtins.int = ..., + bytes_key: _builtins.bytes = ..., + uuid_key: _builtins.str = ..., + time_uuid_key: _builtins.str = ..., + decimal_key: _builtins.str = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["bool_key", b"bool_key", "bytes_key", b"bytes_key", "decimal_key", b"decimal_key", "double_key", b"double_key", "float_key", b"float_key", "int32_key", b"int32_key", "int64_key", b"int64_key", "key", b"key", "time_uuid_key", b"time_uuid_key", "unix_timestamp_key", b"unix_timestamp_key", "uuid_key", b"uuid_key"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["bool_key", b"bool_key", "bytes_key", b"bytes_key", "decimal_key", b"decimal_key", "double_key", b"double_key", "float_key", b"float_key", "int32_key", b"int32_key", "int64_key", b"int64_key", "key", b"key", "time_uuid_key", b"time_uuid_key", "unix_timestamp_key", b"unix_timestamp_key", "uuid_key", b"uuid_key"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_key: _TypeAlias = _typing.Literal["int32_key", "int64_key", "float_key", "double_key", "bool_key", "unix_timestamp_key", "bytes_key", "uuid_key", "time_uuid_key", "decimal_key"] # noqa: Y015 + _WhichOneofArgType_key: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType_key) -> _WhichOneofReturnType_key | None: ... + +Global___MapKey: _TypeAlias = MapKey # noqa: Y015 + +@_typing.final +class ScalarMapEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + @_builtins.property + def key(self) -> Global___MapKey: ... + @_builtins.property + def value(self) -> Global___Value: ... + def __init__( + self, + *, + key: Global___MapKey | None = ..., + value: Global___Value | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ScalarMapEntry: _TypeAlias = ScalarMapEntry # noqa: Y015 + +@_typing.final +class ScalarMap(_message.Message): + """Map with non-string keys. For string-keyed maps use Map.""" + + DESCRIPTOR: _descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - @property - def val(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Value]: ... + VAL_FIELD_NUMBER: _builtins.int + @_builtins.property + def val(self) -> _containers.RepeatedCompositeFieldContainer[Global___ScalarMapEntry]: ... def __init__( self, *, - val: collections.abc.Iterable[global___Value] | None = ..., + val: _abc.Iterable[Global___ScalarMapEntry] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RepeatedValue = RepeatedValue +Global___ScalarMap: _TypeAlias = ScalarMap # noqa: Y015 diff --git a/sdk/python/feast/type_map.py b/sdk/python/feast/type_map.py index 7960a3a3620..e9ccee08f25 100644 --- a/sdk/python/feast/type_map.py +++ b/sdk/python/feast/type_map.py @@ -52,8 +52,11 @@ Int64List, Int64Set, Map, + MapKey, MapList, RepeatedValue, + ScalarMap, + ScalarMapEntry, StringList, StringSet, ) @@ -121,6 +124,8 @@ def feast_value_type_to_python_type( return _handle_map_value(val) elif val_attr == "map_list_val": return _handle_map_list_value(val) + elif val_attr == "scalar_map_val": + return _handle_scalar_map_value(val) # If it's a _LIST or _SET type extract the values. if hasattr(val, "val"): @@ -223,6 +228,43 @@ def _handle_nested_collection_value(repeated_value) -> List[Any]: return result +def _map_key_to_python_value(map_key: MapKey) -> Any: + """Convert a MapKey proto to its Python equivalent.""" + key_attr = map_key.WhichOneof("key") + if key_attr is None: + return None + val = getattr(map_key, key_attr) + if key_attr in ("int32_key", "int64_key"): + return int(val) + if key_attr in ("float_key", "double_key"): + return float(val) + if key_attr == "bool_key": + return bool(val) + if key_attr == "unix_timestamp_key": + return ( + datetime.fromtimestamp(val, tz=timezone.utc) + if val != NULL_TIMESTAMP_INT_VALUE + else None + ) + if key_attr == "bytes_key": + return bytes(val) + if key_attr in ("uuid_key", "time_uuid_key"): + return uuid_module.UUID(val) + if key_attr == "decimal_key": + return decimal.Decimal(val) + return val + + +def _handle_scalar_map_value(value_map_message: ScalarMap) -> Dict[Any, Any]: + """Handle ScalarMap proto message (repeated ScalarMapEntry) → Python dict.""" + result: Dict[Any, Any] = {} + for entry in value_map_message.val: + key = _map_key_to_python_value(entry.key) + value = feast_value_type_to_python_type(entry.value) + result[key] = value + return result + + def feast_value_type_to_pandas_type(value_type: ValueType) -> Any: value_type_to_pandas_type: Dict[ValueType, str] = { ValueType.FLOAT: "float", @@ -399,6 +441,9 @@ def python_type_to_feast_value_type( # Check if it's a dictionary (Map type) if isinstance(value, dict): + # Non-string keys require ScalarMap; string keys (or empty dict) use Map + if value and not isinstance(next(iter(value)), str): + return ValueType.SCALAR_MAP return ValueType.MAP raise ValueError( @@ -1066,6 +1111,21 @@ def _python_value_to_proto_value( ) return result + if feast_value_type == ValueType.SCALAR_MAP: + result = [] + for value in values: + if value is None: + result.append(ProtoValue()) + else: + if not isinstance(value, dict): + raise TypeError( + f"Expected dict for SCALAR_MAP type, got {type(value).__name__}: {value!r}" + ) + result.append( + ProtoValue(scalar_map_val=_python_dict_to_scalar_map_proto(value)) + ) + return result + # Handle JSON type — serialize Python objects as JSON strings if feast_value_type == ValueType.JSON: result = [] @@ -1249,6 +1309,48 @@ def _python_list_to_map_list_proto(python_list: List[Dict[str, Any]]) -> MapList return map_list_proto +def _python_value_to_map_key_proto(key: Any) -> MapKey: + """Convert a Python value to a MapKey proto for use in ScalarMap entries.""" + # bool must be checked before int since bool is a subclass of int + if isinstance(key, (bool, np.bool_)): + return MapKey(bool_key=bool(key)) + if isinstance(key, np.int32): + return MapKey(int32_key=int(key)) + if isinstance(key, (int, np.integer)): + return MapKey(int64_key=int(key)) + if isinstance(key, np.float32): + return MapKey(float_key=float(key)) + if isinstance(key, (float, np.floating)): + return MapKey(double_key=float(key)) + if isinstance(key, uuid_module.UUID): + return MapKey(uuid_key=str(key)) + if isinstance(key, decimal.Decimal): + return MapKey(decimal_key=str(key)) + if isinstance(key, bytes): + return MapKey(bytes_key=key) + if isinstance(key, (datetime, pd.Timestamp)): + ts = int(pd.Timestamp(key).timestamp()) + return MapKey(unix_timestamp_key=ts) + raise TypeError( + f"Unsupported key type for SCALAR_MAP: {type(key).__name__}. " + "Supported non-string key types: int, float, bool, uuid.UUID, " + "decimal.Decimal, bytes, datetime." + ) + + +def _python_dict_to_scalar_map_proto(python_dict: Dict[Any, Any]) -> ScalarMap: + """Convert a Python dictionary with non-string keys to a ScalarMap proto.""" + value_map_proto = ScalarMap() + for key, value in python_dict.items(): + map_key = _python_value_to_map_key_proto(key) + if value is None: + value_proto = ProtoValue() + else: + value_proto = python_values_to_proto_values([value], ValueType.UNKNOWN)[0] + value_map_proto.val.append(ScalarMapEntry(key=map_key, value=value_proto)) + return value_map_proto + + def python_values_to_proto_values( values: List[Any], feature_type: ValueType = ValueType.UNKNOWN ) -> List[ProtoValue]: @@ -1321,6 +1423,7 @@ def python_values_to_proto_values( "decimal_val": ValueType.DECIMAL, "decimal_list_val": ValueType.DECIMAL_LIST, "decimal_set_val": ValueType.DECIMAL_SET, + "scalar_map_val": ValueType.SCALAR_MAP, } VALUE_TYPE_TO_PROTO_VALUE_MAP: Dict[ValueType, str] = { diff --git a/sdk/python/feast/types.py b/sdk/python/feast/types.py index 0a97037811b..9a9cfeeec84 100644 --- a/sdk/python/feast/types.py +++ b/sdk/python/feast/types.py @@ -37,6 +37,7 @@ "UNIX_TIMESTAMP": "UNIX_TIMESTAMP", "MAP": "MAP", "JSON": "JSON", + "SCALAR_MAP": "SCALAR_MAP", } @@ -93,6 +94,7 @@ class PrimitiveFeastType(Enum): UUID = 13 TIME_UUID = 14 DECIMAL = 15 + SCALAR_MAP = 16 def to_value_type(self) -> ValueType: """ @@ -130,6 +132,7 @@ def __hash__(self): Uuid = PrimitiveFeastType.UUID TimeUuid = PrimitiveFeastType.TIME_UUID Decimal = PrimitiveFeastType.DECIMAL +ScalarMap = PrimitiveFeastType.SCALAR_MAP SUPPORTED_BASE_TYPES = [ Invalid, @@ -167,6 +170,7 @@ def __hash__(self): "UUID": "Uuid", "TIME_UUID": "TimeUuid", "DECIMAL": "Decimal", + "SCALAR_MAP": "ScalarMap", } @@ -346,6 +350,7 @@ def __hash__(self): ValueType.DECIMAL: Decimal, ValueType.DECIMAL_LIST: Array(Decimal), ValueType.DECIMAL_SET: Set(Decimal), + ValueType.SCALAR_MAP: ScalarMap, } FEAST_TYPES_TO_PYARROW_TYPES = { diff --git a/sdk/python/feast/value_type.py b/sdk/python/feast/value_type.py index f09ae948d9b..e8b0b5a10d6 100644 --- a/sdk/python/feast/value_type.py +++ b/sdk/python/feast/value_type.py @@ -82,6 +82,7 @@ class ValueType(enum.Enum): DECIMAL = 44 DECIMAL_LIST = 45 DECIMAL_SET = 46 + SCALAR_MAP = 47 ListType = Union[ diff --git a/sdk/python/tests/unit/test_type_map.py b/sdk/python/tests/unit/test_type_map.py index 4f87aa46f19..bdaea63a607 100644 --- a/sdk/python/tests/unit/test_type_map.py +++ b/sdk/python/tests/unit/test_type_map.py @@ -6,6 +6,7 @@ import pytest from feast.protos.feast.types.Value_pb2 import Map, MapList +from feast.protos.feast.types.Value_pb2 import Value as ProtoValue from feast.type_map import ( _convert_value_type_str_to_value_type, _python_dict_to_map_proto, @@ -1953,3 +1954,114 @@ def test_non_empty_array_treated_as_null_unix_timestamp(self): "non-empty array in UNIX_TIMESTAMP scalar column should produce null" ) assert result[1].unix_timestamp_val == int(ts.timestamp()) + + +class TestValueMapTypes: + """Tests for SCALAR_MAP: maps with non-string keys encoded via ScalarMap proto.""" + + def test_int_key_roundtrip(self): + """Int keys are encoded as int64_key and round-trip back as int.""" + data = {1: "one", 2: "two", 3: "three"} + + protos = python_values_to_proto_values([data], ValueType.SCALAR_MAP) + assert protos[0].WhichOneof("val") == "scalar_map_val" + result = feast_value_type_to_python_type(protos[0]) + + assert result == {1: "one", 2: "two", 3: "three"} + + def test_long_key_roundtrip(self): + """Large int keys (simulating int64/Long) round-trip correctly.""" + data = {1513185957000: {"svacct_id": 123, "amount": 99.5}} + + protos = python_values_to_proto_values([data], ValueType.SCALAR_MAP) + result = feast_value_type_to_python_type(protos[0]) + + assert result[1513185957000]["svacct_id"] == 123 + assert result[1513185957000]["amount"] == 99.5 + + def test_uuid_key_roundtrip(self): + """UUID keys are encoded as uuid_key strings and decoded back to uuid.UUID.""" + key1 = uuid.UUID("12345678-1234-5678-1234-567812345678") + key2 = uuid.UUID("87654321-4321-8765-4321-876543218765") + data = {key1: "first", key2: "second"} + + protos = python_values_to_proto_values([data], ValueType.SCALAR_MAP) + result = feast_value_type_to_python_type(protos[0]) + + assert result[key1] == "first" + assert result[key2] == "second" + + def test_type_inference_non_string_keys_returns_scalar_map(self): + """python_type_to_feast_value_type infers SCALAR_MAP for non-string-keyed dicts.""" + assert python_type_to_feast_value_type("f", {1: "a"}) == ValueType.SCALAR_MAP + assert ( + python_type_to_feast_value_type("f", {uuid.uuid4(): "x"}) + == ValueType.SCALAR_MAP + ) + + def test_type_inference_string_keys_returns_map(self): + """python_type_to_feast_value_type still infers MAP for string-keyed dicts.""" + assert python_type_to_feast_value_type("f", {"k": "v"}) == ValueType.MAP + + def test_type_inference_empty_dict_returns_map(self): + """Empty dict infers MAP (no key to inspect).""" + assert python_type_to_feast_value_type("f", {}) == ValueType.MAP + + def test_none_value_roundtrip(self): + """None values in SCALAR_MAP are preserved as None.""" + data = {10: "present", 20: None} + + protos = python_values_to_proto_values([data], ValueType.SCALAR_MAP) + result = feast_value_type_to_python_type(protos[0]) + + assert result[10] == "present" + assert result[20] is None + + def test_null_value_map(self): + """None SCALAR_MAP encodes to empty ProtoValue and decodes to None.""" + protos = python_values_to_proto_values([None], ValueType.SCALAR_MAP) + assert protos[0] == ProtoValue() + assert feast_value_type_to_python_type(protos[0]) is None + + def test_empty_value_map(self): + """Empty dict encodes and decodes as empty SCALAR_MAP.""" + protos = python_values_to_proto_values([{}], ValueType.SCALAR_MAP) + # empty dict has no non-string key to trigger SCALAR_MAP via inference, + # but explicit type forces the path + result = feast_value_type_to_python_type(protos[0]) + assert isinstance(result, dict) + + def test_multiple_value_maps_in_batch(self): + """Batch of SCALAR_MAP values all encode correctly.""" + batch = [{1: "a", 2: "b"}, {10: "x"}, None] + + protos = python_values_to_proto_values(batch, ValueType.SCALAR_MAP) + assert feast_value_type_to_python_type(protos[0]) == {1: "a", 2: "b"} + assert feast_value_type_to_python_type(protos[1]) == {10: "x"} + assert feast_value_type_to_python_type(protos[2]) is None + + def test_nested_map_value_in_value_map(self): + """SCALAR_MAP can hold nested dicts as values (encoded as MAP vals).""" + inner = {"name": "alice", "score": 42} + data = {100: inner} + + protos = python_values_to_proto_values([data], ValueType.SCALAR_MAP) + result = feast_value_type_to_python_type(protos[0]) + + assert result[100]["name"] == "alice" + assert result[100]["score"] == 42 + + def test_invalid_key_type_raises(self): + """Passing an unsupported key type raises TypeError.""" + + class Unsupported: + pass + + with pytest.raises(TypeError, match="Unsupported key type for SCALAR_MAP"): + python_values_to_proto_values([{Unsupported(): "v"}], ValueType.SCALAR_MAP) + + def test_proto_field_name_in_map(self): + """scalar_map_val maps to ValueType.SCALAR_MAP in PROTO_VALUE_TO_VALUE_TYPE_MAP.""" + from feast.type_map import PROTO_VALUE_TO_VALUE_TYPE_MAP + + assert PROTO_VALUE_TO_VALUE_TYPE_MAP["scalar_map_val"] == ValueType.SCALAR_MAP From e362173c9623fd42f8bd78eb6ce1bfd9d1090345 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Fri, 8 May 2026 10:23:52 +0530 Subject: [PATCH 12/59] feat: Add demo noteboooks for users Signed-off-by: ntkathole --- docs/SUMMARY.md | 1 + docs/getting-started/quickstart.md | 1 + docs/reference/feast-cli-commands.md | 42 ++ docs/tutorials/demo-notebooks.md | 114 ++++ pixi.lock | 6 +- sdk/python/docs/source/feast.rst | 8 + sdk/python/feast/__init__.py | 2 + sdk/python/feast/cli/cli.py | 33 ++ sdk/python/feast/demos.py | 851 +++++++++++++++++++++++++++ sdk/python/tests/unit/test_demos.py | 360 +++++++++++ 10 files changed, 1415 insertions(+), 3 deletions(-) create mode 100644 docs/tutorials/demo-notebooks.md create mode 100644 sdk/python/feast/demos.py create mode 100644 sdk/python/tests/unit/test_demos.py diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 44c1cc09477..1b0b0961d79 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -56,6 +56,7 @@ * [RAG Fine Tuning with Feast and Milvus](../examples/rag-retriever/README.md) * [MCP - AI Agent Example](../examples/mcp_feature_store/README.md) * [Feast-Powered AI Agent](../examples/agent_feature_store/README.md) +* [Demo Notebooks](tutorials/demo-notebooks.md) ## How-to Guides diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md index e98425f9149..aa56d09b1d8 100644 --- a/docs/getting-started/quickstart.md +++ b/docs/getting-started/quickstart.md @@ -666,6 +666,7 @@ show up in the upcoming concepts + architecture + tutorial pages as well. ## Next steps +* Run `feast demo-notebooks` to generate tailored Jupyter notebooks for your project. See [Demo Notebooks](../tutorials/demo-notebooks.md). * Read the [Concepts](concepts/) page to understand the Feast data model. * Read the [Architecture](architecture/) page. * Check out our [Tutorials](../tutorials/tutorials-overview/) section for more examples on how to use Feast. diff --git a/docs/reference/feast-cli-commands.md b/docs/reference/feast-cli-commands.md index 535065b5a98..99a99ab1707 100644 --- a/docs/reference/feast-cli-commands.md +++ b/docs/reference/feast-cli-commands.md @@ -21,6 +21,7 @@ Commands: apply Create or update a feature store deployment configuration Display Feast configuration delete Delete a Feast object from the registry + demo-notebooks Generate demo Jupyter notebooks for the project entities Access entities feature-views Access feature views init Create a new Feast repository @@ -142,6 +143,47 @@ The delete operation is permanent and will remove the object from the registry. If multiple objects have the same name across different types, `feast delete` will delete the first one it finds. For programmatic deletion with more control, use the Python SDK methods like `store.delete_feature_view()`, `store.delete_feature_service()`, etc. {% endhint %} +## Demo Notebooks + +Generate tailored demo Jupyter notebooks for each Feast project found in the current directory. + +```bash +feast demo-notebooks +``` + +The command searches for `feature_store.yaml` in the current directory and every file inside the `feast-config/` directory. Each file is treated as a separate project config, and notebooks are created under `./feast-demo-notebooks//`. + +The generated notebooks adapt to your project configuration (online/offline store types, authentication, vector search) and cover: + +* **Feature store overview** — explore registered entities, feature views, and services. +* **Historical feature retrieval** — build training datasets with point-in-time correct joins. +* **Online feature serving** — materialize features and retrieve them at low latency. + +**Options:** + +* `-o, --output-dir` — Directory where the notebooks are written. Default: `./feast-demo-notebooks`. +* `--overwrite` — Overwrite existing notebooks if the output directory already exists. + +```bash +feast demo-notebooks -o ./my-notebooks --overwrite +``` + +You can also use the `--chdir` global option to point at a different feature repository: + +```bash +feast -c /path/to/feature_repo demo-notebooks +``` + +The same functionality is available via the Python SDK: + +```python +from feast import copy_demo_notebooks + +copy_demo_notebooks(output_dir="./feast-demo-notebooks", repo_path=".") +``` + +For more details see the [Demo Notebooks tutorial](../tutorials/demo-notebooks.md). + ## Entities List all registered entities diff --git a/docs/tutorials/demo-notebooks.md b/docs/tutorials/demo-notebooks.md new file mode 100644 index 00000000000..8c0ba059f81 --- /dev/null +++ b/docs/tutorials/demo-notebooks.md @@ -0,0 +1,114 @@ +# Demo Notebooks + +Feast can generate tailored Jupyter notebooks for any Feast project. The notebooks adapt to your `feature_store.yaml` configuration and provide a hands-on walkthrough of core Feast functionality. + +## What you get + +For each project discovered, Feast creates a directory with notebooks covering: + +| Notebook | Description | +|----------|-------------| +| **01 — Feature Store Overview** | Explore registered entities, feature views, feature services, and data sources. | +| **02 — Historical Feature Retrieval** | Build a training dataset with point-in-time correct joins using `get_historical_features`. | +| **03 — Online Feature Serving** | Materialize features to the online store and retrieve them at low latency with `get_online_features`. | + +The content adapts automatically based on: + +* **Online / offline store types** — descriptions reflect the actual backends configured. +* **Registry type** — local registries include `feast apply`; remote registries use `refresh_registry()`. +* **Authentication** — auth details from `feature_store.yaml` are surfaced when configured. +* **Vector search** — a vector/RAG retrieval section is included when embeddings are detected. + +## Prerequisites + +* Python 3.9+ +* Feast installed (`pip install feast`) +* A feature repository with a valid `feature_store.yaml` + +## Using the CLI + +Run the command from (or pointing to) a directory containing `feature_store.yaml`: + +```bash +feast demo-notebooks +``` + +This searches for `feature_store.yaml` in the current directory and every file inside the `feast-config/` directory. Each file in `feast-config/` is treated as a separate project config. For each project found, notebooks are written to `./feast-demo-notebooks//`. + +### Options + +| Option | Default | Description | +|--------|---------|-------------| +| `-o, --output-dir` | `./feast-demo-notebooks` | Root directory for generated notebooks | +| `--overwrite` | `false` | Overwrite if the output directory already exists | + +```bash +# Write to a custom directory +feast demo-notebooks -o ./my-notebooks + +# Overwrite existing notebooks +feast demo-notebooks --overwrite + +# Use --chdir to point at a different feature repo +feast -c /path/to/feature_repo demo-notebooks +``` + +## Using the Python SDK + +```python +from feast import copy_demo_notebooks + +copy_demo_notebooks() +``` + +### Parameters + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `output_dir` | `str` | `"./feast-demo-notebooks"` | Root directory for generated notebooks | +| `repo_path` | `str` | `"."` | Directory to search for `feature_store.yaml` files | +| `overwrite` | `bool` | `False` | Overwrite existing output directories | + +### Examples + +```python +from feast import copy_demo_notebooks + +# Default — searches current directory, writes to ./feast-demo-notebooks/ +copy_demo_notebooks() + +# Custom paths +copy_demo_notebooks( + output_dir="/home/user/notebooks", + repo_path="/home/user/feast-projects/my-repo/feature_repo", + overwrite=True, +) +``` + +## Multi-project repositories + +If your `feast-config/` directory contains multiple files, each is treated as a separate project and a dedicated notebook directory is created: + +``` +feast-demo-notebooks/ +├── project_alpha/ +│ ├── 01_feature_store_overview.ipynb +│ ├── 02_historical_features_training.ipynb +│ └── 03_online_features_serving.ipynb +└── project_beta/ + ├── 01_feature_store_overview.ipynb + ├── 02_historical_features_training.ipynb + └── 03_online_features_serving.ipynb +``` + +## Running the notebooks + +Open any generated notebook in Jupyter, JupyterLab, or VS Code and run cells from top to bottom. Each notebook: + +1. Configures the path to your `feature_store.yaml` automatically (no manual editing needed). +2. Connects to the feature store using the Feast Python SDK. +3. Walks through relevant operations with real data from your project. + +{% hint style="info" %} +The first notebook (**01 — Overview**) includes a prerequisites check and `feast apply` / registry sync step. Subsequent notebooks assume these have already been completed. +{% endhint %} diff --git a/pixi.lock b/pixi.lock index e6e724dce74..ffdb536b80d 100644 --- a/pixi.lock +++ b/pixi.lock @@ -2229,8 +2229,8 @@ packages: requires_python: '>=3.10' - pypi: ./ name: feast - version: 0.62.1.dev58+g4f142a3c1.d20260501 - sha256: 168dda185ac1fd0b97d388a4c5af598965dc17dfaaf09d35c7bb4ddbd3dafe43 + version: 0.63.1.dev11+g728aa2e03 + sha256: 0374de3999768cff5af26fcded970de628340809ce8d1466645c9ca0d209c166 requires_dist: - click>=7.0.0,<9.0.0 - colorama>=0.3.9,<1 @@ -2257,7 +2257,7 @@ packages: - uvicorn-worker - gunicorn ; sys_platform != 'win32' - dask[dataframe]>=2024.2.1 - - prometheus-client + - prometheus-client>=0.20.0,<0.25.0 - psutil - bigtree>=0.19.2 - pyjwt diff --git a/sdk/python/docs/source/feast.rst b/sdk/python/docs/source/feast.rst index 27231480da8..304083138d2 100644 --- a/sdk/python/docs/source/feast.rst +++ b/sdk/python/docs/source/feast.rst @@ -65,6 +65,14 @@ feast.data\_format module :undoc-members: :show-inheritance: +feast.demos module +------------------ + +.. automodule:: feast.demos + :members: + :undoc-members: + :show-inheritance: + feast.data\_source module ------------------------- diff --git a/sdk/python/feast/__init__.py b/sdk/python/feast/__init__.py index b1881c50150..b61bc2110ab 100644 --- a/sdk/python/feast/__init__.py +++ b/sdk/python/feast/__init__.py @@ -1,6 +1,7 @@ from importlib.metadata import PackageNotFoundError from importlib.metadata import version as _version +from feast.demos import copy_demo_notebooks from feast.infra.offline_stores.bigquery_source import BigQuerySource from feast.infra.offline_stores.contrib.athena_offline_store.athena_source import ( AthenaSource, @@ -41,6 +42,7 @@ __all__ = [ "Aggregation", "BatchFeatureView", + "copy_demo_notebooks", "DataFrameEngine", "Entity", "KafkaSource", diff --git a/sdk/python/feast/cli/cli.py b/sdk/python/feast/cli/cli.py index 1e461af4a28..886c91f69ae 100644 --- a/sdk/python/feast/cli/cli.py +++ b/sdk/python/feast/cli/cli.py @@ -598,6 +598,39 @@ def validate( exit(1) +@cli.command("demo-notebooks") +@click.option( + "--output-dir", + "-o", + default="./feast-demo-notebooks", + show_default=True, + help="Directory where the demo notebooks are written.", +) +@click.option( + "--overwrite", + is_flag=True, + default=False, + help="Overwrite existing notebooks if the output directory already exists.", +) +@click.pass_context +def demo_notebooks_command(ctx: click.Context, output_dir: str, overwrite: bool): + """ + Generate demo Jupyter notebooks tailored to the feature store configuration. + + Searches for feature_store.yaml in the current directory and every file + inside feast-config/. Each file is treated as a separate project config. + For each project found, a sub-directory is created under OUTPUT_DIR. + """ + from feast.demos import copy_demo_notebooks + + repo = ctx.obj["CHDIR"] + copy_demo_notebooks( + output_dir=output_dir, + repo_path=str(repo), + overwrite=overwrite, + ) + + cli.add_command(data_sources_cmd) cli.add_command(entities_cmd) cli.add_command(feature_services_cmd) diff --git a/sdk/python/feast/demos.py b/sdk/python/feast/demos.py new file mode 100644 index 00000000000..9970f90316b --- /dev/null +++ b/sdk/python/feast/demos.py @@ -0,0 +1,851 @@ +# Copyright 2026 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Demo notebook generation for Feast projects. + +Usage:: + + from feast import copy_demo_notebooks + copy_demo_notebooks() + +This will search for ``feature_store.yaml`` in the current directory and every +file inside the ``feast-config/`` directory, then write tailored Jupyter +notebooks into a ``./feast-demo-notebooks//`` directory for each +project found. +""" + +import json +import logging +import os +import pathlib +from typing import Any, Optional + +import yaml + +_logger = logging.getLogger(__name__) + + +# --------------------------------------------------------------------------- +# Discovery helpers +# --------------------------------------------------------------------------- + + +def _find_feature_store_yamls(repo_path: pathlib.Path) -> list[pathlib.Path]: + """Return all feature-store config paths found under *repo_path*. + + Searches: + 1. ``repo_path/feature_store.yaml`` + 2. Every file directly inside ``repo_path/feast-config/`` + — each file is treated as a separate project config. + """ + found: list[pathlib.Path] = [] + + direct = repo_path / "feature_store.yaml" + if direct.exists(): + found.append(direct) + + feast_config_dir = repo_path / "feast-config" + if feast_config_dir.is_dir(): + for entry in sorted(feast_config_dir.iterdir()): + if entry.is_file(): + found.append(entry) + + return found + + +def _parse_yaml(yaml_path: pathlib.Path) -> dict[str, Any]: + with open(yaml_path) as fh: + return yaml.safe_load(os.path.expandvars(fh.read())) or {} + + +def _extract_store_info(config: dict[str, Any]) -> dict[str, Any]: + """Summarise the key fields from a raw ``feature_store.yaml`` dict.""" + info: dict[str, Any] = { + "project": config.get("project", "my_feast_project"), + "provider": config.get("provider", "local"), + "online_store_type": "sqlite", + "offline_store_type": "file", + "registry_type": "file", + "auth_type": "no_auth", + "vector_enabled": False, + "embedding_dim": None, + } + + online = config.get("online_store", {}) + if isinstance(online, dict): + info["online_store_type"] = online.get("type", "sqlite").lower() + info["vector_enabled"] = bool(online.get("vector_enabled", False)) + if online.get("embedding_dim"): + info["embedding_dim"] = online["embedding_dim"] + elif isinstance(online, str): + info["online_store_type"] = online.lower() + + offline = config.get("offline_store", {}) + if isinstance(offline, dict): + info["offline_store_type"] = offline.get("type", "file").lower() + elif isinstance(offline, str): + info["offline_store_type"] = offline.lower() + + registry = config.get("registry", {}) + if isinstance(registry, dict): + # Operator client YAML uses "registry_type" key; standard Feast uses "type" + info["registry_type"] = ( + registry.get("registry_type") or registry.get("type", "file") + ).lower() + # string registry value is a plain file path — keep default "file" + + auth = config.get("auth", {}) + if isinstance(auth, dict): + info["auth_type"] = auth.get("type", "no_auth").lower() + + return info + + +# --------------------------------------------------------------------------- +# Notebook cell builders +# --------------------------------------------------------------------------- + + +def _md(source: str) -> dict[str, Any]: + return { + "cell_type": "markdown", + "metadata": {}, + "source": source, + } + + +def _code(source: str, tags: Optional[list[str]] = None) -> dict[str, Any]: + meta: dict[str, Any] = {} + if tags: + meta["tags"] = tags + return { + "cell_type": "code", + "execution_count": None, + "metadata": meta, + "outputs": [], + "source": source, + } + + +def _notebook(cells: list[dict[str, Any]]) -> dict[str, Any]: + return { + "nbformat": 4, + "nbformat_minor": 5, + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3", + }, + }, + "cells": cells, + } + + +# --------------------------------------------------------------------------- +# Per-store setup snippets +# --------------------------------------------------------------------------- + + +def _is_operator_client(info: dict[str, Any]) -> bool: + """Return True when the feature_store.yaml was generated by the Feast operator. + + The operator sets provider=local with registry_type=remote, online_store.type=remote, + and offline_store.type=remote. + """ + return ( + info["registry_type"] == "remote" + and info["online_store_type"] == "remote" + and info["offline_store_type"] == "remote" + ) + + +# --------------------------------------------------------------------------- +# Notebook generators +# --------------------------------------------------------------------------- + + +def _apply_md(info: dict[str, Any]) -> dict[str, Any]: + """Return the markdown cell that introduces the apply / registry-sync section.""" + if info["registry_type"] == "remote": + return _md( + "## 4. Registry Sync\n\nRefresh the registry cache to load the latest feature definitions." + ) + return _md( + "## 4. Apply Feature Definitions\n\n" + "Register entities, feature views, and services into the registry. " + "Skip if already applied." + ) + + +def _apply_code(info: dict[str, Any]) -> dict[str, Any]: + """Return the code cell that applies (local) or refreshes (remote) the registry.""" + if info["registry_type"] == "remote": + return _code( + "store.refresh_registry()\n" + "fvs = store.list_feature_views()\n" + "print(f'Registry synced — {len(fvs)} feature view(s) available.')" + ) + # Local file registry — auto-apply if empty, then refresh. + return _code( + "fvs = store.list_feature_views()\n" + "entities = store.list_entities()\n" + "\n" + "if fvs or entities:\n" + " print(f'Registry ready: {len(entities)} entity/entities, {len(fvs)} feature view(s)')\n" + "else:\n" + " print('Registry is empty — running feast apply ...')\n" + " !feast -f {FEAST_FS_YAML} apply\n" + " store.refresh_registry()\n" + " print('Apply complete.')" + ) + + +def _path_setup_cell(yaml_abs: str) -> dict[str, Any]: + """Return a code cell that sets ``FEAST_FS_YAML`` to the absolute path of + the feature-store config resolved at generation time.""" + return _code( + "import os\n" + "\n" + f"FEAST_FS_YAML = r{repr(yaml_abs)}\n" + "\n" + "assert os.path.exists(FEAST_FS_YAML), (\n" + " f'Config not found at {FEAST_FS_YAML!r}. '\n" + " 'Update FEAST_FS_YAML to the correct path.'\n" + ")\n" + "print(f'Using feature_store.yaml: {FEAST_FS_YAML}')", + tags=["parameters"], + ) + + +def _nb_overview(info: dict[str, Any], yaml_abs: str) -> dict[str, Any]: + project = info["project"] + ost = info["online_store_type"] + offst = info["offline_store_type"] + auth = info["auth_type"] + provider = info["provider"] + vector_enabled = info["vector_enabled"] + + cells: list[dict[str, Any]] = [ + _md( + f"# Feature Store Overview — `{project}`\n\n" + "Explore the entities, feature views, feature services, and data sources " + "registered in this project." + ), + _md("## 1. Prerequisites"), + _code( + "# Verify feast installation\nimport feast\nprint(f'Feast version: {feast.__version__}')" + ), + _md("## 2. Feature Store Path"), + _path_setup_cell(yaml_abs), + _md( + f"## 3. Connect to the Feature Store\n" + f"The feature store for project **`{project}`** is configured with:\n\n" + f"| Setting | Value |\n" + f"|---------|-------|\n" + f"| Provider | `{provider}` |\n" + f"| Online store | `{ost}` |\n" + f"| Offline store | `{offst}` |\n" + f"| Auth | `{auth}` |\n" + + ( + f"| Vector search | enabled (embedding dim: {info['embedding_dim']}) |\n" + if vector_enabled + else "" + ) + ), + _code( + "from feast import FeatureStore\n" + "\n" + "store = FeatureStore(fs_yaml_file=FEAST_FS_YAML)\n" + "print(f'Connected to project: {store.project}')" + ), + _apply_md(info), + _apply_code(info), + _md("## 5. List Entities"), + _code( + "entities = store.list_entities()\n" + "print(f'Found {len(entities)} entity/entities\\n')\n" + "for e in entities:\n" + " print(f' • {e.name} (join_key={e.join_key}, type={e.value_type})')" + ), + _md("## 6. List Feature Views"), + _code( + "feature_views = store.list_feature_views()\n" + "print(f'Found {len(feature_views)} batch feature view(s)\\n')\n" + "for fv in feature_views:\n" + " feature_names = [f.name for f in fv.features]\n" + " print(f' • {fv.name}')\n" + " print(f' Features : {feature_names}')\n" + " print(f' Entities : {fv.entities}')\n" + " print(f' TTL : {fv.ttl}')\n" + ), + _md("## 7. List On-Demand Feature Views"), + _code( + "odfvs = store.list_on_demand_feature_views()\n" + "if odfvs:\n" + " print(f'Found {len(odfvs)} on-demand feature view(s)\\n')\n" + " for odfv in odfvs:\n" + " print(f' • {odfv.name}')\n" + "else:\n" + " print('No on-demand feature views defined.')" + ), + _md("## 8. List Feature Services"), + _code( + "services = store.list_feature_services()\n" + "if services:\n" + " print(f'Found {len(services)} feature service(s)\\n')\n" + " for svc in services:\n" + " views = [p.name for p in svc.feature_view_projections]\n" + " print(f' • {svc.name} -> views: {views}')\n" + "else:\n" + " print('No feature services defined.')" + ), + _md("## 9. List Data Sources"), + _code( + "sources = store.list_data_sources()\n" + "print(f'Found {len(sources)} data source(s)\\n')\n" + "for src in sources:\n" + " print(f' • {src.name} ({type(src).__name__})')" + ), + _md( + "## Next Steps\n\n" + "- **`02_historical_features_training.ipynb`** — retrieve historical features for training.\n" + "- **`03_online_features_serving.ipynb`** — materialize and serve online features." + ), + ] + return _notebook(cells) + + +def _nb_historical(info: dict[str, Any], yaml_abs: str) -> dict[str, Any]: + project = info["project"] + + cells: list[dict[str, Any]] = [ + _md( + f"# Historical Features & Training Datasets — `{project}`\n\n" + "Retrieve point-in-time correct feature values to build ML training datasets." + ), + _md("## 1. Feature Store Path"), + _path_setup_cell(yaml_abs), + _md("## 2. Connect to the Feature Store"), + _code( + "from feast import FeatureStore\n" + "\n" + "store = FeatureStore(fs_yaml_file=FEAST_FS_YAML)\n" + "print(f'Project : {store.project}')\n" + "print('Feature views:', [fv.name for fv in store.list_feature_views()])" + ), + _md( + "## 3. Discover Available Features\n\nList feature views and read a sample of entity data." + ), + _code( + "import pandas as pd\n" + "from datetime import datetime, timedelta, timezone\n" + "\n" + "fvs = store.list_feature_views()\n" + "entities = store.list_entities()\n" + "\n" + "if not fvs:\n" + " print('No feature views found — run `feast apply` first.')\n" + "else:\n" + " first_fv = fvs[0]\n" + "\n" + " # Identify the entity join key.\n" + " entity_name = entities[0].join_key if entities else 'entity_id'\n" + " if first_fv.entities:\n" + " fv_entity = next(\n" + " (e for e in entities if e.name in set(first_fv.entities)),\n" + " entities[0] if entities else None,\n" + " )\n" + " if fv_entity:\n" + " entity_name = fv_entity.join_key\n" + "\n" + " # Read latest entity values from the offline store.\n" + " # This uses the same mechanism Feast uses for materialization.\n" + " source = first_fv.batch_source\n" + " provider = store._get_provider()\n" + " sample_df = provider.offline_store.pull_latest_from_table_or_query(\n" + " config=store.config,\n" + " data_source=source,\n" + " join_key_columns=[entity_name],\n" + " feature_name_columns=[f.name for f in first_fv.features],\n" + " timestamp_field=source.timestamp_field,\n" + " created_timestamp_column=source.created_timestamp_column or '',\n" + " start_date=datetime(2000, 1, 1, tzinfo=timezone.utc),\n" + " end_date=datetime.now(tz=timezone.utc),\n" + " ).to_df()\n" + "\n" + " print(f'Feature view : {first_fv.name}')\n" + " print(f'Entity join key : {entity_name!r}')\n" + " print(f'Rows in source : {len(sample_df):,}')\n" + " print(f'Columns : {list(sample_df.columns)}')\n" + " if len(sample_df) > 0:\n" + " display(sample_df.head())\n" + " else:\n" + " print('No data found — check that your data source has been populated.')" + ), + _md( + "## 4. Build an Entity DataFrame\n\n" + "Specify which entity IDs and at what timestamps you want features for." + ), + _code( + "if not fvs:\n" + " raise SystemExit('No feature views — run feast apply first.')\n" + "\n" + "# Use real entity IDs and timestamps from the sample.\n" + "if entity_name in sample_df.columns and len(sample_df) > 0:\n" + " entity_ids = sample_df[entity_name].dropna().unique()[:5].tolist()\n" + " # Detect the timestamp column from the source's configuration.\n" + " ts_col = source.timestamp_field if source.timestamp_field in sample_df.columns else None\n" + " if not ts_col:\n" + " ts_col = next((c for c in sample_df.columns if 'timestamp' in c.lower()), None)\n" + " if ts_col:\n" + " timestamps = (\n" + " sample_df[sample_df[entity_name].isin(entity_ids)]\n" + " .sort_values(ts_col, ascending=False)\n" + " .drop_duplicates(subset=[entity_name])[ts_col]\n" + " .tolist()\n" + " )\n" + " else:\n" + " timestamps = [datetime.now() - timedelta(hours=i) for i in range(len(entity_ids))]\n" + "else:\n" + " entity_ids = [1001, 1002, 1003]\n" + " timestamps = [datetime.now() - timedelta(hours=i) for i in range(len(entity_ids))]\n" + " print('Using placeholder entity IDs — replace with real values from your data.')\n" + "\n" + "entity_df = pd.DataFrame(\n" + " {\n" + " entity_name: entity_ids[:len(timestamps)],\n" + " 'event_timestamp': timestamps[:len(entity_ids)],\n" + " }\n" + ")\n" + "print(f'Entity IDs : {entity_ids}')\n" + "print(f'Rows : {len(entity_df)}')\n" + "entity_df" + ), + _md("## 5. Choose Features to Retrieve"), + _code( + "# List all available feature views and their features.\n" + "print('Available feature views:')\n" + "for fv in fvs:\n" + " features = [f.name for f in fv.features]\n" + " print(f' {fv.name}: {features}')\n" + "\n" + "# Select features from the first feature view.\n" + "# Using a single view avoids name collisions across views with identical column names.\n" + "feature_refs = [f'{first_fv.name}:{f.name}' for f in first_fv.features]\n" + "print('\\nWill retrieve:', feature_refs)" + ), + _md("## 6. Retrieve Historical Features"), + _code( + "if feature_refs:\n" + " training_df = store.get_historical_features(\n" + " entity_df=entity_df,\n" + " features=feature_refs,\n" + " ).to_df()\n" + " print(f'Training dataset shape: {training_df.shape}')\n" + " training_df.head()\n" + "else:\n" + " print('No feature views found — run `feast apply` first.')" + ), + _md( + "## 7. (Optional) Retrieve via FeatureService\n\nRetrieve features using a versioned FeatureService instead of individual feature references." + ), + _code( + "services = store.list_feature_services()\n" + "if not services:\n" + " print('No feature services found — define one in your feature repo.')\n" + "else:\n" + " svc = services[0]\n" + "\n" + " # Detect extra request-data columns required by ODFVs in this service.\n" + " odfv_map = {v.name: v for v in store.list_on_demand_feature_views()}\n" + " missing_cols = {\n" + " field.name: field.dtype\n" + " for proj in svc.feature_view_projections\n" + " if proj.name in odfv_map\n" + " for rs in odfv_map[proj.name].source_request_sources.values()\n" + " for field in rs.schema\n" + " if field.name not in entity_df.columns\n" + " }\n" + "\n" + " if missing_cols:\n" + " print('This service requires the following extra columns in entity_df:')\n" + " for col, dtype in missing_cols.items():\n" + " print(f' entity_df[{col!r}] = ')\n" + " print('Add them to entity_df above and re-run this cell.')\n" + " else:\n" + " # Check if service needs entity keys not already in entity_df.\n" + " svc_entities = set()\n" + " for proj in svc.feature_view_projections:\n" + " fv_match = next((fv for fv in fvs if fv.name == proj.name), None)\n" + " if fv_match:\n" + " for ent_name in fv_match.entities:\n" + " ent_obj = next((e for e in entities if e.name == ent_name), None)\n" + " if ent_obj:\n" + " svc_entities.add(ent_obj.join_key)\n" + " missing_keys = svc_entities - set(entity_df.columns)\n" + " if missing_keys:\n" + " print(f'This service requires additional entity columns: {missing_keys}')\n" + " print('Add them to entity_df above and re-run this cell.')\n" + " else:\n" + " print(f'Using feature service: {svc.name}')\n" + " training_df_svc = store.get_historical_features(\n" + " entity_df=entity_df,\n" + " features=svc,\n" + " full_feature_names=True,\n" + " ).to_df()\n" + " print(f'Dataset shape: {training_df_svc.shape}')\n" + " training_df_svc.head()" + ), + _md("## 8. Use the Training Dataset"), + _code( + "# Example: split into features (X) and labels (y)\n" + "# Adjust column names to match your actual feature names and label.\n" + "if feature_refs and 'training_df' in dir():\n" + " label_col = 'label' # TODO: replace with your label column\n" + " feature_cols = [c for c in training_df.columns\n" + " if c not in ('event_timestamp', entity_name, label_col)]\n" + " X = training_df[feature_cols]\n" + " print('Feature matrix shape:', X.shape)\n" + " print('Feature columns:', feature_cols)" + ), + _md( + "## Next Steps\n\n" + "- **`03_online_features_serving.ipynb`** — materialize and serve online features." + ), + ] + return _notebook(cells) + + +def _nb_online(info: dict[str, Any], yaml_abs: str) -> dict[str, Any]: + project = info["project"] + auth = info["auth_type"] + vector_enabled = info["vector_enabled"] + + cells: list[dict[str, Any]] = [ + _md( + f"# Online Feature Serving — `{project}`\n\n" + "Materialize features and retrieve them at low latency for inference." + ), + _md("## 1. Feature Store Path"), + _path_setup_cell(yaml_abs), + _md("## 2. Connect to the Feature Store"), + _code( + "from feast import FeatureStore\n" + "\n" + "store = FeatureStore(fs_yaml_file=FEAST_FS_YAML)\n" + "print(f'Project : {store.project}')" + ), + ] + + # Materialization section. + materialize_md = ( + "## 3. Materialize Features\n\n" + + ( + "> **Optional** — materialization is typically handled server-side.\n\n" + if _is_operator_client(info) + else "" + ) + + "Load feature values into the online store for low-latency serving.\n\n" + "| Method | When to use |\n" + "|--------|-------------|\n" + "| `materialize_incremental` | Regular runs — only new data since last run |\n" + "| `materialize` | First run or full refresh of a time window |" + ) + cells += [ + _md(materialize_md), + _code( + "from datetime import datetime, timedelta, timezone\n" + "\n" + "fvs = store.list_feature_views()\n" + "\n" + "if not fvs:\n" + " print('No feature views found — run feast apply first (see section 3).')\n" + "else:\n" + " # Check last materialization watermarks across all feature views.\n" + " last_written = [\n" + " fv.materialization_intervals[-1][1]\n" + " for fv in fvs\n" + " if fv.materialization_intervals\n" + " ]\n" + "\n" + " if not last_written:\n" + " # No materialization history — do a full initial load.\n" + " end_date = datetime.now(tz=timezone.utc)\n" + " start_date = end_date - timedelta(days=30)\n" + " print(f'First materialization: loading {start_date.date()} → {end_date.date()} ...')\n" + " store.materialize(start_date=start_date, end_date=end_date)\n" + " else:\n" + " # Incremental: only pick up data since the last run.\n" + " end_date = datetime.now(tz=timezone.utc)\n" + " print(f'Incremental materialization up to {end_date} ...')\n" + " store.materialize_incremental(end_date=end_date)\n" + "\n" + " print('Materialization complete.')" + ), + _md("### 3b. Force a Full Refresh"), + _code( + "# from datetime import datetime, timedelta, timezone\n" + "# store.materialize(\n" + "# start_date=datetime.now(tz=timezone.utc) - timedelta(days=7),\n" + "# end_date=datetime.now(tz=timezone.utc),\n" + "# )" + ), + ] + + cells += [ + _md("## 4. Retrieve Online Features"), + _code( + "entities = store.list_entities()\n" + "fvs = store.list_feature_views()\n" + "\n" + "if not entities or not fvs:\n" + " print('No entities or feature views — run `feast apply` first.')\n" + "else:\n" + " first_fv = fvs[0]\n" + " feature_refs = [f'{first_fv.name}:{f.name}' for f in first_fv.features[:3]]\n" + "\n" + " # Resolve the correct entity join key for the first feature view.\n" + " entity_name = entities[0].join_key\n" + " if first_fv.entities:\n" + " fv_entity = next(\n" + " (e for e in entities if e.name in set(first_fv.entities)),\n" + " entities[0],\n" + " )\n" + " entity_name = fv_entity.join_key\n" + "\n" + " # Discover real entity IDs from the offline source.\n" + " from datetime import timezone\n" + " source = first_fv.batch_source\n" + " provider = store._get_provider()\n" + " sample_df = provider.offline_store.pull_latest_from_table_or_query(\n" + " config=store.config,\n" + " data_source=source,\n" + " join_key_columns=[entity_name],\n" + " feature_name_columns=[f.name for f in first_fv.features],\n" + " timestamp_field=source.timestamp_field,\n" + " created_timestamp_column=source.created_timestamp_column or '',\n" + " start_date=datetime(2000, 1, 1, tzinfo=timezone.utc),\n" + " end_date=datetime.now(tz=timezone.utc),\n" + " ).to_df()\n" + "\n" + " if len(sample_df) > 0 and entity_name in sample_df.columns:\n" + " entity_ids = sample_df[entity_name].dropna().unique()[:5].tolist()\n" + " else:\n" + " entity_ids = [1001, 1002]\n" + " print('Using placeholder IDs — replace with real values.')\n" + "\n" + " entity_rows = [{entity_name: eid} for eid in entity_ids]\n" + "\n" + " response = store.get_online_features(\n" + " features=feature_refs,\n" + " entity_rows=entity_rows,\n" + " )\n" + " import pandas as pd\n" + " print(pd.DataFrame(response.to_dict()))" + ), + _md( + "## 5. Online Features via FeatureService\n\nRetrieve features using a versioned FeatureService." + ), + _code( + "services = store.list_feature_services()\n" + "if not services:\n" + " print('No feature services defined.')\n" + "else:\n" + " svc = services[0]\n" + "\n" + " # Detect extra request-data fields required by ODFVs in this service.\n" + " odfv_map = {v.name: v for v in store.list_on_demand_feature_views()}\n" + " current_keys = set(entity_rows[0].keys()) if entity_rows else set()\n" + " missing_fields = {\n" + " field.name: field.dtype\n" + " for proj in svc.feature_view_projections\n" + " if proj.name in odfv_map\n" + " for rs in odfv_map[proj.name].source_request_sources.values()\n" + " for field in rs.schema\n" + " if field.name not in current_keys\n" + " }\n" + "\n" + " if missing_fields:\n" + " print('This service requires the following extra fields in each entity row:')\n" + " for col, dtype in missing_fields.items():\n" + " print(f' {col!r}: ')\n" + " print('Add them to entity_rows above and re-run this cell.')\n" + " else:\n" + " # Check if service needs extra entity keys beyond what we have.\n" + " svc_entities = set()\n" + " for proj in svc.feature_view_projections:\n" + " fv_match = next((fv for fv in fvs if fv.name == proj.name), None)\n" + " if fv_match:\n" + " for ent_name in fv_match.entities:\n" + " ent_obj = next((e for e in entities if e.name == ent_name), None)\n" + " if ent_obj:\n" + " svc_entities.add(ent_obj.join_key)\n" + " missing_keys = svc_entities - current_keys\n" + " if missing_keys:\n" + " print(f'This service requires additional entity keys: {missing_keys}')\n" + " print('Add them to entity_rows above and re-run this cell.')\n" + " else:\n" + " print(f'Using feature service: {svc.name}')\n" + " response = store.get_online_features(\n" + " features=svc,\n" + " entity_rows=entity_rows,\n" + " full_feature_names=True,\n" + " )\n" + " import pandas as pd\n" + " print(pd.DataFrame(response.to_dict()))" + ), + ] + + if auth in ("kubernetes", "oidc"): + cells.append(_md(f"## 6. Authentication (`{auth}`)")) + cells.append(_code("print(store.config.auth)")) + + if vector_enabled: + dim = info.get("embedding_dim") or 384 + section = 7 if auth in ("kubernetes", "oidc") else 6 + cells.append( + _md( + f"## {section}. Vector / RAG Feature Retrieval\n\nSearch stored embeddings (dim: {dim})." + ) + ) + cells.append( + _code( + "import numpy as np\n" + "\n" + "# TODO: replace with a real query embedding from your encoder model\n" + f"query_embedding = np.random.rand({dim}).tolist()\n" + "\n" + "# List feature views with vector features\n" + "fvs = store.list_feature_views()\n" + "vec_fvs = [\n" + " fv for fv in fvs\n" + " if any(getattr(f, 'vector_index', False) for f in fv.features)\n" + "]\n" + "\n" + "if vec_fvs:\n" + " fv = vec_fvs[0]\n" + " results = store.retrieve_online_documents(\n" + " feature=f'{fv.name}:{fv.features[0].name}',\n" + " query=query_embedding,\n" + " top_k=5,\n" + " )\n" + " import pandas as pd\n" + " print(pd.DataFrame(results.to_dict()))\n" + "else:\n" + " print('No vector feature views found.')" + ) + ) + + cells.append( + _md( + "## Next Steps\n\n" + "- Schedule `materialize_incremental` to keep the online store fresh.\n" + ) + ) + + return _notebook(cells) + + +# --------------------------------------------------------------------------- +# Public API +# --------------------------------------------------------------------------- + + +def copy_demo_notebooks( + output_dir: str = "./feast-demo-notebooks", + repo_path: str = ".", + overwrite: bool = False, +) -> None: + """Generate tailored demo notebooks for each Feast project found nearby. + + The function searches *repo_path* (default: current working directory) for + feature-store YAML files in: + + * ``/feature_store.yaml`` + * Every file inside ``/feast-config/`` + + For each project discovered a sub-directory is created under *output_dir* + and one or more notebooks are written (the exact set depends on the project + configuration and may grow in future releases). + + Parameters + ---------- + output_dir: + Root directory where notebooks are written. + Defaults to ``./feast-demo-notebooks``. + repo_path: + Directory to search for ``feature_store.yaml`` files. + Defaults to the current working directory. + overwrite: + When *False* (default) raise :class:`FileExistsError` if *output_dir* + already exists. Set to *True* to update notebooks in place. + """ + out = pathlib.Path(output_dir).resolve() + + if not overwrite and out.exists(): + raise FileExistsError( + f"Directory '{out}' already exists. " + "Remove it or pass overwrite=True to update notebooks in place." + ) + + root = pathlib.Path(repo_path).absolute() + yaml_paths = _find_feature_store_yamls(root) + + if not yaml_paths: + _logger.warning( + "No feature_store.yaml found under '%s'. " + "Make sure you run this from a directory that contains feature_store.yaml " + "or a feast-config/ subdirectory.", + root, + ) + return + + out.mkdir(parents=True, exist_ok=True) + print(f"Writing demo notebooks to: {out}\n") + + for yaml_path in yaml_paths: + raw = _parse_yaml(yaml_path) + info = _extract_store_info(raw) + project = info["project"] + + project_dir = out / project + project_dir.mkdir(parents=True, exist_ok=True) + + # Absolute path — use absolute() instead of resolve() to preserve + # Kubernetes ConfigMap/Secret symlinks. + yaml_abs_str = str(yaml_path.absolute()) + + notebooks = { + "01_feature_store_overview.ipynb": _nb_overview(info, yaml_abs_str), + "02_historical_features_training.ipynb": _nb_historical(info, yaml_abs_str), + "03_online_features_serving.ipynb": _nb_online(info, yaml_abs_str), + } + + for nb_name, nb_content in notebooks.items(): + nb_path = project_dir / nb_name + with open(nb_path, "w") as fh: + json.dump(nb_content, fh, indent=1) + + print( + f" [{project}]\n" + f" feature_store.yaml : {yaml_abs_str}\n" + f" online_store : {info['online_store_type']}\n" + f" offline_store : {info['offline_store_type']}\n" + f" auth : {info['auth_type']}\n" + + (" vector search : enabled\n" if info["vector_enabled"] else "") + + f" → {project_dir}/" + ) + for nb_name in notebooks: + print(f" ✓ {nb_name}") + print() diff --git a/sdk/python/tests/unit/test_demos.py b/sdk/python/tests/unit/test_demos.py new file mode 100644 index 00000000000..52d61b353a2 --- /dev/null +++ b/sdk/python/tests/unit/test_demos.py @@ -0,0 +1,360 @@ +"""Unit tests for feast.demos — demo notebook generation.""" + +import json +import pathlib +import textwrap + +import pytest + +from feast.demos import ( + _extract_store_info, + _find_feature_store_yamls, + _is_operator_client, + copy_demo_notebooks, +) + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + +_LOCAL_YAML = textwrap.dedent("""\ + project: local_proj + provider: local + registry: + path: data/registry.db + registry_type: file + offline_store: + type: file + online_store: + type: sqlite + path: data/online_store.db + entity_key_serialization_version: 3 +""") + +_OPERATOR_YAML = textwrap.dedent("""\ + project: remote_proj + provider: local + offline_store: + host: feast-offline.svc.cluster.local + port: 80 + type: remote + online_store: + path: http://feast-online.svc.cluster.local:80 + type: remote + registry: + path: feast-registry.svc.cluster.local:80 + registry_type: remote + auth: + type: oidc + entity_key_serialization_version: 3 +""") + +_VECTOR_YAML = textwrap.dedent("""\ + project: vec_proj + provider: local + registry: + path: data/registry.db + registry_type: file + offline_store: + type: file + online_store: + type: pgvector + vector_enabled: true + embedding_dim: 512 + entity_key_serialization_version: 3 +""") + + +def _write(tmp_path: pathlib.Path, rel: str, content: str) -> pathlib.Path: + p = tmp_path / rel + p.parent.mkdir(parents=True, exist_ok=True) + p.write_text(content) + return p + + +def _sections(nb: dict) -> list[str]: + """Return the first line of every markdown cell that starts with #.""" + return [ + "".join(cell["source"]).splitlines()[0] + for cell in nb["cells"] + if cell["cell_type"] == "markdown" and "".join(cell["source"]).startswith("#") + ] + + +# --------------------------------------------------------------------------- +# _extract_store_info +# --------------------------------------------------------------------------- + + +class TestExtractStoreInfo: + def test_local_defaults(self): + info = _extract_store_info({}) + assert info["project"] == "my_feast_project" + assert info["provider"] == "local" + assert info["online_store_type"] == "sqlite" + assert info["offline_store_type"] == "file" + assert info["registry_type"] == "file" + assert info["auth_type"] == "no_auth" + assert info["vector_enabled"] is False + assert info["embedding_dim"] is None + + def test_operator_client_yaml(self): + config = { + "project": "sample", + "provider": "local", + "offline_store": {"type": "remote", "host": "h", "port": 80}, + "online_store": {"type": "remote", "path": "http://h:80"}, + "registry": {"registry_type": "remote", "path": "h:80"}, + "auth": {"type": "oidc"}, + } + info = _extract_store_info(config) + assert info["registry_type"] == "remote" + assert info["online_store_type"] == "remote" + assert info["offline_store_type"] == "remote" + assert info["auth_type"] == "oidc" + + def test_registry_type_key_takes_priority_over_type(self): + config = {"registry": {"registry_type": "remote", "type": "file"}} + info = _extract_store_info(config) + assert info["registry_type"] == "remote" + + def test_registry_type_fallback_to_type(self): + config = {"registry": {"type": "snowflake"}} + info = _extract_store_info(config) + assert info["registry_type"] == "snowflake" + + def test_string_registry_path_stays_file(self): + info = _extract_store_info({"registry": "data/registry.db"}) + assert info["registry_type"] == "file" + + def test_vector_enabled(self): + config = { + "online_store": { + "type": "pgvector", + "vector_enabled": True, + "embedding_dim": 512, + } + } + info = _extract_store_info(config) + assert info["vector_enabled"] is True + assert info["embedding_dim"] == 512 + + def test_online_store_as_string(self): + info = _extract_store_info({"online_store": "Redis"}) + assert info["online_store_type"] == "redis" + + def test_offline_store_as_string(self): + info = _extract_store_info({"offline_store": "BigQuery"}) + assert info["offline_store_type"] == "bigquery" + + +# --------------------------------------------------------------------------- +# _is_operator_client +# --------------------------------------------------------------------------- + + +class TestIsOperatorClient: + def _info(self, registry="remote", online="remote", offline="remote"): + return { + "registry_type": registry, + "online_store_type": online, + "offline_store_type": offline, + } + + def test_all_remote_is_operator(self): + assert _is_operator_client(self._info()) is True + + def test_local_registry_not_operator(self): + assert _is_operator_client(self._info(registry="file")) is False + + def test_local_online_not_operator(self): + assert _is_operator_client(self._info(online="sqlite")) is False + + def test_local_offline_not_operator(self): + assert _is_operator_client(self._info(offline="file")) is False + + +# --------------------------------------------------------------------------- +# _find_feature_store_yamls +# --------------------------------------------------------------------------- + + +class TestFindFeatureStoreYamls: + def test_direct(self, tmp_path): + _write(tmp_path, "feature_store.yaml", "project: p") + found = _find_feature_store_yamls(tmp_path) + assert len(found) == 1 + assert found[0].name == "feature_store.yaml" + + def test_feast_config_root(self, tmp_path): + _write(tmp_path, "feast-config/feature_store.yaml", "project: p") + found = _find_feature_store_yamls(tmp_path) + assert len(found) == 1 + + def test_feast_config_multiple_files(self, tmp_path): + _write(tmp_path, "feast-config/rag.yaml", "project: rag") + _write(tmp_path, "feast-config/rec.yml", "project: rec") + found = _find_feature_store_yamls(tmp_path) + assert len(found) == 2 + + def test_feast_config_any_extension(self, tmp_path): + _write(tmp_path, "feast-config/project_a.yaml", "project: a") + _write(tmp_path, "feast-config/project_b", "project: b") + found = _find_feature_store_yamls(tmp_path) + assert len(found) == 2 + + def test_feast_config_ignores_directories(self, tmp_path): + _write(tmp_path, "feast-config/valid.yaml", "project: p") + (tmp_path / "feast-config" / "subdir").mkdir() + found = _find_feature_store_yamls(tmp_path) + assert len(found) == 1 + + def test_multiple_sources(self, tmp_path): + _write(tmp_path, "feature_store.yaml", "project: root") + _write(tmp_path, "feast-config/a.yaml", "project: a") + _write(tmp_path, "feast-config/b", "project: b") + found = _find_feature_store_yamls(tmp_path) + assert len(found) == 3 + + def test_no_yaml_returns_empty(self, tmp_path): + assert _find_feature_store_yamls(tmp_path) == [] + + +# --------------------------------------------------------------------------- +# copy_demo_notebooks — file generation +# --------------------------------------------------------------------------- + + +class TestCopyDemoNotebooks: + def test_generates_notebooks(self, tmp_path): + _write(tmp_path, "feature_store.yaml", _LOCAL_YAML) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + + assert (out / "local_proj" / "01_feature_store_overview.ipynb").exists() + assert (out / "local_proj" / "02_historical_features_training.ipynb").exists() + assert (out / "local_proj" / "03_online_features_serving.ipynb").exists() + + def test_valid_notebook_json(self, tmp_path): + _write(tmp_path, "feature_store.yaml", _LOCAL_YAML) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + + nb = json.loads( + (out / "local_proj" / "01_feature_store_overview.ipynb").read_text() + ) + assert nb["nbformat"] == 4 + assert isinstance(nb["cells"], list) + + def test_raises_if_output_exists(self, tmp_path): + _write(tmp_path, "feature_store.yaml", _LOCAL_YAML) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + + with pytest.raises(FileExistsError): + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + + def test_overwrite_flag(self, tmp_path): + _write(tmp_path, "feature_store.yaml", _LOCAL_YAML) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + copy_demo_notebooks( + output_dir=str(out), repo_path=str(tmp_path), overwrite=True + ) + + def test_no_yaml_returns_without_creating_output(self, tmp_path): + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + assert not out.exists() + + def test_multiple_projects(self, tmp_path): + _write( + tmp_path, + "feast-config/proj_a.yaml", + "project: proj_a\nprovider: local\n", + ) + _write( + tmp_path, + "feast-config/proj_b.yaml", + "project: proj_b\nprovider: local\n", + ) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + assert (out / "proj_a").is_dir() + assert (out / "proj_b").is_dir() + + +# --------------------------------------------------------------------------- +# Notebook content — section headings +# --------------------------------------------------------------------------- + + +class TestNotebookContent: + def _notebooks(self, tmp_path, yaml_content): + _write(tmp_path, "feature_store.yaml", yaml_content) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + project = _extract_store_info(__import__("yaml").safe_load(yaml_content))[ + "project" + ] + return { + name: json.loads((out / project / name).read_text()) + for name in [ + "01_feature_store_overview.ipynb", + "02_historical_features_training.ipynb", + "03_online_features_serving.ipynb", + ] + } + + def test_local_overview_has_apply_section(self, tmp_path): + nbs = self._notebooks(tmp_path, _LOCAL_YAML) + sections = _sections(nbs["01_feature_store_overview.ipynb"]) + assert any("Apply Feature Definitions" in s for s in sections) + + def test_remote_overview_has_registry_sync(self, tmp_path): + nbs = self._notebooks(tmp_path, _OPERATOR_YAML) + sections = _sections(nbs["01_feature_store_overview.ipynb"]) + assert any("Registry Sync" in s for s in sections) + + def test_historical_no_apply_section(self, tmp_path): + nbs = self._notebooks(tmp_path, _LOCAL_YAML) + sections = _sections(nbs["02_historical_features_training.ipynb"]) + assert not any("Apply" in s for s in sections) + + def test_online_no_apply_section(self, tmp_path): + nbs = self._notebooks(tmp_path, _LOCAL_YAML) + sections = _sections(nbs["03_online_features_serving.ipynb"]) + assert not any("Apply" in s for s in sections) + + def test_vector_notebook_has_vector_section(self, tmp_path): + nbs = self._notebooks(tmp_path, _VECTOR_YAML) + sections = _sections(nbs["03_online_features_serving.ipynb"]) + assert any("Vector" in s for s in sections) + + def test_non_vector_notebook_no_vector_section(self, tmp_path): + nbs = self._notebooks(tmp_path, _LOCAL_YAML) + sections = _sections(nbs["03_online_features_serving.ipynb"]) + assert not any("Vector" in s for s in sections) + + def test_auth_section_present_for_oidc(self, tmp_path): + nbs = self._notebooks(tmp_path, _OPERATOR_YAML) + sections = _sections(nbs["03_online_features_serving.ipynb"]) + assert any("Authentication" in s for s in sections) + + def test_auth_section_absent_for_no_auth(self, tmp_path): + nbs = self._notebooks(tmp_path, _LOCAL_YAML) + sections = _sections(nbs["03_online_features_serving.ipynb"]) + assert not any("Authentication" in s for s in sections) + + def test_path_setup_cell_contains_yaml_path(self, tmp_path): + _write(tmp_path, "feature_store.yaml", _LOCAL_YAML) + out = tmp_path / "out" + copy_demo_notebooks(output_dir=str(out), repo_path=str(tmp_path)) + nb = json.loads( + (out / "local_proj" / "01_feature_store_overview.ipynb").read_text() + ) + code_sources = [ + "".join(c["source"]) for c in nb["cells"] if c["cell_type"] == "code" + ] + yaml_path = str((tmp_path / "feature_store.yaml").resolve()) + assert any(yaml_path in src for src in code_sources) From bd01824e284b44847c834ef75cb3bc6e71940a5d Mon Sep 17 00:00:00 2001 From: Stefan Wang <1fannnw@gmail.com> Date: Wed, 13 May 2026 04:53:15 -0700 Subject: [PATCH 13/59] fix(compute-engine/local): Honor field_mapping on join keys in dedup + join nodes (#6395) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: Apply field mapping to join keys in local compute engine nodes When a batch source defines a `field_mapping` that renames an entity join key (e.g. `USERID` -> `user_id`), the source-read node renames the columns on the pulled Arrow table to their mapped names. Downstream `LocalDedupNode` and `LocalJoinNode` then look up the *pre-mapping* names from `column_info.join_keys`, which raises `KeyError: Index(['USERID'])` during materialization (or returns an empty join). Add a `join_keys_columns` property on `ColumnInfo` that mirrors the existing `timestamp_column` / `created_timestamp_column` properties — returning join keys translated through `field_mapping` — and use it from the dedup and join nodes. Fixes #5942. Signed-off-by: 1fanwang <1fannnw@gmail.com> * test: also cover LocalJoinNode field_mapping case Signed-off-by: 1fanwang <1fannnw@gmail.com> --------- Signed-off-by: 1fanwang <1fannnw@gmail.com> --- .../infra/compute_engines/dag/context.py | 12 ++ .../infra/compute_engines/local/nodes.py | 14 ++- .../infra/compute_engines/local/test_nodes.py | 116 ++++++++++++++++++ 3 files changed, 138 insertions(+), 4 deletions(-) diff --git a/sdk/python/feast/infra/compute_engines/dag/context.py b/sdk/python/feast/infra/compute_engines/dag/context.py index 46eda356223..38b9a788872 100644 --- a/sdk/python/feast/infra/compute_engines/dag/context.py +++ b/sdk/python/feast/infra/compute_engines/dag/context.py @@ -42,6 +42,18 @@ def created_timestamp_column(self) -> Optional[str]: """ return self._get_mapped_column(self.created_ts_col) + @property + def join_keys_columns(self) -> List[str]: + """ + Get the join keys, mapped through field_mapping to their post-rename + column names. Use this when looking up columns on a DataFrame that has + already had its source columns renamed (e.g. inside DAG nodes that + consume the output of a source-read node). + """ + if not self.field_mapping: + return list(self.join_keys) + return [self.field_mapping.get(key, key) for key in self.join_keys] + def _get_mapped_column(self, column: Optional[str]) -> Optional[str]: """ Helper method to get the mapped column name if it exists in field_mapping. diff --git a/sdk/python/feast/infra/compute_engines/local/nodes.py b/sdk/python/feast/infra/compute_engines/local/nodes.py index 808231419cd..3274568671b 100644 --- a/sdk/python/feast/infra/compute_engines/local/nodes.py +++ b/sdk/python/feast/infra/compute_engines/local/nodes.py @@ -79,6 +79,10 @@ def execute(self, context: ExecutionContext) -> ArrowTableValue: for val in input_values: val.assert_format(DAGFormat.ARROW) + # The upstream source-read node has already renamed columns via + # field_mapping, so use the mapped join keys for joining (see #5942). + join_keys = self.column_info.join_keys_columns + # Convert all upstream ArrowTables to backend DataFrames joined_df = self.backend.from_arrow(input_values[0].data) for val in input_values[1:]: @@ -86,7 +90,7 @@ def execute(self, context: ExecutionContext) -> ArrowTableValue: joined_df = self.backend.join( joined_df, next_df, - on=self.column_info.join_keys, + on=join_keys, how=self.how, ) @@ -105,7 +109,7 @@ def execute(self, context: ExecutionContext) -> ArrowTableValue: joined_df = self.backend.join( entity_df, joined_df, - on=self.column_info.join_keys, + on=join_keys, how="left", ) @@ -193,8 +197,10 @@ def execute(self, context: ExecutionContext) -> ArrowTableValue: # Extract join_keys, timestamp, and created_ts from context - # Dedup strategy: sort and drop_duplicates - dedup_keys = self.column_info.join_keys + # Dedup strategy: sort and drop_duplicates. Use the mapped join key + # names so we look up the columns that the source-read node has + # already renamed (see issue #5942). + dedup_keys = self.column_info.join_keys_columns if dedup_keys: sort_keys = [self.column_info.timestamp_column] if ( diff --git a/sdk/python/tests/unit/infra/compute_engines/local/test_nodes.py b/sdk/python/tests/unit/infra/compute_engines/local/test_nodes.py index 897211b374e..872dd978c9e 100644 --- a/sdk/python/tests/unit/infra/compute_engines/local/test_nodes.py +++ b/sdk/python/tests/unit/infra/compute_engines/local/test_nodes.py @@ -186,6 +186,122 @@ def test_local_dedup_node(): assert set(df_result["entity_id"]) == {1, 2} +def test_local_dedup_node_with_field_mapping_on_join_key(): + """Regression test for materialization failure when a join key has a field mapping. + + The source-read node renames columns via field_mapping (e.g. ``USERID`` -> ``user_id``) + before passing the table to downstream nodes. Without mapping ``column_info.join_keys`` + the dedup node would look up the pre-mapping name and raise ``KeyError(['USERID'])``. + + See https://github.com/feast-dev/feast/issues/5942. + """ + # Simulate a source-read node output: columns already renamed to the mapped names. + df = pd.DataFrame( + { + "user_id": [1, 1, 2], + "value": [100, 200, 300], + "event_timestamp": [ + now - timedelta(seconds=1), + now, + now, + ], + } + ) + + context = create_context( + node_outputs={"source": ArrowTableValue(pa.Table.from_pandas(df))} + ) + + node = LocalDedupNode( + name="dedup", + backend=backend, + column_info=ColumnInfo( + # The raw join key matches the source column name; field_mapping maps + # it to the user-facing name that the source-read node has already + # renamed the column to. + join_keys=["USERID"], + feature_cols=["value"], + ts_col="EVENT_TIMESTAMP", + created_ts_col=None, + field_mapping={"USERID": "user_id", "EVENT_TIMESTAMP": "event_timestamp"}, + ), + ) + node.add_input(MagicMock()) + node.inputs[0].name = "source" + + result = node.execute(context) + + df_result = result.data.to_pandas() + assert df_result.shape[0] == 2 + assert set(df_result["user_id"]) == {1, 2} + + +def test_local_join_node_with_field_mapping_on_join_key(): + """Regression test for materialization failure when a join key has a field mapping. + + The source-read node renames columns via field_mapping (e.g. ``USERID`` -> ``user_id``) + before passing the table to downstream nodes. Without mapping ``column_info.join_keys`` + the join node would call ``backend.join(..., on=["USERID"], ...)`` and raise + ``KeyError(['USERID'])`` because the columns have already been renamed. + + See https://github.com/feast-dev/feast/issues/5942. + """ + # Simulate two source-read node outputs: columns already renamed to the mapped names. + left_df = pd.DataFrame( + { + "user_id": [1, 2], + "value": [10, 20], + "event_timestamp": [now, now], + } + ) + right_df = pd.DataFrame( + { + "user_id": [1, 2], + "other_value": [100, 200], + "event_timestamp": [now, now], + } + ) + + context = create_context( + node_outputs={ + "left": ArrowTableValue(pa.Table.from_pandas(left_df)), + "right": ArrowTableValue(pa.Table.from_pandas(right_df)), + } + ) + # Bypass the trailing entity_df join — this test exercises the input-table + # join path that consumed the raw (unmapped) join keys before the fix. + context.entity_df = None + + join_node = LocalJoinNode( + name="join", + backend=backend, + column_info=ColumnInfo( + # Raw join key matches the source column name; field_mapping maps it + # to the user-facing name that the source-read node has already + # renamed the column to. + join_keys=["USERID"], + feature_cols=["value", "other_value"], + ts_col="EVENT_TIMESTAMP", + created_ts_col=None, + field_mapping={"USERID": "user_id", "EVENT_TIMESTAMP": "event_timestamp"}, + ), + ) + left_input = MagicMock() + left_input.name = "left" + right_input = MagicMock() + right_input.name = "right" + join_node.add_input(left_input) + join_node.add_input(right_input) + + result = join_node.execute(context) + + df_result = result.data.to_pandas() + assert df_result.shape[0] == 2 + assert set(df_result["user_id"]) == {1, 2} + assert "value" in df_result.columns + assert "other_value" in df_result.columns + + def test_local_transformation_node(): context = create_context( node_outputs={"source": ArrowTableValue(pa.Table.from_pandas(sample_df))} From 1b681b714c56c75e75bc6f896424ebe4c3feddc2 Mon Sep 17 00:00:00 2001 From: Nikhil Kathole Date: Wed, 13 May 2026 21:47:24 +0530 Subject: [PATCH 14/59] feat: Add Prometheus gauges for FeatureStore installation telemetry (#6354) Signed-off-by: ntkathole --- infra/feast-operator/cmd/main.go | 19 +- infra/feast-operator/go.mod | 2 +- .../controller/featurestore_controller.go | 13 +- .../internal/controller/metrics/metrics.go | 133 +++++++++ .../controller/metrics/metrics_test.go | 275 ++++++++++++++++++ 5 files changed, 438 insertions(+), 4 deletions(-) create mode 100644 infra/feast-operator/internal/controller/metrics/metrics.go create mode 100644 infra/feast-operator/internal/controller/metrics/metrics_test.go diff --git a/infra/feast-operator/cmd/main.go b/infra/feast-operator/cmd/main.go index ead6e93ce72..0e5565cce2b 100644 --- a/infra/feast-operator/cmd/main.go +++ b/infra/feast-operator/cmd/main.go @@ -49,6 +49,7 @@ import ( routev1 "github.com/openshift/api/route/v1" "github.com/feast-dev/feast/infra/feast-operator/internal/controller" + feastmetrics "github.com/feast-dev/feast/infra/feast-operator/internal/controller/metrics" "github.com/feast-dev/feast/infra/feast-operator/internal/controller/services" // +kubebuilder:scaffold:imports ) @@ -95,6 +96,7 @@ func main() { var probeAddr string var secureMetrics bool var enableHTTP2 bool + var featureStoreMetrics bool var tlsOpts []func(*tls.Config) flag.StringVar(&metricsAddr, "metrics-bind-address", "0", "The address the metrics endpoint binds to. "+ "Use :8443 for HTTPS or :8080 for HTTP, or leave as 0 to disable the metrics service.") @@ -106,6 +108,9 @@ func main() { "If set, the metrics endpoint is served securely via HTTPS. Use --metrics-secure=false to use HTTP instead.") flag.BoolVar(&enableHTTP2, "enable-http2", false, "If set, HTTP/2 will be enabled for the metrics and webhook servers") + flag.BoolVar(&featureStoreMetrics, "feature-store-metrics", true, + "Enable Prometheus gauges exposing online/offline store and registry configuration per FeatureStore. "+ + "Disable with --feature-store-metrics=false.") opts := zap.Options{ Development: true, } @@ -206,9 +211,19 @@ func main() { services.SetIsOpenShift(mgr.GetConfig()) + var fsMetrics *feastmetrics.FeatureStoreMetrics + if featureStoreMetrics { + fsMetrics = feastmetrics.NewFeatureStoreMetrics() + fsMetrics.Register() + setupLog.Info("FeatureStore installation metrics enabled") + } else { + setupLog.Info("FeatureStore installation metrics disabled (--feature-store-metrics=false)") + } + if err = (&controller.FeatureStoreReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + Metrics: fsMetrics, }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "FeatureStore") os.Exit(1) diff --git a/infra/feast-operator/go.mod b/infra/feast-operator/go.mod index 72bdf42b6a2..a7dca2e3bc7 100644 --- a/infra/feast-operator/go.mod +++ b/infra/feast-operator/go.mod @@ -15,6 +15,7 @@ require ( require ( github.com/prometheus-operator/prometheus-operator/pkg/client v0.83.0 + github.com/prometheus/client_golang v1.22.0 k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979 ) @@ -55,7 +56,6 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.83.0 // indirect - github.com/prometheus/client_golang v1.22.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect diff --git a/infra/feast-operator/internal/controller/featurestore_controller.go b/infra/feast-operator/internal/controller/featurestore_controller.go index 32c8405ec2b..ae877447ddb 100644 --- a/infra/feast-operator/internal/controller/featurestore_controller.go +++ b/infra/feast-operator/internal/controller/featurestore_controller.go @@ -43,6 +43,7 @@ import ( feastdevv1 "github.com/feast-dev/feast/infra/feast-operator/api/v1" "github.com/feast-dev/feast/infra/feast-operator/internal/controller/authz" feasthandler "github.com/feast-dev/feast/infra/feast-operator/internal/controller/handler" + feastmetrics "github.com/feast-dev/feast/infra/feast-operator/internal/controller/metrics" "github.com/feast-dev/feast/infra/feast-operator/internal/controller/services" routev1 "github.com/openshift/api/route/v1" ) @@ -55,7 +56,8 @@ const ( // FeatureStoreReconciler reconciles a FeatureStore object type FeatureStoreReconciler struct { client.Client - Scheme *runtime.Scheme + Scheme *runtime.Scheme + Metrics *feastmetrics.FeatureStoreMetrics } // +kubebuilder:rbac:groups=feast.dev,resources=featurestores,verbs=get;list;watch;create;update;patch;delete @@ -87,6 +89,9 @@ func (r *FeatureStoreReconciler) Reconcile(ctx context.Context, req ctrl.Request if apierrors.IsNotFound(err) { // CR deleted since request queued, child objects getting GC'd, no requeue logger.V(1).Info("FeatureStore CR not found, has been deleted") + if r.Metrics != nil { + r.Metrics.DeleteFeatureStore(req.NamespacedName.Namespace, req.NamespacedName.Name) + } // Clean up namespace registry entry even if the CR is not found if err := r.cleanupNamespaceRegistry(ctx, &feastdevv1.FeatureStore{ ObjectMeta: metav1.ObjectMeta{ @@ -107,6 +112,9 @@ func (r *FeatureStoreReconciler) Reconcile(ctx context.Context, req ctrl.Request // Handle deletion - clean up namespace registry entry if cr.DeletionTimestamp != nil { logger.Info("FeatureStore is being deleted, cleaning up namespace registry entry") + if r.Metrics != nil { + r.Metrics.DeleteFeatureStore(cr.Namespace, cr.Name) + } if err := r.cleanupNamespaceRegistry(ctx, cr); err != nil { logger.Error(err, "Failed to clean up namespace registry entry") return ctrl.Result{}, err @@ -115,6 +123,9 @@ func (r *FeatureStoreReconciler) Reconcile(ctx context.Context, req ctrl.Request } result, recErr = r.deployFeast(ctx, cr) + if recErr == nil && r.Metrics != nil { + r.Metrics.RecordFeatureStore(cr) + } if cr.DeletionTimestamp == nil && !reflect.DeepEqual(currentStatus, cr.Status) { if err = r.Client.Status().Update(ctx, cr); err != nil { if apierrors.IsConflict(err) { diff --git a/infra/feast-operator/internal/controller/metrics/metrics.go b/infra/feast-operator/internal/controller/metrics/metrics.go new file mode 100644 index 00000000000..c85d894c4ce --- /dev/null +++ b/infra/feast-operator/internal/controller/metrics/metrics.go @@ -0,0 +1,133 @@ +/* +Copyright 2026 Feast Community. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package metrics provides a Prometheus info gauge that records the store +// types configured for each FeatureStore CR (online store, offline store, +// registry). These operator-level metrics are distinct from the Feast +// feature-server application metrics (feast_feature_server_*) and are useful +// for usage telemetry and assessing the impact of removing store type support. +package metrics + +import ( + feastdevv1 "github.com/feast-dev/feast/infra/feast-operator/api/v1" + "github.com/prometheus/client_golang/prometheus" + ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics" +) + +const typeNone = "none" + +// FeatureStoreMetrics holds the Prometheus GaugeVec for feast-operator +// installation telemetry. +type FeatureStoreMetrics struct { + FeatureStoreInfo *prometheus.GaugeVec +} + +// NewFeatureStoreMetrics creates a new FeatureStoreMetrics with the GaugeVec +// initialised but not yet registered. Call Register() before starting the manager. +func NewFeatureStoreMetrics() *FeatureStoreMetrics { + return &FeatureStoreMetrics{ + FeatureStoreInfo: prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Name: "feast_operator_feature_store_info", + Help: "Information about a deployed FeatureStore. " + + "Value is always 1. Labels carry the configured store types: " + + "'online_store_type', 'offline_store_type', and 'registry_type' " + + "are set to the persistence type (e.g. redis, snowflake.offline, local) " + + "or 'none' when that component is not configured.", + }, + []string{"namespace", "name", "online_store_type", "offline_store_type", "registry_type"}, + ), + } +} + +// Register registers the metric with the controller-runtime metrics registry +// so it is exposed on the manager's /metrics endpoint. +func (m *FeatureStoreMetrics) Register() { + ctrlmetrics.Registry.MustRegister(m.FeatureStoreInfo) +} + +// RecordFeatureStore updates the gauge for the given FeatureStore using the +// applied configuration stored in status.Applied (which has operator defaults +// applied). The previous label set for this FeatureStore is deleted first so +// that store type changes are reflected cleanly on the next scrape. +func (m *FeatureStoreMetrics) RecordFeatureStore(fs *feastdevv1.FeatureStore) { + svcs := fs.Status.Applied.Services + m.FeatureStoreInfo.DeletePartialMatch(prometheus.Labels{ + "namespace": fs.Namespace, + "name": fs.Name, + }) + m.FeatureStoreInfo.WithLabelValues( + fs.Namespace, + fs.Name, + onlineStoreType(svcs), + offlineStoreType(svcs), + registryType(svcs), + ).Set(1) +} + +// DeleteFeatureStore removes the metric label set for the given FeatureStore. +// Safe to call when the CR has already been deleted from the API server. +func (m *FeatureStoreMetrics) DeleteFeatureStore(namespace, name string) { + m.FeatureStoreInfo.DeletePartialMatch(prometheus.Labels{ + "namespace": namespace, + "name": name, + }) +} + +// onlineStoreType returns the online store persistence type or "none". +func onlineStoreType(svcs *feastdevv1.FeatureStoreServices) string { + if svcs == nil || svcs.OnlineStore == nil { + return typeNone + } + if p := svcs.OnlineStore.Persistence; p != nil && p.DBPersistence != nil { + return p.DBPersistence.Type + } + return "file" +} + +// offlineStoreType returns the offline store persistence type or "none". +func offlineStoreType(svcs *feastdevv1.FeatureStoreServices) string { + if svcs == nil || svcs.OfflineStore == nil { + return typeNone + } + if p := svcs.OfflineStore.Persistence; p != nil { + if p.DBPersistence != nil { + return p.DBPersistence.Type + } + if p.FilePersistence != nil && p.FilePersistence.Type != "" { + return p.FilePersistence.Type + } + } + return "file" +} + +// registryType returns "local", "remote", "remote_feastref", or "none". +func registryType(svcs *feastdevv1.FeatureStoreServices) string { + if svcs == nil || svcs.Registry == nil { + return typeNone + } + switch { + case svcs.Registry.Local != nil: + return "local" + case svcs.Registry.Remote != nil: + if svcs.Registry.Remote.FeastRef != nil { + return "remote_feastref" + } + return "remote" + default: + return typeNone + } +} diff --git a/infra/feast-operator/internal/controller/metrics/metrics_test.go b/infra/feast-operator/internal/controller/metrics/metrics_test.go new file mode 100644 index 00000000000..480a861560d --- /dev/null +++ b/infra/feast-operator/internal/controller/metrics/metrics_test.go @@ -0,0 +1,275 @@ +/* +Copyright 2026 Feast Community. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package metrics_test + +import ( + "testing" + + "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + feastdevv1 "github.com/feast-dev/feast/infra/feast-operator/api/v1" + . "github.com/feast-dev/feast/infra/feast-operator/internal/controller/metrics" +) + +const testNamespace = "test-ns" + +// gaugeValue reads the float64 value for the given label values. +// Returns -1 if the metric is not found. +func gaugeValue(gv *prometheus.GaugeVec, labels ...string) float64 { + g, err := gv.GetMetricWithLabelValues(labels...) + if err != nil { + return -1 + } + m := &dto.Metric{} + if err := g.Write(m); err != nil { + return -1 + } + return m.GetGauge().GetValue() +} + +func featureStore(name string, svcs *feastdevv1.FeatureStoreServices) *feastdevv1.FeatureStore { + fs := &feastdevv1.FeatureStore{ + ObjectMeta: metav1.ObjectMeta{Namespace: testNamespace, Name: name}, + } + fs.Status.Applied.Services = svcs + return fs +} + +func TestRecordFeatureStore_NoServices(t *testing.T) { + m := NewFeatureStoreMetrics() + m.RecordFeatureStore(featureStore("fs", nil)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "none", "none", "none"); v != 1 { + t.Errorf("expected 1 for all-absent store, got %v", v) + } +} + +func TestRecordFeatureStore_OnlineStore_File(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{}, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "file", "none", "none"); v != 1 { + t.Errorf("expected 1 for file online store, got %v", v) + } +} + +func TestRecordFeatureStore_OnlineStore_Redis(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "redis"}, + }, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "redis", "none", "none"); v != 1 { + t.Errorf("expected 1 for redis online store, got %v", v) + } +} + +func TestRecordFeatureStore_OfflineStore_DB(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + OfflineStore: &feastdevv1.OfflineStore{ + Persistence: &feastdevv1.OfflineStorePersistence{ + DBPersistence: &feastdevv1.OfflineStoreDBStorePersistence{Type: "snowflake.offline"}, + }, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "none", "snowflake.offline", "none"); v != 1 { + t.Errorf("expected 1 for snowflake offline store, got %v", v) + } +} + +func TestRecordFeatureStore_OfflineStore_FilePersistenceType(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + OfflineStore: &feastdevv1.OfflineStore{ + Persistence: &feastdevv1.OfflineStorePersistence{ + FilePersistence: &feastdevv1.OfflineStoreFilePersistence{Type: "duckdb"}, + }, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "none", "duckdb", "none"); v != 1 { + t.Errorf("expected 1 for duckdb offline store, got %v", v) + } +} + +func TestRecordFeatureStore_Registry_Local(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{}, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "none", "none", "local"); v != 1 { + t.Errorf("expected 1 for local registry, got %v", v) + } +} + +func TestRecordFeatureStore_Registry_RemoteHostname(t *testing.T) { + hostname := "registry.example.com:443" + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Remote: &feastdevv1.RemoteRegistryConfig{Hostname: &hostname}, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "none", "none", "remote"); v != 1 { + t.Errorf("expected 1 for remote registry, got %v", v) + } +} + +func TestRecordFeatureStore_Registry_RemoteFeastRef(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Remote: &feastdevv1.RemoteRegistryConfig{ + FeastRef: &feastdevv1.FeatureStoreRef{Name: "other-fs", Namespace: "other-ns"}, + }, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "none", "none", "remote_feastref"); v != 1 { + t.Errorf("expected 1 for remote_feastref registry, got %v", v) + } +} + +func TestRecordFeatureStore_AllComponents(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "redis"}, + }, + }, + OfflineStore: &feastdevv1.OfflineStore{ + Persistence: &feastdevv1.OfflineStorePersistence{ + DBPersistence: &feastdevv1.OfflineStoreDBStorePersistence{Type: "snowflake.offline"}, + }, + }, + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{}, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "redis", "snowflake.offline", "local"); v != 1 { + t.Errorf("expected 1 for full store config, got %v", v) + } +} + +func TestRecordFeatureStore_TypeChange(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs1 := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "redis"}, + }, + }, + } + svcs2 := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "postgres"}, + }, + }, + } + + m.RecordFeatureStore(featureStore("fs", svcs1)) + m.RecordFeatureStore(featureStore("fs", svcs2)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "redis", "none", "none"); v != 0 { + t.Errorf("old label set (redis) should be removed after type change, got %v", v) + } + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "postgres", "none", "none"); v != 1 { + t.Errorf("new label set (postgres) should be 1 after type change, got %v", v) + } +} + +func TestDeleteFeatureStore_RemovesMetric(t *testing.T) { + m := NewFeatureStoreMetrics() + svcs := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "redis"}, + }, + }, + } + m.RecordFeatureStore(featureStore("fs", svcs)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "redis", "none", "none"); v != 1 { + t.Fatalf("setup: expected 1 before delete, got %v", v) + } + + m.DeleteFeatureStore(testNamespace, "fs") + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs", "redis", "none", "none"); v != 0 { + t.Errorf("expected 0 after DeleteFeatureStore, got %v", v) + } +} + +func TestMultipleFeatureStores_IndependentLabelSets(t *testing.T) { + m := NewFeatureStoreMetrics() + + svcs1 := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "redis"}, + }, + }, + } + svcs2 := &feastdevv1.FeatureStoreServices{ + OnlineStore: &feastdevv1.OnlineStore{ + Persistence: &feastdevv1.OnlineStorePersistence{ + DBPersistence: &feastdevv1.OnlineStoreDBStorePersistence{Type: "postgres"}, + }, + }, + } + + m.RecordFeatureStore(featureStore("fs-1", svcs1)) + m.RecordFeatureStore(featureStore("fs-2", svcs2)) + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs-1", "redis", "none", "none"); v != 1 { + t.Errorf("fs-1: expected redis=1, got %v", v) + } + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs-2", "postgres", "none", "none"); v != 1 { + t.Errorf("fs-2: expected postgres=1, got %v", v) + } + + m.DeleteFeatureStore(testNamespace, "fs-1") + + if v := gaugeValue(m.FeatureStoreInfo, testNamespace, "fs-2", "postgres", "none", "none"); v != 1 { + t.Errorf("fs-2 should be unaffected after fs-1 deletion, got %v", v) + } +} From 0d51c934be97c5f54837c0af637a49051e5077a6 Mon Sep 17 00:00:00 2001 From: jvincent-mongodb Date: Wed, 13 May 2026 14:56:16 -0700 Subject: [PATCH 15/59] docs: Rename Atlas Vector Search to MongoDB Vector Search and fix code examples Signed-off-by: jvincent-mongodb --- docs/reference/data-sources/mongodb.md | 24 +++++++----------------- docs/reference/offline-stores/mongodb.md | 2 -- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/docs/reference/data-sources/mongodb.md b/docs/reference/data-sources/mongodb.md index c1b6eed1bed..8902affd3c5 100644 --- a/docs/reference/data-sources/mongodb.md +++ b/docs/reference/data-sources/mongodb.md @@ -28,9 +28,7 @@ The full set of configuration options is available [here](https://rtd.feast.dev/ ## Vector Search -The MongoDB online store supports [Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/), enabling similarity search over feature embeddings stored in MongoDB Atlas. This is powered by the `$vectorSearch` aggregation stage and requires MongoDB Atlas (or the `mongodb/mongodb-atlas-local` Docker image for local development). - -See [PR #6344](https://github.com/feast-dev/feast/pull/6344) for full implementation details. +The MongoDB online store supports [MongoDB Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/), enabling similarity search over feature embeddings stored in MongoDB. This is powered by the `$vectorSearch` aggregation stage and supports MongoDB Atlas, self-hosted MongoDB with Atlas Search indexes, and the `mongodb/mongodb-atlas-local` Docker image for local development. ### Configuration @@ -41,7 +39,7 @@ project: my_project provider: local online_store: type: mongodb - connection_string: mongodb+srv://:@cluster.mongodb.net + connection_string: mongodb+srv://:@cluster.mongodb.net # pragma: allowlist secret vector_enabled: true similarity: cosine # cosine | euclidean | dotProduct vector_index_wait_timeout: 60 # seconds to wait for index to become queryable @@ -76,32 +74,24 @@ item_embeddings = FeatureView( ) ``` -When `feast apply` (or `store.update()`) runs with `vector_enabled=True`, Atlas vector search indexes are automatically created for any field with `vector_index=True`. Indexes are also automatically dropped when feature views are removed. +When `feast apply` (or `store.update()`) runs with `vector_enabled=True`, MongoDB vector search indexes are automatically created for any field with `vector_index=True`. Indexes are also automatically dropped when feature views are removed. ### Retrieving Documents via Vector Search Use `retrieve_online_documents_v2()` to perform similarity search: ```python -source = FeatureStore(repo_path=".") +store = FeatureStore(repo_path=".") results = store.retrieve_online_documents_v2( - config=repo_config, - table=item_embeddings, - requested_features=["embedding", "title"], - embedding=[0.1, 0.2, ...], # query vector + features=["item_embeddings:embedding", "item_embeddings:title"], + query=[0.1, 0.2, ...], # query vector top_k=5, ) - -# Each result is a (event_timestamp, entity_key_proto, feature_dict) tuple. -# feature_dict includes a synthetic "distance" key with the vector search score. -for ts, entity_key, features in results: - print(features["title"].string_val, features["distance"].float_val) -``` ``` ### How It Works -- **Index creation**: `update()` creates an Atlas vector search index named `____vs_index` for each vector-indexed field. It waits for the index to reach `READY` status before proceeding. +- **Index creation**: `update()` creates a MongoDB vector search index named `____vs_index` for each vector-indexed field. It waits for the index to reach `READY` status before proceeding. - **Query execution**: `retrieve_online_documents_v2()` builds a `$vectorSearch` aggregation pipeline with `numCandidates = max(top_k * 10, 100)` and the specified `limit`. - **Score**: Results include a `distance` field populated from `$meta: "vectorSearchScore"`. - **BSON compatibility**: Query vectors are coerced to native Python floats to avoid numpy serialization issues. diff --git a/docs/reference/offline-stores/mongodb.md b/docs/reference/offline-stores/mongodb.md index 0e8d1786699..a41d43ca676 100644 --- a/docs/reference/offline-stores/mongodb.md +++ b/docs/reference/offline-stores/mongodb.md @@ -3,8 +3,6 @@ ## Description The MongoDB offline store provides support for reading [MongoDBSource](../data-sources/mongodb.md). -* Uses a single shared collection with a compound index for all FeatureViews, distinguished by a `feature_view` discriminator field. -* Entity dataframes can be provided as a Pandas dataframe. The offline store converts entity identifiers into serialized entity keys for efficient lookup against the collection. ## Getting started From 0adc9060d80a675b64422d5a1ddd5c8bec1f4996 Mon Sep 17 00:00:00 2001 From: Jonathan Wrede Date: Sun, 3 May 2026 17:26:43 +0000 Subject: [PATCH 16/59] feat(dynamodb): Use ProjectionExpression when requested_features is set The requested_features parameter was accepted by online_read and online_read_async but never used -- DynamoDB always fetched all features stored in the values map regardless. Add a ProjectionExpression to BatchGetItem requests when requested_features is provided, reducing data transfer, latency, and read costs. Fixes #6058 Signed-off-by: Jonathan Wrede --- .../feast/infra/online_stores/dynamodb.py | 63 ++++++++--- .../test_dynamodb_online_store.py | 104 ++++++++++++++++++ 2 files changed, 153 insertions(+), 14 deletions(-) diff --git a/sdk/python/feast/infra/online_stores/dynamodb.py b/sdk/python/feast/infra/online_stores/dynamodb.py index 1998167e4b0..22f79929b63 100644 --- a/sdk/python/feast/infra/online_stores/dynamodb.py +++ b/sdk/python/feast/infra/online_stores/dynamodb.py @@ -504,7 +504,7 @@ def online_read( # For single batch, no parallelization overhead needed if len(batches) == 1: batch_entity_ids = self._to_resource_batch_get_payload( - online_config, table_name, batches[0] + online_config, table_name, batches[0], requested_features ) response = dynamodb_resource.batch_get_item(RequestItems=batch_entity_ids) return self._process_batch_get_response(table_name, response, batches[0]) @@ -520,7 +520,7 @@ def online_read( def fetch_batch(batch: List[str]) -> Dict[str, Any]: batch_entity_ids = self._to_client_batch_get_payload( - online_config, table_name, batch + online_config, table_name, batch, requested_features ) return dynamodb_client.batch_get_item(RequestItems=batch_entity_ids) @@ -599,7 +599,7 @@ def to_tbl_resp(raw_client_response): if not batch: break entity_id_batch = self._to_client_batch_get_payload( - online_config, table_name, batch + online_config, table_name, batch, requested_features ) batches.append(batch) entity_id_batches.append(entity_id_batch) @@ -760,21 +760,56 @@ def _to_entity_ids(config: RepoConfig, entity_keys: List[EntityKeyProto]): ] @staticmethod - def _to_resource_batch_get_payload(online_config, table_name, batch): - return { - table_name: { - "Keys": [{"entity_id": entity_id} for entity_id in batch], - "ConsistentRead": online_config.consistent_reads, - } + def _to_resource_batch_get_payload( + online_config, table_name, batch, requested_features=None + ): + payload: Dict[str, Any] = { + "Keys": [{"entity_id": entity_id} for entity_id in batch], + "ConsistentRead": online_config.consistent_reads, + } + projection = DynamoDBOnlineStore._build_projection_expression( + requested_features + ) + if projection: + payload["ProjectionExpression"] = projection["ProjectionExpression"] + payload["ExpressionAttributeNames"] = projection["ExpressionAttributeNames"] + return {table_name: payload} + + @staticmethod + def _to_client_batch_get_payload( + online_config, table_name, batch, requested_features=None + ): + payload: Dict[str, Any] = { + "Keys": [{"entity_id": {"S": entity_id}} for entity_id in batch], + "ConsistentRead": online_config.consistent_reads, } + projection = DynamoDBOnlineStore._build_projection_expression( + requested_features + ) + if projection: + payload["ProjectionExpression"] = projection["ProjectionExpression"] + payload["ExpressionAttributeNames"] = projection["ExpressionAttributeNames"] + return {table_name: payload} @staticmethod - def _to_client_batch_get_payload(online_config, table_name, batch): + def _build_projection_expression( + requested_features: Optional[List[str]], + ) -> Optional[Dict[str, str]]: + if not requested_features: + return None + attr_names: Dict[str, str] = { + "#entity_id": "entity_id", + "#event_ts": "event_ts", + "#vals": "values", + } + projections = ["#entity_id", "#event_ts"] + for i, feat in enumerate(requested_features): + alias = f"#feat{i}" + attr_names[alias] = feat + projections.append(f"#vals.{alias}") return { - table_name: { - "Keys": [{"entity_id": {"S": entity_id}} for entity_id in batch], - "ConsistentRead": online_config.consistent_reads, - } + "ProjectionExpression": ", ".join(projections), + "ExpressionAttributeNames": attr_names, } def update_online_store( diff --git a/sdk/python/tests/unit/infra/online_store/test_dynamodb_online_store.py b/sdk/python/tests/unit/infra/online_store/test_dynamodb_online_store.py index 7e5558e19d7..ddd73af53c6 100644 --- a/sdk/python/tests/unit/infra/online_store/test_dynamodb_online_store.py +++ b/sdk/python/tests/unit/infra/online_store/test_dynamodb_online_store.py @@ -1050,3 +1050,107 @@ def tracking_client(*args, **kwargs): f"Expected 1 shared client for thread-safety, " f"got {len(set(dynamodb_clients))} unique clients" ) + + +@mock_dynamodb +def test_dynamodb_online_store_online_read_with_requested_features( + repo_config, dynamodb_online_store +): + """Test that requested_features filters returned features.""" + n_samples = 5 + db_table_name = f"{TABLE_NAME}_requested_features" + create_test_table(PROJECT, db_table_name, REGION) + data = create_n_customer_test_samples(n=n_samples) + insert_data_test_table(data, PROJECT, db_table_name, REGION) + + entity_keys, features, *rest = zip(*data) + returned_items = dynamodb_online_store.online_read( + config=repo_config, + table=MockFeatureView(name=db_table_name), + entity_keys=entity_keys, + requested_features=["name", "age"], + ) + assert len(returned_items) == n_samples + for _, feat_dict in returned_items: + assert feat_dict is not None + assert "name" in feat_dict + assert "age" in feat_dict + assert "avg_orders_day" not in feat_dict + + +@mock_dynamodb +def test_dynamodb_online_store_online_read_without_requested_features( + repo_config, dynamodb_online_store +): + """Test that omitting requested_features returns all features.""" + n_samples = 5 + db_table_name = f"{TABLE_NAME}_all_features" + create_test_table(PROJECT, db_table_name, REGION) + data = create_n_customer_test_samples(n=n_samples) + insert_data_test_table(data, PROJECT, db_table_name, REGION) + + entity_keys, features, *rest = zip(*data) + returned_items = dynamodb_online_store.online_read( + config=repo_config, + table=MockFeatureView(name=db_table_name), + entity_keys=entity_keys, + requested_features=None, + ) + assert len(returned_items) == n_samples + for _, feat_dict in returned_items: + assert feat_dict is not None + assert set(feat_dict.keys()) == {"avg_orders_day", "name", "age"} + + +def test_build_projection_expression(): + """Test that _build_projection_expression generates correct DynamoDB expressions.""" + result = DynamoDBOnlineStore._build_projection_expression(["feat_a", "feat_b"]) + assert result is not None + assert "#entity_id" in result["ProjectionExpression"] + assert "#event_ts" in result["ProjectionExpression"] + assert "#vals.#feat0" in result["ProjectionExpression"] + assert "#vals.#feat1" in result["ProjectionExpression"] + attr_names = result["ExpressionAttributeNames"] + assert attr_names["#vals"] == "values" + assert attr_names["#feat0"] == "feat_a" + assert attr_names["#feat1"] == "feat_b" + + +def test_build_projection_expression_none(): + """Test that _build_projection_expression returns None for empty input.""" + assert DynamoDBOnlineStore._build_projection_expression(None) is None + assert DynamoDBOnlineStore._build_projection_expression([]) is None + + +@mock_dynamodb +def test_dynamodb_online_store_online_read_requested_features_parallel( + dynamodb_online_store, +): + """Test that requested_features works across parallel batches.""" + small_batch_config = RepoConfig( + registry=REGISTRY, + project=PROJECT, + provider=PROVIDER, + online_store=DynamoDBOnlineStoreConfig(region=REGION, batch_size=5), + offline_store=DaskOfflineStoreConfig(), + entity_key_serialization_version=3, + ) + n_samples = 15 + db_table_name = f"{TABLE_NAME}_requested_parallel" + create_test_table(PROJECT, db_table_name, REGION) + data = create_n_customer_test_samples(n=n_samples) + insert_data_test_table(data, PROJECT, db_table_name, REGION) + + entity_keys, features, *rest = zip(*data) + returned_items = dynamodb_online_store.online_read( + config=small_batch_config, + table=MockFeatureView(name=db_table_name), + entity_keys=entity_keys, + requested_features=["age"], + ) + assert len(returned_items) == n_samples + for _, feat_dict in returned_items: + assert feat_dict is not None + assert "age" in feat_dict + assert "name" not in feat_dict + assert "avg_orders_day" not in feat_dict From 217b4daa49a47ae3c88e8a320569e83c1fb51b7e Mon Sep 17 00:00:00 2001 From: Jonathan Wrede Date: Sun, 3 May 2026 17:33:34 +0000 Subject: [PATCH 17/59] fix(dynamodb): Fix mypy type for _build_projection_expression return The return dict contains both str and Dict[str, str] values, so the return type must be Dict[str, Any] not Dict[str, str]. Signed-off-by: Jonathan Wrede --- sdk/python/feast/infra/online_stores/dynamodb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/online_stores/dynamodb.py b/sdk/python/feast/infra/online_stores/dynamodb.py index 22f79929b63..8781f6bc91f 100644 --- a/sdk/python/feast/infra/online_stores/dynamodb.py +++ b/sdk/python/feast/infra/online_stores/dynamodb.py @@ -794,7 +794,7 @@ def _to_client_batch_get_payload( @staticmethod def _build_projection_expression( requested_features: Optional[List[str]], - ) -> Optional[Dict[str, str]]: + ) -> Optional[Dict[str, Any]]: if not requested_features: return None attr_names: Dict[str, str] = { From 92434971821b3a9486d04397af33bac94e808e24 Mon Sep 17 00:00:00 2001 From: Jonathan Wrede Date: Sun, 3 May 2026 17:23:19 +0000 Subject: [PATCH 18/59] fix(bigquery): Enable list inference for parquet loads in offline_write_batch When pushing features with array/list types (e.g. STRING_LIST) to BigQuery via offline_write_batch, the data arrives as empty arrays because BigQuery's parquet loader does not infer list structure by default. Set parquet_options.enable_list_inference = True on the LoadJobConfig so array columns are written correctly. Fixes #5845 Signed-off-by: Jonathan Wrede --- .../feast/infra/offline_stores/bigquery.py | 4 ++ .../infra/offline_stores/test_bigquery.py | 61 +++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/sdk/python/feast/infra/offline_stores/bigquery.py b/sdk/python/feast/infra/offline_stores/bigquery.py index 948cfcf1ff0..ac4eff4fdd2 100644 --- a/sdk/python/feast/infra/offline_stores/bigquery.py +++ b/sdk/python/feast/infra/offline_stores/bigquery.py @@ -434,11 +434,15 @@ def offline_write_batch( location=config.offline_store.location, ) + parquet_options = bigquery.ParquetOptions() + parquet_options.enable_list_inference = True + job_config = bigquery.LoadJobConfig( source_format=bigquery.SourceFormat.PARQUET, schema=arrow_schema_to_bq_schema(pa_schema), create_disposition=config.offline_store.table_create_disposition, write_disposition="WRITE_APPEND", # Default but included for clarity + parquet_options=parquet_options, ) with tempfile.TemporaryFile() as parquet_temp_file: diff --git a/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py b/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py index 969a9679971..10a973f826b 100644 --- a/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py +++ b/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py @@ -200,3 +200,64 @@ def test_table_property_unaffected_by_query_priority(self): timestamp_field="ts", ) assert source.table == "project.dataset.write_target" + + +class TestOfflineWriteBatch: + @patch("feast.infra.offline_stores.bigquery._get_bigquery_client") + def test_offline_write_batch_enables_list_inference(self, mock_get_client): + """LoadJobConfig must set parquet_options.enable_list_inference = True + so that BigQuery correctly interprets PyArrow list columns from parquet. + """ + from unittest.mock import MagicMock + + source = BigQuerySource( + name="test", + table="project.dataset.table", + timestamp_field="ts", + ) + fv = MagicMock() + fv.batch_source = source + + pa_schema = pyarrow.schema( + [ + pyarrow.field("entity_id", pyarrow.string()), + pyarrow.field("tags", pyarrow.list_(pyarrow.string())), + pyarrow.field("ts", pyarrow.timestamp("us", tz="UTC")), + ] + ) + pa_table = pyarrow.table( + { + "entity_id": ["e1"], + "tags": [["a", "b"]], + "ts": [datetime(2024, 1, 1, tzinfo=timezone.utc)], + }, + schema=pa_schema, + ) + + mock_client = MagicMock() + mock_get_client.return_value = mock_client + mock_client.load_table_from_file.return_value = MagicMock() + + config = RepoConfig( + registry="gs://test/registry.db", + project="test", + provider="gcp", + offline_store=BigQueryOfflineStoreConfig(project_id="test-project"), + online_store=SqliteOnlineStoreConfig(), + ) + + with patch( + "feast.infra.offline_stores.offline_utils.get_pyarrow_schema_from_batch_source", + return_value=(pa_schema, pa_table.column_names), + ): + BigQueryOfflineStore.offline_write_batch( + config=config, + feature_view=fv, + table=pa_table, + progress=None, + ) + + call_kwargs = mock_client.load_table_from_file.call_args + job_config = call_kwargs[1]["job_config"] + assert job_config.parquet_options is not None + assert job_config.parquet_options.enable_list_inference is True From d86b13df1d3c74fb1ba1906a7eadbc1cfc1492d8 Mon Sep 17 00:00:00 2001 From: Jwrede <62910358+Jwrede@users.noreply.github.com> Date: Thu, 14 May 2026 09:53:30 +0200 Subject: [PATCH 19/59] fix(trino): Clean up temporary entity tables after retrieval (#6381) * fix(trino): Clean up temporary entity tables after retrieval TrinoOfflineStore.get_historical_features() creates a temporary table for the entity DataFrame but never drops it, leaking tables indefinitely. Apply the same context manager pattern used by BigQuery, Redshift, and Athena offline stores: wrap the query in a generator that issues DROP TABLE IF EXISTS in a finally block. Fixes #6306 Signed-off-by: Jonathan Wrede * fix: sort imports for ruff compliance Signed-off-by: Jonathan Wrede * fix: decouple temp table cleanup from query access Avoid dropping the temporary entity table on to_sql() calls. Previously, every method used a context manager that dropped the table on exit, so calling to_sql() before to_df() would destroy the table and cause subsequent queries to fail. Now the query is stored as a plain string and cleanup is handled by a dedicated _drop_temp_table() method called only after query execution (to_df, to_trino). A __del__ fallback ensures cleanup if execution methods are never called. The _cleaned_up flag makes the drop idempotent. Signed-off-by: Jonathan Wrede --------- Signed-off-by: Jonathan Wrede --- .../contrib/trino_offline_store/trino.py | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py b/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py index 33190bd4635..0f77d6e18fc 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py +++ b/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py @@ -1,6 +1,15 @@ +import logging import uuid from datetime import date, datetime -from typing import Any, Dict, List, Literal, Optional, Tuple, Union +from typing import ( + Any, + Dict, + List, + Literal, + Optional, + Tuple, + Union, +) import numpy as np import pandas as pd @@ -37,6 +46,8 @@ from feast.repo_config import FeastConfigBaseModel, RepoConfig from feast.saved_dataset import SavedDatasetStorage +logger = logging.getLogger(__name__) + class BasicAuthModel(FeastConfigBaseModel): username: StrictStr @@ -183,6 +194,7 @@ def __init__( full_feature_names: bool, on_demand_feature_views: Optional[List[OnDemandFeatureView]] = None, metadata: Optional[RetrievalMetadata] = None, + temp_table: Optional[str] = None, ): self._query = query self._client = client @@ -190,6 +202,8 @@ def __init__( self._full_feature_names = full_feature_names self._on_demand_feature_views = on_demand_feature_views or [] self._metadata = metadata + self._temp_table = temp_table + self._cleaned_up = False @property def full_feature_names(self) -> bool: @@ -199,11 +213,29 @@ def full_feature_names(self) -> bool: def on_demand_feature_views(self) -> List[OnDemandFeatureView]: return self._on_demand_feature_views + def _drop_temp_table(self) -> None: + if self._cleaned_up or not self._temp_table: + return + self._cleaned_up = True + try: + self._client.execute_query(f"DROP TABLE IF EXISTS {self._temp_table}") + except Exception: + logger.exception( + "Failed to drop temporary entity table %s", + self._temp_table, + ) + + def __del__(self) -> None: + self._drop_temp_table() + def _to_df_internal(self, timeout: Optional[int] = None) -> pd.DataFrame: """Return dataset as Pandas DataFrame synchronously including on demand transforms""" - results = self._client.execute_query(query_text=self._query) - self.pyarrow_schema = results.pyarrow_schema - return results.to_dataframe() + try: + results = self._client.execute_query(query_text=self._query) + self.pyarrow_schema = results.pyarrow_schema + return results.to_dataframe() + finally: + self._drop_temp_table() def _to_arrow_internal(self, timeout: Optional[int] = None) -> pyarrow.Table: """Return payrrow dataset as synchronously including on demand transforms""" @@ -234,8 +266,11 @@ def to_trino( destination_table = f"{self._client.catalog}.{self._config.offline_store.dataset}.historical_{today}_{rand_id}" # TODO: Implement the timeout logic - query = f"CREATE TABLE {destination_table} AS ({self._query})" - self._client.execute_query(query_text=query) + try: + create_query = f"CREATE TABLE {destination_table} AS ({self._query})" + self._client.execute_query(query_text=create_query) + finally: + self._drop_temp_table() return destination_table def persist( @@ -372,11 +407,12 @@ def get_historical_features( ) # Generate the Trino SQL query from the query context + entity_table_ref = table_reference if type(entity_df) is str: - table_reference = f"({entity_df})" + entity_table_ref = f"({entity_df})" query = offline_utils.build_point_in_time_query( query_context, - left_table_query_string=table_reference, + left_table_query_string=entity_table_ref, entity_df_event_timestamp_col=entity_df_event_timestamp_col, entity_df_columns=entity_schema.keys(), query_template=MULTIPLE_FEATURE_VIEW_POINT_IN_TIME_JOIN, @@ -385,6 +421,7 @@ def get_historical_features( return TrinoRetrievalJob( query=query, + temp_table=table_reference if isinstance(entity_df, pd.DataFrame) else None, client=client, config=config, full_feature_names=full_feature_names, @@ -483,8 +520,6 @@ def _upload_entity_df_and_get_entity_schema( else: raise InvalidEntityType(type(entity_df)) - # TODO: Ensure that the table expires after some time - def _get_trino_client(config: RepoConfig) -> Trino: auth = None From 753dee5ea4fdde07b2ee74a9a74b0a7b855c6716 Mon Sep 17 00:00:00 2001 From: Jwrede <62910358+Jwrede@users.noreply.github.com> Date: Thu, 14 May 2026 11:03:18 +0200 Subject: [PATCH 20/59] feat(bigquery): Support DATE-type event timestamp columns (#6362) * feat(bigquery): Support DATE-type event timestamp columns When the event_timestamp column in BigQuery is a DATE type, the generated SQL wraps comparison values in TIMESTAMP(), causing a type mismatch error. This adds a timestamp_field_type parameter to BigQuerySource that, when set to "DATE", generates DATE() comparisons instead. Closes #2530 (part 2) Signed-off-by: Jonathan Wrede * fix(bigquery): Use protobuf 4.25.x compatible generated code The proto files were regenerated with protobuf 6.31.1 / grpcio-tools 1.80.0, which imports runtime_version -- a module that does not exist in protobuf 4.25.x used by the project. Revert generated code to 4.25.1 format while keeping the new timestamp_field_type field. Signed-off-by: Jonathan Wrede * fix(bigquery): Add Literal type annotation for cast_style Mypy infers str from the ternary expression; annotate with the exact Literal union so the call to get_timestamp_filter_sql passes type checking. Signed-off-by: Jonathan Wrede * fix: Make timestamp_field_type default to None in FeatureViewQueryContext Callers that do not use DATE-typed timestamp fields (e.g. Spark offline store tests) should not be forced to pass timestamp_field_type. Adding a default keeps the new field backward-compatible. Signed-off-by: Jonathan Wrede * fix: Keep timestamp_field_type required in FeatureViewQueryContext A default value on timestamp_field_type breaks the SparkFeatureViewQueryContext subclass because its non-default fields (min_date_partition, max_date_partition) would follow a field with a default. Instead, keep it required and update the Spark test to pass it. Signed-off-by: Jonathan Wrede * fix: regenerate protos matching upstream mypy-protobuf style Reset all non-DataSource generated files to match master. Only DataSource_pb2.py and DataSource_pb2.pyi contain our timestamp_field_type additions (field 28). The .pyi stub is hand-edited to match the existing import style used on master. Signed-off-by: Jonathan Wrede --------- Signed-off-by: Jonathan Wrede --- protos/feast/core/DataSource.proto | 6 +- sdk/python/feast/data_source.py | 7 ++ .../feast/infra/offline_stores/bigquery.py | 21 +++- .../infra/offline_stores/bigquery_source.py | 7 ++ .../infra/offline_stores/offline_utils.py | 14 ++- .../feast/protos/feast/core/DataSource_pb2.py | 76 ++++++------ .../protos/feast/core/DataSource_pb2.pyi | 10 +- .../test_spark_bfv_compute_on_read.py | 1 + .../infra/offline_stores/test_bigquery.py | 111 ++++++++++++++++++ 9 files changed, 208 insertions(+), 45 deletions(-) diff --git a/protos/feast/core/DataSource.proto b/protos/feast/core/DataSource.proto index b91296dca31..2889fba042f 100644 --- a/protos/feast/core/DataSource.proto +++ b/protos/feast/core/DataSource.proto @@ -29,7 +29,7 @@ import "feast/types/Value.proto"; import "feast/core/Feature.proto"; // Defines a Data Source that can be used source Feature data -// Next available id: 28 +// Next available id: 29 message DataSource { // Field indexes should *not* be reused. Not sure if fields 6-10 were used previously or not, // but they are going to be reserved for backwards compatibility. @@ -81,6 +81,10 @@ message DataSource { // Must specify creation timestamp column name string created_timestamp_column = 5; + // (Optional) Type of the timestamp_field column ("TIMESTAMP" or "DATE"). + // When set to "DATE", SQL generation uses date-only comparisons. + string timestamp_field_type = 28; + // This is an internal field that is represents the python class for the data source object a proto object represents. // This should be set by feast, and not by users. // The field is used primarily by custom data sources and is mandatory for them to set. Feast may set it for diff --git a/sdk/python/feast/data_source.py b/sdk/python/feast/data_source.py index 2d4997ae786..e14f2a49383 100644 --- a/sdk/python/feast/data_source.py +++ b/sdk/python/feast/data_source.py @@ -205,6 +205,7 @@ class DataSource(ABC): tags: Dict[str, str] owner: str date_partition_column: str + timestamp_field_type: str created_timestamp: Optional[datetime] last_updated_timestamp: Optional[datetime] @@ -219,6 +220,7 @@ def __init__( tags: Optional[Dict[str, str]] = None, owner: Optional[str] = "", date_partition_column: Optional[str] = None, + timestamp_field_type: Optional[str] = None, ): """ Creates a DataSource object. @@ -237,6 +239,9 @@ def __init__( owner (optional): The owner of the data source, typically the email of the primary maintainer. date_partition_column (optional): Timestamp column used for partitioning. Not supported by all stores + timestamp_field_type (optional): Type of the timestamp_field column. + Defaults to "TIMESTAMP". Set to "DATE" when the event timestamp column + is a DATE type, so SQL generation uses date-only comparisons. """ self.name = name self.timestamp_field = timestamp_field or "" @@ -257,6 +262,7 @@ def __init__( self.date_partition_column = ( date_partition_column if date_partition_column else "" ) + self.timestamp_field_type = timestamp_field_type if timestamp_field_type else "" now = _utc_now() self.created_timestamp = now self.last_updated_timestamp = now @@ -280,6 +286,7 @@ def __eq__(self, other): or self.created_timestamp_column != other.created_timestamp_column or self.field_mapping != other.field_mapping or self.date_partition_column != other.date_partition_column + or self.timestamp_field_type != other.timestamp_field_type or self.description != other.description or self.tags != other.tags or self.owner != other.owner diff --git a/sdk/python/feast/infra/offline_stores/bigquery.py b/sdk/python/feast/infra/offline_stores/bigquery.py index ac4eff4fdd2..3d0f84bb3a5 100644 --- a/sdk/python/feast/infra/offline_stores/bigquery.py +++ b/sdk/python/feast/infra/offline_stores/bigquery.py @@ -161,13 +161,18 @@ def pull_latest_from_table_or_query( project=project_id, location=config.offline_store.location, ) + cast_style: Literal["date_func", "timestamp_func"] = ( + "date_func" + if data_source.timestamp_field_type == "DATE" + else "timestamp_func" + ) timestamp_filter = get_timestamp_filter_sql( start_date, end_date, timestamp_field, date_partition_column=data_source.date_partition_column, quote_fields=False, - cast_style="timestamp_func", + cast_style=cast_style, ) query = f""" SELECT @@ -220,13 +225,18 @@ def pull_all_from_table_or_query( + BigQueryOfflineStore._escape_query_columns(feature_name_columns) + timestamp_fields ) + cast_style: Literal["date_func", "timestamp_func"] = ( + "date_func" + if data_source.timestamp_field_type == "DATE" + else "timestamp_func" + ) timestamp_filter = get_timestamp_filter_sql( start_date, end_date, timestamp_field, date_partition_column=data_source.date_partition_column, quote_fields=False, - cast_style="timestamp_func", + cast_style=cast_style, ) query = f""" SELECT {field_string} @@ -938,10 +948,17 @@ def arrow_schema_to_bq_schema(arrow_schema: pyarrow.Schema) -> List[SchemaField] {% if loop.last %}{% else %}, {% endif %} {% endfor %} FROM {{ featureview.table_subquery }} + {% if featureview.timestamp_field_type == "DATE" %} + WHERE {{ featureview.timestamp_field }} <= DATE('{{ featureview.max_event_timestamp[:10] }}') + {% if featureview.ttl == 0 %}{% else %} + AND {{ featureview.timestamp_field }} >= DATE('{{ featureview.min_event_timestamp[:10] }}') + {% endif %} + {% else %} WHERE {{ featureview.timestamp_field }} <= '{{ featureview.max_event_timestamp }}' {% if featureview.ttl == 0 %}{% else %} AND {{ featureview.timestamp_field }} >= '{{ featureview.min_event_timestamp }}' {% endif %} + {% endif %} {% if featureview.date_partition_column %} AND {{ featureview.date_partition_column | backticks }} <= '{{ featureview.max_event_timestamp[:10] }}' {% if featureview.min_event_timestamp %} diff --git a/sdk/python/feast/infra/offline_stores/bigquery_source.py b/sdk/python/feast/infra/offline_stores/bigquery_source.py index 7b476afdcda..5fdc29a19fb 100644 --- a/sdk/python/feast/infra/offline_stores/bigquery_source.py +++ b/sdk/python/feast/infra/offline_stores/bigquery_source.py @@ -35,6 +35,7 @@ def __init__( created_timestamp_column: Optional[str] = "", field_mapping: Optional[Dict[str, str]] = None, date_partition_column: Optional[str] = None, + timestamp_field_type: Optional[str] = None, query: Optional[str] = None, description: Optional[str] = "", tags: Optional[Dict[str, str]] = None, @@ -54,6 +55,9 @@ def __init__( field_mapping (optional): A dictionary mapping of column names in this data source to feature names in a feature table or view. Only used for feature columns, not entities or timestamp columns. date_partition_column (optional): Timestamp column used for partitioning. + timestamp_field_type (optional): Type of the timestamp_field column. + Set to "DATE" when the event timestamp column is a DATE type, + so SQL generation uses date-only comparisons instead of TIMESTAMP(). query (optional): The query to be executed to obtain the features. When both 'table' and 'query' are provided, 'query' takes priority for reads. description (optional): A human-readable description. @@ -81,6 +85,7 @@ def __init__( created_timestamp_column=created_timestamp_column, field_mapping=field_mapping, date_partition_column=date_partition_column, + timestamp_field_type=timestamp_field_type, description=description, tags=tags, owner=owner, @@ -121,6 +126,7 @@ def from_proto(data_source: DataSourceProto): timestamp_field=data_source.timestamp_field, created_timestamp_column=data_source.created_timestamp_column, date_partition_column=data_source.date_partition_column, + timestamp_field_type=data_source.timestamp_field_type or None, query=data_source.bigquery_options.query, description=data_source.description, tags=dict(data_source.tags), @@ -139,6 +145,7 @@ def _to_proto_impl(self) -> DataSourceProto: timestamp_field=self.timestamp_field, created_timestamp_column=self.created_timestamp_column, date_partition_column=self.date_partition_column, + timestamp_field_type=self.timestamp_field_type, ) return data_source_proto diff --git a/sdk/python/feast/infra/offline_stores/offline_utils.py b/sdk/python/feast/infra/offline_stores/offline_utils.py index 5664e6f45a6..fee87dde595 100644 --- a/sdk/python/feast/infra/offline_stores/offline_utils.py +++ b/sdk/python/feast/infra/offline_stores/offline_utils.py @@ -98,6 +98,7 @@ class FeatureViewQueryContext: date_partition_column: Optional[ str ] # this attribute is added because partition pruning affects Athena's query performance. + timestamp_field_type: Optional[str] def get_feature_view_query_context( @@ -160,6 +161,10 @@ def get_feature_view_query_context( feature_view.batch_source.date_partition_column, ) + timestamp_field_type = getattr( + feature_view.batch_source, "timestamp_field_type", "" + ) + max_event_timestamp = to_naive_utc(entity_df_timestamp_range[1]).isoformat() min_event_timestamp = None if feature_view.ttl: @@ -181,6 +186,7 @@ def get_feature_view_query_context( min_event_timestamp=min_event_timestamp, max_event_timestamp=max_event_timestamp, date_partition_column=date_partition_column, + timestamp_field_type=timestamp_field_type or None, ) query_context.append(context) @@ -340,7 +346,7 @@ def get_timestamp_filter_sql( date_partition_column: Optional[str] = None, tz: Optional[timezone] = None, cast_style: Literal[ - "timestamp", "timestamp_func", "timestamptz", "raw" + "timestamp", "timestamp_func", "timestamptz", "raw", "date_func" ] = "timestamp", date_time_separator: str = "T", quote_fields: bool = True, @@ -355,10 +361,11 @@ def get_timestamp_filter_sql( date_partition_column: optional partition column (for pruning) tz: optional timezone for datetime inputs cast_style: one of: - - "timestamp": TIMESTAMP '...' → Common Sql engine Snowflake, Redshift etc. + - "timestamp": TIMESTAMP '...' → Common Sql engine Snowflake, Redshift etc. - "timestamp_func": TIMESTAMP('...') → BigQuery, Couchbase etc. - "timestamptz": '...'::timestamptz → PostgreSQL - "raw": '...' → no cast, string only + - "date_func": DATE('...') → BigQuery DATE columns date_time_separator: separator for datetime strings (default is "T") (e.g. "2023-10-01T00:00:00" or "2023-10-01 00:00:00") quote_fields: whether to quote the timestamp and partition column names @@ -384,6 +391,9 @@ def format_casted_ts(val: Union[str, datetime]) -> str: return f"TIMESTAMP '{val_str}'" elif cast_style == "timestamp_func": return f"TIMESTAMP('{val_str}')" + elif cast_style == "date_func": + date_str = val_str[:10] if len(val_str) >= 10 else val_str + return f"DATE('{date_str}')" elif cast_style == "timestamptz": return f"'{val_str}'::{cast_style}" else: diff --git a/sdk/python/feast/protos/feast/core/DataSource_pb2.py b/sdk/python/feast/protos/feast/core/DataSource_pb2.py index f3086233584..51dee5652a2 100644 --- a/sdk/python/feast/protos/feast/core/DataSource_pb2.py +++ b/sdk/python/feast/protos/feast/core/DataSource_pb2.py @@ -19,7 +19,7 @@ from feast.protos.feast.core import Feature_pb2 as feast_dot_core_dot_Feature__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66\x65\x61st/core/DataSource.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66\x65\x61st/core/DataFormat.proto\x1a\x17\x66\x65\x61st/types/Value.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\"\x89\x18\n\nDataSource\x12\x0c\n\x04name\x18\x14 \x01(\t\x12\x0f\n\x07project\x18\x15 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x17 \x01(\t\x12.\n\x04tags\x18\x18 \x03(\x0b\x32 .feast.core.DataSource.TagsEntry\x12\r\n\x05owner\x18\x19 \x01(\t\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.feast.core.DataSource.SourceType\x12?\n\rfield_mapping\x18\x02 \x03(\x0b\x32(.feast.core.DataSource.FieldMappingEntry\x12\x17\n\x0ftimestamp_field\x18\x03 \x01(\t\x12\x1d\n\x15\x64\x61te_partition_column\x18\x04 \x01(\t\x12 \n\x18\x63reated_timestamp_column\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x61ta_source_class_type\x18\x11 \x01(\t\x12,\n\x0c\x62\x61tch_source\x18\x1a \x01(\x0b\x32\x16.feast.core.DataSource\x12/\n\x04meta\x18\x32 \x01(\x0b\x32!.feast.core.DataSource.SourceMeta\x12:\n\x0c\x66ile_options\x18\x0b \x01(\x0b\x32\".feast.core.DataSource.FileOptionsH\x00\x12\x42\n\x10\x62igquery_options\x18\x0c \x01(\x0b\x32&.feast.core.DataSource.BigQueryOptionsH\x00\x12<\n\rkafka_options\x18\r \x01(\x0b\x32#.feast.core.DataSource.KafkaOptionsH\x00\x12@\n\x0fkinesis_options\x18\x0e \x01(\x0b\x32%.feast.core.DataSource.KinesisOptionsH\x00\x12\x42\n\x10redshift_options\x18\x0f \x01(\x0b\x32&.feast.core.DataSource.RedshiftOptionsH\x00\x12I\n\x14request_data_options\x18\x12 \x01(\x0b\x32).feast.core.DataSource.RequestDataOptionsH\x00\x12\x44\n\x0e\x63ustom_options\x18\x10 \x01(\x0b\x32*.feast.core.DataSource.CustomSourceOptionsH\x00\x12\x44\n\x11snowflake_options\x18\x13 \x01(\x0b\x32\'.feast.core.DataSource.SnowflakeOptionsH\x00\x12:\n\x0cpush_options\x18\x16 \x01(\x0b\x32\".feast.core.DataSource.PushOptionsH\x00\x12<\n\rspark_options\x18\x1b \x01(\x0b\x32#.feast.core.DataSource.SparkOptionsH\x00\x12<\n\rtrino_options\x18\x1e \x01(\x0b\x32#.feast.core.DataSource.TrinoOptionsH\x00\x12>\n\x0e\x61thena_options\x18# \x01(\x0b\x32$.feast.core.DataSource.AthenaOptionsH\x00\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11\x46ieldMappingEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xf5\x01\n\nSourceMeta\x12:\n\x16\x65\x61rliestEventTimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14latestEventTimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x11\x63reated_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x65\n\x0b\x46ileOptions\x12+\n\x0b\x66ile_format\x18\x01 \x01(\x0b\x32\x16.feast.core.FileFormat\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x1c\n\x14s3_endpoint_override\x18\x03 \x01(\t\x1a/\n\x0f\x42igQueryOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x1a,\n\x0cTrinoOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x1a\xae\x01\n\x0cKafkaOptions\x12\x1f\n\x17kafka_bootstrap_servers\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x30\n\x0emessage_format\x18\x03 \x01(\x0b\x32\x18.feast.core.StreamFormat\x12<\n\x19watermark_delay_threshold\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x66\n\x0eKinesisOptions\x12\x0e\n\x06region\x18\x01 \x01(\t\x12\x13\n\x0bstream_name\x18\x02 \x01(\t\x12/\n\rrecord_format\x18\x03 \x01(\x0b\x32\x18.feast.core.StreamFormat\x1aQ\n\x0fRedshiftOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x04 \x01(\t\x1aT\n\rAthenaOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x61ta_source\x18\x04 \x01(\t\x1aX\n\x10SnowflakeOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x04 \x01(\tJ\x04\x08\x05\x10\x06\x1a\xa4\x01\n\x0cSparkOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x13\n\x0b\x66ile_format\x18\x04 \x01(\t\x12$\n\x1c\x64\x61te_partition_column_format\x18\x05 \x01(\t\x12-\n\x0ctable_format\x18\x06 \x01(\x0b\x32\x17.feast.core.TableFormat\x1a,\n\x13\x43ustomSourceOptions\x12\x15\n\rconfiguration\x18\x01 \x01(\x0c\x1a\xf7\x01\n\x12RequestDataOptions\x12Z\n\x11\x64\x65precated_schema\x18\x02 \x03(\x0b\x32?.feast.core.DataSource.RequestDataOptions.DeprecatedSchemaEntry\x12)\n\x06schema\x18\x03 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x1aT\n\x15\x44\x65precatedSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0e\x32\x1b.feast.types.ValueType.Enum:\x02\x38\x01J\x04\x08\x01\x10\x02\x1a\x13\n\x0bPushOptionsJ\x04\x08\x01\x10\x02\"\xf8\x01\n\nSourceType\x12\x0b\n\x07INVALID\x10\x00\x12\x0e\n\nBATCH_FILE\x10\x01\x12\x13\n\x0f\x42\x41TCH_SNOWFLAKE\x10\x08\x12\x12\n\x0e\x42\x41TCH_BIGQUERY\x10\x02\x12\x12\n\x0e\x42\x41TCH_REDSHIFT\x10\x05\x12\x10\n\x0cSTREAM_KAFKA\x10\x03\x12\x12\n\x0eSTREAM_KINESIS\x10\x04\x12\x11\n\rCUSTOM_SOURCE\x10\x06\x12\x12\n\x0eREQUEST_SOURCE\x10\x07\x12\x0f\n\x0bPUSH_SOURCE\x10\t\x12\x0f\n\x0b\x42\x41TCH_TRINO\x10\n\x12\x0f\n\x0b\x42\x41TCH_SPARK\x10\x0b\x12\x10\n\x0c\x42\x41TCH_ATHENA\x10\x0c\x42\t\n\x07optionsJ\x04\x08\x06\x10\x0b\"=\n\x0e\x44\x61taSourceList\x12+\n\x0b\x64\x61tasources\x18\x01 \x03(\x0b\x32\x16.feast.core.DataSourceBT\n\x10\x66\x65\x61st.proto.coreB\x0f\x44\x61taSourceProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66\x65\x61st/core/DataSource.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66\x65\x61st/core/DataFormat.proto\x1a\x17\x66\x65\x61st/types/Value.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\"\xa7\x18\n\nDataSource\x12\x0c\n\x04name\x18\x14 \x01(\t\x12\x0f\n\x07project\x18\x15 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x17 \x01(\t\x12.\n\x04tags\x18\x18 \x03(\x0b\x32 .feast.core.DataSource.TagsEntry\x12\r\n\x05owner\x18\x19 \x01(\t\x12/\n\x04type\x18\x01 \x01(\x0e\x32!.feast.core.DataSource.SourceType\x12?\n\rfield_mapping\x18\x02 \x03(\x0b\x32(.feast.core.DataSource.FieldMappingEntry\x12\x17\n\x0ftimestamp_field\x18\x03 \x01(\t\x12\x1d\n\x15\x64\x61te_partition_column\x18\x04 \x01(\t\x12 \n\x18\x63reated_timestamp_column\x18\x05 \x01(\t\x12\x1c\n\x14timestamp_field_type\x18\x1c \x01(\t\x12\x1e\n\x16\x64\x61ta_source_class_type\x18\x11 \x01(\t\x12,\n\x0c\x62\x61tch_source\x18\x1a \x01(\x0b\x32\x16.feast.core.DataSource\x12/\n\x04meta\x18\x32 \x01(\x0b\x32!.feast.core.DataSource.SourceMeta\x12:\n\x0c\x66ile_options\x18\x0b \x01(\x0b\x32\".feast.core.DataSource.FileOptionsH\x00\x12\x42\n\x10\x62igquery_options\x18\x0c \x01(\x0b\x32&.feast.core.DataSource.BigQueryOptionsH\x00\x12<\n\rkafka_options\x18\r \x01(\x0b\x32#.feast.core.DataSource.KafkaOptionsH\x00\x12@\n\x0fkinesis_options\x18\x0e \x01(\x0b\x32%.feast.core.DataSource.KinesisOptionsH\x00\x12\x42\n\x10redshift_options\x18\x0f \x01(\x0b\x32&.feast.core.DataSource.RedshiftOptionsH\x00\x12I\n\x14request_data_options\x18\x12 \x01(\x0b\x32).feast.core.DataSource.RequestDataOptionsH\x00\x12\x44\n\x0e\x63ustom_options\x18\x10 \x01(\x0b\x32*.feast.core.DataSource.CustomSourceOptionsH\x00\x12\x44\n\x11snowflake_options\x18\x13 \x01(\x0b\x32\'.feast.core.DataSource.SnowflakeOptionsH\x00\x12:\n\x0cpush_options\x18\x16 \x01(\x0b\x32\".feast.core.DataSource.PushOptionsH\x00\x12<\n\rspark_options\x18\x1b \x01(\x0b\x32#.feast.core.DataSource.SparkOptionsH\x00\x12<\n\rtrino_options\x18\x1e \x01(\x0b\x32#.feast.core.DataSource.TrinoOptionsH\x00\x12>\n\x0e\x61thena_options\x18# \x01(\x0b\x32$.feast.core.DataSource.AthenaOptionsH\x00\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x33\n\x11\x46ieldMappingEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xf5\x01\n\nSourceMeta\x12:\n\x16\x65\x61rliestEventTimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14latestEventTimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x11\x63reated_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x65\n\x0b\x46ileOptions\x12+\n\x0b\x66ile_format\x18\x01 \x01(\x0b\x32\x16.feast.core.FileFormat\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x1c\n\x14s3_endpoint_override\x18\x03 \x01(\t\x1a/\n\x0f\x42igQueryOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x1a,\n\x0cTrinoOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x1a\xae\x01\n\x0cKafkaOptions\x12\x1f\n\x17kafka_bootstrap_servers\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x30\n\x0emessage_format\x18\x03 \x01(\x0b\x32\x18.feast.core.StreamFormat\x12<\n\x19watermark_delay_threshold\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x66\n\x0eKinesisOptions\x12\x0e\n\x06region\x18\x01 \x01(\t\x12\x13\n\x0bstream_name\x18\x02 \x01(\t\x12/\n\rrecord_format\x18\x03 \x01(\x0b\x32\x18.feast.core.StreamFormat\x1aQ\n\x0fRedshiftOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x04 \x01(\t\x1aT\n\rAthenaOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x61ta_source\x18\x04 \x01(\t\x1aX\n\x10SnowflakeOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x04 \x01(\tJ\x04\x08\x05\x10\x06\x1a\xa4\x01\n\x0cSparkOptions\x12\r\n\x05table\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x13\n\x0b\x66ile_format\x18\x04 \x01(\t\x12$\n\x1c\x64\x61te_partition_column_format\x18\x05 \x01(\t\x12-\n\x0ctable_format\x18\x06 \x01(\x0b\x32\x17.feast.core.TableFormat\x1a,\n\x13\x43ustomSourceOptions\x12\x15\n\rconfiguration\x18\x01 \x01(\x0c\x1a\xf7\x01\n\x12RequestDataOptions\x12Z\n\x11\x64\x65precated_schema\x18\x02 \x03(\x0b\x32?.feast.core.DataSource.RequestDataOptions.DeprecatedSchemaEntry\x12)\n\x06schema\x18\x03 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x1aT\n\x15\x44\x65precatedSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0e\x32\x1b.feast.types.ValueType.Enum:\x02\x38\x01J\x04\x08\x01\x10\x02\x1a\x13\n\x0bPushOptionsJ\x04\x08\x01\x10\x02\"\xf8\x01\n\nSourceType\x12\x0b\n\x07INVALID\x10\x00\x12\x0e\n\nBATCH_FILE\x10\x01\x12\x13\n\x0f\x42\x41TCH_SNOWFLAKE\x10\x08\x12\x12\n\x0e\x42\x41TCH_BIGQUERY\x10\x02\x12\x12\n\x0e\x42\x41TCH_REDSHIFT\x10\x05\x12\x10\n\x0cSTREAM_KAFKA\x10\x03\x12\x12\n\x0eSTREAM_KINESIS\x10\x04\x12\x11\n\rCUSTOM_SOURCE\x10\x06\x12\x12\n\x0eREQUEST_SOURCE\x10\x07\x12\x0f\n\x0bPUSH_SOURCE\x10\t\x12\x0f\n\x0b\x42\x41TCH_TRINO\x10\n\x12\x0f\n\x0b\x42\x41TCH_SPARK\x10\x0b\x12\x10\n\x0c\x42\x41TCH_ATHENA\x10\x0c\x42\t\n\x07optionsJ\x04\x08\x06\x10\x0b\"=\n\x0e\x44\x61taSourceList\x12+\n\x0b\x64\x61tasources\x18\x01 \x03(\x0b\x32\x16.feast.core.DataSourceBT\n\x10\x66\x65\x61st.proto.coreB\x0f\x44\x61taSourceProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -34,41 +34,41 @@ _globals['_DATASOURCE_REQUESTDATAOPTIONS_DEPRECATEDSCHEMAENTRY']._options = None _globals['_DATASOURCE_REQUESTDATAOPTIONS_DEPRECATEDSCHEMAENTRY']._serialized_options = b'8\001' _globals['_DATASOURCE']._serialized_start=189 - _globals['_DATASOURCE']._serialized_end=3270 - _globals['_DATASOURCE_TAGSENTRY']._serialized_start=1436 - _globals['_DATASOURCE_TAGSENTRY']._serialized_end=1479 - _globals['_DATASOURCE_FIELDMAPPINGENTRY']._serialized_start=1481 - _globals['_DATASOURCE_FIELDMAPPINGENTRY']._serialized_end=1532 - _globals['_DATASOURCE_SOURCEMETA']._serialized_start=1535 - _globals['_DATASOURCE_SOURCEMETA']._serialized_end=1780 - _globals['_DATASOURCE_FILEOPTIONS']._serialized_start=1782 - _globals['_DATASOURCE_FILEOPTIONS']._serialized_end=1883 - _globals['_DATASOURCE_BIGQUERYOPTIONS']._serialized_start=1885 - _globals['_DATASOURCE_BIGQUERYOPTIONS']._serialized_end=1932 - _globals['_DATASOURCE_TRINOOPTIONS']._serialized_start=1934 - _globals['_DATASOURCE_TRINOOPTIONS']._serialized_end=1978 - _globals['_DATASOURCE_KAFKAOPTIONS']._serialized_start=1981 - _globals['_DATASOURCE_KAFKAOPTIONS']._serialized_end=2155 - _globals['_DATASOURCE_KINESISOPTIONS']._serialized_start=2157 - _globals['_DATASOURCE_KINESISOPTIONS']._serialized_end=2259 - _globals['_DATASOURCE_REDSHIFTOPTIONS']._serialized_start=2261 - _globals['_DATASOURCE_REDSHIFTOPTIONS']._serialized_end=2342 - _globals['_DATASOURCE_ATHENAOPTIONS']._serialized_start=2344 - _globals['_DATASOURCE_ATHENAOPTIONS']._serialized_end=2428 - _globals['_DATASOURCE_SNOWFLAKEOPTIONS']._serialized_start=2430 - _globals['_DATASOURCE_SNOWFLAKEOPTIONS']._serialized_end=2518 - _globals['_DATASOURCE_SPARKOPTIONS']._serialized_start=2521 - _globals['_DATASOURCE_SPARKOPTIONS']._serialized_end=2685 - _globals['_DATASOURCE_CUSTOMSOURCEOPTIONS']._serialized_start=2687 - _globals['_DATASOURCE_CUSTOMSOURCEOPTIONS']._serialized_end=2731 - _globals['_DATASOURCE_REQUESTDATAOPTIONS']._serialized_start=2734 - _globals['_DATASOURCE_REQUESTDATAOPTIONS']._serialized_end=2981 - _globals['_DATASOURCE_REQUESTDATAOPTIONS_DEPRECATEDSCHEMAENTRY']._serialized_start=2891 - _globals['_DATASOURCE_REQUESTDATAOPTIONS_DEPRECATEDSCHEMAENTRY']._serialized_end=2975 - _globals['_DATASOURCE_PUSHOPTIONS']._serialized_start=2983 - _globals['_DATASOURCE_PUSHOPTIONS']._serialized_end=3002 - _globals['_DATASOURCE_SOURCETYPE']._serialized_start=3005 - _globals['_DATASOURCE_SOURCETYPE']._serialized_end=3253 - _globals['_DATASOURCELIST']._serialized_start=3272 - _globals['_DATASOURCELIST']._serialized_end=3333 + _globals['_DATASOURCE']._serialized_end=3300 + _globals['_DATASOURCE_TAGSENTRY']._serialized_start=1466 + _globals['_DATASOURCE_TAGSENTRY']._serialized_end=1509 + _globals['_DATASOURCE_FIELDMAPPINGENTRY']._serialized_start=1511 + _globals['_DATASOURCE_FIELDMAPPINGENTRY']._serialized_end=1562 + _globals['_DATASOURCE_SOURCEMETA']._serialized_start=1565 + _globals['_DATASOURCE_SOURCEMETA']._serialized_end=1810 + _globals['_DATASOURCE_FILEOPTIONS']._serialized_start=1812 + _globals['_DATASOURCE_FILEOPTIONS']._serialized_end=1913 + _globals['_DATASOURCE_BIGQUERYOPTIONS']._serialized_start=1915 + _globals['_DATASOURCE_BIGQUERYOPTIONS']._serialized_end=1962 + _globals['_DATASOURCE_TRINOOPTIONS']._serialized_start=1964 + _globals['_DATASOURCE_TRINOOPTIONS']._serialized_end=2008 + _globals['_DATASOURCE_KAFKAOPTIONS']._serialized_start=2011 + _globals['_DATASOURCE_KAFKAOPTIONS']._serialized_end=2185 + _globals['_DATASOURCE_KINESISOPTIONS']._serialized_start=2187 + _globals['_DATASOURCE_KINESISOPTIONS']._serialized_end=2289 + _globals['_DATASOURCE_REDSHIFTOPTIONS']._serialized_start=2291 + _globals['_DATASOURCE_REDSHIFTOPTIONS']._serialized_end=2372 + _globals['_DATASOURCE_ATHENAOPTIONS']._serialized_start=2374 + _globals['_DATASOURCE_ATHENAOPTIONS']._serialized_end=2458 + _globals['_DATASOURCE_SNOWFLAKEOPTIONS']._serialized_start=2460 + _globals['_DATASOURCE_SNOWFLAKEOPTIONS']._serialized_end=2548 + _globals['_DATASOURCE_SPARKOPTIONS']._serialized_start=2551 + _globals['_DATASOURCE_SPARKOPTIONS']._serialized_end=2715 + _globals['_DATASOURCE_CUSTOMSOURCEOPTIONS']._serialized_start=2717 + _globals['_DATASOURCE_CUSTOMSOURCEOPTIONS']._serialized_end=2761 + _globals['_DATASOURCE_REQUESTDATAOPTIONS']._serialized_start=2764 + _globals['_DATASOURCE_REQUESTDATAOPTIONS']._serialized_end=3011 + _globals['_DATASOURCE_REQUESTDATAOPTIONS_DEPRECATEDSCHEMAENTRY']._serialized_start=2921 + _globals['_DATASOURCE_REQUESTDATAOPTIONS_DEPRECATEDSCHEMAENTRY']._serialized_end=3005 + _globals['_DATASOURCE_PUSHOPTIONS']._serialized_start=3013 + _globals['_DATASOURCE_PUSHOPTIONS']._serialized_end=3032 + _globals['_DATASOURCE_SOURCETYPE']._serialized_start=3035 + _globals['_DATASOURCE_SOURCETYPE']._serialized_end=3283 + _globals['_DATASOURCELIST']._serialized_start=3302 + _globals['_DATASOURCELIST']._serialized_end=3363 # @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi b/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi index 308141fb6f2..3df12085cb6 100644 --- a/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi @@ -41,7 +41,7 @@ DESCRIPTOR: _descriptor.FileDescriptor @_typing.final class DataSource(_message.Message): """Defines a Data Source that can be used source Feature data - Next available id: 28 + Next available id: 29 """ DESCRIPTOR: _descriptor.Descriptor @@ -527,6 +527,7 @@ class DataSource(_message.Message): SPARK_OPTIONS_FIELD_NUMBER: _builtins.int TRINO_OPTIONS_FIELD_NUMBER: _builtins.int ATHENA_OPTIONS_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_TYPE_FIELD_NUMBER: _builtins.int name: _builtins.str """Unique name of data source within the project""" project: _builtins.str @@ -542,6 +543,10 @@ class DataSource(_message.Message): """ created_timestamp_column: _builtins.str """Must specify creation timestamp column name""" + timestamp_field_type: _builtins.str + """(Optional) Type of the timestamp_field column ("TIMESTAMP" or "DATE"). + When set to "DATE", SQL generation uses date-only comparisons. + """ data_source_class_type: _builtins.str """This is an internal field that is represents the python class for the data source object a proto object represents. This should be set by feast, and not by users. @@ -599,6 +604,7 @@ class DataSource(_message.Message): timestamp_field: _builtins.str = ..., date_partition_column: _builtins.str = ..., created_timestamp_column: _builtins.str = ..., + timestamp_field_type: _builtins.str = ..., data_source_class_type: _builtins.str = ..., batch_source: Global___DataSource | None = ..., meta: Global___DataSource.SourceMeta | None = ..., @@ -617,7 +623,7 @@ class DataSource(_message.Message): ) -> None: ... _HasFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "custom_options", b"custom_options", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "options", b"options", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "trino_options", b"trino_options"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "custom_options", b"custom_options", "data_source_class_type", b"data_source_class_type", "date_partition_column", b"date_partition_column", "description", b"description", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "name", b"name", "options", b"options", "owner", b"owner", "project", b"project", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "tags", b"tags", "timestamp_field", b"timestamp_field", "trino_options", b"trino_options", "type", b"type"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "custom_options", b"custom_options", "data_source_class_type", b"data_source_class_type", "date_partition_column", b"date_partition_column", "description", b"description", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "name", b"name", "options", b"options", "owner", b"owner", "project", b"project", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "tags", b"tags", "timestamp_field", b"timestamp_field", "timestamp_field_type", b"timestamp_field_type", "trino_options", b"trino_options", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... _WhichOneofReturnType_options: _TypeAlias = _typing.Literal["file_options", "bigquery_options", "kafka_options", "kinesis_options", "redshift_options", "request_data_options", "custom_options", "snowflake_options", "push_options", "spark_options", "trino_options", "athena_options"] # noqa: Y015 _WhichOneofArgType_options: _TypeAlias = _typing.Literal["options", b"options"] # noqa: Y015 diff --git a/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_bfv_compute_on_read.py b/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_bfv_compute_on_read.py index 0bcc282ae83..130583a13b1 100644 --- a/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_bfv_compute_on_read.py +++ b/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_bfv_compute_on_read.py @@ -52,6 +52,7 @@ def base_query_context(): min_event_timestamp="2023-01-01T00:00:00", max_event_timestamp="2024-01-01T00:00:00", date_partition_column=None, + timestamp_field_type=None, ) diff --git a/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py b/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py index 10a973f826b..132339e1034 100644 --- a/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py +++ b/sdk/python/tests/unit/infra/offline_stores/test_bigquery.py @@ -154,6 +154,117 @@ def test_pull_all_from_table_or_query_partition_pruning(mock_get_bigquery_client assert "partition_date <= '2021-01-02'" in actual_query +@patch("feast.infra.offline_stores.bigquery._get_bigquery_client") +def test_pull_latest_date_type_timestamp_field(mock_get_bigquery_client): + mock_get_bigquery_client.return_value = Mock() + test_repo_config = RepoConfig( + registry="gs://ml-test/repo/registry.db", + project="test", + provider="gcp", + online_store=SqliteOnlineStoreConfig(type="sqlite"), + offline_store=BigQueryOfflineStoreConfig(type="bigquery", dataset="feast"), + ) + test_data_source = BigQuerySource( + table="project:dataset.table", + timestamp_field="event_date", + timestamp_field_type="DATE", + ) + retrieval_job = BigQueryOfflineStore.pull_latest_from_table_or_query( + config=test_repo_config, + data_source=test_data_source, + join_key_columns=["driver_id"], + feature_name_columns=["feature1"], + timestamp_field="event_date", + created_timestamp_column=None, + start_date=datetime(2021, 1, 1, tzinfo=timezone.utc), + end_date=datetime(2021, 1, 2, tzinfo=timezone.utc), + ) + actual_query = retrieval_job.to_sql() + assert ( + "event_date BETWEEN DATE('2021-01-01') AND DATE('2021-01-02')" in actual_query + ) + assert "TIMESTAMP(" not in actual_query + + +@patch("feast.infra.offline_stores.bigquery._get_bigquery_client") +def test_pull_all_date_type_timestamp_field(mock_get_bigquery_client): + mock_get_bigquery_client.return_value = Mock() + test_repo_config = RepoConfig( + registry="gs://ml-test/repo/registry.db", + project="test", + provider="gcp", + online_store=SqliteOnlineStoreConfig(type="sqlite"), + offline_store=BigQueryOfflineStoreConfig(type="bigquery", dataset="feast"), + ) + test_data_source = BigQuerySource( + table="project:dataset.table", + timestamp_field="event_date", + timestamp_field_type="DATE", + ) + retrieval_job = BigQueryOfflineStore.pull_all_from_table_or_query( + config=test_repo_config, + data_source=test_data_source, + join_key_columns=["driver_id"], + feature_name_columns=["feature1"], + timestamp_field="event_date", + start_date=datetime(2021, 1, 1, tzinfo=timezone.utc), + end_date=datetime(2021, 1, 2, tzinfo=timezone.utc), + ) + actual_query = retrieval_job.to_sql() + assert ( + "event_date BETWEEN DATE('2021-01-01') AND DATE('2021-01-02')" in actual_query + ) + assert "TIMESTAMP(" not in actual_query + + +@patch("feast.infra.offline_stores.bigquery._get_bigquery_client") +def test_pull_latest_date_type_with_partition_column(mock_get_bigquery_client): + mock_get_bigquery_client.return_value = Mock() + test_repo_config = RepoConfig( + registry="gs://ml-test/repo/registry.db", + project="test", + provider="gcp", + online_store=SqliteOnlineStoreConfig(type="sqlite"), + offline_store=BigQueryOfflineStoreConfig(type="bigquery", dataset="feast"), + ) + test_data_source = BigQuerySource( + table="project:dataset.table", + timestamp_field="event_date", + timestamp_field_type="DATE", + date_partition_column="_PARTITIONDATE", + ) + retrieval_job = BigQueryOfflineStore.pull_latest_from_table_or_query( + config=test_repo_config, + data_source=test_data_source, + join_key_columns=["driver_id"], + feature_name_columns=["feature1"], + timestamp_field="event_date", + created_timestamp_column=None, + start_date=datetime(2021, 1, 1, tzinfo=timezone.utc), + end_date=datetime(2021, 1, 2, tzinfo=timezone.utc), + ) + actual_query = retrieval_job.to_sql() + assert "DATE('2021-01-01')" in actual_query + assert "DATE('2021-01-02')" in actual_query + assert "_PARTITIONDATE >= '2021-01-01'" in actual_query + assert "_PARTITIONDATE <= '2021-01-02'" in actual_query + + +def test_bigquery_source_date_type_proto_roundtrip(): + source = BigQuerySource( + table="project:dataset.table", + timestamp_field="event_date", + timestamp_field_type="DATE", + date_partition_column="_PARTITIONDATE", + ) + proto = source.to_proto() + restored = BigQuerySource.from_proto(proto) + assert restored.timestamp_field_type == "DATE" + assert restored.date_partition_column == "_PARTITIONDATE" + assert restored.timestamp_field == "event_date" + assert source == restored + + class TestBigQuerySourceGetTableQueryString: def test_table_only(self): source = BigQuerySource( From 7f592a4fa6f230ce8a635a1ff235cbb575c254f4 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 14 May 2026 22:29:32 +0530 Subject: [PATCH 21/59] fix: Fixes for ray source Signed-off-by: ntkathole --- pixi.lock | 545 +++- pyproject.toml | 3 +- sdk/python/feast/dbt/parser.py | 1 + .../feast/infra/compute_engines/ray/utils.py | 7 +- .../contrib/ray_offline_store/ray.py | 2 +- .../ray_offline_store_reader.py | 6 +- sdk/python/feast/infra/ray_initializer.py | 60 +- .../requirements/py3.10-ci-requirements.txt | 2381 ++++++++-------- .../py3.10-minimal-requirements.txt | 1289 ++++----- ...y3.10-minimal-sdist-requirements-build.txt | 289 +- .../py3.10-minimal-sdist-requirements.txt | 1295 ++++----- .../requirements/py3.10-requirements.txt | 601 ++-- .../requirements/py3.11-ci-requirements.txt | 2431 ++++++++-------- .../py3.11-minimal-requirements.txt | 1289 ++++----- ...y3.11-minimal-sdist-requirements-build.txt | 285 +- .../py3.11-minimal-sdist-requirements.txt | 1295 ++++----- .../requirements/py3.11-requirements.txt | 601 ++-- .../requirements/py3.12-ci-requirements.txt | 2437 +++++++++-------- .../py3.12-minimal-requirements.txt | 1289 ++++----- ...y3.12-minimal-sdist-requirements-build.txt | 285 +- .../py3.12-minimal-sdist-requirements.txt | 1295 ++++----- .../requirements/py3.12-requirements.txt | 601 ++-- 22 files changed, 9624 insertions(+), 8663 deletions(-) diff --git a/pixi.lock b/pixi.lock index ffdb536b80d..4b5c54e8e26 100644 --- a/pixi.lock +++ b/pixi.lock @@ -703,12 +703,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + - pypi: https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2f/86/a6f3ff1fd795f49545a7c74b2c92f62729135d73e7e4055bf74da5a26c82/aiohttp-3.13.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl @@ -719,6 +723,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl @@ -726,16 +731,19 @@ environments: - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ad/55/9f1ebb5a825215fadcc0f7d5073f6e79e3007e3282b14b22d6aba7ca6cb8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/58/2f/f3fc773270cf17e7ca076c1f6435278f58641d475a25cdeea5b2d8d4845b/grpcio-1.62.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/4d/103f76b04310e5e57656696cc184690d20c466af0bca3ca88f8c8ea5d4f3/hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -745,10 +753,14 @@ environments: - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/b1/e20d5f0d19c4c0f3df213fa7dcfa0942c4fb127d38e11f398ae8ddf6cccc/mmh3-5.2.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/09/2a06956383c0fdebaef5aa9246e2356776f12ea6f2a44bd1368abf0e46c4/msgpack-1.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -758,6 +770,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/6e/899fed76dc1942b8a64193a4f059d7f1a2c7ef65085e8a9366ed8ec0d199/propcache-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/53/1b/3b431694a4dc6d37b9f653f0c64b0a0d9ec074ee810710c0c3da21d67ba7/protobuf-7.34.1-cp310-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl @@ -787,7 +800,9 @@ environments: - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5c/ad/6c4395649a212a6c603a72c5b9ab5dce3135a1546cfdffa3c427e71fd535/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl @@ -799,6 +814,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl @@ -809,6 +825,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c2/7a/32758ca2853b07a887a4574b74e28843919103194bb47001a304e24af62f/wrapt-2.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/a4/db/268012153eb7f6bf2c8a0491fdcde11e093f166990821a2ab754fe95537d/xxhash-3.7.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/50/12/95a1d33f04a79c402664070d43b8b9f72dc18914e135b345b611b0b1f8cc/yarl-1.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl - pypi: ./ osx-64: @@ -825,12 +843,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - pypi: https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/98/afd308e35b9d3d8c9ec54c0918f1d722c86dc17ddfec272fcdbcce5a3124/aiohttp-3.13.5-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl @@ -841,6 +863,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl @@ -848,16 +871,19 @@ environments: - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3f/9859f655d11901e7b2996c6e3d33e0caa9a1d4572c3bc61ed0faa64b2f4c/greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3d/fb/69ff198a82cae7eb1a69fb84d93b3a3e4816564d76817fe541ddc96874eb/hf_xet-1.5.0-cp37-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -867,10 +893,14 @@ environments: - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/bf/5404c2fd6ac84819e8ff1b7e34437b37cf55a2b11318894909e7bb88de3f/mmh3-5.2.1-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f5/a2/3b68a9e769db68668b25c6108444a35f9bd163bb848c0650d516761a59c0/msgpack-1.1.2-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl @@ -880,6 +910,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/55/1140a8e067b8ec093a18a4ae7bb0045d9db65da38a08618ddc5e2f1994aa/propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl @@ -909,7 +940,9 @@ environments: - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl @@ -921,6 +954,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl @@ -931,6 +965,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/da/d2/387594fb592d027366645f3d7cc9b4d7ca7be93845fbaba6d835a912ef3c/wrapt-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/92/49/e4b575b4ed170a7f640c8bd69cfadfa81c7b700191fde5e72228762b9f73/xxhash-3.7.0-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7a/35/5a553687c5793df5429cd1db45909d4f3af7eee90014888c208d086a44f0/yarl-1.23.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl - pypi: ./ osx-arm64: @@ -948,12 +984,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - pypi: https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/4d/926c183e06b09d5270a309eb50fbde7b09782bfd305dec1e800f329834fb/aiohttp-3.13.5-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl @@ -964,6 +1004,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl @@ -971,15 +1012,18 @@ environments: - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -989,10 +1033,14 @@ environments: - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/0b/52bffad0b52ae4ea53e222b594bd38c08ecac1fc410323220a7202e43da5/mmh3-5.2.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/5b/e1/2b720cc341325c00be44e1ed59e7cfeae2678329fbf5aa68f5bda57fe728/msgpack-1.1.2-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl @@ -1002,6 +1050,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/20/42/0e7443c90310498561addf346e7d57fe3c6ba1914e1ba938b5464c7bbfd2/propcache-0.5.2-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl @@ -1031,7 +1080,9 @@ environments: - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/67/1235676e93dd3b742a4a8eddfae49eea46c85e3eed29f0da446a8dd57500/sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl @@ -1043,6 +1094,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl @@ -1053,6 +1105,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c9/18/3f373935bc5509e7ac444c8026a56762e50c1183e7061797437ca96c12ce/wrapt-2.1.2-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/07/61/40f0155b0b09988eb6cdbfc52652f2f371810b0c58163208cb05667757bd/xxhash-3.7.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/68/2e/c5a2234238f8ce37a8312b52801ee74117f576b1539eec8404a480434acc/yarl-1.23.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl - pypi: ./ registration-tests: @@ -2012,6 +2066,144 @@ packages: - pytest-xdist ; extra == 'test' - pre-commit ; extra == 'test' requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl + name: datasets + version: 4.8.5 + sha256: 5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff + requires_dist: + - filelock + - numpy>=1.17 + - pyarrow>=21.0.0 + - dill>=0.3.0,<0.4.2 + - pandas + - requests>=2.32.2 + - httpx<1.0.0 + - tqdm>=4.66.3 + - xxhash + - multiprocess<0.70.20 + - fsspec[http]>=2023.1.0,<=2026.2.0 + - huggingface-hub>=0.25.0,<2.0 + - packaging + - pyyaml>=5.1 + - torchcodec>=0.6.0 ; extra == 'audio' + - torch>=2.8.0 ; extra == 'audio' + - pillow>=9.4.0 ; extra == 'vision' + - tensorflow>=2.6.0 ; extra == 'tensorflow' + - tensorflow>=2.6.0 ; extra == 'tensorflow-gpu' + - torch ; extra == 'torch' + - jax>=0.3.14 ; extra == 'jax' + - jaxlib>=0.3.14 ; extra == 'jax' + - numba>=0.56.4 ; python_full_version < '3.14' and extra == 'dev' + - absl-py ; extra == 'dev' + - decorator ; extra == 'dev' + - joblib<1.3.0 ; extra == 'dev' + - joblibspark ; python_full_version < '3.14' and extra == 'dev' + - pytest ; extra == 'dev' + - pytest-datadir ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - aiohttp ; extra == 'dev' + - elasticsearch>=7.17.12,<8.0.0 ; extra == 'dev' + - faiss-cpu>=1.8.0.post1 ; extra == 'dev' + - h5py ; extra == 'dev' + - pylance ; extra == 'dev' + - jax>=0.3.14 ; sys_platform != 'win32' and extra == 'dev' + - jaxlib>=0.3.14 ; sys_platform != 'win32' and extra == 'dev' + - lz4 ; python_full_version < '3.14' and extra == 'dev' + - moto[server] ; extra == 'dev' + - pyspark>=3.4 ; extra == 'dev' + - py7zr ; extra == 'dev' + - rarfile>=4.0 ; extra == 'dev' + - sqlalchemy ; extra == 'dev' + - protobuf<4.0.0 ; extra == 'dev' + - tensorflow>=2.6.0 ; python_full_version < '3.10' and sys_platform != 'win32' and extra == 'dev' + - tensorflow>=2.16.0 ; python_full_version >= '3.10' and python_full_version < '3.14' and sys_platform != 'win32' and extra == 'dev' + - tiktoken ; extra == 'dev' + - torch>=2.8.0 ; extra == 'dev' + - torchdata ; extra == 'dev' + - transformers>=4.42.0 ; extra == 'dev' + - zstandard ; extra == 'dev' + - polars[timezone]>=0.20.0 ; extra == 'dev' + - pillow>=9.4.0 ; extra == 'dev' + - torchcodec>=0.7.0 ; python_full_version < '3.14' and extra == 'dev' + - nibabel>=5.3.1 ; extra == 'dev' + - ruff>=0.3.0 ; extra == 'dev' + - transformers ; extra == 'dev' + - torch ; extra == 'dev' + - tensorflow>=2.6.0 ; extra == 'dev' + - numba>=0.56.4 ; python_full_version < '3.14' and extra == 'tests' + - absl-py ; extra == 'tests' + - decorator ; extra == 'tests' + - joblib<1.3.0 ; extra == 'tests' + - joblibspark ; python_full_version < '3.14' and extra == 'tests' + - pytest ; extra == 'tests' + - pytest-datadir ; extra == 'tests' + - pytest-xdist ; extra == 'tests' + - aiohttp ; extra == 'tests' + - elasticsearch>=7.17.12,<8.0.0 ; extra == 'tests' + - faiss-cpu>=1.8.0.post1 ; extra == 'tests' + - h5py ; extra == 'tests' + - pylance ; extra == 'tests' + - jax>=0.3.14 ; sys_platform != 'win32' and extra == 'tests' + - jaxlib>=0.3.14 ; sys_platform != 'win32' and extra == 'tests' + - lz4 ; python_full_version < '3.14' and extra == 'tests' + - moto[server] ; extra == 'tests' + - pyspark>=3.4 ; extra == 'tests' + - py7zr ; extra == 'tests' + - rarfile>=4.0 ; extra == 'tests' + - sqlalchemy ; extra == 'tests' + - protobuf<4.0.0 ; extra == 'tests' + - tensorflow>=2.6.0 ; python_full_version < '3.10' and sys_platform != 'win32' and extra == 'tests' + - tensorflow>=2.16.0 ; python_full_version >= '3.10' and python_full_version < '3.14' and sys_platform != 'win32' and extra == 'tests' + - tiktoken ; extra == 'tests' + - torch>=2.8.0 ; extra == 'tests' + - torchdata ; extra == 'tests' + - transformers>=4.42.0 ; extra == 'tests' + - zstandard ; extra == 'tests' + - polars[timezone]>=0.20.0 ; extra == 'tests' + - pillow>=9.4.0 ; extra == 'tests' + - torchcodec>=0.7.0 ; python_full_version < '3.14' and extra == 'tests' + - nibabel>=5.3.1 ; extra == 'tests' + - numba>=0.56.4 ; python_full_version < '3.14' and extra == 'tests-numpy2' + - absl-py ; extra == 'tests-numpy2' + - decorator ; extra == 'tests-numpy2' + - joblib<1.3.0 ; extra == 'tests-numpy2' + - joblibspark ; python_full_version < '3.14' and extra == 'tests-numpy2' + - pytest ; extra == 'tests-numpy2' + - pytest-datadir ; extra == 'tests-numpy2' + - pytest-xdist ; extra == 'tests-numpy2' + - aiohttp ; extra == 'tests-numpy2' + - elasticsearch>=7.17.12,<8.0.0 ; extra == 'tests-numpy2' + - h5py ; extra == 'tests-numpy2' + - pylance ; extra == 'tests-numpy2' + - jax>=0.3.14 ; sys_platform != 'win32' and extra == 'tests-numpy2' + - jaxlib>=0.3.14 ; sys_platform != 'win32' and extra == 'tests-numpy2' + - lz4 ; python_full_version < '3.14' and extra == 'tests-numpy2' + - moto[server] ; extra == 'tests-numpy2' + - pyspark>=3.4 ; extra == 'tests-numpy2' + - py7zr ; extra == 'tests-numpy2' + - rarfile>=4.0 ; extra == 'tests-numpy2' + - sqlalchemy ; extra == 'tests-numpy2' + - protobuf<4.0.0 ; extra == 'tests-numpy2' + - tiktoken ; extra == 'tests-numpy2' + - torch>=2.8.0 ; extra == 'tests-numpy2' + - torchdata ; extra == 'tests-numpy2' + - transformers>=4.42.0 ; extra == 'tests-numpy2' + - zstandard ; extra == 'tests-numpy2' + - polars[timezone]>=0.20.0 ; extra == 'tests-numpy2' + - pillow>=9.4.0 ; extra == 'tests-numpy2' + - torchcodec>=0.7.0 ; python_full_version < '3.14' and extra == 'tests-numpy2' + - nibabel>=5.3.1 ; extra == 'tests-numpy2' + - ruff>=0.3.0 ; extra == 'quality' + - tensorflow==2.12.0 ; extra == 'benchmarks' + - torch==2.0.1 ; extra == 'benchmarks' + - transformers==4.30.1 ; extra == 'benchmarks' + - transformers ; extra == 'docs' + - torch ; extra == 'docs' + - tensorflow>=2.6.0 ; extra == 'docs' + - pdfplumber>=0.11.4 ; extra == 'pdfs' + - nibabel>=5.3.2 ; extra == 'nibabel' + - ipyniivue==2.4.2 ; extra == 'nibabel' + requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/76/09/22793699ce02e5e58836f98cff1d2b872c94608446f772bd3a50065aa9fb/db_dtypes-1.5.1-py3-none-any.whl name: db-dtypes version: 1.5.1 @@ -2229,8 +2421,8 @@ packages: requires_python: '>=3.10' - pypi: ./ name: feast - version: 0.63.1.dev11+g728aa2e03 - sha256: 0374de3999768cff5af26fcded970de628340809ce8d1466645c9ca0d209c166 + version: 0.63.1.dev21+g5787c969f + sha256: 3bb1cc098f773cf73d4d1c981dc1ec90c3fcac7e7053baa4c88cc0e7471570d3 requires_dist: - click>=7.0.0,<9.0.0 - colorama>=0.3.9,<1 @@ -2324,6 +2516,7 @@ packages: - sentence-transformers>=3.0.0 ; extra == 'rag' - ray>=2.47.0 ; python_full_version == '3.10.*' and extra == 'ray' - codeflare-sdk>=0.31.1 ; python_full_version >= '3.11' and extra == 'ray' + - datasets>=3.6.0 ; extra == 'ray' - redis>=4.2.2,<8 ; extra == 'redis' - hiredis>=2.0.0,<4 ; extra == 'redis' - singlestoredb<1.8.0 ; extra == 'singlestore' @@ -2525,6 +2718,114 @@ packages: - zstandard ; extra == 'test-full' - tqdm ; extra == 'tqdm' requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl + name: fsspec + version: 2026.2.0 + sha256: 98de475b5cb3bd66bedd5c4679e87b4fdfe1a3bf4d707b151b3c07e58c9a2437 + requires_dist: + - adlfs ; extra == 'abfs' + - adlfs ; extra == 'adl' + - pyarrow>=1 ; extra == 'arrow' + - dask ; extra == 'dask' + - distributed ; extra == 'dask' + - pre-commit ; extra == 'dev' + - ruff>=0.5 ; extra == 'dev' + - numpydoc ; extra == 'doc' + - sphinx ; extra == 'doc' + - sphinx-design ; extra == 'doc' + - sphinx-rtd-theme ; extra == 'doc' + - yarl ; extra == 'doc' + - dropbox ; extra == 'dropbox' + - dropboxdrivefs ; extra == 'dropbox' + - requests ; extra == 'dropbox' + - adlfs ; extra == 'full' + - aiohttp!=4.0.0a0,!=4.0.0a1 ; extra == 'full' + - dask ; extra == 'full' + - distributed ; extra == 'full' + - dropbox ; extra == 'full' + - dropboxdrivefs ; extra == 'full' + - fusepy ; extra == 'full' + - gcsfs>2024.2.0 ; extra == 'full' + - libarchive-c ; extra == 'full' + - ocifs ; extra == 'full' + - panel ; extra == 'full' + - paramiko ; extra == 'full' + - pyarrow>=1 ; extra == 'full' + - pygit2 ; extra == 'full' + - requests ; extra == 'full' + - s3fs>2024.2.0 ; extra == 'full' + - smbprotocol ; extra == 'full' + - tqdm ; extra == 'full' + - fusepy ; extra == 'fuse' + - gcsfs>2024.2.0 ; extra == 'gcs' + - pygit2 ; extra == 'git' + - requests ; extra == 'github' + - gcsfs ; extra == 'gs' + - panel ; extra == 'gui' + - pyarrow>=1 ; extra == 'hdfs' + - aiohttp!=4.0.0a0,!=4.0.0a1 ; extra == 'http' + - libarchive-c ; extra == 'libarchive' + - ocifs ; extra == 'oci' + - s3fs>2024.2.0 ; extra == 's3' + - paramiko ; extra == 'sftp' + - smbprotocol ; extra == 'smb' + - paramiko ; extra == 'ssh' + - aiohttp!=4.0.0a0,!=4.0.0a1 ; extra == 'test' + - numpy ; extra == 'test' + - pytest ; extra == 'test' + - pytest-asyncio!=0.22.0 ; extra == 'test' + - pytest-benchmark ; extra == 'test' + - pytest-cov ; extra == 'test' + - pytest-mock ; extra == 'test' + - pytest-recording ; extra == 'test' + - pytest-rerunfailures ; extra == 'test' + - requests ; extra == 'test' + - aiobotocore>=2.5.4,<3.0.0 ; extra == 'test-downstream' + - dask[dataframe,test] ; extra == 'test-downstream' + - moto[server]>4,<5 ; extra == 'test-downstream' + - pytest-timeout ; extra == 'test-downstream' + - xarray ; extra == 'test-downstream' + - adlfs ; extra == 'test-full' + - aiohttp!=4.0.0a0,!=4.0.0a1 ; extra == 'test-full' + - backports-zstd ; python_full_version < '3.14' and extra == 'test-full' + - cloudpickle ; extra == 'test-full' + - dask ; extra == 'test-full' + - distributed ; extra == 'test-full' + - dropbox ; extra == 'test-full' + - dropboxdrivefs ; extra == 'test-full' + - fastparquet ; extra == 'test-full' + - fusepy ; extra == 'test-full' + - gcsfs ; extra == 'test-full' + - jinja2 ; extra == 'test-full' + - kerchunk ; extra == 'test-full' + - libarchive-c ; extra == 'test-full' + - lz4 ; extra == 'test-full' + - notebook ; extra == 'test-full' + - numpy ; extra == 'test-full' + - ocifs ; extra == 'test-full' + - pandas<3.0.0 ; extra == 'test-full' + - panel ; extra == 'test-full' + - paramiko ; extra == 'test-full' + - pyarrow ; extra == 'test-full' + - pyarrow>=1 ; extra == 'test-full' + - pyftpdlib ; extra == 'test-full' + - pygit2 ; extra == 'test-full' + - pytest ; extra == 'test-full' + - pytest-asyncio!=0.22.0 ; extra == 'test-full' + - pytest-benchmark ; extra == 'test-full' + - pytest-cov ; extra == 'test-full' + - pytest-mock ; extra == 'test-full' + - pytest-recording ; extra == 'test-full' + - pytest-rerunfailures ; extra == 'test-full' + - python-snappy ; extra == 'test-full' + - requests ; extra == 'test-full' + - smbprotocol ; extra == 'test-full' + - tqdm ; extra == 'test-full' + - urllib3 ; extra == 'test-full' + - zarr ; extra == 'test-full' + - zstandard ; python_full_version < '3.14' and extra == 'test-full' + - tqdm ; extra == 'tqdm' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl name: fsspec version: 2026.3.0 @@ -2967,6 +3268,27 @@ packages: version: 0.16.0 sha256: 63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/3d/fb/69ff198a82cae7eb1a69fb84d93b3a3e4816564d76817fe541ddc96874eb/hf_xet-1.5.0-cp37-abi3-macosx_10_12_x86_64.whl + name: hf-xet + version: 1.5.0 + sha256: dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56 + requires_dist: + - pytest ; extra == 'tests' + requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/49/4d/103f76b04310e5e57656696cc184690d20c466af0bca3ca88f8c8ea5d4f3/hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl + name: hf-xet + version: 1.5.0 + sha256: 3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949 + requires_dist: + - pytest ; extra == 'tests' + requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl + name: hf-xet + version: 1.5.0 + sha256: fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a + requires_dist: + - pytest ; extra == 'tests' + requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/10/13/433c4dada704c7f1b1b8261e713483b4cdfa462b1fced1a910ca173c1832/hiredis-3.3.1-cp310-cp310-macosx_11_0_arm64.whl name: hiredis version: 3.3.1 @@ -3042,6 +3364,124 @@ packages: - socksio==1.* ; extra == 'socks' - zstandard>=0.18.0 ; extra == 'zstd' requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl + name: huggingface-hub + version: 1.14.0 + sha256: efe075535c62e130b30e836b138e13785f6f043d1f0539e0a39aa411a99e90b8 + requires_dist: + - filelock>=3.10.0 + - fsspec>=2023.5.0 + - hf-xet>=1.4.3,<2.0.0 ; platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64' + - httpx>=0.23.0,<1 + - packaging>=20.9 + - pyyaml>=5.1 + - tqdm>=4.42.1 + - typer>=0.20.0 + - typing-extensions>=4.1.0 + - authlib>=1.3.2 ; extra == 'oauth' + - fastapi ; extra == 'oauth' + - httpx ; extra == 'oauth' + - itsdangerous ; extra == 'oauth' + - torch ; extra == 'torch' + - safetensors[torch] ; extra == 'torch' + - toml ; extra == 'fastai' + - fastai>=2.4 ; extra == 'fastai' + - fastcore>=1.3.27 ; extra == 'fastai' + - hf-xet>=1.4.3,<2.0.0 ; extra == 'hf-xet' + - mcp>=1.8.0 ; extra == 'mcp' + - authlib>=1.3.2 ; extra == 'testing' + - fastapi ; extra == 'testing' + - httpx ; extra == 'testing' + - itsdangerous ; extra == 'testing' + - jedi ; extra == 'testing' + - jinja2 ; extra == 'testing' + - pytest>=8.4.2 ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-env ; extra == 'testing' + - pytest-xdist ; extra == 'testing' + - pytest-vcr ; extra == 'testing' + - pytest-asyncio ; extra == 'testing' + - pytest-rerunfailures<16.0 ; extra == 'testing' + - pytest-mock ; extra == 'testing' + - urllib3<2.0 ; extra == 'testing' + - soundfile ; extra == 'testing' + - pillow ; extra == 'testing' + - numpy ; extra == 'testing' + - duckdb ; extra == 'testing' + - fastapi ; extra == 'testing' + - gradio>=5.0.0 ; extra == 'gradio' + - requests ; extra == 'gradio' + - typing-extensions>=4.8.0 ; extra == 'typing' + - types-pyyaml ; extra == 'typing' + - types-simplejson ; extra == 'typing' + - types-toml ; extra == 'typing' + - types-tqdm ; extra == 'typing' + - types-urllib3 ; extra == 'typing' + - ruff>=0.9.0 ; extra == 'quality' + - mypy==1.15.0 ; extra == 'quality' + - libcst>=1.4.0 ; extra == 'quality' + - ty ; extra == 'quality' + - authlib>=1.3.2 ; extra == 'all' + - fastapi ; extra == 'all' + - httpx ; extra == 'all' + - itsdangerous ; extra == 'all' + - jedi ; extra == 'all' + - jinja2 ; extra == 'all' + - pytest>=8.4.2 ; extra == 'all' + - pytest-cov ; extra == 'all' + - pytest-env ; extra == 'all' + - pytest-xdist ; extra == 'all' + - pytest-vcr ; extra == 'all' + - pytest-asyncio ; extra == 'all' + - pytest-rerunfailures<16.0 ; extra == 'all' + - pytest-mock ; extra == 'all' + - urllib3<2.0 ; extra == 'all' + - soundfile ; extra == 'all' + - pillow ; extra == 'all' + - numpy ; extra == 'all' + - duckdb ; extra == 'all' + - fastapi ; extra == 'all' + - ruff>=0.9.0 ; extra == 'all' + - mypy==1.15.0 ; extra == 'all' + - libcst>=1.4.0 ; extra == 'all' + - ty ; extra == 'all' + - typing-extensions>=4.8.0 ; extra == 'all' + - types-pyyaml ; extra == 'all' + - types-simplejson ; extra == 'all' + - types-toml ; extra == 'all' + - types-tqdm ; extra == 'all' + - types-urllib3 ; extra == 'all' + - authlib>=1.3.2 ; extra == 'dev' + - fastapi ; extra == 'dev' + - httpx ; extra == 'dev' + - itsdangerous ; extra == 'dev' + - jedi ; extra == 'dev' + - jinja2 ; extra == 'dev' + - pytest>=8.4.2 ; extra == 'dev' + - pytest-cov ; extra == 'dev' + - pytest-env ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - pytest-vcr ; extra == 'dev' + - pytest-asyncio ; extra == 'dev' + - pytest-rerunfailures<16.0 ; extra == 'dev' + - pytest-mock ; extra == 'dev' + - urllib3<2.0 ; extra == 'dev' + - soundfile ; extra == 'dev' + - pillow ; extra == 'dev' + - numpy ; extra == 'dev' + - duckdb ; extra == 'dev' + - fastapi ; extra == 'dev' + - ruff>=0.9.0 ; extra == 'dev' + - mypy==1.15.0 ; extra == 'dev' + - libcst>=1.4.0 ; extra == 'dev' + - ty ; extra == 'dev' + - typing-extensions>=4.8.0 ; extra == 'dev' + - types-pyyaml ; extra == 'dev' + - types-simplejson ; extra == 'dev' + - types-toml ; extra == 'dev' + - types-tqdm ; extra == 'dev' + - types-urllib3 ; extra == 'dev' + requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/9d/b3/11d406849715b47c9d69bb22f50874f80caee96bd1cbe7b61abbebbf5a05/ibis_framework-12.0.0-py3-none-any.whl name: ibis-framework version: 12.0.0 @@ -3680,6 +4120,40 @@ packages: - pytest-regressions ; extra == 'testing' - requests ; extra == 'testing' requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl + name: markdown-it-py + version: 4.2.0 + sha256: 9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a + requires_dist: + - mdurl~=0.1 + - psutil ; extra == 'benchmarking' + - pytest ; extra == 'benchmarking' + - pytest-benchmark ; extra == 'benchmarking' + - commonmark~=0.9 ; extra == 'compare' + - markdown~=3.4 ; extra == 'compare' + - mistletoe~=1.0 ; extra == 'compare' + - mistune~=3.0 ; extra == 'compare' + - panflute~=2.3 ; extra == 'compare' + - markdown-it-pyrs ; extra == 'compare' + - linkify-it-py>=1,<3 ; extra == 'linkify' + - mdit-py-plugins>=0.5.0 ; extra == 'plugins' + - gprof2dot ; extra == 'profiling' + - mdit-py-plugins>=0.5.0 ; extra == 'rtd' + - myst-parser ; extra == 'rtd' + - pyyaml ; extra == 'rtd' + - sphinx ; extra == 'rtd' + - sphinx-copybutton ; extra == 'rtd' + - sphinx-design ; extra == 'rtd' + - sphinx-book-theme~=1.0 ; extra == 'rtd' + - jupyter-sphinx ; extra == 'rtd' + - ipykernel ; extra == 'rtd' + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + - pytest-timeout ; extra == 'testing' + - requests ; extra == 'testing' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl name: markupsafe version: 3.0.3 @@ -3900,6 +4374,13 @@ packages: requires_dist: - typing-extensions>=4.1.0 ; python_full_version < '3.11' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl + name: multiprocess + version: 0.70.17 + sha256: 38357ca266b51a2e22841b755d9a91e4bb7b937979a54d411677111716c32744 + requires_dist: + - dill>=0.3.9 + requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl name: mypy version: 1.20.0 @@ -4751,6 +5232,21 @@ packages: version: 0.4.1 sha256: 66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/1a/55/1140a8e067b8ec093a18a4ae7bb0045d9db65da38a08618ddc5e2f1994aa/propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl + name: propcache + version: 0.5.2 + sha256: 29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/20/42/0e7443c90310498561addf346e7d57fe3c6ba1914e1ba938b5464c7bbfd2/propcache-0.5.2-cp310-cp310-macosx_11_0_arm64.whl + name: propcache + version: 0.5.2 + sha256: 6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/39/6e/899fed76dc1942b8a64193a4f059d7f1a2c7ef65085e8a9366ed8ec0d199/propcache-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + name: propcache + version: 0.5.2 + sha256: b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/84/f3/1fba73eeffafc998a25d59703b63f8be4fe8a5cb12eaff7386a0ba0f7125/proto_plus-1.27.2-py3-none-any.whl name: proto-plus version: 1.27.2 @@ -6379,6 +6875,15 @@ packages: - markdown-it-py>=2.2.0 - pygments>=2.13.0,<3.0.0 requires_python: '>=3.8.0' +- pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl + name: rich + version: 15.0.0 + sha256: 33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb + requires_dist: + - ipywidgets>=7.5.1,<9 ; extra == 'jupyter' + - markdown-it-py>=2.2.0 + - pygments>=2.13.0,<3.0.0 + requires_python: '>=3.9.0' - pypi: https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl name: rpds-py version: 0.30.0 @@ -6473,6 +6978,11 @@ packages: - importlib-metadata>=7.0.2 ; python_full_version < '3.10' and extra == 'type' - jaraco-develop>=7.21 ; sys_platform != 'cygwin' and extra == 'type' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl + name: shellingham + version: 1.5.4 + sha256: 7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686 + requires_python: '>=3.7' - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl name: six version: 1.17.0 @@ -6998,6 +7508,16 @@ packages: - importlib-metadata>=3.6 ; python_full_version < '3.10' - typing-extensions>=4.14.0 requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl + name: typer + version: 0.25.1 + sha256: 75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 + requires_dist: + - click>=8.2.1 + - shellingham>=1.3.0 + - rich>=13.8.0 + - annotated-doc>=0.0.2 + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/8b/fa/4f4d3bfca9ef6dd17d69ed18b96564c53b32d3ce774132308d0bee849f10/types_pymysql-1.1.0.20251220-py3-none-any.whl name: types-pymysql version: 1.1.0.20251220 @@ -7275,6 +7795,21 @@ packages: - pytest ; extra == 'dev' - setuptools ; extra == 'dev' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/07/61/40f0155b0b09988eb6cdbfc52652f2f371810b0c58163208cb05667757bd/xxhash-3.7.0-cp310-cp310-macosx_11_0_arm64.whl + name: xxhash + version: 3.7.0 + sha256: 85f5c0e26d945b5bb475e0a3d95193117498130baa7619357bdc7869c2391b5a + requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/92/49/e4b575b4ed170a7f640c8bd69cfadfa81c7b700191fde5e72228762b9f73/xxhash-3.7.0-cp310-cp310-macosx_10_9_x86_64.whl + name: xxhash + version: 3.7.0 + sha256: cd8ab85c916a58d5c8656ea15e3ce9df836fe2f120a74c296e01d69fab2614b4 + requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/a4/db/268012153eb7f6bf2c8a0491fdcde11e093f166990821a2ab754fe95537d/xxhash-3.7.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + name: xxhash + version: 3.7.0 + sha256: 12c249621af6d50a05d9f10af894b404157b15819878e18f75fcbb0213a77d07 + requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/50/12/95a1d33f04a79c402664070d43b8b9f72dc18914e135b345b611b0b1f8cc/yarl-1.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: yarl version: 1.23.0 diff --git a/pyproject.toml b/pyproject.toml index a2b63ca2882..9f25f82ad0e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -120,7 +120,8 @@ rag = [ ] ray = [ 'ray>=2.47.0; python_version == "3.10"', -'codeflare-sdk>=0.31.1; python_version > "3.10"' +'codeflare-sdk>=0.31.1; python_version > "3.10"', +"datasets>=3.6.0", ] redis = [ "redis>=4.2.2,<8", diff --git a/sdk/python/feast/dbt/parser.py b/sdk/python/feast/dbt/parser.py index f7d3e587e54..676a5a76f11 100644 --- a/sdk/python/feast/dbt/parser.py +++ b/sdk/python/feast/dbt/parser.py @@ -107,6 +107,7 @@ def parse(self) -> None: try: from dbt_artifacts_parser.parser import parse_manifest + assert self._raw_manifest is not None self._parsed_manifest = parse_manifest(manifest=self._raw_manifest) except ImportError: raise ImportError( diff --git a/sdk/python/feast/infra/compute_engines/ray/utils.py b/sdk/python/feast/infra/compute_engines/ray/utils.py index 5aa8c384cdd..9727f010ca4 100644 --- a/sdk/python/feast/infra/compute_engines/ray/utils.py +++ b/sdk/python/feast/infra/compute_engines/ray/utils.py @@ -3,7 +3,7 @@ """ import logging -from typing import TYPE_CHECKING, Callable, Dict, Union +from typing import TYPE_CHECKING, Any, Callable, Dict, Union import numpy as np import pandas as pd @@ -162,7 +162,10 @@ def _write_batch(batch: pa.Table) -> pa.Table: # Ray's map_batches requires a positive integer or "default" for batch_size; # None is not accepted. When no explicit batch size is configured, omit the # argument entirely so Ray uses its own default partitioning heuristic. - map_batches_kwargs = {"batch_format": "pyarrow", "zero_copy_batch": True} + map_batches_kwargs: dict[str, Any] = { + "batch_format": "pyarrow", + "zero_copy_batch": True, + } if batch_size is not None: map_batches_kwargs["batch_size"] = batch_size diff --git a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py index 1831959651f..5230797d94b 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py +++ b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py @@ -872,7 +872,7 @@ def windowed_temporal_join( ) combined_ds = entity_windowed.union(feature_windowed) result_ds = combined_ds.map_batches( - self._apply_windowed_point_in_time_logic, + self._apply_windowed_point_in_time_logic, # type: ignore[arg-type] batch_format="pandas", fn_kwargs={ "timestamp_field": timestamp_field, diff --git a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray_offline_store_reader.py b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray_offline_store_reader.py index d915c596de8..ecea76842a2 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray_offline_store_reader.py +++ b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray_offline_store_reader.py @@ -85,18 +85,14 @@ def load_ray_dataset_from_source(source: Any) -> Any: return ray_wrapper.read_webdataset(path, **opts) if reader_type == "huggingface": - from datasets import load_dataset - dataset_name = opts.get("dataset_name") or path split = opts.get("split", "train") - # trust_remote_code was removed in datasets>=3.0; skip silently if present. extra = { k: v for k, v in opts.items() if k not in ("dataset_name", "split", "trust_remote_code") } - hf_dataset = load_dataset(dataset_name, split=split, **extra) - return ray_wrapper.from_huggingface(hf_dataset) + return ray_wrapper.from_huggingface(dataset_name, split=split, **extra) if reader_type == "mongo": return ray_wrapper.read_mongo( diff --git a/sdk/python/feast/infra/ray_initializer.py b/sdk/python/feast/infra/ray_initializer.py index 9504e46a2b8..556eb20da66 100644 --- a/sdk/python/feast/infra/ray_initializer.py +++ b/sdk/python/feast/infra/ray_initializer.py @@ -262,9 +262,14 @@ def _connection_factory(): return ray.data.read_sql(sql, _connection_factory, **kwargs) - def from_huggingface(self, dataset: Any, **kwargs) -> Any: - """Convert a HuggingFace datasets.Dataset to a Ray Dataset.""" - return ray.data.from_huggingface(dataset, **kwargs) + def from_huggingface( + self, dataset_name: str, split: str = "train", **kwargs + ) -> Any: + """Load a HuggingFace dataset and convert to a Ray Dataset.""" + from datasets import load_dataset + + hf_dataset = load_dataset(dataset_name, split=split, **kwargs) + return ray.data.from_huggingface(hf_dataset) def from_pandas(self, df: Any) -> Any: """Create dataset from pandas DataFrame using standard Ray.""" @@ -282,12 +287,13 @@ def __init__( self, cluster_name: str, namespace: str, - auth_token: str, - auth_server: str, + auth_token: str = "", + auth_server: str = "", skip_tls: bool = False, enable_logging: bool = False, num_gpus: float = 0, worker_task_options: Optional[Dict[str, Any]] = None, + runtime_env: Optional[Dict[str, Any]] = None, ): """Initialize CodeFlare Ray wrapper with cluster connection parameters.""" self.cluster_name = cluster_name @@ -298,6 +304,7 @@ def __init__( self.enable_logging = enable_logging self.num_gpus = num_gpus self.worker_task_options = worker_task_options or {} + self.extra_runtime_env = runtime_env or {} self.cluster = None # Authenticate and setup Ray connection @@ -305,7 +312,12 @@ def __init__( self._setup_ray_connection() def _authenticate_codeflare(self): - """Authenticate with CodeFlare SDK.""" + """Authenticate with CodeFlare SDK. Skipped for in-cluster pods with no explicit token.""" + if not self.auth_token or not self.auth_server: + logger.info( + "No auth_token/auth_server provided; assuming in-cluster auth via service account" + ) + return try: from codeflare_sdk import TokenAuthentication @@ -339,6 +351,18 @@ def _setup_ray_connection(self): "pip": ["feast"], "env_vars": {"RAY_DISABLE_IMPORT_WARNING": "1"}, } + if self.extra_runtime_env: + extra_pip = self.extra_runtime_env.get("pip", []) + if extra_pip: + runtime_env["pip"] = list( + dict.fromkeys(runtime_env["pip"] + extra_pip) + ) + extra_env_vars = self.extra_runtime_env.get("env_vars", {}) + if extra_env_vars: + runtime_env["env_vars"].update(extra_env_vars) + for k, v in self.extra_runtime_env.items(): + if k not in ("pip", "env_vars"): + runtime_env[k] = v ray.shutdown() @@ -527,23 +551,28 @@ def _factory(): remote_fn = _remote.options(**opts) if opts else _remote return RemoteDatasetProxy(remote_fn.remote(sql, connection_url, kwargs)) - def from_huggingface(self, dataset: Any, **kwargs) -> Any: - """Convert a HuggingFace dataset - dispatched via @ray.remote to cluster workers. + def from_huggingface( + self, dataset_name: str, split: str = "train", **kwargs + ) -> Any: + """Load a HuggingFace dataset on a remote Ray worker and return a Ray Dataset. - Serialises the HuggingFace dataset and runs ray.data.from_huggingface() - on the cluster so the Ray Client driver is not involved in Ray Data ops. + The dataset is loaded directly on the worker to avoid serializing + memory-mapped HF Dataset objects across the network and to keep + driver memory usage near zero. """ from feast.infra.ray_shared_utils import RemoteDatasetProxy @ray.remote - def _remote(hf_dataset, read_kwargs): + def _remote(ds_name, ds_split, extra_kwargs): import ray + from datasets import load_dataset - return ray.data.from_huggingface(hf_dataset, **read_kwargs) + hf_dataset = load_dataset(ds_name, split=ds_split, **extra_kwargs) + return ray.data.from_huggingface(hf_dataset) opts = self._get_task_options() remote_fn = _remote.options(**opts) if opts else _remote - return RemoteDatasetProxy(remote_fn.remote(dataset, kwargs)) + return RemoteDatasetProxy(remote_fn.remote(dataset_name, split, kwargs)) def from_pandas(self, df: Any) -> Any: """Create dataset from pandas DataFrame - dispatched via @ray.remote.""" @@ -764,12 +793,13 @@ def _initialize_kuberay(config: Any, enable_logging: bool = False) -> None: _ray_wrapper = CodeFlareRayWrapper( cluster_name=kuberay_config["cluster_name"], namespace=kuberay_config["namespace"], - auth_token=kuberay_config["auth_token"], - auth_server=kuberay_config["auth_server"], + auth_token=kuberay_config.get("auth_token", ""), + auth_server=kuberay_config.get("auth_server", ""), skip_tls=kuberay_config.get("skip_tls", False), enable_logging=enable_logging, num_gpus=getattr(config, "num_gpus", 0) or 0, worker_task_options=getattr(config, "worker_task_options", None), + runtime_env=kuberay_config.get("runtime_env"), ) logger.info("KubeRay cluster connection established via CodeFlare SDK") diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 6b9913159f1..1436c1f1059 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -251,9 +251,9 @@ attrs==26.1.0 \ # jsonschema # openlineage-python # referencing -azure-core==1.40.0 \ - --hash=sha256:7f3ea02579b1bb1d34e45043423b650621d11d7c2ea3b05e5554010080b78dfd \ - --hash=sha256:ecf5b6ddf2564471fae9d576147b7e77a4da285958b2d9f4fd6c3af104f3e9d7 +azure-core==1.41.0 \ + --hash=sha256:522b4011e8180b1a3dcd2024396a4e7fe9ac37fb8597db47163d230b5efe892d \ + --hash=sha256:f46ff5dfcd230f25cf1c19e8a34b8dc08a337b2503e268bb600a16c00db8ad5a # via # azure-identity # azure-storage-blob @@ -277,9 +277,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -587,74 +587,60 @@ click==8.3.3 \ # ray # typer # uvicorn -clickhouse-connect==0.15.1 \ - --hash=sha256:08df7857ecd2e345abbbdfc54d80fa060732cf75c953940355140af9a73b730a \ - --hash=sha256:0bef871fb9803ae82b4dc1f797b6e784de0a4dec351591191a0c1a6008548284 \ - --hash=sha256:158325a06978f91a182967341188502a0761447d1e13ffa775cf017def1a3d9e \ - --hash=sha256:167e674dff8ac12be7796d93190b6fe9097c042940b3c41d87fe4d85970be27d \ - --hash=sha256:1ef6922c8887a8b0db49a81823ef031807c971f628a363f6d53b030abaefd589 \ - --hash=sha256:1ff5d10c6e49d36ee6941f52c4233f2bfb4198e9c726fed224f725974a667e37 \ - --hash=sha256:24cdfe9b486c8f2e66f5f51b1f322d89d9eb4df29d9ebb2fa19b553065651e85 \ - --hash=sha256:265f1660e8db5006ca32e8894e6c6cc984b343d96171ab0580b2104084b0fc08 \ - --hash=sha256:2e19c9daabe4c24027006e903d0ba3f2a6b2e0703af37b2536335ac4558d541e \ - --hash=sha256:2e52e20190004ed4578b803b1d5f2097c336fafec41b2cc0d490b5a4964c1284 \ - --hash=sha256:371a201ee128ba2b47bd05e2f184b0d20fb78171d27441a6fb1183f4fcc9316e \ - --hash=sha256:3b456d469db994b188bb0b5afa373e8f2e5e2bf41a70a736b9ed2485a976e9ae \ - --hash=sha256:3cf1b78abf7e1b97ab279a2b244357c40657d2d8504ff3f713c6577cd0550b38 \ - --hash=sha256:46bcebd00aff52ea5f7433e9cee1157b411dba9187f6677a18378c799c27c8aa \ - --hash=sha256:4bf70933ab860bd2f0a872db624603706bed400c915c7aeef382956cf8ebbdf3 \ - --hash=sha256:4f87d283399cbda676c8765605bf60dc6559df6fd38cbb9ea07048a4b34dda26 \ - --hash=sha256:5046cb96d1c344c35198fe072a21ce3f273754df3e58fd0a6222c9a1aff72e75 \ - --hash=sha256:5462bad97d97919a4ed230e2ef28d0b76bec0354a343218647830aac7744a43b \ - --hash=sha256:57ad606e878fd284242713449217a0c475fde6b9b7ab59e7ba9e9c388431f004 \ - --hash=sha256:5ab0d019c18d9d63b228ce2e45768f6c65fd27067d1127ab3e558c35c90f52ef \ - --hash=sha256:5de299ada0f7eb9090bb5a6304d8d78163d4d9cc8eb04d8f552bfb82bafb61d5 \ - --hash=sha256:60aa8c9c775d22db324260265f4c656f803fbc71de9193ef83cf8d8d0ef6ab9a \ - --hash=sha256:691cbf6d3dd16988feb75d43942bb212f50f0cbec284eb249e0cd33ebf74ad09 \ - --hash=sha256:693a03e44256886ac5dd26dc708833913157ec72e3b3a44fb89fd5fc202f85dc \ - --hash=sha256:6f9619f9e8885886039e451c2e22d3fb9bd2e95bc64bbf4ebe6c0a50875785f4 \ - --hash=sha256:7586fae639db65d6ff9f7d539aaac04ebd8604657751d78f6b45e7f971be83f3 \ - --hash=sha256:76699fb79c0de182f915d96a08c15afc19755d9d0e9c93411abb0e4b539c7166 \ - --hash=sha256:7a590116037ae56fab339b625f317d7c0a15bbede5f2f206ce1e55b1a2385e90 \ - --hash=sha256:82e60e108d78e32d58a0f21570b02d3baad67ccbad6482eeb79d74a616d8a5ad \ - --hash=sha256:83d881bf786b05489ccf96f07972b9c28638b513f3e064d39987d837749b35e3 \ - --hash=sha256:859c718cb93780dd681f75d59ceaf4415915fa9617a5ba2de6105e291d6df3ad \ - --hash=sha256:873d8f74eaec141f40ae060318c32353da94fdd4601f925bfd52426f3ddcd689 \ - --hash=sha256:8bb70307589099c67dfe9a973998491bc82c1af9040560b5ebab799721bb197d \ - --hash=sha256:9610ef6ff653f8a030f50e39cdeb1a39bea925c48f9196d787ea4b9f5eb1c8f0 \ - --hash=sha256:99d55aab64fdeb53d74c16d2c46ae5491e90aa37ba55c24884a68a869418ee8e \ - --hash=sha256:a1266a52bf61f0420630f625c5ac87bc2d095f08321820546300a699d4300ba3 \ - --hash=sha256:a326e2f5518d6a9d71f0895d50a3ccd8c4d5e3abb625f39330512ff3c45c6731 \ - --hash=sha256:a9d1e12bf86cd96626f74d21e3ac237abcda105f55cd2e78d139197d35f86209 \ - --hash=sha256:aa9890507aac52a8a5363813bb315b6867e86a97ffa08576cb934603f5bc0216 \ - --hash=sha256:ae24e4e7b10ff140c9041d9bdb2c08781145d844c7486c2661d223ededce7634 \ - --hash=sha256:aeb09a6f8585f3bd4d8c5bead38f3821c076e0bca08c474a7b9039732a6e2e9a \ - --hash=sha256:aed10f7615d0c72457d21ace9b59bfcbea0293188af2ffa3f3c2942d36974e7c \ - --hash=sha256:b2f5174fc6001a1555fc3cb565f3b727e1b786d572df0b30d14929ae13bd3542 \ - --hash=sha256:b692998e6dea344a4a2d7c34c129379767a068f234e1cb721ba27f1f023c70ee \ - --hash=sha256:b6d107b5f964af97f25a0d1bfd59fe3510f2a646c87ad4f9ab9014bb0c66aa1c \ - --hash=sha256:b8236c7dd675ed13d5e96f1f9126eeb711e8c266e4a0476ebc32be8a17decb32 \ - --hash=sha256:c12d9f2b2fc57adaf5ea267804f00e520771794641227ed5285e38fdf36557a6 \ - --hash=sha256:cd41ebe8b7f1c2579b22bbc414a800f3f8f5c843928019aca27c81592f70c5a7 \ - --hash=sha256:cdeee50fb2822e4f886d9676c5979b9e6f93ee9159b1aa1b7d62e71bcf7ae551 \ - --hash=sha256:d0dad989ae193c7261b12c9829f219fc1cb1ae9cad380c35cfe489f139c03ee9 \ - --hash=sha256:d10e8f42bafa12d43dd280d157af1ca5a1743e0ca94e61de94c1d00cb1b2da2b \ - --hash=sha256:d3fca3e0781b664556690decc788e7d25691043bf67a0d241e9c29233a2990d5 \ - --hash=sha256:d6e98c0cf53db3b24dc0ff9f522fcf13205b1d191c632567d1744fbd4671741f \ - --hash=sha256:d75324bb3a611eeb8c22b7fdda7c2cbc6ddbcc3871c65624b97f219430ded282 \ - --hash=sha256:df93fa024d6ed46dbc3182b6202180be4cf2bbe9c331dcb21f85963b1b3fd1e5 \ - --hash=sha256:e1a157205efd47884c22bfe061fc6f8c9aea844929ee755c47b446093805d21a \ - --hash=sha256:e307ea69dc2a6e6d942d2799ee8bfe20c99019ddf95121cbeaf7efbb97f79f09 \ - --hash=sha256:e702b77720ae6fd501e5a52262518dddb6c705fbc122bca4567694fb0bab401f \ - --hash=sha256:e88a31bbd9da7f4b49de39d21e8c93c8fbb5cf487071e935af0eba884681df00 \ - --hash=sha256:e911cffe6a9d9d27ccf91b8060086254c152c48ade47c1de3fc8e91d22cdd143 \ - --hash=sha256:eb595e820e46ccdffd702d23e4d1d1efadaa60db81a3da53e693ab055d8a3b1a \ - --hash=sha256:ecf244f91fc72e5dfe83652baf69a7ced414e9147288138897bc4376ebd6f8ac \ - --hash=sha256:f03814b6e6a72892ce913eaef3931e6d011068480e9c19b80e5c640fdac55109 \ - --hash=sha256:f13c34ad1ddb0d1efc92bc4039b50b534da94c51bbce25e61484bfd28b231cb5 \ - --hash=sha256:f25df0298ecea9c29768ab1267ff1186aacfff0cbd75ff3b588644043f313cd6 \ - --hash=sha256:f2aaf5fc0bb3098c24f0d8ca7e4ecbe605a26957481dfca2c8cef9d1fad7b7ca \ - --hash=sha256:fa01fdb92db6bf72cb9509eecd0a0057a4558a4f40c02eebffbc2d61b644620e +clickhouse-connect==1.0.0 \ + --hash=sha256:03ab4bda888575a2ea882ad4ed05bf9f5f15bb621209f6a4045231e3f26fedf7 \ + --hash=sha256:046f79215ebdd62192cc36e4d81b549570ca46e5b61e107b0d54cf7855b2ffff \ + --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ + --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ + --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ + --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ + --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ + --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ + --hash=sha256:20b76e54c9ea77e86c47b3194f1a9ff1833bd6fa34cb81bfcec621eff94ed033 \ + --hash=sha256:250826f2c3a8466faa51e03902f4c989be5da6f2ab6f74928afadd19ce1e2336 \ + --hash=sha256:29185891d5de03f60ff9da37dbe1e1e44bed8ef252d0d1281ddf3a450dfe5023 \ + --hash=sha256:295e6ff6e3f7fe71c28b1753967d8669ce12d924486150c74c892d8f67cba4d9 \ + --hash=sha256:298e7816ae3ecb7935bf1fe3fb8b8e9eb639e4e14516b87f01ef5a1c223b992c \ + --hash=sha256:2ff97a4a607eb525d9835c939a05ff63f0d3127f33afe1ed78b05d928f49c16c \ + --hash=sha256:320f0c53c4cb8b06732d875cabd35a357992a9e0fcf9f4a18b631ea7ce377ef1 \ + --hash=sha256:3222ae6bf39930a34ff4a483c6b34a1f3dab02d6743428b0383f4d47af7a48db \ + --hash=sha256:34557e29c4dfa0df1f6e26d053d6af1ae8d1444f4bd44a5c647dc7dd3bea22c0 \ + --hash=sha256:345838366b453a8c9c38366ac54493c2fb325982967d7bd0cde3ff619b66d9b7 \ + --hash=sha256:39315f2096809a08cdc75850b52a3675a0639525bbd634b87c4f188bfd875200 \ + --hash=sha256:40f9ade34a50ef2edfa0007d7b300a72fb4be239a0581b5ffc46f165b6a3d1a6 \ + --hash=sha256:444a735bf44390cbd0a81d84d3b20bd0c36084d2a8b9d030bc41b938c3dff1d1 \ + --hash=sha256:46b6dbabbda32e7e717b2732585ffbccf11815ad36987af57a068a66d1a0292c \ + --hash=sha256:4959f9b8915d5a64193523b9b25d7446c583befb5e339cbf45dba68eb2c4abbb \ + --hash=sha256:4964db35f9352452861e0d4d93ea4e7f41c77889e6f78092fe6c6cae5e09f478 \ + --hash=sha256:53f1f9cd31b1af371340f39923a08ba0aef57a7a85ef4a27376107f376c1efc3 \ + --hash=sha256:56a0d59bc1639827ac7ad14158ba557e5287f6cee1b6c942fc1747be12cbcc07 \ + --hash=sha256:5ce486901a4042f6fc6a76ad2961bf5be7c4d970fabecf99113f6cb49d936303 \ + --hash=sha256:6977afeabca17cdd3bc11215902f20e850eb1d71451d93eaee8ac26068a84af4 \ + --hash=sha256:715f50937fcafa849c53314d443b55fb5b04b938f2402ec135c41e515a8312af \ + --hash=sha256:77a5ce7880dea5deadd53d189cf690bdee14513c055343104f5ad3ddcfe25025 \ + --hash=sha256:80c455d0ce5d93c4a744911dcbfb37124c009a826727770fd86f21a47d654333 \ + --hash=sha256:8c4f5c8fa36b605435b32efea4f40ce11babb5f5afcec1e00f6a6cce81f81000 \ + --hash=sha256:8e74375b92cfa94cb4c944a393a027af5c5ed562fc6b862baf6288696bc48688 \ + --hash=sha256:965a496c770d17d061115ad096d2c966af3cee40c167b035afd0f3bd8037327b \ + --hash=sha256:98a3efce3af5308ba3ed140c20a4dc6bf175736e2803b5cb75838ee36365a4eb \ + --hash=sha256:9a2612b246bb9aa69419b8d24732df50e80579f0c43dea97db457cc15b39bfb2 \ + --hash=sha256:9c64f7a26f97eeca472dab6ca9baddc1e36fae1d1c244541926ada4fad14a99b \ + --hash=sha256:9ec2a93d353415951ab10da943f30f0038acc0a1ff82b3253d82a106f3065f34 \ + --hash=sha256:a763c1b1c7977fcab59d2d1d2f249a5231abf44f8a3aa5b0df06bb849b5d0f65 \ + --hash=sha256:a9e780a6d45025469d4e9cea5fec8b0ee55ef76bae867b2f255a106c0c720133 \ + --hash=sha256:ab0a095afd9a6353872a51304c795949fb31f8fdf7519a0f27d7c0fb255983d7 \ + --hash=sha256:aebf884c1aed8cf857d3323ac041e1cf636a865d231dc241543d9a68e82b553d \ + --hash=sha256:bbc6000c1c297b969b6d0a097e84a7bfa31931b0512e4eb1674c6c6d158ade0b \ + --hash=sha256:d84b8b799c71a88a600ca0455fed2d2edb320f510b04969bf04ca6f4807ab4fc \ + --hash=sha256:dae66adb575b7eb9626d84edad4481d5c3d93ca680766c3f1891c13694913bee \ + --hash=sha256:de4a5d1ffa12127f89b5308f95c6ef5da9b1c7f5d133a7d540c364bf259351fc \ + --hash=sha256:e7cfb81c08685ad721b30cb702324de8763f7e8ff8aa653d1c7b602363524cd9 \ + --hash=sha256:ede49d49101023f45d8cfb985719a9c20cf40ff4c60a9f895d48c17dac278448 \ + --hash=sha256:ef3b69da678fe40056f585c0a788356b6eeda04b751a3837ffe75340155ecfdb \ + --hash=sha256:ef8ba83257515fd38a7007a9ae1e8b70bf38d38f4bba34c3b7660af648f88cd2 \ + --hash=sha256:f61a6d42228694cbfcdf806061e752fc88511926389a271987d61c360029b72f \ + --hash=sha256:f8730073bc1adcee13b338b347f68fa0ec7b2460aecce227be2d5abb01ea7b8c \ + --hash=sha256:fc0801be2505b2e3d3b0337c875a624eab61912b8fd55218424ad52a69deab10 # via feast (pyproject.toml) cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -738,164 +724,164 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (pyproject.toml) -coverage[toml]==7.13.5 \ - --hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \ - --hash=sha256:02ca0eed225b2ff301c474aeeeae27d26e2537942aa0f87491d3e147e784a82b \ - --hash=sha256:03ccc709a17a1de074fb1d11f217342fb0d2b1582ed544f554fc9fc3f07e95f5 \ - --hash=sha256:0428cbef5783ad91fe240f673cc1f76b25e74bbfe1a13115e4aa30d3f538162d \ - --hash=sha256:04690832cbea4e4663d9149e05dba142546ca05cb1848816760e7f58285c970a \ - --hash=sha256:0590e44dd2745c696a778f7bab6aa95256de2cbc8b8cff4f7db8ff09813d6969 \ - --hash=sha256:0672854dc733c342fa3e957e0605256d2bf5934feeac328da9e0b5449634a642 \ - --hash=sha256:084b84a8c63e8d6fc7e3931b316a9bcafca1458d753c539db82d31ed20091a87 \ - --hash=sha256:0b67af5492adb31940ee418a5a655c28e48165da5afab8c7fa6fd72a142f8740 \ - --hash=sha256:0cd9ed7a8b181775459296e402ca4fb27db1279740a24e93b3b41942ebe4b215 \ - --hash=sha256:0cef0cdec915d11254a7f549c1170afecce708d30610c6abdded1f74e581666d \ - --hash=sha256:0e223ce4b4ed47f065bfb123687686512e37629be25cc63728557ae7db261422 \ - --hash=sha256:0e3c426ffc4cd952f54ee9ffbdd10345709ecc78a3ecfd796a57236bfad0b9b8 \ - --hash=sha256:0ecf12ecb326fe2c339d93fc131816f3a7367d223db37817208905c89bded911 \ - --hash=sha256:10a0c37f0b646eaff7cce1874c31d1f1ccb297688d4c747291f4f4c70741cc8b \ - --hash=sha256:145ede53ccbafb297c1c9287f788d1bc3efd6c900da23bf6931b09eafc931587 \ - --hash=sha256:1b11eef33edeae9d142f9b4358edb76273b3bfd30bc3df9a4f95d0e49caf94e8 \ - --hash=sha256:1b88c69c8ef5d4b6fe7dea66d6636056a0f6a7527c440e890cf9259011f5e606 \ - --hash=sha256:258354455f4e86e3e9d0d17571d522e13b4e1e19bf0f8596bcf9476d61e7d8a9 \ - --hash=sha256:259b69bb83ad9894c4b25be2528139eecba9a82646ebdda2d9db1ba28424a6bf \ - --hash=sha256:2aa055ae1857258f9e0045be26a6d62bdb47a72448b62d7b55f4820f361a2633 \ - --hash=sha256:2d3807015f138ffea1ed9afeeb8624fd781703f2858b62a8dd8da5a0994c57b6 \ - --hash=sha256:301e3b7dfefecaca37c9f1aa6f0049b7d4ab8dd933742b607765d757aca77d43 \ - --hash=sha256:32ca0c0114c9834a43f045a87dcebd69d108d8ffb666957ea65aa132f50332e2 \ - --hash=sha256:34b02417cf070e173989b3db962f7ed56d2f644307b2cf9d5a0f258e13084a61 \ - --hash=sha256:356e76b46783a98c2a2fe81ec79df4883a1e62895ea952968fb253c114e7f930 \ - --hash=sha256:35a31f2b1578185fbe6aa2e74cea1b1d0bbf4c552774247d9160d29b80ed56cc \ - --hash=sha256:380e8e9084d8eb38db3a9176a1a4f3c0082c3806fa0dc882d1d87abc3c789247 \ - --hash=sha256:3ad050321264c49c2fa67bb599100456fc51d004b82534f379d16445da40fb75 \ - --hash=sha256:3e1bb5f6c78feeb1be3475789b14a0f0a5b47d505bfc7267126ccbd50289999e \ - --hash=sha256:3f4818d065964db3c1c66dc0fbdac5ac692ecbc875555e13374fdbe7eedb4376 \ - --hash=sha256:460cf0114c5016fa841214ff5564aa4864f11948da9440bc97e21ad1f4ba1e01 \ - --hash=sha256:48c39bc4a04d983a54a705a6389512883d4a3b9862991b3617d547940e9f52b1 \ - --hash=sha256:4b59148601efcd2bac8c4dbf1f0ad6391693ccf7a74b8205781751637076aee3 \ - --hash=sha256:4d2afbc5cc54d286bfb54541aa50b64cdb07a718227168c87b9e2fb8f25e1743 \ - --hash=sha256:505d7083c8b0c87a8fa8c07370c285847c1f77739b22e299ad75a6af6c32c5c9 \ - --hash=sha256:52f444e86475992506b32d4e5ca55c24fc88d73bcbda0e9745095b28ef4dc0cf \ - --hash=sha256:5b13955d31d1633cf9376908089b7cebe7d15ddad7aeaabcbe969a595a97e95e \ - --hash=sha256:5ec4af212df513e399cf11610cc27063f1586419e814755ab362e50a85ea69c1 \ - --hash=sha256:60365289c3741e4db327e7baff2a4aaacf22f788e80fa4683393891b70a89fbd \ - --hash=sha256:631efb83f01569670a5e866ceb80fe483e7c159fac6f167e6571522636104a0b \ - --hash=sha256:6697e29b93707167687543480a40f0db8f356e86d9f67ddf2e37e2dfd91a9dab \ - --hash=sha256:66a80c616f80181f4d643b0f9e709d97bcea413ecd9631e1dedc7401c8e6695d \ - --hash=sha256:67e9bc5449801fad0e5dff329499fb090ba4c5800b86805c80617b4e29809b2a \ - --hash=sha256:68a4953be99b17ac3c23b6efbc8a38330d99680c9458927491d18700ef23ded0 \ - --hash=sha256:6c36ddb64ed9d7e496028d1d00dfec3e428e0aabf4006583bb1839958d280510 \ - --hash=sha256:6e3370441f4513c6252bf042b9c36d22491142385049243253c7e48398a15a9f \ - --hash=sha256:7034b5c56a58ae5e85f23949d52c14aca2cfc6848a31764995b7de88f13a1ea0 \ - --hash=sha256:704de6328e3d612a8f6c07000a878ff38181ec3263d5a11da1db294fa6a9bdf8 \ - --hash=sha256:7132bed4bd7b836200c591410ae7d97bf7ae8be6fc87d160b2bd881df929e7bf \ - --hash=sha256:7300c8a6d13335b29bb76d7651c66af6bd8658517c43499f110ddc6717bfc209 \ - --hash=sha256:750db93a81e3e5a9831b534be7b1229df848b2e125a604fe6651e48aa070e5f9 \ - --hash=sha256:777c4d1eff1b67876139d24288aaf1817f6c03d6bae9c5cc8d27b83bcfe38fe3 \ - --hash=sha256:78e696e1cc714e57e8b25760b33a8b1026b7048d270140d25dafe1b0a1ee05a3 \ - --hash=sha256:79060214983769c7ba3f0cee10b54c97609dca4d478fa1aa32b914480fd5738d \ - --hash=sha256:7c8d4bc913dd70b93488d6c496c77f3aff5ea99a07e36a18f865bca55adef8bd \ - --hash=sha256:7f2c47b36fe7709a6e83bfadf4eefb90bd25fbe4014d715224c4316f808e59a2 \ - --hash=sha256:800bc829053c80d240a687ceeb927a94fd108bbdc68dfbe505d0d75ab578a882 \ - --hash=sha256:843ea8643cf967d1ac7e8ecd4bb00c99135adf4816c0c0593fdcc47b597fcf09 \ - --hash=sha256:8769751c10f339021e2638cd354e13adeac54004d1941119b2c96fe5276d45ea \ - --hash=sha256:8dd02af98971bdb956363e4827d34425cb3df19ee550ef92855b0acb9c7ce51c \ - --hash=sha256:8fdf453a942c3e4d99bd80088141c4c6960bb232c409d9c3558e2dbaa3998562 \ - --hash=sha256:941617e518602e2d64942c88ec8499f7fbd49d3f6c4327d3a71d43a1973032f3 \ - --hash=sha256:972a9cd27894afe4bc2b1480107054e062df08e671df7c2f18c205e805ccd806 \ - --hash=sha256:9adb6688e3b53adffefd4a52d72cbd8b02602bfb8f74dcd862337182fd4d1a4e \ - --hash=sha256:9b74db26dfea4f4e50d48a4602207cd1e78be33182bc9cbf22da94f332f99878 \ - --hash=sha256:9bb2a28101a443669a423b665939381084412b81c3f8c0fcfbac57f4e30b5b8e \ - --hash=sha256:9d44d7aa963820b1b971dbecd90bfe5fe8f81cff79787eb6cca15750bd2f79b9 \ - --hash=sha256:9dacc2ad679b292709e0f5fc1ac74a6d4d5562e424058962c7bb0c658ad25e45 \ - --hash=sha256:9ddb4f4a5479f2539644be484da179b653273bca1a323947d48ab107b3ed1f29 \ - --hash=sha256:a1a6d79a14e1ec1832cabc833898636ad5f3754a678ef8bb4908515208bf84f4 \ - --hash=sha256:a698e363641b98843c517817db75373c83254781426e94ada3197cabbc2c919c \ - --hash=sha256:ad14385487393e386e2ea988b09d62dd42c397662ac2dabc3832d71253eee479 \ - --hash=sha256:ad146744ca4fd09b50c482650e3c1b1f4dfa1d4792e0a04a369c7f23336f0400 \ - --hash=sha256:b5db73ba3c41c7008037fa731ad5459fc3944cb7452fc0aa9f822ad3533c583c \ - --hash=sha256:bd3a2fbc1c6cccb3c5106140d87cc6a8715110373ef42b63cf5aea29df8c217a \ - --hash=sha256:bdba0a6b8812e8c7df002d908a9a2ea3c36e92611b5708633c50869e6d922fdf \ - --hash=sha256:be3d4bbad9d4b037791794ddeedd7d64a56f5933a2c1373e18e9e568b9141686 \ - --hash=sha256:bf69236a9a81bdca3bff53796237aab096cdbf8d78a66ad61e992d9dac7eb2de \ - --hash=sha256:bff95879c33ec8da99fc9b6fe345ddb5be6414b41d6d1ad1c8f188d26f36e028 \ - --hash=sha256:c555b48be1853fe3997c11c4bd521cdd9a9612352de01fa4508f16ec341e6fe0 \ - --hash=sha256:c81f6515c4c40141f83f502b07bbfa5c240ba25bbe73da7b33f1e5b6120ff179 \ - --hash=sha256:c9136ff29c3a91e25b1d1552b5308e53a1e0653a23e53b6366d7c2dcbbaf8a16 \ - --hash=sha256:ce1998c0483007608c8382f4ff50164bfc5bd07a2246dd272aa4043b75e61e85 \ - --hash=sha256:cec2d83125531bd153175354055cdb7a09987af08a9430bd173c937c6d0fba2a \ - --hash=sha256:cff784eef7f0b8f6cb28804fbddcfa99f89efe4cc35fb5627e3ac58f91ed3ac0 \ - --hash=sha256:d2c87e0c473a10bffe991502eac389220533024c8082ec1ce849f4218dded810 \ - --hash=sha256:d7cfad2d6d81dd298ab6b89fe72c3b7b05ec7544bdda3b707ddaecff8d25c161 \ - --hash=sha256:d8a7a2049c14f413163e2bdabd37e41179b1d1ccb10ffc6ccc4b7a718429c607 \ - --hash=sha256:da305e9937617ee95c2e39d8ff9f040e0487cbf1ac174f777ed5eddd7a7c1f26 \ - --hash=sha256:da86cdcf10d2519e10cabb8ac2de03da1bcb6e4853790b7fbd48523332e3a819 \ - --hash=sha256:dc022073d063b25a402454e5712ef9e007113e3a676b96c5f29b2bda29352f40 \ - --hash=sha256:e0723d2c96324561b9aa76fb982406e11d93cdb388a7a7da2b16e04719cf7ca5 \ - --hash=sha256:e092b9499de38ae0fbfbc603a74660eb6ff3e869e507b50d85a13b6db9863e15 \ - --hash=sha256:e0b216a19534b2427cc201a26c25da4a48633f29a487c61258643e89d28200c0 \ - --hash=sha256:e1c85e0b6c05c592ea6d8768a66a254bfb3874b53774b12d4c89c481eb78cb90 \ - --hash=sha256:e301d30dd7e95ae068671d746ba8c34e945a82682e62918e41b2679acd2051a0 \ - --hash=sha256:e808af52a0513762df4d945ea164a24b37f2f518cbe97e03deaa0ee66139b4d6 \ - --hash=sha256:eb07647a5738b89baab047f14edd18ded523de60f3b30e75c2acc826f79c839a \ - --hash=sha256:eb7fdf1ef130660e7415e0253a01a7d5a88c9c4d158bcf75cbbd922fd65a5b58 \ - --hash=sha256:ec10e2a42b41c923c2209b846126c6582db5e43a33157e9870ba9fb70dc7854b \ - --hash=sha256:ee2aa19e03161671ec964004fb74b2257805d9710bf14a5c704558b9d8dbaf17 \ - --hash=sha256:f08fd75c50a760c7eb068ae823777268daaf16a80b918fa58eea888f8e3919f5 \ - --hash=sha256:f4cd16206ad171cbc2470dbea9103cf9a7607d5fe8c242fdf1edf36174020664 \ - --hash=sha256:f70c9ab2595c56f81a89620e22899eea8b212a4041bd728ac6f4a28bf5d3ddd0 \ - --hash=sha256:fbabfaceaeb587e16f7008f7795cd80d20ec548dc7f94fbb0d4ec2e038ce563f +coverage[toml]==7.14.0 \ + --hash=sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74 \ + --hash=sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e \ + --hash=sha256:0a951308cde22cf77f953955a754d04dccb57fe3bb8e345d685778ed9fc1632a \ + --hash=sha256:0c451757d3fa2603354fdc789b5e58a0e327a117c370a40e3476ba4eabab228c \ + --hash=sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a \ + --hash=sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe \ + --hash=sha256:1733198802d71ec4c524f322e2867ee05c62e9e75df86bdca545407a221827d1 \ + --hash=sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db \ + --hash=sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9 \ + --hash=sha256:1c9ed6ef99f88fb8c14aa8e2bf8eb0fe55fa2edfea68f8675d78741df1a5ac0e \ + --hash=sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b \ + --hash=sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66 \ + --hash=sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644 \ + --hash=sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490 \ + --hash=sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5 \ + --hash=sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8 \ + --hash=sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f \ + --hash=sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212 \ + --hash=sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb \ + --hash=sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917 \ + --hash=sha256:3fd43f0616e765ab78d069cf8358def7363957a45cee446d65c502dcfeea7893 \ + --hash=sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c \ + --hash=sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90 \ + --hash=sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d \ + --hash=sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef \ + --hash=sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9 \ + --hash=sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087 \ + --hash=sha256:5904abf7e18cddc463219b17552229650c6b79e061d31a1059283051169cf7d5 \ + --hash=sha256:5ac83957a80d0701310e96d8bec68cdcf4f90a7674b7d13f15a344315b41ab27 \ + --hash=sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020 \ + --hash=sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3 \ + --hash=sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47 \ + --hash=sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca \ + --hash=sha256:65f267ca1370726ec2c1aa38bbe4df9a71a740f22878d2d4bf59d71a4cd8d323 \ + --hash=sha256:664123feb0929d7affc135717dbd70d61d98688a08ab1e5ba464739620c6252d \ + --hash=sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd \ + --hash=sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426 \ + --hash=sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828 \ + --hash=sha256:6a78e2a9d9c5e3b8d4ab9b9d28c985ea66fced0a7d7c2aec1f216e03a2011480 \ + --hash=sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97 \ + --hash=sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8 \ + --hash=sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899 \ + --hash=sha256:70390b0da32cb90b501953716302906e8bcce087cb283e70d8c97729f22e92b2 \ + --hash=sha256:72a305291fa8ee01332f1aaf38b348ca34097f6aa0b0ef627eef2837e57bbba5 \ + --hash=sha256:731dc15b385ac52289743d476245b61e1a2927e803bef655b52bc3b2a75a21f3 \ + --hash=sha256:731e535b1498b27d13594a0527a79b0510867b0ad891532be41cb883f2128e20 \ + --hash=sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436 \ + --hash=sha256:741f57cddc9004a8c81b084660215f33a6b597dbe62c31386b983ee26310e327 \ + --hash=sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b \ + --hash=sha256:7b2bb6c9d7e769360d0f20a0f219603fd64f0c8f97de17ab25853261602be0fb \ + --hash=sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe \ + --hash=sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab \ + --hash=sha256:7c843572c605ab51cfdb5c6b5f2586e2a8467c0d28eca4bdef4ec70c5fecbd82 \ + --hash=sha256:7ebb1c6df9f78046a1b1e0a89674cd4bf73b7c648914eebcf976a57fd99a5627 \ + --hash=sha256:7ffd19fc8aed057fd686a17a4935eef5f9859d69208f96310e893e64b9b6ccf5 \ + --hash=sha256:8231ade007f37959fbf58acc677f26b922c02eda6f0428ea307da0fd39681bf3 \ + --hash=sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477 \ + --hash=sha256:829994cfe1aeb773ca27bf246d4badc1e764893e3bfb98fff820fcecd1ca4662 \ + --hash=sha256:84c32d90bf4537f0e7b4dec9aaa9a938fb8205136b9d2ecf4d7629d5262dc075 \ + --hash=sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f \ + --hash=sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1 \ + --hash=sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7 \ + --hash=sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52 \ + --hash=sha256:91b993743d959b8be85b4abf9d5478216a69329c321efe5be0433c1a841d691d \ + --hash=sha256:92af52828e7f29d827346b0294e5a0853fa206db77db0395b282918d41e28db9 \ + --hash=sha256:9336e23e8bb3a3925398261385e2a1533957d3e760e91070dcb0e98bfa514eed \ + --hash=sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90 \ + --hash=sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1 \ + --hash=sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d \ + --hash=sha256:9cd1169b2230f9cbe9c638ba38022ed7a2b1e641cc07f7cea0365e4be2a74980 \ + --hash=sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca \ + --hash=sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa \ + --hash=sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6 \ + --hash=sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc \ + --hash=sha256:a1816c505187592dcd1c5a5f226601a549f70365fbd00930ac88b0c225b76bb4 \ + --hash=sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c \ + --hash=sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d \ + --hash=sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84 \ + --hash=sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2 \ + --hash=sha256:a93bac2cb577ef60074999ed56d8a1535894398e2ed920d4185c3ec0c8864742 \ + --hash=sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2 \ + --hash=sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb \ + --hash=sha256:b34ece8065914f938ed7f2c5872bb865336977a52919149846eac3744327267a \ + --hash=sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9 \ + --hash=sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96 \ + --hash=sha256:b4f07cf7edcb7ec39431a5074d7ea83b29a9f71fcfc494f0f40af4e65180420f \ + --hash=sha256:b812eb847b19876ebf33fb6c4f11819af05ab6050b0bfa1bc53412ae81779adb \ + --hash=sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63 \ + --hash=sha256:bcb2e855b87321259a037429288ae85216d191c74de3e79bf57cd2bc0761992c \ + --hash=sha256:bfb0ed8ec5d25e93face268115d7964db9df8b9aae8edcde9ec6b16c726a7cc1 \ + --hash=sha256:c7492f2d493b976941c7ca050f273cbda2f43c381124f7586a3e3c16d1804fec \ + --hash=sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367 \ + --hash=sha256:c83d2399a51bbec8429266905d33616f04bc5726b1138c35844d5fcd896b2e20 \ + --hash=sha256:ca3d9cf2c32b521bd9518385608787fa86f38daf993695307531822c3430ed67 \ + --hash=sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b \ + --hash=sha256:d128b1bba9361fbaaf6a19e179e6cfd6a9103ce0c0555876f72780acc93efd85 \ + --hash=sha256:d1bb3543b58fea74d2cd1abc4054cc927e4724687cb4560cd2ed88d2c7d820c0 \ + --hash=sha256:d8b013632cc1ce1d09dbe4f32667b4d320ec2f54fc326ebeffcd0b0bcc2bb6c4 \ + --hash=sha256:d8e1762f0e9cbc26ec315471e7b47855218e833cd5a032d706fbf43845d878c7 \ + --hash=sha256:d9c8ef6ed820c433de075657d72dda1f89a2984955e58b8a75feb3f184250218 \ + --hash=sha256:dc38367eaa2abb1b766ac333142bce7655335a73537f5c8b75aaa89c2b987757 \ + --hash=sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef \ + --hash=sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1 \ + --hash=sha256:fab3877e4ebb06bd9d4d4d00ee53309ee5478e66873c66a382272e3ee33eb7ea \ + --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ + --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 # via pytest-cov -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # feast (pyproject.toml) # azure-identity @@ -919,15 +905,15 @@ datasets==4.8.5 \ --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq -dbt-artifacts-parser==0.13.1 \ - --hash=sha256:c341730fa34ebb38cc7d2de0282e8b713e2fc65fc6577f0d944f8abee8949dc4 \ - --hash=sha256:c7a3c4e309ae2d7d566a615e92043b0d346a77998203b0cc466234717b806e40 +dbt-artifacts-parser==0.13.2 \ + --hash=sha256:9eca1e413f7eee522cc1556634b0b9effe790b70d8ffcc46ae2328b9868efaf1 \ + --hash=sha256:abb798aa73ff8cc295b4ecf03ee02d6a3bc48ad79f7d093d4bb3ffef68e77fb4 # via feast (pyproject.toml) debugpy==1.8.20 \ --hash=sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad \ @@ -1013,9 +999,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.74.1 \ - --hash=sha256:46bf298686f2c51ddd69b6935a27dff1cc80838f2f5f1a8823492d99cf1a357b \ - --hash=sha256:e6464078012b3d45f4e0accd101fcb277063903f355eabbb9aee8de00527a789 +docling-core[chunking]==2.75.0 \ + --hash=sha256:60f7bc4025f6511ba82eeb0aa677e756e9d3bf069d6f207c6ef2fb8be3176f32 \ + --hash=sha256:7961be3c3f58855324b081fce9e1231b892da7c61d6babbaf3d49c28387eb782 # via # docling # docling-ibm-models @@ -1101,13 +1087,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.2.1 \ - --hash=sha256:39e1a25e486af34ce7aa1bc9005d1c736f1b6fb04c9b64ea0604ded5a61fc1d4 \ - --hash=sha256:97d9abd638ba8aa90faa4ca1bf1a18bde0fe2088fbc8757f2eb7b299f205773d +elastic-transport==9.4.0 \ + --hash=sha256:2dbb907ededa14e6ff5be058f8737bbba3926bd1b1a40dbc98a471285fa2cb3c \ + --hash=sha256:4eff263c8011dd950451b72be567a2484b814a89c70081053d6ae6addeab52e2 # via elasticsearch -elasticsearch==9.3.0 \ - --hash=sha256:67bd2bb4f0800f58c2847d29cd57d6e7bf5bc273483b4f17421f93e75ba09f39 \ - --hash=sha256:f76e149c0a22d5ccbba58bdc30c9f51cf894231b359ef4fd7e839b558b59f856 +elasticsearch==9.4.0 \ + --hash=sha256:95e38e130b1d01438b19343dfa0458e1857a7df8e2e30cbf23a72182b03f05ff \ + --hash=sha256:e20095ba40229f4562f7cc951883c7c62a017435f94dbe0c21526f58ba411885 # via feast (pyproject.toml) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1351,9 +1337,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -1365,9 +1351,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -1377,17 +1363,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -1439,15 +1425,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -1521,6 +1507,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -1597,9 +1584,9 @@ grpcio-tools==1.62.3 \ --hash=sha256:f4b1615adf67bd8bb71f3464146a6f9949972d06d21a4f5e87e73f6464d97f57 \ --hash=sha256:f6831fdec2b853c9daa3358535c55eed3694325889aa714070528cf8f92d7d6d # via feast (pyproject.toml) -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1621,32 +1608,32 @@ hazelcast-python-client==5.6.0 \ --hash=sha256:834b87076a47c781ef80bdcb522b86abc75ff28992dfe384e47f669f06cabb18 \ --hash=sha256:e2cec409068990ca9b4381fe97160cc2375412334782bef45ab4c8fe4d10536c # via feast (pyproject.toml) -hf-xet==1.4.3 \ - --hash=sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07 \ - --hash=sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2 \ - --hash=sha256:21644b404bb0100fe3857892f752c4d09642586fd988e61501c95bbf44b393a3 \ - --hash=sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8 \ - --hash=sha256:27c976ba60079fb8217f485b9c5c7fcd21c90b0367753805f87cb9f3cdc4418a \ - --hash=sha256:2815a49a7a59f3e2edf0cf113ae88e8cb2ca2a221bf353fb60c609584f4884d4 \ - --hash=sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f \ - --hash=sha256:42ee323265f1e6a81b0e11094564fb7f7e0ec75b5105ffd91ae63f403a11931b \ - --hash=sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac \ - --hash=sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6 \ - --hash=sha256:60cf7fc43a99da0a853345cf86d23738c03983ee5249613a6305d3e57a5dca74 \ - --hash=sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075 \ - --hash=sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021 \ - --hash=sha256:7551659ba4f1e1074e9623996f28c3873682530aee0a846b7f2f066239228144 \ - --hash=sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba \ - --hash=sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47 \ - --hash=sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791 \ - --hash=sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113 \ - --hash=sha256:987f09cfe418237812896a6736b81b1af02a3a6dcb4b4944425c4c4fca7a7cf8 \ - --hash=sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f \ - --hash=sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd \ - --hash=sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025 \ - --hash=sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653 \ - --hash=sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583 \ - --hash=sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08 +hf-xet==1.5.0 \ + --hash=sha256:1e60df5a42e9bed8628b6416af2cba4cba57ae9f02de226a06b020d98e1aab18 \ + --hash=sha256:2806c7c17b4d23f8d88f7c4814f838c3b6150773fe339c20af23e1cfaf2797e4 \ + --hash=sha256:2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60 \ + --hash=sha256:3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949 \ + --hash=sha256:4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690 \ + --hash=sha256:526345b3ed45f374f6317349df489167606736c876241ba984105afe7fd4839d \ + --hash=sha256:5906bf7718d3636dc13402914736abe723492cb730f744834f5f5b67d3a12702 \ + --hash=sha256:5f3dc2248fc01cc0a00cd392ab497f1ca373fcbc7e3f2da1f452480b384e839e \ + --hash=sha256:73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42 \ + --hash=sha256:786d28e2eb8315d5035544b9d137b4a842d600c434bb91bf7d0d953cce906ad4 \ + --hash=sha256:7d70fe2ce97b9db73b9c9b9c81fe3693640aec83416a966c446afea54acfae3c \ + --hash=sha256:872d5601e6deea30d15865ede55d29eac6daf5a534ab417b99b6ef6b076dd96c \ + --hash=sha256:8dbcbab554c9ef158ef2c991545c3e970ddd8cc7acdcd0a78c5a41095dab4ded \ + --hash=sha256:9929561f5abf4581c8ea79587881dfef6b8abb2a0d8a51915936fc2a614f4e73 \ + --hash=sha256:9a0ee58cd18d5ea799f7ed11290bbccbe56bdd8b1d97ca74b9cc49a3945d7a3b \ + --hash=sha256:a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a \ + --hash=sha256:b285cea1b5bab46b758772716ba8d6854a1a0310fed1c249d678a8b38601e5a0 \ + --hash=sha256:b6c9df403040248c76d808d3e047d64db2d923bae593eb244c41e425cf6cd7be \ + --hash=sha256:c799d49f1a5544a0ef7591c0ee75e0d6b93d6f56dc7a4979f59f7518d2872216 \ + --hash=sha256:cf7b2dc6f31a4ea754bb50f74cde482dcf5d366d184076d8530b9872787f3761 \ + --hash=sha256:dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56 \ + --hash=sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948 \ + --hash=sha256:e5de0f6deada0dada870bb376a11bcd1f08abf3a968a6d118f33e72d1b1eb480 \ + --hash=sha256:f7b7bbae318e583a86fb21e5a4a175d6721d628a2874f4bd022d0e660c32a682 \ + --hash=sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a # via huggingface-hub hiredis==3.3.1 \ --hash=sha256:002fc0201b9af1cc8960e27cdc501ad1f8cdd6dbadb2091c6ddbd4e5ace6cb77 \ @@ -1848,9 +1835,9 @@ identify==2.6.19 \ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842 # via pre-commit -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1903,9 +1890,9 @@ isoduration==20.11.0 \ --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 # via jsonschema -jedi==0.19.2 \ - --hash=sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0 \ - --hash=sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9 +jedi==0.20.0 \ + --hash=sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 \ + --hash=sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011 # via ipython jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -1997,9 +1984,9 @@ jupyter-lsp==2.3.1 \ --hash=sha256:71b954d834e85ff3096400554f2eefaf7fe37053036f9a782b0f7c5e42dadb81 \ --hash=sha256:fdf8a4aa7d85813976d6e29e95e6a2c8f752701f926f2715305249a3829805a6 # via jupyterlab -jupyter-server==2.17.0 \ - --hash=sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5 \ - --hash=sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f +jupyter-server==2.18.2 \ + --hash=sha256:06b4f40d8a7a00bb39d5216859c81374a0e7cfefe6d8a5a7facc5a5c37c679a7 \ + --hash=sha256:fa5e46539ded65791838035a2b6001f13e54d5f64b8b3752eb1e91fdd641a5b8 # via # jupyter-lsp # jupyterlab @@ -2254,9 +2241,9 @@ makefun==1.16.0 \ --hash=sha256:43baa4c3e7ae2b17de9ceac20b669e9a67ceeadff31581007cca20a07bbe42c4 \ --hash=sha256:e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947 # via great-expectations -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich marko==2.2.2 \ --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ @@ -2360,15 +2347,15 @@ marshmallow==3.26.2 \ --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations -matplotlib-inline==0.2.1 \ - --hash=sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76 \ - --hash=sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe +matplotlib-inline==0.2.2 \ + --hash=sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 \ + --hash=sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79 # via # ipykernel # ipython -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -2386,9 +2373,9 @@ minio==7.2.11 \ --hash=sha256:153582ed52ff3b5005ba558e1f25bfe1e9e834f7f0745e594777f28e3e81e1a0 \ --hash=sha256:4db95a21fe1e2022ec975292d8a1f83bd5b18f830d23d42a4518ac7a5281d7c5 # via feast (pyproject.toml) -mistune==3.2.0 \ - --hash=sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a \ - --hash=sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1 +mistune==3.2.1 \ + --hash=sha256:78cdb0ba5e938053ccf63651b352508d2efa9411dc8810bfb05f2dc5140c0048 \ + --hash=sha256:7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28 # via # great-expectations # nbconvert @@ -2958,121 +2945,121 @@ opencv-python-headless==4.13.0.92 \ --hash=sha256:a7cf08e5b191f4ebb530791acc0825a7986e0d0dee2a3c491184bd8599848a4b \ --hash=sha256:eb60e36b237b1ebd40a912da5384b348df8ed534f6f644d8e0b4f103e272ba7d # via easyocr -openlineage-python==1.46.0 \ - --hash=sha256:f6228a01d34990e76ede5b55b3f99169e54e2e624814c4493f064b9cb1bfba37 +openlineage-python==1.47.1 \ + --hash=sha256:44ca34b0b38c9a49f6b7200ace37612334a34a455361af29adcfb80e27d258dd # via feast (pyproject.toml) openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 # via docling -oracledb==3.4.2 \ - --hash=sha256:00c79448017f367bb7ab6900efe0706658a53768abea2b4519a4c9b2d5743890 \ - --hash=sha256:0e16fe3d057e0c41a23ad2ae95bfa002401690773376d476be608f79ac74bf05 \ - --hash=sha256:0f04a2d62073407672f114d02529921de0677c6883ed7c64d8d1a3c04caa3238 \ - --hash=sha256:1617a1db020346883455af005efbefd51be2c4d797e43b1b38455a19f8526b48 \ - --hash=sha256:19fa80ef84f85ad74077aa626067bbe697e527bd39604b4209f9d86cb2876b89 \ - --hash=sha256:1e4930d7f6584832dcc15b8ca415a7957b0c45f5aa7c4f88702e070e5c53bf93 \ - --hash=sha256:23aa07c1eaca17ae74c6fdc86b218f58484d56452958aead1aa460c0596a76c1 \ - --hash=sha256:31b7ee83c23d0439778303de8a675717f805f7e8edb5556d48c4d8343bcf14f5 \ - --hash=sha256:3df8eee1410d25360599968b1625b000f10c5ae0e47274031a7842a9dc418890 \ - --hash=sha256:404ec1451d0448653ee074213b87d6c5bd65eaa74b50083ddf2c9c3e11c71c71 \ - --hash=sha256:46e0f2278ff1fe83fbc33a3b93c72d429323ec7eed47bc9484e217776cd437e5 \ - --hash=sha256:55397e7eb43bb7017c03a981c736c25724182f5210951181dfe3fab0e5d457fb \ - --hash=sha256:574c8280d49cbbe21dbe03fc28356d9b9a5b9e300ebcde6c6d106e51453a7e65 \ - --hash=sha256:59ad6438f56a25e8e1a4a3dd1b42235a5d09ab9ba417ff2ad14eae6596f3d06f \ - --hash=sha256:5d7befb014174c5ae11c3a08f5ed6668a25ab2335d8e7104dca70d54d54a5b3a \ - --hash=sha256:5ed78d7e7079a778062744ccf42141ce4806818c3f4dd6463e4a7edd561c9f86 \ - --hash=sha256:643c25d301a289a371e37fcedb59e5fa5e54fb321708e5c12821c4b55bdd8a4d \ - --hash=sha256:6d85622664cc88d5a82bbd7beccb62cd53bd272c550a5e15e7d5f8ae6b86f1f1 \ - --hash=sha256:9f434a739405557bd57cb39b62238142bb27855a524a70dc6d397a2a8c576c9d \ - --hash=sha256:a7396664e592881225ba66385ee83ce339d864f39003d6e4ca31a894a7e7c552 \ - --hash=sha256:ac25a0448fc830fb7029ad50cd136cdbfcd06975d53967e269772cc5cb8c203a \ - --hash=sha256:b1095d95d0c8b37e4d0e17cf1928919cb59222b6344362a1cf6a2f3ca205a28a \ - --hash=sha256:b26a10f9c790bd141ffc8af68520803ed4a44a9258bf7d1eea9bfdd36bd6df7f \ - --hash=sha256:b8e4b8a852251cef09038b75f30fce1227010835f4e19cfbd436027acba2697c \ - --hash=sha256:b974caec2c330c22bbe765705a5ac7d98ec3022811dec2042d561a3c65cb991b \ - --hash=sha256:d7ce75c498bff758548ec6e4424ab4271aa257e5887cc436a54bc947fd46199a \ - --hash=sha256:d8d75e4f879b908be66cce05ba6c05791a5dbb4a15e39abc01aa25c8a2492bd9 \ - --hash=sha256:e068ef844a327877bfefbef1bc6fb7284c727bb87af80095f08d95bcaf7b8bb2 \ - --hash=sha256:f8ea989965a4f636a309444bd696ab877bba373d5d67bf744785f9bd8c560865 \ - --hash=sha256:f93cae08e8ed20f2d5b777a8602a71f9418389c661d2c937e84d94863e7e7011 \ - --hash=sha256:ff3c89cecea62af8ca02aa33cab0f2edc0214c747eac7d3364ed6b2640cb55e4 +oracledb==4.0.0 \ + --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ + --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ + --hash=sha256:22e33228d6955db8a69c8c83ee4b392a534c86f9493647ea3f511c2f5df08dd4 \ + --hash=sha256:244ebe47c4a4e32bc07a4206192de04d92fbfeb72bf11a01493e3a710bd4b19a \ + --hash=sha256:4582f87e56c2a2e3a74942f087c096525543e92fb59d3758e41d41145b809c52 \ + --hash=sha256:4e47a130120181b8226daf9e928e3c22107c1d03d9ac5f6b891360677a811787 \ + --hash=sha256:4fcbbd8977d8d91ae0d931ce21cda0048f9685e6cc29c9a84b49a769a2511b08 \ + --hash=sha256:62b36249e8db777cd6a2b56be768642d055c89df3cbcfb5d6a3b4dc2426b34df \ + --hash=sha256:6c65366200b44c0a71b927cd813628f0d993b098c61cc82c54c53bccb0dd0d80 \ + --hash=sha256:6fc3dd6ce0fb1d8ca865bdf39183e663b1dd5e2d585327feffedf379a05e3abb \ + --hash=sha256:758ac5a56e872eb517cbae5d28574b200d7b2b28c793ee31b6ce4938777d8364 \ + --hash=sha256:80434a5aa393833bfde853e9e2943671cab219b3081c34aad1974df73c21e04d \ + --hash=sha256:893acd019ee45184e85ef1b5f1ba425ab4da3e8ed4dab1339b7ef329d3658ffc \ + --hash=sha256:8974532ca43f50bc6c41b9efd78219121d3fa52c673d9790da12468d06fcf59f \ + --hash=sha256:8dd447f52482779f6cde277eaf7d734c7ac8f07f4d4e3d3609510f6033dfd0b8 \ + --hash=sha256:922c59a7fcdc44c93dac852b33b9ebae202614235e0ed235e632bf8d5ca4dd55 \ + --hash=sha256:997a4cd0f563b5a1aa92aeb9bdd70e67e3789f0d1a418600a7256b27e6c8947f \ + --hash=sha256:a1c22feae372978861786c65560498dbb36e32d7447318499694d4504c67c043 \ + --hash=sha256:a3a0221ccb33fb47b46cc3fbe587d80144e0ae6237ded5b3c58e8f6c674f02dc \ + --hash=sha256:a7e2c3d99a691e71b4eeb9efbefdfae4dcdfe3bb78abf05a5d9b1a5e65ce8ea0 \ + --hash=sha256:aad06930cf7a99914c863e6e550111b452560bef82b25bd9650541d5c7622837 \ + --hash=sha256:b691fbca4c83e72773c1bee17df5dfced4f01334ea48242262430074cc5a9b36 \ + --hash=sha256:b94a53c2524f4b9522a3091abdb12a2d8e1ac80a83456f7278d2165c3ec54482 \ + --hash=sha256:bad1d5101cd6191271ab89ec372ad8ca119dac9453f59b7be948bdebf6cd5a55 \ + --hash=sha256:ccf0b875850109a77ab932b03dbfa6c98e4eb011545465008d32e7a7207e8e9a \ + --hash=sha256:cd83db5710e26502352c4ce3f5b5e29f202223f9dade089a28daeb688083d0db \ + --hash=sha256:d4b36f906f2e6812d2e4bc1fe965d50670a3fd552cef66bcb2da892e946bba0c \ + --hash=sha256:dc96cf923b62baae45bf698f4e80407b5640d9760682ce5d424e847bf9e20298 \ + --hash=sha256:e29d9c9db167ade1c1649123c8f7cadf248f8e7f66f86335ec5b66b97f70f684 \ + --hash=sha256:f5b1f7ae53883336e23a235339e023d26d1d4b0d014ce4944c61dc79951c89df \ + --hash=sha256:f8c7f26d6e75848d7c75604eff71272c202ddb5eb65996630da3d6d5452401f6 # via ibis-framework -orjson==3.11.8 \ - --hash=sha256:0022bb50f90da04b009ce32c512dc1885910daa7cb10b7b0cba4505b16db82a8 \ - --hash=sha256:003646067cc48b7fcab2ae0c562491c9b5d2cbd43f1e5f16d98fd118c5522d34 \ - --hash=sha256:01928d0476b216ad2201823b0a74000440360cef4fed1912d297b8d84718f277 \ - --hash=sha256:01c4e5a6695dc09098f2e6468a251bc4671c50922d4d745aff1a0a33a0cf5b8d \ - --hash=sha256:093d489fa039ddade2db541097dbb484999fcc65fc2b0ff9819141e2ab364f25 \ - --hash=sha256:0b57f67710a8cd459e4e54eb96d5f77f3624eba0c661ba19a525807e42eccade \ - --hash=sha256:0e32f7154299f42ae66f13488963269e5eccb8d588a65bc839ed986919fc9fac \ - --hash=sha256:14439063aebcb92401c11afc68ee4e407258d2752e62d748b6942dad20d2a70d \ - --hash=sha256:14778ffd0f6896aa613951a7fbf4690229aa7a543cb2bfbe9f358e08aafa9546 \ - --hash=sha256:14f7b8fcb35ef403b42fa5ecfa4ed032332a91f3dc7368fbce4184d59e1eae0d \ - --hash=sha256:1ab359aff0436d80bfe8a23b46b5fea69f1e18aaf1760a709b4787f1318b317f \ - --hash=sha256:1cd0b77e77c95758f8e1100139844e99f3ccc87e71e6fc8e1c027e55807c549f \ - --hash=sha256:25e0c672a2e32348d2eb33057b41e754091f2835f87222e4675b796b92264f06 \ - --hash=sha256:29c009e7a2ca9ad0ed1376ce20dd692146a5d9fe4310848904b6b4fee5c5c137 \ - --hash=sha256:3222adff1e1ff0dce93c16146b93063a7793de6c43d52309ae321234cdaf0f4d \ - --hash=sha256:3223665349bbfb68da234acd9846955b1a0808cbe5520ff634bf253a4407009b \ - --hash=sha256:3cf17c141617b88ced4536b2135c552490f07799f6ad565948ea07bef0dcb9a6 \ - --hash=sha256:3f23426851d98478c8970da5991f84784a76682213cd50eb73a1da56b95239dc \ - --hash=sha256:3f262401086a3960586af06c054609365e98407151f5ea24a62893a40d80dbbb \ - --hash=sha256:436c4922968a619fb7fef1ccd4b8b3a76c13b67d607073914d675026e911a65c \ - --hash=sha256:469ac2125611b7c5741a0b3798cd9e5786cbad6345f9f400c77212be89563bec \ - --hash=sha256:4861bde57f4d253ab041e374f44023460e60e71efaa121f3c5f0ed457c3a701e \ - --hash=sha256:48854463b0572cc87dac7d981aa72ed8bf6deedc0511853dc76b8bbd5482d36d \ - --hash=sha256:53a0f57e59a530d18a142f4d4ba6dfc708dc5fdedce45e98ff06b44930a2a48f \ - --hash=sha256:54153d21520a71a4c82a0dbb4523e468941d549d221dc173de0f019678cf3813 \ - --hash=sha256:55120759e61309af7fcf9e961c6f6af3dde5921cdb3ee863ef63fd9db126cae6 \ - --hash=sha256:5774c1fdcc98b2259800b683b19599c133baeb11d60033e2095fd9d4667b82db \ - --hash=sha256:58a4a208a6fbfdb7a7327b8f201c6014f189f721fd55d047cafc4157af1bc62a \ - --hash=sha256:58fb9b17b4472c7b1dcf1a54583629e62e23779b2331052f09a9249edf81675b \ - --hash=sha256:5d8b5231de76c528a46b57010bbd83fb51e056aa0220a372fd5065e978406f1c \ - --hash=sha256:5f8952d6d2505c003e8f0224ff7858d341fa4e33fef82b91c4ff0ef070f2393c \ - --hash=sha256:61c9d357a59465736022d5d9ba06687afb7611dfb581a9d2129b77a6fcf78e59 \ - --hash=sha256:6a3d159d5ffa0e3961f353c4b036540996bf8b9697ccc38261c0eac1fd3347a6 \ - --hash=sha256:6a4a639049c44d36a6d1ae0f4a94b271605c745aee5647fa8ffaabcdc01b69a6 \ - --hash=sha256:6ccdea2c213cf9f3d9490cbd5d427693c870753df41e6cb375bd79bcbafc8817 \ - --hash=sha256:6dbe9a97bdb4d8d9d5367b52a7c32549bba70b2739c58ef74a6964a6d05ae054 \ - --hash=sha256:6eda5b8b6be91d3f26efb7dc6e5e68ee805bc5617f65a328587b35255f138bf4 \ - --hash=sha256:705b895b781b3e395c067129d8551655642dfe9437273211d5404e87ac752b53 \ - --hash=sha256:708c95f925a43ab9f34625e45dcdadf09ec8a6e7b664a938f2f8d5650f6c090b \ - --hash=sha256:735e2262363dcbe05c35e3a8869898022af78f89dde9e256924dc02e99fe69ca \ - --hash=sha256:76070a76e9c5ae661e2d9848f216980d8d533e0f8143e6ed462807b242e3c5e8 \ - --hash=sha256:7679bc2f01bb0d219758f1a5f87bb7c8a81c0a186824a393b366876b4948e14f \ - --hash=sha256:88006eda83858a9fdf73985ce3804e885c2befb2f506c9a3723cdeb5a2880e3e \ - --hash=sha256:883206d55b1bd5f5679ad5e6ddd3d1a5e3cac5190482927fdb8c78fb699193b5 \ - --hash=sha256:8ac7381c83dd3d4a6347e6635950aa448f54e7b8406a27c7ecb4a37e9f1ae08b \ - --hash=sha256:8e8c6218b614badf8e229b697865df4301afa74b791b6c9ade01d19a9953a942 \ - --hash=sha256:9185589c1f2a944c17e26c9925dcdbc2df061cc4a145395c57f0c51f9b5dbfcd \ - --hash=sha256:93de06bc920854552493c81f1f729fab7213b7db4b8195355db5fda02c7d1363 \ - --hash=sha256:96163d9cdc5a202703e9ad1b9ae757d5f0ca62f4fa0cc93d1f27b0e180cc404e \ - --hash=sha256:97c8f5d3b62380b70c36ffacb2a356b7c6becec86099b177f73851ba095ef623 \ - --hash=sha256:97d823831105c01f6c8029faf297633dbeb30271892bd430e9c24ceae3734744 \ - --hash=sha256:98bdc6cb889d19bed01de46e67574a2eab61f5cc6b768ed50e8ac68e9d6ffab6 \ - --hash=sha256:9b48e274f8824567d74e2158199e269597edf00823a1b12b63d48462bbf5123e \ - --hash=sha256:a5c370674ebabe16c6ccac33ff80c62bf8a6e59439f5e9d40c1f5ab8fd2215b7 \ - --hash=sha256:b43dc2a391981d36c42fa57747a49dae793ef1d2e43898b197925b5534abd10a \ - --hash=sha256:c154a35dd1330707450bb4d4e7dd1f17fa6f42267a40c1e8a1daa5e13719b4b8 \ - --hash=sha256:c2bdf7b2facc80b5e34f48a2d557727d5c5c57a8a450de122ae81fa26a81c1bc \ - --hash=sha256:c492a0e011c0f9066e9ceaa896fbc5b068c54d365fea5f3444b697ee01bc8625 \ - --hash=sha256:c60c0423f15abb6cf78f56dff00168a1b582f7a1c23f114036e2bfc697814d5f \ - --hash=sha256:c98121237fea2f679480765abd566f7713185897f35c9e6c2add7e3a9900eb61 \ - --hash=sha256:ccd7ba1b0605813a0715171d39ec4c314cb97a9c85893c2c5c0c3a3729df38bf \ - --hash=sha256:cdbc8c9c02463fef4d3c53a9ba3336d05496ec8e1f1c53326a1e4acc11f5c600 \ - --hash=sha256:e0950ed1bcb9893f4293fd5c5a7ee10934fbf82c4101c70be360db23ce24b7d2 \ - --hash=sha256:e6693ff90018600c72fd18d3d22fa438be26076cd3c823da5f63f7bab28c11cb \ - --hash=sha256:ea56a955056a6d6c550cf18b3348656a9d9a4f02e2d0c02cabf3c73f1055d506 \ - --hash=sha256:ebaed4cef74a045b83e23537b52ef19a367c7e3f536751e355a2a394f8648559 \ - --hash=sha256:ec795530a73c269a55130498842aaa762e4a939f6ce481a7e986eeaa790e9da4 \ - --hash=sha256:ed193ce51d77a3830cad399a529cd4ef029968761f43ddc549e1bc62b40d88f8 \ - --hash=sha256:ee8db7bfb6fe03581bbab54d7c4124a6dd6a7f4273a38f7267197890f094675f \ - --hash=sha256:f30491bc4f862aa15744b9738517454f1e46e56c972a2be87d70d727d5b2a8f8 \ - --hash=sha256:f89b6d0b3a8d81e1929d3ab3d92bbc225688bd80a770c49432543928fe09ac55 \ - --hash=sha256:fa72e71977bff96567b0f500fc5bfd2fdf915f34052c782a4c6ebbdaa97aa858 \ - --hash=sha256:fe0b8c83e0f36247fc9431ce5425a5d95f9b3a689133d494831bdbd6f0bceb13 \ - --hash=sha256:ff51f9d657d1afb6f410cb435792ce4e1fe427aab23d2fcd727a2876e21d4cb6 +orjson==3.11.9 \ + --hash=sha256:011382e2a60fda9d46f1cdee31068cfc52ffe952b587d683ec0463002802a0f4 \ + --hash=sha256:03db380e3780fa0015ed776a90f20e8e20bb11dde13b216ce19e5718e3dfba62 \ + --hash=sha256:051b102c93b4f634e89f3866b07b9a9a98915ada541f4ec30f177067b2694979 \ + --hash=sha256:08f4d8ebb44925c794e535b2bebc507cebf32209df81de22ae285fb0d8d66de0 \ + --hash=sha256:0b34789fa0da61cf7bef0546b09c738fb195331e017e477096d129e9105ab03d \ + --hash=sha256:0e4eed3b200023042814d2fc8a5d2e880f13b52e1ed2485e83da4f3962f7dc1a \ + --hash=sha256:115ab5f5f4a0f203cc2a5f0fb09aee503a3f771aa08392949ab5ca230c4fbdbd \ + --hash=sha256:135869ef917b8704ea0a94e01620e0c05021c15c52036e4663baffe75e72f8ce \ + --hash=sha256:147302878da387104b66bb4a8b0227d1d487e976ce41a8501916161072ed87b1 \ + --hash=sha256:14ed654580c1ed2bc217352ec82f91b047aef82951aa71c7f64e0dcb03c0e180 \ + --hash=sha256:16969c9d369c98eb084889c6e4d2d39b77c7eb38ceccf8da2a9fff62ae908980 \ + --hash=sha256:19b72ed11572a2ee51a67a903afbe5af504f84ed6f529c0fe44b0ab3fb5cc697 \ + --hash=sha256:231742b4a11dad8d5380a435962c57e91b7c37b79be858f4ef1c0df1a259897e \ + --hash=sha256:25e4aed0312d292c09f61af25bba34e0b2c88546041472b09088c39a4d828af1 \ + --hash=sha256:26a473dbb4162108b27901492546f83c76fdcea3d0eadff00ae7a07e18dcce09 \ + --hash=sha256:277fefe9d76ee17eb14debf399e3533d4d63b5f677a4d3719eb763536af1f4bd \ + --hash=sha256:2d057a602cdd19a0ad680417527c45b6961a095081c0f46fe0e03e304aac6470 \ + --hash=sha256:32ef5f4283a3be81913947d19608eacb7c6608026851123790cd9cc8982af34b \ + --hash=sha256:33d7d766701847dc6729846362dc27895d2f2d2251264f9d10e7cb9878194877 \ + --hash=sha256:34fd2317602587321faab75ab76c623a0117e80841a6413654f04e47f339a8fb \ + --hash=sha256:3513550321f8c8c811a7c3297b8a630e82dc08e4c10216d07703c997776236cd \ + --hash=sha256:380cdce7ba24989af81d0a7013d0aaec5d0e2a21734c0e2681b1bc4f141957fe \ + --hash=sha256:3a81d52442a7c99b3662333235b3adf96a1715864658b35bb797212be7bddb97 \ + --hash=sha256:3ebca4179031ee716ed076ffadc29428e900512f6fccee8614c9983157fcf19c \ + --hash=sha256:48ee05097750de0ff69ed5b7bbcf0732182fd57a24043dcc2a1da780a5ead3a5 \ + --hash=sha256:4bab1b2d6141fe7b32ae71dac905666ece4f94936efbfb13d55bb7739a3a6021 \ + --hash=sha256:4d4e98d6f3b8afed8bc8cd9718ec0cdf46661826beefb53fe8eafb37f2bf0362 \ + --hash=sha256:4d7fde5501b944f83b3e665e1b31343ff6e154b15560a16b7130ea1e594a4206 \ + --hash=sha256:4da3c38a2083ca4aaf9c2a36776cce3e9328e6647b10d118948f3cfb4913ffe4 \ + --hash=sha256:4e39364e726a8fff737309aff059ff67d8a8c8d5b677be7bb49a8b3e84b7e218 \ + --hash=sha256:4fd66214623f1b17501df9f0543bef0b833979ab5b6ded1e1d123222866aa8c9 \ + --hash=sha256:4fef17e1f8722c11587a6ef18e35902450221da0028e65dbaaa543619e68e48f \ + --hash=sha256:53b50b0e14084b8f7e29c5ce84c5af0f1160169b30d8a6914231d97d2fe297d4 \ + --hash=sha256:57ea77fb70a448ce87d18fca050193202a3da5e54598f6501ca5476fb66cfe02 \ + --hash=sha256:59e403b1cc5a676da8eaf31f6254801b7341b3e29efa85f92b48d272637e77be \ + --hash=sha256:5b192c6cf397e4455b11523c5cf2b18ed084c1bbd61b6c0926344d2129481972 \ + --hash=sha256:5f63aaf97afd9f6dec5b1a68e1b8da12bfccb4cb9a9a65c3e0b6c847849e7586 \ + --hash=sha256:63e0efbc991250c0b3143488fa57d95affcabbfc63c99c48d625dd37779aafe2 \ + --hash=sha256:6cc7923789694fd58f001cbcac7e47abc13af4d560ebbfcf3b41a8b1a0748124 \ + --hash=sha256:71e63adb0e1f1ed5d9e168f50a91ceb93ae6420731d222dc7da5c69409aa47aa \ + --hash=sha256:71f3db16e69b667b132e0f305a833d5497da302d801508cbb051ed9a9819da47 \ + --hash=sha256:844417969855fc7a41be124aafe83dc424592a7f77cd4501900c67307122b92c \ + --hash=sha256:8697ab6a080a5c46edaad50e2bc5bd8c7ca5c66442d24104fa44ec74910a8244 \ + --hash=sha256:87e4d4ab280b0c87424d47695bec2182caf8cfc17879ea78dab76680194abc13 \ + --hash=sha256:8aff7da9952a5ad1cef8e68017724d96c7b9a66e99e91d6252e1b133d67a7b10 \ + --hash=sha256:8ecc30f10465fa1e0ce13fd01d9e22c316e5053a719a8d915d4545a09a5ff677 \ + --hash=sha256:97d0d932803c1b164fde11cb542a9efcb1e0f63b184537cca65887147906ff48 \ + --hash=sha256:97db4c94a7db398a5bd636273324f0b3fd58b350bbbac8bb380ceb825a9b40f4 \ + --hash=sha256:9af678d6488357948f1f84c6cd1c1d397c014e1ae2f98ae082a44eb48f602624 \ + --hash=sha256:9ef6fe90aadef185c7b128859f40beb24720b4ecea95379fc9000931179c3a49 \ + --hash=sha256:9f78cf8fec5bd627f4082b8dfeac7871b43d7f3274904492a43dab39f18a19a0 \ + --hash=sha256:a028425d1b440c5d92a6be1e1a020739dfe67ea87d96c6dbe828c1b30041728b \ + --hash=sha256:a6082706765a95a6680d812e1daf1c0cfe8adec7831b3ff3b625693f3b461b1c \ + --hash=sha256:a8f5f8bc7ce7d59f08d9f99fa510c06496164a24cb5f3d34537dbd9ca30132e2 \ + --hash=sha256:aaea64f3f467d22e70eeed68bdccb3bc4f83f650446c4a03c59f2cba28a108db \ + --hash=sha256:ace6c58523302d3b97b6ac5c38a5298a54b473762b6be82726b4265c41029f92 \ + --hash=sha256:b3afcf569c15577a9fe64627292daa3e6b3a70f4fb77a5df246a87ec21681b94 \ + --hash=sha256:b6ef1979adc4bc243523f1a2ba91418030a8e29b0a99cbe7e0e2d6807d4dce6e \ + --hash=sha256:be4fa4f0af7fa18951f7ab3fc2148e223af211bf03f59e1c6034ec3f97f21d61 \ + --hash=sha256:c2d3dc759490128c5c1711a53eeaa8ee1d437fd0038ffd2b6008abf46db3f882 \ + --hash=sha256:c5d001196b89fa9cf0a4ab79766cd835b991a166e4b621ba95089edc50c429ff \ + --hash=sha256:cce9127885941bd28f080cecf1f1d288336b7e0d812c345b08be88b572796254 \ + --hash=sha256:cde1a448023ba7d5bb4c01c5afb48894380b5e4956e0627266526587ef4e535f \ + --hash=sha256:d4087e5c0209a0a8efe4de3303c234b9c44d1174161dcd851e8eea07c7560b32 \ + --hash=sha256:d8ea516b3726d190e1b4297e6f4e7a8650347ae053868a18163b4dd3641d1fff \ + --hash=sha256:e30ab17845bb9fa54ccf67fa4f9f5282652d54faa6d17452f47d0f369d038673 \ + --hash=sha256:e5c9b8f28e726e97d97696c826bc7bea5d71cecd63576dba92924a32c1961291 \ + --hash=sha256:ea407d4ccf5891d667d045fecae97a7a1e5e87b3b97f97ae1803c2e741130be0 \ + --hash=sha256:ea5c46eb2d3af39e806b986f4b09d5c2706a1f5afde3cbf7544ce6616127173c \ + --hash=sha256:eebdbdeef0094e4f5aefa20dcd4eb2368ab5e7a3b4edea27f1e7b2892e009cf9 \ + --hash=sha256:f01c4818b3fc9b0da8e096722a84318071eaa118df35f6ed2344da0e73a5444f \ + --hash=sha256:f36b7f32c7c0db4a719f1fc5824db4a9c6f8bd1a354debb91faf26ebf3a4c71e \ + --hash=sha256:f5d89a2ed90731df3be64bab0aa44f78bff39fdc9d71c291f4a8023aa46425b7 \ + --hash=sha256:ffe02797b5e9f3a9d8292ddcd289b474ad13e81ad83cd1891a240811f1d2cb81 # via trino overrides==7.7.0 \ --hash=sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a \ @@ -3194,9 +3181,9 @@ parsimonious==0.11.0 \ --hash=sha256:32e3818abf9f05b3b9f3b6d87d128645e30177e91f614d2277d88a0aea98fae2 \ --hash=sha256:e080377d98957beec053580d38ae54fcdf7c470fb78670ba4bf8b5f9d5cad2a9 # via singlestoredb -parso==0.8.6 \ - --hash=sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd \ - --hash=sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff +parso==0.8.7 \ + --hash=sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c \ + --hash=sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1 # via jedi parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -3332,9 +3319,9 @@ pillow==11.3.0 \ # python-pptx # scikit-image # torchvision -pip==26.1 \ - --hash=sha256:4e8486d821d814b77319acb7b9e8bf5a4ee7590a643e7cb21029f209be8573c1 \ - --hash=sha256:81e13ebcca3ffa8cc85e4deff5c27e1ee26dea0aa7fc2f294a073ac208806ff3 +pip==26.1.1 \ + --hash=sha256:99cb1c2899893b075ff56e4ed0af55669a955b49ad7fb8d8603ecdaf4ed653fb \ + --hash=sha256:d36762751d156a4ee895de8af39aa0abeeeb577f93a2eca6ab62467bbf0f8a78 # via pip-tools pip-tools==7.5.3 \ --hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \ @@ -3366,9 +3353,9 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (pyproject.toml) -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via # feast (pyproject.toml) # jupyter-server @@ -3376,135 +3363,134 @@ prompt-toolkit==3.0.52 \ --hash=sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855 \ --hash=sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955 # via ipython -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage @@ -3648,9 +3634,9 @@ psycopg-binary==3.2.5 \ --hash=sha256:ee6d8f489a9b116ea8dc797664a50671585a4ca20573359f067858e1231cc217 \ --hash=sha256:efb878d08dd49d7d9d18512e791b418a1171d08f935475eec98305f0886b7c14 # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg ptyprocess==0.7.0 \ --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \ @@ -3836,9 +3822,9 @@ pycryptodome==3.23.0 \ --hash=sha256:e3f2d0aaf8080bda0587d58fc9fe4766e012441e2eed4269a77de6aea981c8be \ --hash=sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7 # via minio -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # dbt-artifacts-parser @@ -3852,131 +3838,131 @@ pydantic==2.13.3 \ # mcp # pydantic-settings # qdrant-client -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # docling # docling-core @@ -4217,9 +4203,9 @@ pyodbc==5.3.0 \ # via # feast (pyproject.toml) # ibis-framework -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python pyparsing==3.3.2 \ --hash=sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d \ @@ -4300,112 +4286,146 @@ pytest-xdist==3.8.0 \ --hash=sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88 \ --hash=sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1 # via feast (pyproject.toml) -python-bidi==0.6.7 \ - --hash=sha256:01ff2fd676ef8351f32e820b2d3b61eac875a21702d2118263a2641b458e1996 \ - --hash=sha256:05fe5971110013610f0db40505d0b204edc756e92eafac1372a464f8b9162b11 \ - --hash=sha256:06650a164e63e94dc8a291cc9d415b4027cb1cce125bc9b02dac0f34d535ed47 \ - --hash=sha256:0cb75e8a410166fd677d55095e505bf6a4773c066f51efbda72d302ebc56e79b \ - --hash=sha256:0dbb4bbae212cca5bcf6e522fe8f572aff7d62544557734c2f810ded844d9eea \ - --hash=sha256:0f86e447e94ae78db7d56e7da2124c435eaee4425c87d3d92aea271317811112 \ - --hash=sha256:11c51579e01f768446a7e13a0059fea1530936a707abcbeaad9467a55cb16073 \ - --hash=sha256:1395e236c71f11267860b53293a33b19b991b06e0f4ac61045b892e6a99d96f2 \ - --hash=sha256:17572944e6d8fb616d111fc702c759da2bf7cedab85a3e4fa2af0c9eb95ed438 \ - --hash=sha256:19737d217088ef27014f98eac1827c5913e6fb1dea96332ed84ede61791070d9 \ - --hash=sha256:1ba28642928d1c8fdb18b0632fe931f156e888c646326a3ad8eb3e55ee904951 \ - --hash=sha256:1c061207212cd1db27bf6140b96dcd0536246f1e13e99bb5d03f4632f8e2ad7f \ - --hash=sha256:1c5fb99f774748de283fadf915106f130b74be1bade934b7f73a7a8488b95da1 \ - --hash=sha256:1dd0a5ec0d8710905cebb4c9e5018aa8464395a33cb32a3a6c2a951bf1984fe5 \ - --hash=sha256:24388c77cb00b8aa0f9c84beb7e3e523a3dac4f786ece64a1d8175a07b24da72 \ - --hash=sha256:24a4a268289bbe80ad7da3064d7325f1571173859e8ad75d2f99075d5278b02b \ - --hash=sha256:24afff65c581a5d6f658a9ec027d6719d19a1d8a4401000fdb22d2eeb677b8e3 \ - --hash=sha256:257d6dd0e07221f1dc8720fa61158471f5aae30d5f89837c38a026386151c250 \ - --hash=sha256:26a8fe0d532b966708fc5f8aea0602107fde4745a8a5ae961edd3cf02e807d07 \ - --hash=sha256:2a93b0394cc684d64356b0475858c116f1e335ffbaba388db93bf47307deadfa \ - --hash=sha256:2d28e2bdcadf5b6161bb4ee9313ce41eac746ba57e744168bf723a415a11af05 \ - --hash=sha256:349b89c3110bd25aa56d79418239ca4785d4bcc7a596e63bb996a9696fc6a907 \ - --hash=sha256:3a85275dfc24a96629da058c4c2fc93af6390aefe2f7cdde1500b6ac3fd40ca0 \ - --hash=sha256:3b63d19f3f56ff7f99bce5ca9ef8c811dbf0f509d8e84c1bc06105ed26a49528 \ - --hash=sha256:3b96744e4709f4445788a3645cea7ef8d7520ccd4fa8bbbfb3b650702e12c1e6 \ - --hash=sha256:414004fe9cba33d288ff4a04e1c9afe6a737f440595d01b5bbed00d750296bbd \ - --hash=sha256:4283f8b517411cc81b3c92d11998981fe54ac0d2300f4c58d803e0c071aba1ba \ - --hash=sha256:4636d572b357ab9f313c5340915c1cf51e3e54dd069351e02b6b76577fd1a854 \ - --hash=sha256:47deaada8949af3a790f2cd73b613f9bfa153b4c9450f91c44a60c3109a81f73 \ - --hash=sha256:49639743f1230648fd4fb47547f8a48ada9c5ca1426b17ac08e3be607c65394c \ - --hash=sha256:4c73cd980d45bb967799c7f0fc98ea93ae3d65b21ef2ba6abef6a057720bf483 \ - --hash=sha256:4d84e70923392f8c9611f0fb6b341577346ef6224f3809b05f0ae1fbf8f17578 \ - --hash=sha256:4ea928c31c7364098f853f122868f6f2155d6840661f7ea8b2ccfdf6084eb9f4 \ - --hash=sha256:5013ba963e9da606c4c03958cc737ebd5f8b9b8404bd71ab0d580048c746f875 \ - --hash=sha256:5debaab33562fdfc79ffdbd8d9c51cf07b8529de0e889d8cd145d78137aab21e \ - --hash=sha256:5ebc19f24e65a1f5c472e26d88e78b9d316e293bc6f205f32de4c4e99276336e \ - --hash=sha256:630cee960ba9e3016f95a8e6f725a621ddeff6fd287839f5693ccfab3f3a9b5c \ - --hash=sha256:6323e943c7672b271ad9575a2232508f17e87e81a78d7d10d6e93040e210eddf \ - --hash=sha256:6c051f2d28ca542092d01da8b5fe110fb6191ff58d298a54a93dc183bece63bf \ - --hash=sha256:6c19ab378fefb1f09623f583fcfa12ed42369a998ddfbd39c40908397243c56b \ - --hash=sha256:6df7be07af867ec1d121c92ea827efad4d77b25457c06eeab477b601e82b2340 \ - --hash=sha256:6f9fa1257e075eeeed67d21f95e411036b7ca2b5c78f757d4ac66485c191720a \ - --hash=sha256:7336a3c4ba4fc9e6741fbe60c6483266fe39e1f24830724dfce453471d11fa40 \ - --hash=sha256:73a88dc333efc42281bd800d5182c8625c6e11d109fc183fe3d7a11d48ab1150 \ - --hash=sha256:766d5f5a686eb99b53168a7bdfb338035931a609bdbbcb537cef9e050a86f359 \ - --hash=sha256:77bb4cbadf4121db395189065c58c9dd5d1950257cc1983004e6df4a3e2f97ad \ - --hash=sha256:77fea54c2379b93def4ed16db6390e1232e7b235679587295a23dd8b1925475f \ - --hash=sha256:8047c33b85f7790474a1f488bef95689f049976a4e1c6f213a8d075d180a93e4 \ - --hash=sha256:80e6fd06f6e4074d183cea73962c89cf76cb4f70c0ee403689f57a429ebde488 \ - --hash=sha256:849a57d39feaf897955d0b19bbf4796bea53d1bcdf83b82e0a7b059167eb2049 \ - --hash=sha256:8678c2272e7bd60a75f781409e900c9ddb9f01f55c625d83ae0d49dfc6a2674f \ - --hash=sha256:8814db38fa317bebec8eb74b826bae7d0cb978a7eca30dfe4ecf60e61f06ee0b \ - --hash=sha256:8860d67dc04dc530b8b4f588f38b7341a76f2ec44a45685a2d54e9dcffa5d15a \ - --hash=sha256:898db0ea3e4aaa95b7fecba02a7560dfbf368f9d85053f2875f6d610c4d4ec2c \ - --hash=sha256:8a17631e3e691eec4ae6a370f7b035cf0a5767f4457bd615d11728c23df72e43 \ - --hash=sha256:8a18c61817f3210ba74ad5792c8a5048d9550ba233233a0a8fe35800350988f4 \ - --hash=sha256:8d4e621caadfdbc73d36eabdb2f392da850d28c58b020738411d09dda6208509 \ - --hash=sha256:94dbfd6a6ec0ae64b5262290bf014d6063f9ac8688bda9ec668dc175378d2c80 \ - --hash=sha256:95867a07c5dee0ea2340fe1d0e4f6d9f5c5687d473193b6ee6f86fa44aac45d1 \ - --hash=sha256:95c9de7ebc55ffb777548f2ecaf4b96b0fa0c92f42bf4d897b9f4cd164ec7394 \ - --hash=sha256:9adeec7cab0f2c2c291bd7faf9fa3fa233365fd0bf1c1c27a6ddd6cc563d4b32 \ - --hash=sha256:9c463ae15e94b1c6a8a50bd671d6166b0b0d779fd1e56cbf46d8a4a84c9aa2d0 \ - --hash=sha256:9d9de35eb5987da27dd81e371c52142dd8e924bd61c1006003071ea05a735587 \ - --hash=sha256:a2eb8fca918c7381531035c3aae31c29a1c1300ab8a63cad1ec3a71331096c78 \ - --hash=sha256:a4319f478ab1b90bbbe9921606ecb7baa0ebf0b332e821d41c3abdf1a30f0c35 \ - --hash=sha256:a507fe6928a27a308e04ebf2065719b7850d1bf9ff1924f4e601ef77758812bd \ - --hash=sha256:a8892a7da0f617135fe9c92dc7070d13a0f96ab3081f9db7ff5b172a3905bd78 \ - --hash=sha256:a99d898ad1a399d9c8cab5561b3667fd24f4385820ac90c3340aa637aa5adfc9 \ - --hash=sha256:aa4136f8ccb9a8cd32befd1b3882c2597e6791e64e8b3cf3129c55549b5de62f \ - --hash=sha256:ab2a5177522b62426db897b655a02f574e27d9735bbeb6da41bc981b771df636 \ - --hash=sha256:ab806fd026bfd48bade5e21e06d0d799cbfad32f236989ff6f37db03a5fbe34f \ - --hash=sha256:ad5f0847da00687f52d2b81828e8d887bdea9eb8686a9841024ea7a0e153028e \ - --hash=sha256:b0bee27fb596a0f518369c275a965d0448c39a0730e53a030b311bb10562d4d5 \ - --hash=sha256:b31d66b62736b8514982a24a7dedcf8c062b27a8e9b51e52d7a5899045a45fe1 \ - --hash=sha256:b38ddfab41d10e780edb431edc30aec89bee4ce43d718e3896e99f33dae5c1d3 \ - --hash=sha256:be1bdbd52145dfe46880d8bb56eacc25aa75c3bb075fa103de7974295eb2811f \ - --hash=sha256:c10065081c0e137975de5d9ba2ff2306286dbf5e0c586d4d5aec87c856239b41 \ - --hash=sha256:c11c62a3cdb9d1426b1536de9e3446cb09c7d025bd4df125275cae221f214899 \ - --hash=sha256:c3777ae3e088e94df854fbcbd8d59f9239b74aac036cb6bbd19f8035c8e42478 \ - --hash=sha256:c3d93171dd65b36eca5367acf19eef82c79b4df557cb4bd0daf323b7a27f2d3b \ - --hash=sha256:c9a679b24f5c6f366a0dec75745e1abeae2f597f033d0d54c74cbe62e7e6ae28 \ - --hash=sha256:caa71c723f512f8d859fa239573086e16f38ffc426b5b2f7dab5d40fdb356c80 \ - --hash=sha256:ce86d9dfc6b409ad16556384244572bb3cbefa2ca0f0eab7fba0ff2112b2f068 \ - --hash=sha256:d4cd82e65b5aeb31bd73534e61ece1cab625f4bcbdc13bc4ddc5f8cbfb37c24a \ - --hash=sha256:d524a4ba765bae9b950706472a77a887a525ed21144fe4b41f6190f6e57caa2c \ - --hash=sha256:d7310312a68fdb1a8249cf114acb5435aa6b6a958b15810f053c1df5f98476e4 \ - --hash=sha256:d8274ff02d447cca026ba00f56070ba15f95e184b2d028ee0e4b6c9813d2aaf9 \ - --hash=sha256:d879be7fb5296409e18731c7ba666d56ecd45b816b2c9eb35138aa1d7777aeb5 \ - --hash=sha256:d87ed09e5c9b6d2648e8856a4e556147b9d3cd4d63905fa664dd6706bc414256 \ - --hash=sha256:dde1c3f3edb1f0095dcbf79cf8a0bb768f9539e809d0ad010d78200eea97d42a \ - --hash=sha256:df5e9db9539d70426f5d20c7ebb6f7b33da5fbd40620e11261fe3fba7e177145 \ - --hash=sha256:e7cad66317f12f0fd755fe41ee7c6b06531d2189a9048a8f37addb5109f7e3e3 \ - --hash=sha256:ec1694134961b71ac05241ac989b49ccf08e232b5834d5fc46f8a7c3bb1c13a9 \ - --hash=sha256:ec985386bc3cd54155f2ef0434fccbfd743617ed6fc1a84dae2ab1de6062e0c6 \ - --hash=sha256:ef9d103706560c15fecaf7d3cff939e0f68ce5763cf0e64d0e4e5d37f9bdd2d1 \ - --hash=sha256:f1350033431d75be749273236dcfc808e54404cd6ece6204cdb1bc4ccc163455 \ - --hash=sha256:f1fe71c203f66bc169a393964d5702f9251cfd4d70279cb6453fdd42bd2e675f \ - --hash=sha256:f24189dc3aea3a0a94391a047076e1014306b39ba17d7a38ebab510553cd1a97 \ - --hash=sha256:f57726b5a90d818625e6996f5116971b7a4ceb888832337d0e2cf43d1c362a90 \ - --hash=sha256:f7c055a50d068b3a924bd33a327646346839f55bcb762a26ec3fde8ea5d40564 \ - --hash=sha256:f7e5072269c34a1b719910ee4decf13b288159fb320f18aba3885f6b6aab7753 \ - --hash=sha256:f7e507e1e798ebca77ddc9774fd405107833315ad802cfdaa1ab07b6d9154fc8 \ - --hash=sha256:fbbffb948a32f9783d1a28bc0c53616f0a76736ed1e7c1d62e3e99a8dfaab869 \ - --hash=sha256:fd87d112eda1f0528074e1f7c0312881816cb75854133021124269a27c6c48dc \ - --hash=sha256:ff06e4aa781aa4f68fbfaf1e727fe221fa1c552fef8ae70b6d2a0178e1f229ad +python-bidi==0.6.10 \ + --hash=sha256:00e8f3504e63a7713bdc1367b3de46270ddc76551f1cf04510039d65a123fd53 \ + --hash=sha256:038d29ba39a638a5aa904e3f86547f6f883ca16b3ea1db98fbc861e9644762fe \ + --hash=sha256:0533a900b9b9fa94e1c906e8cdb15b579389ce3fa959af228a12e8527aaba8cc \ + --hash=sha256:0675bdaceac9e2bd8ea99729d064435d1d1502e1875b87ed72ad93a8da153ff0 \ + --hash=sha256:07de0d6b998184233e8f753cbff5e828e0204b38daa3deaa458af6cb53c0960d \ + --hash=sha256:099b82f05557c1588973cceab0ebd2535800990850b4cbf8eae57682ef746a16 \ + --hash=sha256:099c3c29d813e263e999205ec9d59658c519c3bc51256e8ab3761ff3dc46a1b3 \ + --hash=sha256:09c90aca4713ed86422acfbaf90d8c5c9f64cbae02e737e7f82f13cd2ff4f34c \ + --hash=sha256:09d70ad127cbcb9cc5e90c4f2f427d998450374870f305345a8c23338a0bca55 \ + --hash=sha256:0c63bf9de0646eb7cf8d520e258701e5086c010e18cbc32e8ab884e29d5ff12f \ + --hash=sha256:0e404d7e027bd47553e48d9e3f207f3ee255698cac1fa80380d4703d4397ffe5 \ + --hash=sha256:0ef816ef2a04ce92108cdcc61c7710860e0f2b11906d493e14c6e5b403b09a01 \ + --hash=sha256:0f1c310774819302fba49b0608126033ba4b2bd0fb01d23b2c232df6d31003a4 \ + --hash=sha256:0f6a5c7b00ce285a3389e261db3f0477c2c3e893b352e65889410d995ff5ee13 \ + --hash=sha256:15298befde960a80885729c3603a95058f611b7d71de645cfbdd875f98146e14 \ + --hash=sha256:153a2f75648ceb583a09e66b4da99ec54b82e3226e5c0992f79e05d2d00d5a6e \ + --hash=sha256:1552aad47e65e8458346307e8b3fe7ae8eb0fcf3ea4ce3aba5cf44c50117e30b \ + --hash=sha256:15f0deadc4e8bf4d5458d62c4c94f7716c1d29f106751f2d9f5a478698465df0 \ + --hash=sha256:19c06c20f47f4a3daad14b5e7c2b4e23e76f4277883ef43616ecd9a8eff73203 \ + --hash=sha256:1a156226a8723942b50ffa210d1840688da158c185e3d0840743345003249875 \ + --hash=sha256:1d7714b96ab30df31337f5d100bf71ebe637976e2464761c81ab05787c4bacff \ + --hash=sha256:22f51e0e5c64e18f5f9b6ac2d01fcbbecdfa6a2d571ae71323d3051d0635b9c6 \ + --hash=sha256:2371afc3f50da896212b2d1ea7f461134ef292e1737c87d7547dd0384c092388 \ + --hash=sha256:2598937e05401111ade68cd6e2212fa556fe8cc401b541d19dcd039496a0cfdd \ + --hash=sha256:27fc502f2e368ffcedb97b674956f8306573f43cd0204e2ed9fbe7f41d116a7b \ + --hash=sha256:29a476af5efbe7fedfb53c8d05d1447e4f4149da8d88fa0643716a374b6abf27 \ + --hash=sha256:2a2013623ea8713e4bc712922d37449a4a86a504275b42447e1d2f22eb565f9d \ + --hash=sha256:322bea01cd3f9c1cc153ea4ca3b8f82d27efe5ae8c4bd81cc981420e25490bd4 \ + --hash=sha256:327e570f10443995d3697e8096bc337970dfc32cd5339759fa4e87093cf5cdf9 \ + --hash=sha256:32c6075f2b44c1b3d01e7d0c8a5bb519bdbbc832bee2d4b01a06908117d3b050 \ + --hash=sha256:32eb932af02b2dec7d3043daed84a80e34a3f46327a7cacf6a813773369fceb8 \ + --hash=sha256:341d75c8b0e107bd5188e30a8a340ec5e1a26066f21de3c761b53fde54e6cd7d \ + --hash=sha256:3a2fcfc6be1917695cd6f7c9626481aa81ade7e3ef3f79c0f7a286edf68e4463 \ + --hash=sha256:3a485820e499c74332929eb9fe9246cec92fd4e6b8c2abde03e8d8f0fea00728 \ + --hash=sha256:3d0c48305c58a5ed0017500dbeedbfc62fc8b9cd552d582ea578a10f77eed1c1 \ + --hash=sha256:3ebbf3915c39ed8d0095e3672ed4f824dfe9544e950a273513956b147528a18b \ + --hash=sha256:3ff3bc2221d8c32427cf90999b60ee9bd5e31e2e0b7f54b63ad54a05912725b8 \ + --hash=sha256:441d931609adfb2d213892e2da0326a5c5048f05e36497d5e37087b97a3287dd \ + --hash=sha256:446f1cd15783b14a280fc6c8e8931afa3f4ec1edc0b341b82cfca1537886cf28 \ + --hash=sha256:44caa945d27b7634bb4fdfe8fbeaa27b33fb12b66418e326e5a491d235b5c61b \ + --hash=sha256:44e21c6dc51b88ede76aafe730a208ef5a23cf7275d30d7870ff46e3a6ad4314 \ + --hash=sha256:44e6566093397def4e72f85e47d246d442838c497e6be3b14be0bca7d9761a50 \ + --hash=sha256:452a7ff78909edef965d1f2dc87e8cf04e6d4234771eef9b876688fdd821ab1d \ + --hash=sha256:473e718a86e5a9290ee240cf0cf49093ec0ca841d709f0fef191b7f5ea4e8b3b \ + --hash=sha256:48af3fc3bee49c3be03bbd47b503dc794474c52db249c57d230a4616cf13cf52 \ + --hash=sha256:4ed6794f07fcb4374e74a1a973350c5997c2088ba6143a8fedb533010f379502 \ + --hash=sha256:5040b6595e6a9d1cbca5fc2298684994cc5f1036ff2015eaf30063f015f31540 \ + --hash=sha256:5899a244bc0b60d71ae80dcf0dfad16c72e742857c13c0d040d1c975bb758983 \ + --hash=sha256:5d11a3eb283fbde362c4b1faa32a4053413a83aa6abc2274827e1f03c89f53f4 \ + --hash=sha256:5e4752fc7228a2d70b69dc81fe4bbe602eca44a520b3d7ff46b50fb2b68d435e \ + --hash=sha256:5f3febf9b547b3b237429fb8c214ff8faa50972c6de0fc0fbaf060fc29e4696d \ + --hash=sha256:5fdea42e1356d428cdc1771e3468327cf776da51c44a8ced855b67b02809ea56 \ + --hash=sha256:6054e1b9920a917749fb4e7547b378e0647c25095c012a2a7c184493b9204ef1 \ + --hash=sha256:644d068e01071c7af565a70269f8c93f6434c031df2b1428625ed8f6040b94b4 \ + --hash=sha256:64d4adc41eb79de0561874bbbe74e8f7974b3bb947070d0edd73d388c98e1234 \ + --hash=sha256:6a75d9ab145003094475bc955120b4577d70f34ee02f0b69696d7f216b513479 \ + --hash=sha256:6c5be3141bf22d2908d6269e613c2bc3824db0f31560a61b95be75d224812c67 \ + --hash=sha256:6e2b535558cad96805b58695353a628471e455f4f30e346d1d0a10468c991d0e \ + --hash=sha256:704c76e64aa0f7c0d4b8dff04ce9e8fb38314bddd1426985856e2533e66d7d21 \ + --hash=sha256:732ad1ebff85d4669152ec8c0bbeebdf945a3460e26ae852a30d39d93765765c \ + --hash=sha256:73bc12f9599cf1dbc39e3792abaa8fc62656cff30340308c3341583631ea5fcc \ + --hash=sha256:78248580e38051ba799076bffa5d0498d2550a4fa6d2ec733c38e4ec5a2d8039 \ + --hash=sha256:7965b1c468b986a1bbb9fd3ba8641b51f4f93352cefc83eec851fdf15850019f \ + --hash=sha256:79ba6f914436c674cb0a25d4e1356e54b3b788ccd1498e1b130edd6ba1ad2f8e \ + --hash=sha256:7a3f20dca786d493c1383273992ca87ff78942456898b136e2973a682dad73ae \ + --hash=sha256:7a5452fda554628660eb4c1c4da6187986c5497f34fbeb07f920c867b6daa943 \ + --hash=sha256:7ae97eed360514e229b0c407095a4184d8a0e6383bc87962972ae27f6ecb96e6 \ + --hash=sha256:8012aed843d01a96fbd5c2fe4d8062696f8720d38990d68eaf871aa692652e98 \ + --hash=sha256:81b27ffd3e40e2d8f274e1acbf5967873e53d6f32bf677899e0d8421170703da \ + --hash=sha256:82897bacfd8fc2fb1157b1828a011af954c24b1dc25adb2aec33fdbcacd3935f \ + --hash=sha256:84f6975f51d2af2e9b474669f26673486899138ea985f9967db4f6ab9a431b95 \ + --hash=sha256:86dea78bc3953853afb701b7bf3531f062e7aa7d0a4bdb1a59f496200967bbf7 \ + --hash=sha256:8af0d7059829d43e5b9e4072103f09d3869d3da9fc6db66b51e93da0ed0b1161 \ + --hash=sha256:8f95878c574eb603942561ad76d09ed8b05e2ffd46917b32f15bb83878f7f40e \ + --hash=sha256:903b8e4ea0fed7d453e7e437d41ba0357be55572a108f8d6110ab74cbe3b2bb0 \ + --hash=sha256:916688bcee55ce613879751a27b25977f75403c681e6d110cdf301edb48027a1 \ + --hash=sha256:929c705687f506fed02aa1fbd6781fb310203d7a20420dd7f106cd87fe1d01c5 \ + --hash=sha256:9545c3cd8238a79ab7e0ff7b27326bef3439001207984ea47fa3be31551d364e \ + --hash=sha256:97692e9fb3271a637f18d728d5db4ff729c82ae25356e35d371fada2fe0ff006 \ + --hash=sha256:9c2ae7649b77a4354b6db6423c495bd57ac5727d62266dfe98254896eb573b25 \ + --hash=sha256:a06a6e54a95b5c5864e117af2479113bb367660b0d95295b4adf314b3dff77af \ + --hash=sha256:a0df4cb0fe94de7565c3fc875888431ef774d643f00b030bd041fdebbdcd189b \ + --hash=sha256:a2e1da56d841ae506c49df41e16893428b96d3c8c255f096b1aa83c512302c94 \ + --hash=sha256:a50b1ce6c5a2aaa4febbd72cf030ec7d9bd63a063977850e484fb4a7983f7eaf \ + --hash=sha256:a51922e22ab237431c3d5505b2511732748f936349ab65d0c1a4a13e224144fc \ + --hash=sha256:a5aac3c9648872dcf11543751e2a8970ab0e8e3192fdf83ed507838917f50d70 \ + --hash=sha256:a7853e894f723675489ac49aa4b52dc8eac87d7a67b5940631c8c9d2aab46f90 \ + --hash=sha256:a7871f1226a062c641c500f81f05c2c00274c23de26707d747ce16ede43a6fdb \ + --hash=sha256:a84f26e55770a9326cedf79c005c2e7f9c13da9e0cbb65bc36890382a793bda9 \ + --hash=sha256:a9b83026c2907ad207eff37d5d302ecdd20441ba87d89401a79fa4b9af11f24d \ + --hash=sha256:afd28c86da0968996595b3dcc1166b24367954d69242c186c0916721fe36274d \ + --hash=sha256:b048ba7ec56dfd0eb37bee34d395771d1ce444fd7a32c6e8ddd3bfc92090a1d8 \ + --hash=sha256:b0c77d935abdd7e3bee0f9b8a7d0ae8a7c230e5aca3a7b9948576b2e151c9985 \ + --hash=sha256:b223d1f5493530777475fc40e4a47b6854a5ac56ea3211196d7a91809fa565f3 \ + --hash=sha256:b35b3c7e2c91f67dbf49de4513adf80ee052b06f15dcb9e7e5c6cd6f37373114 \ + --hash=sha256:b35ff4e825c4ad912a30909f2922eddd684c84bffc48e713c8bf22a4f3d7794f \ + --hash=sha256:b45368872b3770b20d101a87364ffeec5c0cf02d8aaee1834c30167fe29ddaaa \ + --hash=sha256:b47233bf36749ab63561ece99b8b32684043558415f1e4ca6c540f1793fa12f3 \ + --hash=sha256:b497a46082c3b0e0f9a2571d573e745686ed1a6f7a9c631ebe2b9d6f55ecc87a \ + --hash=sha256:b528e71c3f4b867e207418ea4ed465a111306ac6c2838bf75ff1e465c74ea933 \ + --hash=sha256:b5c66316296044bcdda0fa37296322973c73b708eac737565d5bbc2f6fd51037 \ + --hash=sha256:b6bbca74b7d39d4f259c0eebb6d62fd970999c0beae553db7232319d151fa533 \ + --hash=sha256:b6ff61cd6e3a60ae9bd559aa5ab5a7018e8d26067e7f80ca0ac30e08c76bf983 \ + --hash=sha256:b97376c559d90d80976a2b3c2d1f7699b6e3ae69ffd2bfdefaacf1eb4bc45f8e \ + --hash=sha256:bca06cdbd6d90a939af253ddeed232e7e122a1e027942c2ebd431307e6471be6 \ + --hash=sha256:bd1247b5138e23824b62f96aa03f1d45084dee6c76c46019784546cc432a85ee \ + --hash=sha256:c1726465626bcad9518ff878be9edb6897b42d57c1bfb9e4a00ffd4000980c48 \ + --hash=sha256:c267e531392cbdd900e46796d410dda380c7b311434bf5090ee261bb05650bcc \ + --hash=sha256:c2960742693ee19663bc448328b6b7035f6ae4ad28f57379568d22180911c7d5 \ + --hash=sha256:c55787b0274b1e06530817fe6d375a5443a0e32d5ee55071244fe5af3483fcbc \ + --hash=sha256:c5fb03df1d641d19cec53ee9eb5b89f659d0087d03ae94f06e78e2663824d013 \ + --hash=sha256:c7aa354a62e727b592cfa181a5d435d9a946aba4dd2349bb18fc52c869d470f1 \ + --hash=sha256:c7b849fa2ed07cb59ed5e76d3cf0e3527b7d7bfa2e70d4fcb6df048a9c9177ee \ + --hash=sha256:cac7477518b8cfd53e78527a873be7de5a69183397124f7ebcae295cc39187c1 \ + --hash=sha256:cdc2933960f9b1b160551ff4a0cc543ec3866550ad13f35f1881c22f08b5ad82 \ + --hash=sha256:ce576c6e9a548e09c853e47cb88a95bb29363586c6ec7778ead517e61449b275 \ + --hash=sha256:d698d1354d7e30d3a3fbfb91b7b6c904e13875b4ed2dc40c726ca23d82b5089a \ + --hash=sha256:d6ec69bd053def14e4538b15dcd28bc9528c820b644687c0d38afc38e81fe8e8 \ + --hash=sha256:d717dc455632ab75284969106c4f40cc1533709f852c50d6db643b20e903b23d \ + --hash=sha256:d7d9b2602cccbb92fc6a8b8ab2b1f0f03c77c126e089f22f7747b19499cb3e1d \ + --hash=sha256:de06759a2b223599a98a200b01b9fdafec7e346b513ce6a31632f7089234eca3 \ + --hash=sha256:de7f4782b4381ae5b0dfa36ce1e4b0a925ccecd4f52330fcc50bcd73430b99fd \ + --hash=sha256:df0a3aa46c78e56ebed8c5be33da34c0408d4114c6b782103208fecbd3b6cac0 \ + --hash=sha256:e0fe5c41dac834dfbf1f93f29438393fef13ce250e699d67d2c066da6a0eb8af \ + --hash=sha256:e13dc08bcf7ef257d0635400e3377d3a776ec57ea25e985e903b00bf5ea06911 \ + --hash=sha256:e2e81871fa3353376a35260bf0313e631624eac6997d8fa4d60f38beee3f633f \ + --hash=sha256:e4871a8955ba6c4d80eaffc0f44af6ab724a99f4ec2ad6499243fe542027494f \ + --hash=sha256:e65f8b3029e64af05323cc630550b27649d8b1b612387c2e88411ae32c6a5b59 \ + --hash=sha256:e75704f210e8fbcfbe9546f33d4ef86ff9932830d74726108b45dad72d5c1b55 \ + --hash=sha256:e7f1fa876d3b7c09c1c6be627338502e78d3cc6e9b21ea94f8eeec6ad4157afa \ + --hash=sha256:edec736cfe6b5421e6c0fbf3e4fc70b5db30263d22e070526c7c540f5895f9fb \ + --hash=sha256:f3386c4370515f7acb3372ca49b4bd6652b65c381f50e772b5de96da7df2dbad \ + --hash=sha256:f53dbcc5b1ab75ee593f9ccdd474f9091e21b2051ade79db9930540188f3c9e3 \ + --hash=sha256:f6dad7fe7f004900a45b04ab2ef51dd11a46c7be4b182c2e533810435e197249 \ + --hash=sha256:f6e8fca537eb348409549b75f8721fe911cc001124cc7cbfa1a4722e641584c3 \ + --hash=sha256:f6fb6b3fef1b611841f50688c46d722ad5bd9bb5b9beec9d7c51885519f6026c \ + --hash=sha256:fc012f8738e21462b8b173278ef9278a822373a64f558ac1bfa36eceb56296df \ + --hash=sha256:fedf838627e262a5a3b9312a144582e7c81ff3be986a3b0ecd51b9d904747c0b \ + --hash=sha256:ff693056db843b5e4de6d8e50b4847c116481406492d10517dfe4d7c573c8f82 # via easyocr python-dateutil==2.9.0 \ --hash=sha256:78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709 \ @@ -4445,19 +4465,18 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (pyproject.toml) -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ --hash=sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095 # via docling -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via - # clickhouse-connect # great-expectations # pandas # snowflake-connector-python @@ -4650,9 +4669,9 @@ pyzmq==27.1.0 \ # ipykernel # jupyter-client # jupyter-server -qdrant-client==1.17.1 \ - --hash=sha256:22f990bbd63485ed97ba551a4c498181fcb723f71dcab5d6e4e43fe1050a2bc0 \ - --hash=sha256:6cda4064adfeaf211c751f3fbc00edbbdb499850918c7aff4855a9a759d56cbd +qdrant-client==1.18.0 \ + --hash=sha256:093aa8cf8a420ee3ad2a68b007e1378d7992b2600e0b53c193fc172674f659cd \ + --hash=sha256:52e8ece1a7d40519801bf0b70713bfa0f6b7ae28c7275bbe0b0286fbed7f6db4 # via feast (pyproject.toml) ray==2.55.1 \ --hash=sha256:0053fd5b400f7ac56263aa1bbd3d68fb79341b08b8dc697c88782d5aca7b3ed4 \ @@ -4685,128 +4704,128 @@ referencing==0.37.0 \ # jsonschema # jsonschema-specifications # jupyter-events -regex==2026.4.4 \ - --hash=sha256:011bb48bffc1b46553ac704c975b3348717f4e4aa7a67522b51906f99da1820c \ - --hash=sha256:04bb679bc0bde8a7bfb71e991493d47314e7b98380b083df2447cda4b6edb60f \ - --hash=sha256:0540e5b733618a2f84e9cb3e812c8afa82e151ca8e19cf6c4e95c5a65198236f \ - --hash=sha256:05568c4fbf3cb4fa9e28e3af198c40d3237cf6041608a9022285fe567ec3ad62 \ - --hash=sha256:0709f22a56798457ae317bcce42aacee33c680068a8f14097430d9f9ba364bee \ - --hash=sha256:0734f63afe785138549fbe822a8cfeaccd1bae814c5057cc0ed5b9f2de4fc883 \ - --hash=sha256:07edca1ba687998968f7db5bc355288d0c6505caa7374f013d27356d93976d13 \ - --hash=sha256:07f190d65f5a72dcb9cf7106bfc3d21e7a49dd2879eda2207b683f32165e4d99 \ - --hash=sha256:08c55c13d2eef54f73eeadc33146fb0baaa49e7335eb1aff6ae1324bf0ddbe4a \ - --hash=sha256:0a51cdb3c1e9161154f976cb2bef9894bc063ac82f31b733087ffb8e880137d0 \ - --hash=sha256:1371c2ccbb744d66ee63631cc9ca12aa233d5749972626b68fe1a649dd98e566 \ - --hash=sha256:173a66f3651cdb761018078e2d9487f4cf971232c990035ec0eb1cdc6bf929a9 \ - --hash=sha256:1b1ce5c81c9114f1ce2f9288a51a8fd3aeea33a0cc440c415bf02da323aa0a76 \ - --hash=sha256:1b9a00b83f3a40e09859c78920571dcb83293c8004079653dd22ec14bbfa98c7 \ - --hash=sha256:21e5eb86179b4c67b5759d452ea7c48eb135cd93308e7a260aa489ed2eb423a4 \ - --hash=sha256:261c015b3e2ed0919157046d768774ecde57f03d8fa4ba78d29793447f70e717 \ - --hash=sha256:2895506ebe32cc63eeed8f80e6eae453171cfccccab35b70dc3129abec35a5b8 \ - --hash=sha256:298c3ec2d53225b3bf91142eb9691025bab610e0c0c51592dde149db679b3d17 \ - --hash=sha256:2a5d273181b560ef8397c8825f2b9d57013de744da9e8257b8467e5da8599351 \ - --hash=sha256:2b69102a743e7569ebee67e634a69c4cb7e59d6fa2e1aa7d3bdbf3f61435f62d \ - --hash=sha256:2c785939dc023a1ce4ec09599c032cc9933d258a998d16ca6f2b596c010940eb \ - --hash=sha256:2da82d643fa698e5e5210e54af90181603d5853cf469f5eedf9bfc8f59b4b8c7 \ - --hash=sha256:2e19e18c568d2866d8b6a6dfad823db86193503f90823a8f66689315ba28fbe8 \ - --hash=sha256:312ec9dd1ae7d96abd8c5a36a552b2139931914407d26fba723f9e53c8186f86 \ - --hash=sha256:33424f5188a7db12958246a54f59a435b6cb62c5cf9c8d71f7cc49475a5fdada \ - --hash=sha256:3384df51ed52db0bea967e21458ab0a414f67cdddfd94401688274e55147bb81 \ - --hash=sha256:33bfda9684646d323414df7abe5692c61d297dbb0530b28ec66442e768813c59 \ - --hash=sha256:349d7310eddff40429a099c08d995c6d4a4bfaf3ff40bd3b5e5cb5a5a3c7d453 \ - --hash=sha256:36bcb9d6d1307ab629edc553775baada2aefa5c50ccc0215fbfd2afcfff43141 \ - --hash=sha256:3790ba9fb5dd76715a7afe34dbe603ba03f8820764b1dc929dd08106214ed031 \ - --hash=sha256:385edaebde5db5be103577afc8699fea73a0e36a734ba24870be7ffa61119d74 \ - --hash=sha256:39d8de85a08e32632974151ba59c6e9140646dcc36c80423962b1c5c0a92e244 \ - --hash=sha256:415a994b536440f5011aa77e50a4274d15da3245e876e5c7f19da349caaedd87 \ - --hash=sha256:421439d1bee44b19f4583ccf42670ca464ffb90e9fdc38d37f39d1ddd1e44f1f \ - --hash=sha256:475e50f3f73f73614f7cba5524d6de49dee269df00272a1b85e3d19f6d498465 \ - --hash=sha256:4ce255cc05c1947a12989c6db801c96461947adb7a59990f1360b5983fab4983 \ - --hash=sha256:504ffa8a03609a087cad81277a629b6ce884b51a24bd388a7980ad61748618ff \ - --hash=sha256:50a766ee2010d504554bfb5f578ed2e066898aa26411d57e6296230627cdefa0 \ - --hash=sha256:54170b3e95339f415d54651f97df3bff7434a663912f9358237941bbf9143f55 \ - --hash=sha256:54a1189ad9d9357760557c91103d5e421f0a2dabe68a5cdf9103d0dcf4e00752 \ - --hash=sha256:55d9304e0e7178dfb1e106c33edf834097ddf4a890e2f676f6c5118f84390f73 \ - --hash=sha256:586b89cdadf7d67bf86ae3342a4dcd2b8d70a832d90c18a0ae955105caf34dbe \ - --hash=sha256:59968142787042db793348a3f5b918cf24ced1f23247328530e063f89c128a95 \ - --hash=sha256:59efe72d37fd5a91e373e5146f187f921f365f4abc1249a5ab446a60f30dd5f8 \ - --hash=sha256:59f67cd0a0acaf0e564c20bbd7f767286f23e91e2572c5703bf3e56ea7557edb \ - --hash=sha256:5d354b18839328927832e2fa5f7c95b7a3ccc39e7a681529e1685898e6436d45 \ - --hash=sha256:62f5519042c101762509b1d717b45a69c0139d60414b3c604b81328c01bd1943 \ - --hash=sha256:6780f008ee81381c737634e75c24e5a6569cc883c4f8e37a37917ee79efcafd9 \ - --hash=sha256:6a50ab11b7779b849472337191f3a043e27e17f71555f98d0092fa6d73364520 \ - --hash=sha256:6aa809ed4dc3706cc38594d67e641601bd2f36d5555b2780ff074edfcb136cf8 \ - --hash=sha256:6c1818f37be3ca02dcb76d63f2c7aaba4b0dc171b579796c6fbe00148dfec6b1 \ - --hash=sha256:6dac006c8b6dda72d86ea3d1333d45147de79a3a3f26f10c1cf9287ca4ca0ac3 \ - --hash=sha256:7088fcdcb604a4417c208e2169715800d28838fefd7455fbe40416231d1d47c1 \ - --hash=sha256:70aadc6ff12e4b444586e57fc30771f86253f9f0045b29016b9605b4be5f7dfb \ - --hash=sha256:7429f4e6192c11d659900c0648ba8776243bf396ab95558b8c51a345afeddde6 \ - --hash=sha256:74fa82dcc8143386c7c0392e18032009d1db715c25f4ba22d23dc2e04d02a20f \ - --hash=sha256:760ef21c17d8e6a4fe8cf406a97cf2806a4df93416ccc82fc98d25b1c20425be \ - --hash=sha256:7698a6f38730fd1385d390d1ed07bb13dce39aa616aca6a6d89bea178464b9a4 \ - --hash=sha256:76d67d5afb1fe402d10a6403bae668d000441e2ab115191a804287d53b772951 \ - --hash=sha256:773d1dfd652bbffb09336abf890bfd64785c7463716bf766d0eb3bc19c8b7f27 \ - --hash=sha256:7d346fccdde28abba117cc9edc696b9518c3307fbfcb689e549d9b5979018c6d \ - --hash=sha256:8512fcdb43f1bf18582698a478b5ab73f9c1667a5b7548761329ef410cd0a760 \ - --hash=sha256:867bddc63109a0276f5a31999e4c8e0eb7bbbad7d6166e28d969a2c1afeb97f9 \ - --hash=sha256:88e9b048345c613f253bea4645b2fe7e579782b82cac99b1daad81e29cc2ed8e \ - --hash=sha256:8fae3c6e795d7678963f2170152b0d892cf6aee9ee8afc8c45e6be38d5107fe7 \ - --hash=sha256:9542ccc1e689e752594309444081582f7be2fdb2df75acafea8a075108566735 \ - --hash=sha256:9776b85f510062f5a75ef112afe5f494ef1635607bf1cc220c1391e9ac2f5e81 \ - --hash=sha256:97850d0638391bdc7d35dc1c1039974dcb921eaafa8cc935ae4d7f272b1d60b3 \ - --hash=sha256:993f657a7c1c6ec51b5e0ba97c9817d06b84ea5fa8d82e43b9405de0defdc2b9 \ - --hash=sha256:9a2741ce5a29d3c84b0b94261ba630ab459a1b847a0d6beca7d62d188175c790 \ - --hash=sha256:9e2f5217648f68e3028c823df58663587c1507a5ba8419f4fdfc8a461be76043 \ - --hash=sha256:a0d2b28aa1354c7cd7f71b7658c4326f7facac106edd7f40eda984424229fd59 \ - --hash=sha256:a152560af4f9742b96f3827090f866eeec5becd4765c8e0d3473d9d280e76a5a \ - --hash=sha256:a1c0c7d67b64d85ac2e1879923bad2f08a08f3004055f2f406ef73c850114bd4 \ - --hash=sha256:a7a5bb6aa0cf62208bb4fa079b0c756734f8ad0e333b425732e8609bd51ee22f \ - --hash=sha256:a85b620a388d6c9caa12189233109e236b3da3deffe4ff11b84ae84e218a274f \ - --hash=sha256:acd38177bd2c8e69a411d6521760806042e244d0ef94e2dd03ecdaa8a3c99427 \ - --hash=sha256:ae3e764bd4c5ff55035dc82a8d49acceb42a5298edf6eb2fc4d328ee5dd7afae \ - --hash=sha256:ae5266a82596114e41fb5302140e9630204c1b5f325c770bec654b95dd54b0aa \ - --hash=sha256:af0384cb01a33600c49505c27c6c57ab0b27bf84a74e28524c92ca897ebdac9d \ - --hash=sha256:b15b88b0d52b179712632832c1d6e58e5774f93717849a41096880442da41ab0 \ - --hash=sha256:b26c30df3a28fd9793113dac7385a4deb7294a06c0f760dd2b008bd49a9139bc \ - --hash=sha256:b40379b53ecbc747fd9bdf4a0ea14eb8188ca1bd0f54f78893a39024b28f4863 \ - --hash=sha256:b4c36a85b00fadb85db9d9e90144af0a980e1a3d2ef9cd0f8a5bef88054657c6 \ - --hash=sha256:b5f9fb784824a042be3455b53d0b112655686fdb7a91f88f095f3fee1e2a2a54 \ - --hash=sha256:be061028481186ba62a0f4c5f1cc1e3d5ab8bce70c89236ebe01023883bc903b \ - --hash=sha256:c07ab8794fa929e58d97a0e1796b8b76f70943fa39df225ac9964615cf1f9d52 \ - --hash=sha256:c228cf65b4a54583763645dcd73819b3b381ca8b4bb1b349dee1c135f4112c07 \ - --hash=sha256:c4ee50606cb1967db7e523224e05f32089101945f859928e65657a2cbb3d278b \ - --hash=sha256:c882cd92ec68585e9c1cf36c447ec846c0d94edd706fe59e0c198e65822fd23b \ - --hash=sha256:cf9b1b2e692d4877880388934ac746c99552ce6bf40792a767fd42c8c99f136d \ - --hash=sha256:d2228c02b368d69b724c36e96d3d1da721561fb9cc7faa373d7bf65e07d75cb5 \ - --hash=sha256:d51d20befd5275d092cdffba57ded05f3c436317ee56466c8928ac32d960edaf \ - --hash=sha256:db0ac18435a40a2543dbb3d21e161a6c78e33e8159bd2e009343d224bb03bb1b \ - --hash=sha256:dc4f10fbd5dd13dcf4265b4cc07d69ca70280742870c97ae10093e3d66000359 \ - --hash=sha256:dcb5453ecf9cd58b562967badd1edbf092b0588a3af9e32ee3d05c985077ce87 \ - --hash=sha256:dd2630faeb6876fb0c287f664d93ddce4d50cd46c6e88e60378c05c9047e08ca \ - --hash=sha256:e014a797de43d1847df957c0a2a8e861d1c17547ee08467d1db2c370b7568baa \ - --hash=sha256:e08270659717f6973523ce3afbafa53515c4dc5dcad637dc215b6fd50f689423 \ - --hash=sha256:e0aab3ff447845049d676827d2ff714aab4f73f340e155b7de7458cf53baa5a4 \ - --hash=sha256:e355be718caf838aa089870259cf1776dc2a4aa980514af9d02c59544d9a8b22 \ - --hash=sha256:e7ab63e9fe45a9ec3417509e18116b367e89c9ceb6219222a3396fa30b147f80 \ - --hash=sha256:e7cd3e4ee8d80447a83bbc9ab0c8459781fa77087f856c3e740d7763be0df27f \ - --hash=sha256:e9638791082eaf5b3ac112c587518ee78e083a11c4b28012d8fe2a0f536dfb17 \ - --hash=sha256:eb59c65069498dbae3c0ef07bbe224e1eaa079825a437fb47a479f0af11f774f \ - --hash=sha256:ee7337f88f2a580679f7bbfe69dc86c043954f9f9c541012f49abc554a962f2e \ - --hash=sha256:ee9627de8587c1a22201cb16d0296ab92b4df5cdcb5349f4e9744d61db7c7c98 \ - --hash=sha256:f4f83781191007b6ef43b03debc35435f10cad9b96e16d147efe84a1d48bdde4 \ - --hash=sha256:f56ebf9d70305307a707911b88469213630aba821e77de7d603f9d2f0730687d \ - --hash=sha256:f5bfc2741d150d0be3e4a0401a5c22b06e60acb9aa4daa46d9e79a6dcd0f135b \ - --hash=sha256:f94a11a9d05afcfcfa640e096319720a19cc0c9f7768e1a61fceee6a3afc6c7c \ - --hash=sha256:fa7922bbb2cc84fa062d37723f199d4c0cd200245ce269c05db82d904db66b83 \ - --hash=sha256:fe896e07a5a2462308297e515c0054e9ec2dd18dfdc9427b19900b37dfe6f40b \ - --hash=sha256:ffa81f81b80047ba89a3c69ae6a0f78d06f4a42ce5126b0eb2a0a10ad44e0b2e +regex==2026.5.9 \ + --hash=sha256:002205cafd2a9e78c6290c7d1df277bf3277b3b7a30e0b4bb0dac2e2e3f7cb2d \ + --hash=sha256:01f0f5f55f4b64dacec85dc116d3c05fd23ad3ff037bbc73a2085775953c2611 \ + --hash=sha256:01f28d868834624c934b8d2e0aa1c8341337e37831f4a012f18a5afcba4cbaf3 \ + --hash=sha256:075160bf16658e16d35233300b8453aac25de4cbea808d22348b6979668e924d \ + --hash=sha256:0de5cf193997384ed2ca6f1cd4f78055b255d93d82d5a8cd6ba0d11c10b167e4 \ + --hash=sha256:0e1b1b4e496afbb24f4a62aba855ee4f88f25578927697b340702e48c9ee6bc2 \ + --hash=sha256:0f03aa6898aaaac4592479821df16e68e8d0e29e903e65d8f2dfb2f19028a989 \ + --hash=sha256:0f9eede6a5cbdc02d4978090186390936e1776a7d1359b21e41014c609880bcf \ + --hash=sha256:1268eddd8486dc561d08eee1156e40aa3a8fe10f4bdec8fa653b455fcbffd12c \ + --hash=sha256:15ee42209947f4ca045412eae98416317238163618ace2a8e54f99586a466733 \ + --hash=sha256:164eba9b755ea6f244b0d881196fbc1fac09714e9782c9e2732b813142033c8e \ + --hash=sha256:19c16ceb4a267a8789e25733e583983eeab9f0f8664e66b0bd1c5d21f14c2d4b \ + --hash=sha256:1bd7587a2948b4085195d5a3374eaf4a425dc3e55784c038175355ecf3bbbf8a \ + --hash=sha256:1e6da47d679b7010ef27556b6e0f99771b744936db1792a10ceac6547ae1503e \ + --hash=sha256:205109e96b3cf5adf8f4cd62bedde9487feb282b9497a3535451e5a24cd706a0 \ + --hash=sha256:2099f7e7ff7b6aa3192312650a56e91cc091e49d50b04e4f6f8b6e28b3b27f1c \ + --hash=sha256:246de9d60aa3f8538b519834dd95cbf276ea263d6a7bd5a3666dc3fa0230505b \ + --hash=sha256:24b2355ef5cc9aa5b8f07d17704face1c166fdcc2290fa7bd6e6c925655a8346 \ + --hash=sha256:2a661a7d270a61f7cf460caee8b9fa2d5ef9e5c681234bcb9e0fe14f488e7dfc \ + --hash=sha256:2acfb48634f64996b57f90f39afa692ff362162722581921fe92239a59960f3c \ + --hash=sha256:2efa205e6d98b24d1f3ab395c11aa15cdf10935bca283d0285e0499c284fba21 \ + --hash=sha256:31037c82eccb44b7ea2e9e221d7c01429430e989a1f4b91ea5a855f6017b509a \ + --hash=sha256:3527bb4942d2c14552155406cdedd906567456821848aed1cb4933a391bf5eca \ + --hash=sha256:39617fb0cde9c0e6306dc70e3bfc096f3da793219879f7ae7aa341a69fbdcf6d \ + --hash=sha256:398c521292f4c7fb807001dcd54694d3a1fcafc179a36ad9cc56f98df85930b6 \ + --hash=sha256:3b1e39888c5e0c7d92cea4fc777396c4a90363b05de75d02eb459a4752200808 \ + --hash=sha256:3dd4a3ff360dfb836fecdb93a4598f9d6e2ac81e3e397125145c6221bf58cf4c \ + --hash=sha256:3ddd90103f9e5c471c49c7852ecc1fe27c7e45eb99e977aefe7caa4e779f4f58 \ + --hash=sha256:446ddd671e43ab535810c4b21cff7104945c701d4a14d1e6d1cd6f4e445a8bea \ + --hash=sha256:45375819235558a4ff1c4971dc32881f022613abdb180128f5cb4768c1765a1c \ + --hash=sha256:46f1326ca6e65b0879d23ca302c0f2415aad42ff0309b9c818e7949fe19a41d8 \ + --hash=sha256:48036f6374aaa79eb3b754ec29c61d1c6b1606749d705a13f8854fa2539671f6 \ + --hash=sha256:4ebe8f0b5ec5a5024dc4a4c59f444c4e9afc5f2abdbb8962065b75d27fb971f9 \ + --hash=sha256:4eeb011098fcb77af513dcef521a3dbecbf8849b1e38940759d293b7a93f5026 \ + --hash=sha256:508f56a89ba9cb26e4168cbc37dbd60a28d82430a9e18ad1d25fe0883c314ca2 \ + --hash=sha256:5604dfd046dc37eca90250fc3be938b076c8059fa772ac0ed6f499b0f0fb0415 \ + --hash=sha256:56a33f191f17d8c417f99945ebdc1e691d3af9605d86ec68c7e54a57e3e17af6 \ + --hash=sha256:57e8915c7986aa33d25e4d3629cef711cd2863f2961b10409f0c04cb8b7d9020 \ + --hash=sha256:57eeeb05db7979413dec5438f2db21d7ecbba787cde7a711df1a6f6df672aa06 \ + --hash=sha256:5b73ab8afcf66c622db143d1c6fda4e58e4d537ee4f125229ad47b1ab80f34c0 \ + --hash=sha256:5e41809d2683fcde7d5a8c87a6567ba1fb1ce0de9f31bff578de00a4b2d76daa \ + --hash=sha256:6351571c8a42b505eb555c0dc47d740d0fb66977dc142919eea6f4325b7c56a0 \ + --hash=sha256:6441cc660d76107934a09c22167200839a0e89604a6297f78a974e66e931d2c0 \ + --hash=sha256:65c8c8c37377794bd5b2f3ebe51919042bf17aec802e23c833d89782ed0c78af \ + --hash=sha256:6ba42b2e7e7f46cf68cc6a5ca36fa07959f9bbd9c6bdcc47b6ee76549a590248 \ + --hash=sha256:71b61c5bfe1c806332defc42ad6c780b3c55f661986d7f40283a3a88274b4c00 \ + --hash=sha256:728d8bfd28a8845c8b6bc5dc7ce010453d206396786c0765c2740cb65f37791e \ + --hash=sha256:7b92817338591505f282cf3864c145244b1edcf5381d237038df955001091538 \ + --hash=sha256:7e30b874d341fac767d7df5a0870540541c2c054b80cfaac116e8d367a8a7ff2 \ + --hash=sha256:7e87577720152d2caae19fe2baaf1f8d5ca12091e9e229f03915c37d1e4b9178 \ + --hash=sha256:83d0ee4a57d1c87cb549e195ec300b8f0ec3a82eba66d835e4e2ed8634fe4499 \ + --hash=sha256:8676474c07469d6f33dd1085ca2cd45f65785f32518f2b20e36d9953ca07f994 \ + --hash=sha256:86f40a5d6444db30a125c9c9177e6b25dad981cbc37451fd838f145e6edac92e \ + --hash=sha256:872acc074bd29ffc9913ecdfedf6ea77502312ca44a4aa0d3779089c6069d8de \ + --hash=sha256:8abd33fef90b2a9efac5557d6033ca82d1195ed3a15fea5af15ba7b463c6a63b \ + --hash=sha256:8c6e4218fbdfbcd4f6c19efca40930d24a621bf4b48cb76bc6640543bd28ef20 \ + --hash=sha256:8e76e8161ad00694cfce6767d5dea860c6391ac5b83e5c3a39661e696f11fc7e \ + --hash=sha256:8f3af7a4903c5c04a11a196a5aa75cdd7dd3f8508132f9fb3259d9f5908e3b88 \ + --hash=sha256:91328f1c23d47595ca3ef0a7557fa129c5a23404b775c770697d2f35b33e0107 \ + --hash=sha256:916714069da19329ef7de197dcbc77bb3104145c7c2c864dbfbe318f46b88b14 \ + --hash=sha256:93a7860539414dddaefba2b40f8771765ae17949d4c7182b876ce429e11a8309 \ + --hash=sha256:954cc214c04663ee6d266fc61739cad83054683048de65c5bd1d640ad28098ac \ + --hash=sha256:96f5f58b54a063d7ea9dca08e1cf57bfe10499c4d579ee672da284f57f5f0070 \ + --hash=sha256:97cf3bc1b7d7d2306772ec07366c80d9df00ff79e79cea32898883a646d2fae2 \ + --hash=sha256:98bd73080e8756255137e1bd3f3f00295bbc5aa383c0e0f973920e9134d7c4ad \ + --hash=sha256:992604d02e6d9c6d786c24a706a71ecffe1020fc1ef264044474cd81fa2c3919 \ + --hash=sha256:a24852d3c29ad9e47593593d8a247c44ccc3d0548ef12c822d6ed0810affe676 \ + --hash=sha256:a6a563446a41adc451393dc6b8e6ad87979efaee3c8738690a8d1b08ebead1b4 \ + --hash=sha256:a8234aa23ec39894bfe4a3f1b85616a7032481964a13ac6fc9f10de4f6fca270 \ + --hash=sha256:a8820737949116ffff55fe18f9fc644530063ba6ebfcb8314239416e78f1347c \ + --hash=sha256:a9e1328e17c84c1a5d22ec9f785ecef4a967fab9a42b6a8dc3bcbebd0a0c9e44 \ + --hash=sha256:aa0fbdbac82cb3e4450d0ccde7d7a35607f4cb2dd9fba4b8b69bfaf8c9fa6aed \ + --hash=sha256:b310768746dd314ea6e2ff4cc89ef215426813396ff4e94ee8e6f7096c8b6e03 \ + --hash=sha256:b46b0f094dc1d3b90356c85a0bd2c9bafc4a6a190b9d6f8ddd5a033b6e088ed4 \ + --hash=sha256:b4bb445ff3f725f59df8f6014edb547ee928ec7023a774f6a39a3f953038cbb2 \ + --hash=sha256:b6d189041f15691cfa2b6c4290448ec221244d225b3f5fe9e7771b34ffcdf6e2 \ + --hash=sha256:b96350aa424e79d4fd6b567b344dcbe2b2d6bfc48dfe7717587e1fa6d43da6ff \ + --hash=sha256:be3372b9df6ddecff6486d37e19095a7b4973137caf5512407a89f4455361f41 \ + --hash=sha256:bfe1ce50cbfb569d74e1e4337da6468961f31dbea55fd85aa5de59c0947a805a \ + --hash=sha256:c010eb8caca74bdb40c07498d7ece26b4428fd3f04aa8a72c9ac6f79e8faaac6 \ + --hash=sha256:c8b9b9d294cfea3cd19c718ade7cc93492b2c4991abd9a68d0b3477ae6d8e100 \ + --hash=sha256:c9411dd64ca95477225734a93dfc8583b51916b8d5942f99d6cac21e09965451 \ + --hash=sha256:ca518ed29c46eecba6010b15f1b9a479314d2de409536e71b6a13aa04e3b8a77 \ + --hash=sha256:ccf5249114cc3e772ecdd88a98a86eca0fd74c61ce32a94743758c083fc05d48 \ + --hash=sha256:cd2846168eb9ee3c513902bc8225409cb1caab31d04728b145171fa1625d9621 \ + --hash=sha256:d29eebfc9525db68cad3c97eedd7f754fa265aa5cd0cf4f863b2421e1b48fc9f \ + --hash=sha256:d3d7eb5c9a7f6df82ed3cfac9beb93882a5cbcb5b8b157b56cb2b3b276574ac1 \ + --hash=sha256:d626b84406444b165fc0ba981604edea39f0588ff1f92baa23fe50799ea9afdb \ + --hash=sha256:d641a8c9a61618047796d572a39a79b26167b0411d2c3031937b2fe2d081e2cf \ + --hash=sha256:d659eee77986549c9ea45b861c7567e44d6287c3dc9a4565478853f7b9fe2ff6 \ + --hash=sha256:d6b8a143aca6c39b446ea8092cde25cc8fe9304d4f5fecfbc1a9dbb0282703c2 \ + --hash=sha256:d726ca3f0d76969bf1e8e477d160d3d666bbf999f6860bd314889e5345782046 \ + --hash=sha256:d7bdc0ab8f3dd7e1b4f9ab88634e13374669db86bb3c72e8292f07ae313f539f \ + --hash=sha256:daff2bdbaf1d23e52fdff7c0b7bc2048b68f978df6a4d107ac981f94caef2e66 \ + --hash=sha256:dd2810d22146b6d838acc5ec15602cb6b47920aa4e33015df3868eedfd20bab8 \ + --hash=sha256:ddda5340e6c01a293027dd46232fa79eaff1b48058ce7a98f572b6445b088041 \ + --hash=sha256:dea2e88e1cce4522496cce630e11e67b98b7076620bc4336c3f674bc21a375f4 \ + --hash=sha256:debb893095e944091c16e641a6e33c1b0f4cb61ab945ec5afbf53ce7068834d8 \ + --hash=sha256:dfbe4579b9f08036aa7d101d1835437a20783574ac66327e6b29b4018a138081 \ + --hash=sha256:e1d93bf647916292e8edcec150c07ddf3dc50179ccaf770c04a7f9e452155372 \ + --hash=sha256:e82db382b44d0111b22601c509c89f64434816c9e0eef9d1989cda8cc6ff1c04 \ + --hash=sha256:ea9c8ecfa1b73c73b626534d6626e5340d429630943672b8480724f44e84b962 \ + --hash=sha256:ead4b163ac30a29574510cd4b3e2e985ac5290c05fc7095557d6a5f403fc31b5 \ + --hash=sha256:ecd353045824e4477562a2ac718c25799cdaaa41f7aa925a806a8a3e6848a5b9 \ + --hash=sha256:ed2c9e8068b614c574d8d30e543d617cf5379b0535d46f97ef00e904745a08b5 \ + --hash=sha256:ed457d8e98ae812ed7732bef7bf78de78e834eae0372a74e23ca90ef21d910f9 \ + --hash=sha256:ef31cbfe458e21c6122ba8150ff060e0c7789ed0d26eb423f25472584920b555 \ + --hash=sha256:f079e50a0d3cc3cd5091fa9ff45869a2e6b2cd35895731edafb0327901a8d86d \ + --hash=sha256:f3844f134e834076677dd369976e9f5068679fcb8e50102fdf6b7ac96a3ec127 \ + --hash=sha256:f7a7c26137296beba7784de6eba69c6a93a63ccebc385e4962fe67e267a91225 \ + --hash=sha256:fa411799ca8da32a8d38d020a88faa5b6f91657d284761352940ecf9f7c3bbdd \ + --hash=sha256:fd03c4f0e33280d15cae17159b899245d6b7c53d21def19b263b39655061f5ce \ + --hash=sha256:fd190e88a895a8901325fad284a3f74ea52b1da8525b76cc811fa9b1edf0ce2b \ + --hash=sha256:ff8d372ac2acdc048d1c19916f27ee61bc5722728458ba6ca5052f2c72d51763 # via # feast (pyproject.toml) # parsimonious # transformers -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # azure-core @@ -5007,25 +5026,25 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.15.12 \ - --hash=sha256:01da3988d225628b709493d7dc67c3b9b12c0210016b08690ef9bd27970b262b \ - --hash=sha256:2849ea9f3484c3aca43a82f484210370319e7170df4dfe4843395ddf6c57bc33 \ - --hash=sha256:83b2f4f2f3b1026b5fb449b467d9264bf22067b600f7b6f41fc5958909f449d0 \ - --hash=sha256:84a1630093121375a3e2a95b4a6dc7b59e2b4ee76216e32d81aae550a832d002 \ - --hash=sha256:9ba3b8f1afd7e2e43d8943e55f249e13f9682fde09711644a6e7290eb4f3e339 \ - --hash=sha256:9cae0f92bd5700d1213188b31cd3bdd2b315361296d10b96b8e2337d3d11f53e \ - --hash=sha256:9e77c7e51c07fe396826d5969a5b846d9cd4c402535835fb6e21ce8b28fef847 \ - --hash=sha256:a538f7a82d061cee7be55542aca1d86d1393d55d81d4fcc314370f4340930d4f \ - --hash=sha256:b0c862b172d695db7598426b8af465e7e9ac00a3ea2a3630ee67eb82e366aaa6 \ - --hash=sha256:c87a162d61ab3adca47c03f7f717c68672edec7d1b5499e652331780fe74950d \ - --hash=sha256:d0185894e038d7043ba8fd6aee7499ece6462dc0ea9f1e260c7451807c714c20 \ - --hash=sha256:dd8aed930da53780d22fc70bdf84452c843cf64f8cb4eb38984319c24c5cd5fd \ - --hash=sha256:e3bcd123364c3770b8e1b7baaf343cc99a35f197c5c6e8af79015c666c423a6c \ - --hash=sha256:e852ba9fdc890655e1d78f2df1499efbe0e54126bd405362154a75e2bde159c5 \ - --hash=sha256:ecea26adb26b4232c0c2ca19ccbc0083a68344180bba2a600605538ce51a40a6 \ - --hash=sha256:f86f176e188e94d6bdbc09f09bfd9dc729059ad93d0e7390b5a73efe19f8861c \ - --hash=sha256:fb129f40f114f089ebe0ca56c0d251cf2061b17651d464bb6478dc01e69f11f5 \ - --hash=sha256:fe87510d000220aa1ed530d4448a7c696a0cae1213e5ec30e5874287b66557b5 +ruff==0.15.13 \ + --hash=sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629 \ + --hash=sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21 \ + --hash=sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55 \ + --hash=sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41 \ + --hash=sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8 \ + --hash=sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7 \ + --hash=sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4 \ + --hash=sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd \ + --hash=sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2 \ + --hash=sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51 \ + --hash=sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5 \ + --hash=sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9 \ + --hash=sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22 \ + --hash=sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca \ + --hash=sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6 \ + --hash=sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b \ + --hash=sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7 \ + --hash=sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6 # via feast (pyproject.toml) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5181,9 +5200,9 @@ send2trash==2.1.0 \ --hash=sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c \ --hash=sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459 # via jupyter-server -sentence-transformers==5.4.1 \ - --hash=sha256:436bcb1182a0ff42a8fb2b1c43498a70d0a75b688d182f2cd0d1dd115af61ddc \ - --hash=sha256:a6d640fc363849b63affb8e140e9d328feabab86f83d58ac3e16b1c28140b790 +sentence-transformers==5.5.0 \ + --hash=sha256:75313fdcc2397ec4b58297c25d6187fcca5a6b2aeb09570a72eff5a3223d8d58 \ + --hash=sha256:9cec675e68bfe09d07466d1f13ab06d1d79d60a0f45b154baf433bde6ae159cb # via feast (pyproject.toml) setuptools==80.10.2 \ --hash=sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70 \ @@ -5292,32 +5311,32 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -5420,38 +5439,34 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot[rs]==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot[rs]==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via # feast (pyproject.toml) # ibis-framework -sqlglotc==30.6.0 \ - --hash=sha256:003b15bbe3f3a4a63313baeb3f090906cf0172fe007ab24974c612a577f56c61 \ - --hash=sha256:05861b5d74ae4b0a5a6e6a9309a8a975d9572c2bf1eb9634a33af9189eb7d333 \ - --hash=sha256:0b907206ef36fd8f0c28da4c5b8c8f896bd67826da0d765616e6c950689ac849 \ - --hash=sha256:0e1aae195008c1d87ed1b1543bceed1408ae8ecf146571b3029e98b23a19c59c \ - --hash=sha256:16291ee3da0276df2689cc139df41d8723cf6014aca979f307fb75a898b0d3e8 \ - --hash=sha256:27d6c22375395f1fdfe8a5d80b5fb781ca7849e29c7db7dfb11edb466a5b7a4d \ - --hash=sha256:2b50aba396d4622c201a9dd933b51cd6858b5af5ebbcf7db1af35db7e83ece48 \ - --hash=sha256:4a5beba24625bc14070992fdddc7aed22df912007882f31f27b0e88d7b7d9445 \ - --hash=sha256:4c84a933816374b6167d9347e488fb4a357bb0e3be2e8e820dafeb3c9948feab \ - --hash=sha256:4d45ee83e1f72ee94045ccfd13e51fa7d822548f50e9d20d3d42e127bcd9f453 \ - --hash=sha256:4eb6f349c21d5a3e39733db5416e57ec171ca3b1c17b02badfdbe55d9a3666a5 \ - --hash=sha256:61a1e4f533955db0bfd4219883bfab1f2030753ffaebc9cbb4e950dfbcae3db7 \ - --hash=sha256:63b02231cc2f10d63df373fa02f3e03b4216e94c6f32ccdfd11adc770dc95fb7 \ - --hash=sha256:6e8dab3b9f84c9b591ecd1fb0920b800c08dd6c38eda3be91176fc239d3c94bc \ - --hash=sha256:7acdb7b15f060bacea01e1c68d1dd70471f03bda89478ca0ee96bac3df03d0a7 \ - --hash=sha256:87437d4f32c1dc61c3ef046dc39b9fe119ac2e2e5253e33351f1a62ba802942a \ - --hash=sha256:875c6925f3d70aa1bc4bcc405090a12deec01de71193e7229f114c5ecf39f725 \ - --hash=sha256:949f5d457c8c98998ed06d060873370d7553077ab3c2db9569acda5887cd6ce7 \ - --hash=sha256:c69c9dbe4dfab74329294d07b2956ca9a03123089a1923f3d299a21d4b66898d \ - --hash=sha256:cb4b5a532fb35ce415aea6d360fe202278b46cc59c07318b97401930a1584e35 \ - --hash=sha256:cfba6244f52bcdffe22a35334d48d741aed3077c20bb7aa9bb511c21fd766438 \ - --hash=sha256:dd781790c3fc6cb82e6c00836f7f9ab33941cf2b9dca173d7b9f41c37c78d114 \ - --hash=sha256:e397befde3d08d870a8f1c7bd80d7abc68ee119c472143ab196709319e205af4 \ - --hash=sha256:f0a37ad865b106005cb5d36efd537a412912477c83cbca1579ee45f17d73fe54 \ - --hash=sha256:fb977d427a196a620aa60b71d4b66d60c3d015c9004e7393162d4771fb435406 +sqlglotc==30.8.0 \ + --hash=sha256:02ead13bbaf56a7eb0fdf1eb6ea23b1d70857901a60ea5118e09151ca4051712 \ + --hash=sha256:172ea79fcdcf3795134dcdff03995681c60bdc0c0874d43dc06ab06fecc0ae25 \ + --hash=sha256:1863950ef7f41467fe32f7cc55d10d4d747f2b532023c82ccbb44693e6911bc9 \ + --hash=sha256:2dcdf0a8e9f07f9cd95eb0b6e653352f85862feee0fb6e7a48251e888ae42a5c \ + --hash=sha256:3176d7a5dc4c97d462ef3a73eb32e513033cf61fc5a794d5e2a310621d078d9b \ + --hash=sha256:4fad7bceb63f831ec0ec07b5199a7e3f7448323354b9dd7b6f262b501cd76185 \ + --hash=sha256:62dfdd3ad97d80034ebf8d8117d15fff936aa9aa8394139f0f5f05aac25dc36b \ + --hash=sha256:6576f7979a506ff5cab4af781c058c0a9caa654d2cd4a864c96c2d785f44711c \ + --hash=sha256:7068fcfd64ebcedc10bd174b69e0d8d312a89a18772f6312e51a8d3bb1757f1d \ + --hash=sha256:86c974ec80867180f5bb9a67b9d801095a59b3b046da6df5d989c1572629b2ec \ + --hash=sha256:960ddda931beb89ae01f8d7c10fa72c486d4d04b077672f94978adb976adc60f \ + --hash=sha256:9f2dc50e2ca234c40dce5d5a3dfb212c6ed73278043225ac1b0ab577a2db1815 \ + --hash=sha256:ac64dd30ecc20421e0133883db4e10c3699354c592513aeb50b1ee243a8a5c60 \ + --hash=sha256:b7dca8aedfdd8f50694e04ea55b040e2cb685dcaf600ca4ea5dd0a141a6a6835 \ + --hash=sha256:be6257bdbdf2fd2a4daea46c0781542b69e94d968ba745374721dc96d0e55d02 \ + --hash=sha256:c445f11b470475848b75a03bc3d8ef765cf86e098c4f5003701838da435d492a \ + --hash=sha256:e6fa017c3fbcf28b1b259e254995949733bafa2d94f3c9398e4cc4230394f8e7 \ + --hash=sha256:ed86cbfc5b2b292e0474ca9fcf71b82b39aef150d968d8ac97d35a8ab85c43cd \ + --hash=sha256:f5f17e336a073d7087271468155cb401687e931b5b61d6438233278c2a636baf \ + --hash=sha256:f640eb821b7bf82e21557f3683f4db89302a9bac4680e8ff53dd951ad7e995d8 \ + --hash=sha256:f79acd23fcf6ef2e5ef42df26010f699134b3653ff40cb3e403fed083e3e38dc # via sqlglot sqlglotrs==0.13.0 \ --hash=sha256:6b934a244b16f26fca50974328a2ebc7689583c59f06203cebb46e2e6e8d93a7 \ @@ -5468,9 +5483,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5583,9 +5598,9 @@ tifffile==2025.5.10 \ --hash=sha256:018335d34283aa3fd8c263bae5c3c2b661ebc45548fde31504016fcae7bf1103 \ --hash=sha256:e37147123c0542d67bc37ba5cdd67e12ea6fbe6e86c52bee037a9eb6a064e5ad # via scikit-image -timm==1.0.26 \ - --hash=sha256:985c330de5ccc3a2aa0224eb7272e6a336084702390bb7e3801f3c91603d3683 \ - --hash=sha256:f66f082f2f381cf68431c22714c8b70f723837fa2a185b155961eab90f2d5b10 +timm==1.0.27 \ + --hash=sha256:315dfe63186ca9fb7ff941268941231fd5be259f2b4bb4afa28560ae1015cb9a \ + --hash=sha256:5ff07c9ddf53cbada88eab1c93ff175c64cab683b5a2fddf863bcee985926f89 # via feast (pyproject.toml) tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ @@ -5679,9 +5694,9 @@ tomli==2.4.1 \ # pytest # pytest-env # singlestoredb -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -5691,35 +5706,35 @@ toolz==1.1.0 \ # dask # ibis-framework # partd -torch==2.11.0 \ - --hash=sha256:01018087326984a33b64e04c8cb5c2795f9120e0d775ada1f6638840227b04d7 \ - --hash=sha256:0f68f4ac6d95d12e896c3b7a912b5871619542ec54d3649cf48cc1edd4dd2756 \ - --hash=sha256:1b32ceda909818a03b112006709b02be1877240c31750a8d9c6b7bf5f2d8a6e5 \ - --hash=sha256:1e6debd97ccd3205bbb37eb806a9d8219e1139d15419982c09e23ef7d4369d18 \ - --hash=sha256:2658f34ce7e2dabf4ec73b45e2ca68aedad7a5be87ea756ad656eaf32bf1e1ea \ - --hash=sha256:2b4e811728bd0cc58fb2b0948fe939a1ee2bf1422f6025be2fca4c7bd9d79718 \ - --hash=sha256:2bb3cc54bd0dea126b0060bb1ec9de0f9c7f7342d93d436646516b0330cd5be7 \ - --hash=sha256:2c0d7fcfbc0c4e8bb5ebc3907cbc0c6a0da1b8f82b1fc6e14e914fa0b9baf74e \ - --hash=sha256:4b5866312ee6e52ea625cd211dcb97d6a2cdc1131a5f15cc0d87eec948f6dd34 \ - --hash=sha256:4cf8687f4aec3900f748d553483ef40e0ac38411c3c48d0a86a438f6d7a99b18 \ - --hash=sha256:4dc8b3809469b6c30b411bb8c4cad3828efd26236153d9beb6a3ec500f211a60 \ - --hash=sha256:4dda3b3f52d121063a731ddb835f010dc137b920d7fec2778e52f60d8e4bf0cd \ - --hash=sha256:563ed3d25542d7e7bbc5b235ccfacfeb97fb470c7fee257eae599adb8005c8a2 \ - --hash=sha256:63a68fa59de8f87acc7e85a5478bb2dddbb3392b7593ec3e78827c793c4b73fd \ - --hash=sha256:73e24aaf8f36ab90d95cd1761208b2eb70841c2a9ca1a3f9061b39fc5331b708 \ - --hash=sha256:7aa2f9bbc6d4595ba72138026b2074be1233186150e9292865e04b7a63b8c67a \ - --hash=sha256:7b6a60d48062809f58595509c524b88e6ddec3ebe25833d6462eeab81e5f2ce4 \ - --hash=sha256:8245477871c3700d4370352ffec94b103cfcb737229445cf9946cddb7b2ca7cd \ - --hash=sha256:8b394322f49af4362d4f80e424bcaca7efcd049619af03a4cf4501520bdf0fb4 \ - --hash=sha256:98bb213c3084cfe176302949bdc360074b18a9da7ab59ef2edc9d9f742504778 \ - --hash=sha256:a97b94bbf62992949b4730c6cd2cc9aee7b335921ee8dc207d930f2ed09ae2db \ - --hash=sha256:ab9a8482f475f9ba20e12db84b0e55e2f58784bdca43a854a6ccd3fd4b9f75e6 \ - --hash=sha256:b2a43985ff5ef6ddd923bbcf99943e5f58059805787c5c9a2622bf05ca2965b0 \ - --hash=sha256:b3c712ae6fb8e7a949051a953fc412fe0a6940337336c3b6f905e905dac5157f \ - --hash=sha256:cc89b9b173d9adfab59fd227f0ab5e5516d9a52b658ae41d64e59d2e55a418db \ - --hash=sha256:d91aac77f24082809d2c5a93f52a5f085032740a1ebc9252a7b052ef5a4fddc6 \ - --hash=sha256:f99924682ef0aa6a4ab3b1b76f40dc6e273fca09f367d15a524266db100a723f \ - --hash=sha256:fbf39280699d1b869f55eac536deceaa1b60bd6788ba74f399cc67e60a5fab10 +torch==2.12.0 \ + --hash=sha256:10802fd383bbfed646212e765a72c37d2185205d4f26eb197a254e8ac7ddcb25 \ + --hash=sha256:10ee1448a9f304d3b987eb4656f664ba6e4d7b410ca7a5a7c642199777a2cf88 \ + --hash=sha256:1834bd984f8a2f4f16bdfbeecca9146184b220aa46276bf5756735b5dae12812 \ + --hash=sha256:2140e373e9a51a3e22ef62e8d14366d0b470d18f0adf19fdc757368077133a34 \ + --hash=sha256:3fee918902090ade827643e758e98363278815de583c75d111fdd665ebffde9f \ + --hash=sha256:415c1b8d0412f67551c8e89a2daca0fb3e56694af0281ba155eaa9da481f58b4 \ + --hash=sha256:4b4f64c2c2b11f7510d93dd6412b87025ff6eddd6bb61c3b5a3d892ea20c4756 \ + --hash=sha256:5d6b560dfa7d56291c07d615c3bb73e8d9943d9b6d87f76cd0d9d570c4797fa6 \ + --hash=sha256:5f96b63f8287f66a005dd1b5a6abba2920f11156c5e5c4d815f3e2050fd1aa16 \ + --hash=sha256:6a7512adfdd7f6732e40de1c620831e3c75b39b98cef60b11d0c5f0a76473ec5 \ + --hash=sha256:864392c73b7654f4d2b3ae712f607937d0dbb1101c4555fbb41848106b297f39 \ + --hash=sha256:891c769072637c74e9a5a77a3bc782894696d8ffec83b938df8536dee7f0ba78 \ + --hash=sha256:8b958caff4a14d3a3b0b2dfc6a378f64dda9728a9dad28c08a0db9ce4dafb549 \ + --hash=sha256:8fbef9f108a863e7722a73740998967e3b074742a834fc5be3a535a2befa7057 \ + --hash=sha256:90dd587a5f61bfe1307148b581e2084fc5bc4a06e2b90a20e9a36b81087ff16b \ + --hash=sha256:a43ac605a5e13116c72b64c359644cce0229f213dde48d2ae0ae5eb5becf7feb \ + --hash=sha256:a6a2eebb237d3b1d9ad3b378e86d9b9e0782afdea8b1e0eba6a13646b9b49c07 \ + --hash=sha256:af68dbf403439cae9ceaeaaf92f8352b460787dcd27b92aa05c40dd4a19c0f1e \ + --hash=sha256:b41339df93d491435e790ff8bcbae1c0ce777175889bfd1281d119862793e6a2 \ + --hash=sha256:b4556715c8572758625d62b6e0ae3b1f76c440221913a6fb5e100f321fb4fb02 \ + --hash=sha256:c12592630aef72feaf18bd3f197ef587bbfa21131b31c38b23ab2e55fce92e36 \ + --hash=sha256:c66696857e987efb8bc1777a37357ec4f60ab5e8af6250b83d6034437fa2d8f3 \ + --hash=sha256:cf9839790285dd472e7a16aafcb4a4e6bf58ec1b494045044b0eefb0eb4bd1f2 \ + --hash=sha256:d47e7dee68ac4cd7a068b26bcd6b989935427709fae1c8f7bd0019978f829e15 \ + --hash=sha256:d4d029801cb7b6df858804a2a21b00cc2aa0bf0ee5d2ab18d343c9e9e5681f35 \ + --hash=sha256:dd37188ea325042cb1f6cafa56822b11ada2520c04791a52629b0af25bdfbfd9 \ + --hash=sha256:e2ad3eb85d39c3cab62dfa93ed5a73516e6a53c6713cb97d004004fe089f0f1f \ + --hash=sha256:f7dfae4a519197dfa050e98d8e36378a0fb5899625a875c2b54445005a2e404e # via # feast (pyproject.toml) # accelerate @@ -5729,35 +5744,35 @@ torch==2.11.0 \ # sentence-transformers # timm # torchvision -torchvision==0.26.0 \ - --hash=sha256:0f3e572efe62ad645017ea847e0b5e4f2f638d4e39f05bc011d1eb9ac68d4806 \ - --hash=sha256:114bec0c0e98aa4ba446f63e2fe7a2cbca37b39ac933987ee4804f65de121800 \ - --hash=sha256:1c55dc8affbcc0eb2060fbabbe996ae9e5839b24bb6419777f17848945a411b1 \ - --hash=sha256:2adfbe438473236191ff077a4a9a0c767436879c89628aa97137e959b0c11a94 \ - --hash=sha256:358fc4726d0c08615b6d83b3149854f11efb2a564ed1acb6fce882e151412d23 \ - --hash=sha256:3daf9cc149cf3cdcbd4df9c59dae69ffca86c6823250442c3bbfd63fc2e26c61 \ - --hash=sha256:406557718e62fdf10f5706e88d8a5ec000f872da913bf629aab9297622585547 \ - --hash=sha256:4280c35ec8cba1fcc8294fb87e136924708726864c379e4c54494797d86bc474 \ - --hash=sha256:55bd6ad4ae77be01ba67a410b05b51f53b0d0ee45f146eb6a0dfb9007e70ab3c \ - --hash=sha256:5d63dd43162691258b1b3529b9041bac7d54caa37eae0925f997108268cbf7c4 \ - --hash=sha256:7058c5878262937e876f20c25867b33724586aa4499e2853b2d52b99a5e51953 \ - --hash=sha256:7993c01648e7c61d191b018e84d38fe0825c8fcb2720cd0f37caf7ba14404aa1 \ - --hash=sha256:8008474855623c6ba52876589dc52df0aa66e518c25eca841445348e5f79844c \ - --hash=sha256:82c3965eca27e86a316e31e4c3e5a16d353e0bcbe0ef8efa2e66502c54493c4b \ - --hash=sha256:9a904f2131cbfadab4df828088a9f66291ad33f49ff853872aed1f86848ef776 \ - --hash=sha256:a06d4772a8e13e772906ed736cc53ec6639e5e60554f8e5fa6ca165aabebc464 \ - --hash=sha256:a39c7a26538c41fda453f9a9692b5ff9b35a5437db1d94f3027f6f509c160eac \ - --hash=sha256:b6f9ad1ecc0eab52647298b379ee9426845f8903703e6127973f8f3d049a798b \ - --hash=sha256:b7d3e295624a28b3b1769228ce1345d94cf4d390dd31136766f76f2d20f718da \ - --hash=sha256:b7e6213620bbf97742e5f79832f9e9d769e6cf0f744c5b53dad80b76db633691 \ - --hash=sha256:c409e1c3fdebec7a3834465086dbda8bf7680eff79abf7fd2f10c6b59520a7a4 \ - --hash=sha256:d61a5abb6b42a0c0c311996c2ac4b83a94418a97182c83b055a2a4ae985e05aa \ - --hash=sha256:de6424b12887ad884f39a0ee446994ae3cd3b6a00a9cafe1bead85a031132af0 \ - --hash=sha256:e9d0e022c19a78552fb055d0414d47fecb4a649309b9968573daea160ba6869c \ - --hash=sha256:eb61804eb9dbe88c5a2a6c4da8dec1d80d2d0a6f18c999c524e32266cb1ebcd3 \ - --hash=sha256:ebc043cc5a4f0bf22e7680806dbba37ffb19e70f6953bbb44ed1a90aeb5c9bea \ - --hash=sha256:f13f12b3791a266de2d599cb8162925261622a037d87fc03132848343cf68f75 \ - --hash=sha256:fd10b5f994c210f4f6d6761cf686f82d748554adf486cb0979770c3252868c8f +torchvision==0.27.0 \ + --hash=sha256:0822b58d2c5d325cd0c7152b744acbd15f898c07572e2cfb70b075a865a4f6f9 \ + --hash=sha256:1a6dd742a150645126df9e0b2e449874c1d635897c773b322c2e067e98382dfe \ + --hash=sha256:1c01f0d1091ae22b9dfc082b0a0fe5faaf053686a29b4fb082ba7691375c73cf \ + --hash=sha256:1c2db4bde82bc48ebff73436a6adf34d4f809448268a70d9a1285f5c8f92313d \ + --hash=sha256:2664d06acd64d328aa7689b0d0c81ee31e240e9977d8768816b4be7c66c03211 \ + --hash=sha256:2c037709072ca9b19750c0cbe9e8bb6f91c9a1be1befa26df33e281deccbd8c7 \ + --hash=sha256:2c4099a15150143b9b034730b404a56d572efe0b79489b4c765d929cb4eac7f3 \ + --hash=sha256:419c98a9275b27660cdce6d09080fd5974d1ec1d4a225f71439ebacb3b0c4e64 \ + --hash=sha256:41d6dae73e1af09fa82ded597ae57f2a2314285acde54b25890a8f8e51b999d7 \ + --hash=sha256:5bb82fc3c55daf1788621e504310b0a286f1069627a8742f692aebb075ef25a7 \ + --hash=sha256:65772ff3ec4f4f5d680e30019835555dd239e7fefee4b0a846375fe1cb1592ef \ + --hash=sha256:70f071c6f74b60d5fe8851636d8d4cd5f4fa29d57fd9348a87a6f17b990b95ba \ + --hash=sha256:72bf547e58ddb948689734eed6f4b6a2031f979dba4fb08e3690688b392e929f \ + --hash=sha256:7a9966a088d06b4cf6c610e03be62de469efa6f2cd2e7c7eed8e925ed6af59ac \ + --hash=sha256:91f61b9865423037c327eb56afa207cc72de874e458c361840db9dcf5ce0c0eb \ + --hash=sha256:9bb9251f64b854124efed95d02953a89f7e2726c3ca662d7ea0151129157297f \ + --hash=sha256:a49e55055a39a8506fe7e59850522cab004efb2c3839f6057658889c1d69c815 \ + --hash=sha256:aaafa6962c9d91f42503de1957d6fa349907d028c06f335bd95da7a5bc57147d \ + --hash=sha256:aee384a2782c89517c4ab9061d2720ba59fd2ffe5ef89d0a149cc2d43abdf521 \ + --hash=sha256:b4aacff70ea4b7377f996f9048989c850d221fef33658ddbcae42aa5bd4ca11a \ + --hash=sha256:b4c6bb0a670dcba017b3643e21902c9b8a1cc1c127d602f1488fa29ec3c6e865 \ + --hash=sha256:c1fac0fc2a7adf29481fc1938a0e7845c57ba1147a986784109c4d98f434ea8c \ + --hash=sha256:c5121f1b9ab09a7f73e837871deb8321551f7eaeb19d87aa00de9191968eae44 \ + --hash=sha256:c9f44e35e6ec01caedacce9e941a5bf21fe424403321efac2507a201273653c5 \ + --hash=sha256:cbf89764fc76f3f17fbf80c12d5a89c691e91cb9d82c38412aaf0568655ffb19 \ + --hash=sha256:dadea3c5ecfd05bbb2a3312ab0374f213c58bf6459cb059122e2f4dfe13d10ed \ + --hash=sha256:df0c166b6bdf7c47f88e81e8b43bc085451d5c50d0c5d1691bc474c1227d6fed \ + --hash=sha256:f44453f107c296d5446a79f7ac59733ad8bf5ddfa04c53805dfbae298a42a798 # via # feast (pyproject.toml) # docling-ibm-models @@ -5796,9 +5811,9 @@ tqdm==4.67.3 \ # semchunk # sentence-transformers # transformers -traitlets==5.14.3 \ - --hash=sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7 \ - --hash=sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f +traitlets==5.15.0 \ + --hash=sha256:4fead733f81cf1c4c938e06f8ca4633896833c9d89eff878159457f4d4392971 \ + --hash=sha256:fb36a18867a6803deab09f3c5e0fa81bb7b26a5c9e82501c9933f759166eff40 # via # ipykernel # ipython @@ -5905,9 +5920,9 @@ trino==0.337.0 \ --hash=sha256:3a0bd03a09b7ea5dccd41ca6e58abfb127c6303f3a48a258ff794d411dd83a3c \ --hash=sha256:868f2b8137d4d1baa84c9bc341f2cdf29039462aa69d7c089a0b821b5a91f29c # via feast (pyproject.toml) -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.12.5 \ --hash=sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b \ @@ -5916,9 +5931,9 @@ typer==0.12.5 \ # docling # docling-core # fastapi-mcp -types-cffi==2.0.0.20260429 \ - --hash=sha256:6a4237bfdbd50e4d0726929070d8b9983bde541726a5a6fe0e8e24e78c1b3826 \ - --hash=sha256:afe7d9777a2921139623af0b94647637a5bd0b938b77ec125e5e5e068a1727bd +types-cffi==2.0.0.20260508 \ + --hash=sha256:746b081b4bf84f9d8855c517a67c2dff717f3c18657fcff8e9c251fb5778f311 \ + --hash=sha256:d094065daf4edcfbdd3e11c37d2fa9511eaf7c509da7a9d9573c276398a8e745 # via types-pyopenssl types-protobuf==3.19.22 \ --hash=sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab \ @@ -5926,25 +5941,25 @@ types-protobuf==3.19.22 \ # via # feast (pyproject.toml) # mypy-protobuf -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ --hash=sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54 # via types-redis -types-python-dateutil==2.9.0.20260408 \ - --hash=sha256:473139d514a71c9d1fbd8bb328974bedcb1cc3dba57aad04ffa4157f483c216f \ - --hash=sha256:8b056ec01568674235f64ecbcef928972a5fac412f5aab09c516dfa2acfbb582 +types-python-dateutil==2.9.0.20260508 \ + --hash=sha256:596a6d63d81f587bf04c8254fb78df9d2344e915ce67948d7400512e3a6206d5 \ + --hash=sha256:bfc6fd2d81aa86e5ac97206a64304f6bd247426eedbca9b98619bbc48c6a1c10 # via feast (pyproject.toml) -types-pytz==2026.1.1.20260408 \ - --hash=sha256:89b6a34b9198ea2a4b98a9d15cbca987053f52a105fd44f7ce3789cae4349408 \ - --hash=sha256:c7e4dec76221fb7d0c97b91ad8561d689bebe39b6bcb7b728387e7ffd8cde788 +types-pytz==2026.2.0.20260506 \ + --hash=sha256:58ab5307c20885f9bcd42ff106616eb0e32710791f8cbdc770aee2ea0c4f01fb \ + --hash=sha256:fc6a0de6a1b7da82a748fb4065e152372dac3016559cb1eef5e8af1e338eb627 # via feast (pyproject.toml) -types-pyyaml==6.0.12.20260408 \ - --hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \ - --hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384 +types-pyyaml==6.0.12.20260510 \ + --hash=sha256:09c1f1cb65a6eebea1e2e51ccf4918b8288e152909609a35cdb0d805efd125ad \ + --hash=sha256:3492eb9ba4d9d833473214c4d5736cccf5f37d93f5854059721e1c84f785309d # via feast (pyproject.toml) types-redis==4.6.0.20241004 \ --hash=sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e \ @@ -5954,15 +5969,15 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (pyproject.toml) -types-setuptools==82.0.0.20260408 \ - --hash=sha256:036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3 \ - --hash=sha256:ece0a215cdfa6463a65fd6f68bd940f39e455729300ddfe61cab1147ed1d2462 +types-setuptools==82.0.0.20260508 \ + --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ + --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e # via # feast (pyproject.toml) # types-cffi -types-tabulate==0.10.0.20260408 \ - --hash=sha256:2b19d193603d38c34645de53c0c1087e2364487d518d4a2f44268db2366723cc \ - --hash=sha256:903d62fdf7e5a0ff659fd5d629df716232f7658c6d30e98f0374488d06ffacf4 +types-tabulate==0.10.0.20260508 \ + --hash=sha256:8e51f159e8b24976849706ae2ed1dc9adba8ebbd080b17e494ebb66a8cc92c74 \ + --hash=sha256:b1e1a2d0456fbd655a71690b09a7aaeffdf2978d32049184ea436492aa51d20a # via feast (pyproject.toml) types-urllib3==1.26.25.14 \ --hash=sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f \ @@ -6036,93 +6051,91 @@ tzlocal==5.3.1 \ # via # great-expectations # trino -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # feast (pyproject.toml) # botocore @@ -6316,9 +6329,9 @@ watchfiles==1.1.1 \ --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf # via uvicorn -wcwidth==0.6.0 \ - --hash=sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad \ - --hash=sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159 +wcwidth==0.7.0 \ + --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ + --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 # via prompt-toolkit webcolors==25.10.0 \ --hash=sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d \ diff --git a/sdk/python/requirements/py3.10-minimal-requirements.txt b/sdk/python/requirements/py3.10-minimal-requirements.txt index bc2c15b8eac..9a03493a6ab 100644 --- a/sdk/python/requirements/py3.10-minimal-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-requirements.txt @@ -161,6 +161,39 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 @@ -178,9 +211,9 @@ attrs==26.1.0 \ # aiohttp # jsonschema # referencing -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -442,56 +475,56 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (pyproject.toml) -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # google-auth # pyjwt @@ -501,9 +534,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq @@ -722,9 +755,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -736,9 +769,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -748,17 +781,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -810,15 +843,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -888,6 +921,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -907,9 +941,9 @@ grpcio-status==1.62.3 \ --hash=sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485 \ --hash=sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8 # via google-api-core -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1089,9 +1123,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1127,105 +1161,105 @@ kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee # via feast (pyproject.toml) -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ --hash=sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 # via partd -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -1318,9 +1352,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1594,51 +1628,51 @@ multidict==6.7.1 \ # aiobotocore # aiohttp # yarl -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -1807,155 +1841,152 @@ platformdirs==4.9.6 \ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 # via snowflake-connector-python -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.34.1 \ + --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ + --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ + --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ + --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ + --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ + --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ + --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ + --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c # via # feast (pyproject.toml) # google-api-core @@ -2001,9 +2032,9 @@ psycopg[c, pool]==3.2.5 \ psycopg-c==3.2.5 \ --hash=sha256:57ad4cfd28de278c424aaceb1f2ad5c7910466e315dfe84e403f3c7a0a2ce81b # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg pyarrow==24.0.0 \ --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ @@ -2080,140 +2111,140 @@ pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi # fastapi-mcp # mcp # pydantic-settings -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # fastapi-mcp # mcp @@ -2242,9 +2273,9 @@ pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via feast (pyproject.toml) -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ @@ -2263,13 +2294,13 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via # pandas # snowflake-connector-python @@ -2362,9 +2393,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # fastapi-mcp @@ -2528,32 +2559,32 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2624,13 +2655,13 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via ibis-framework -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp starlette==1.0.0 \ --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ @@ -2702,9 +2733,9 @@ tomli==2.4.1 \ # via # fastapi-mcp # mypy -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -2719,17 +2750,17 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc # via fastapi-mcp -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2771,89 +2802,87 @@ tzdata==2026.2 \ # via # ibis-framework # pandas -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt index c3116ec9f68..52773857dcd 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt @@ -4,6 +4,39 @@ # # pybuild-deps compile --generate-hashes --output-file=sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt sdk/python/requirements/py3.10-minimal-sdist-requirements.txt # +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 @@ -265,9 +298,9 @@ gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf # via gitpython -gitpython==3.1.49 \ - --hash=sha256:024b0422d7f84d15cd794844e029ffebd4c5d42a7eb9b936b458697ef550a02c \ - --hash=sha256:42f9399c9eb33fc581014bedd76049dfbaf6375aa2a5754575966387280315e1 +gitpython==3.1.50 \ + --hash=sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc \ + --hash=sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9 # via pymilvus hatch-fancy-pypi-readme==25.1.0 \ --hash=sha256:9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045 \ @@ -402,97 +435,97 @@ libcst==1.8.6 \ --hash=sha256:f729c37c9317126da9475bdd06a7208eb52fcbd180a6341648b45a56b4ba708b \ --hash=sha256:fea5c7fa26556eedf277d4f72779c5ede45ac3018650721edd77fd37ccd4a2d4 # via pyarrow -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -585,22 +618,23 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.13.1 \ - --hash=sha256:001741c6cff56aa8ea59a0d78ae990c0550d0e3e82b00b683eedb4158a8ef7e6 \ - --hash=sha256:01c845825c917c07c1d0b2c9032c59c16a7d383d1e649a46481d3e5693c2750f \ - --hash=sha256:2839024dcd65776abb4759e5bca29941971e095574162a4d335191da4be9ff24 \ - --hash=sha256:3da18cccf2f683c0977bff9146a0908d6ffce836d600665736ac01679f588cb9 \ - --hash=sha256:416e4e01cb88b798e606ee43929df897e42c1647b722ef68283816cca99a8742 \ - --hash=sha256:6b1e5916a253243e8f5f9e847b62bbc98420eec48c9ce2e2e8724c6da89d359b \ - --hash=sha256:72888e87819ce546d0d2df900e4b385e4ef299077d92ee37b48923a5602dae94 \ - --hash=sha256:98b5fcf1a186c217830a8295ecc2989c6b1cf50945417adfc15252107b9475b7 \ - --hash=sha256:9a87ff3b8e4d1c6eac33ebfe8e261e8236516d98d45c0323550621819b5a1a2f \ - --hash=sha256:a2017d2281203d0c6570240e7d746564d766d756105823b7de68bda6ae722711 \ - --hash=sha256:c1490584f3c70af45466ee99065b49e6657ebdccac6b10571bb44681309c9396 \ - --hash=sha256:c6a720b252c99de072922dbe4432ab19662b6f80045b0355fec23bdfccb450da \ - --hash=sha256:dc91031e0619c1e28730279ef9ee5f106c9b9ec806b013f888676b242f892eb7 \ - --hash=sha256:f69093ed4a0e6464e52a7fc26d714f859ce15630ec8070743398c6bf41f38a9e +maturin==1.13.3 \ + --hash=sha256:0ef257e692cc756c87af5bea95ddfe7d3ac49d3376a7a87f728d63f06e7b6f8b \ + --hash=sha256:1cc0a110b224ca90406b668a3e3c1f5a515062e59e26292f6dbaf5fd4909c6f3 \ + --hash=sha256:2389fe92d017cea9d94e521fa0175314a4c52f79a1057b901fbc9f8686ef7d0b \ + --hash=sha256:3cc13929ca82aefa4adbf0f2c35419369796213c6fb0eb24e914945f50ef5d8c \ + --hash=sha256:3db93337ed97e60ffc878aa8b493cd7ae44d3a5e1a37256db3a4491f57565018 \ + --hash=sha256:4667ef609ab446c1b5e0bfe4f9fb99699ab6d8548433f8d1a684256e0b67217f \ + --hash=sha256:49fd6ab08da28098ccf37afca24cdba72376ba9c1eedf9dd25ff82ed771961ff \ + --hash=sha256:4cd478e6e4c56251e48ed079b8efd55b30bc5c09cf695a1bdafaeb582ee735a0 \ + --hash=sha256:53b08bd075649ce96513ad9abf241a43cb685ed6e9e7790f8dbc2d66e95d8323 \ + --hash=sha256:771e1e9e71a278e56db01552e0d1acfd1464259f9575b6e72842f893cd299079 \ + --hash=sha256:a2675e25f313034ae6f57388cf14818f87d8961c4a96795287f3e155f59beb11 \ + --hash=sha256:b6741d7bf4af97da937528fd1e523c6ab54f53d9a21870fa735d6e67fd88e273 \ + --hash=sha256:c00ea6428dea17bf616fe93770837634454b28c2de1a876e42ef8036c616079a \ + --hash=sha256:def4a435ea9d2ee93b18ba579dc8c9cf898889a66f312cd379b5e374ec3e3ad6 # via + # ast-serialize # cryptography # pydantic-core # rpds-py @@ -713,9 +747,9 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -poetry-core==2.3.2 \ - --hash=sha256:20cb71be27b774628da9f384effd9183dfceb53bcef84063248a8672aa47031f \ - --hash=sha256:23df641b64f87fbb4ce1873c1915a4d4bb1b7d808c596e4307edc073e68d7234 +poetry-core==2.4.0 \ + --hash=sha256:4305848477da00272bebd3f615bbec87f64bd117cdb858ab660b626a06a9d96c \ + --hash=sha256:4e8c7496cf797998ffc493f2e23eba4b038c894c08eadacdcdf688945de6b43a # via # aiohappyeyeballs # dunamai @@ -859,25 +893,16 @@ setuptools-scm==10.0.5 \ # tqdm # typeguard # ujson + # urllib3 # zipp setuptools-scm==7.1.0 \ --hash=sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27 \ --hash=sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e # via python-dateutil -setuptools-scm==9.2.2 \ - --hash=sha256:1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57 \ - --hash=sha256:30e8f84d2ab1ba7cb0e653429b179395d0c33775d54807fc5f1dd6671801aef7 - # via - # hatch-vcs - # urllib3 smmap==5.0.3 \ --hash=sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c \ --hash=sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f # via gitdb -tomli==2.0.2 \ - --hash=sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38 \ - --hash=sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed - # via setuptools-scm tomli==2.4.1 \ --hash=sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853 \ --hash=sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe \ @@ -943,21 +968,21 @@ tomli==2.4.1 \ # vcs-versioning # versioneer # yarl -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via uv-dynamic-versioning -trove-classifiers==2026.4.28.13 \ - --hash=sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8 \ - --hash=sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676 +trove-classifiers==2026.5.7.17 \ + --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ + --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==82.0.0.20260408 \ - --hash=sha256:036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3 \ - --hash=sha256:ece0a215cdfa6463a65fd6f68bd940f39e455729300ddfe61cab1147ed1d2462 +types-setuptools==82.0.0.20260508 \ + --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ + --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1045,7 +1070,6 @@ setuptools==80.10.2 \ # pathspec # pluggy # prometheus-client - # propcache # proto-plus # psutil # psycopg @@ -1091,6 +1115,7 @@ setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb # via + # propcache # python-dateutil # types-pymysql # types-setuptools diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt index 7248630c0c1..a998ead874d 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt @@ -165,6 +165,39 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 @@ -186,9 +219,9 @@ babel==2.18.0 \ --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ --hash=sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35 # via sphinx -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -454,56 +487,56 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (pyproject.toml) -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # google-auth # pyjwt @@ -579,9 +612,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq @@ -810,9 +843,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -824,9 +857,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -836,17 +869,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -898,15 +931,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -1037,6 +1070,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -1056,9 +1090,9 @@ grpcio-status==1.62.3 \ --hash=sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485 \ --hash=sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8 # via google-api-core -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1253,9 +1287,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1297,105 +1331,105 @@ kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee # via feast (pyproject.toml) -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ --hash=sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 # via partd -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -1488,9 +1522,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1766,51 +1800,51 @@ multidict==6.7.1 \ # aiobotocore # aiohttp # yarl -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -2003,155 +2037,152 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.34.1 \ + --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ + --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ + --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ + --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ + --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ + --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ + --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ + --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c # via # feast (pyproject.toml) # google-api-core @@ -2197,9 +2228,9 @@ psycopg[c, pool]==3.2.5 \ psycopg-c==3.2.5 \ --hash=sha256:57ad4cfd28de278c424aaceb1f2ad5c7910466e315dfe84e403f3c7a0a2ce81b # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg pyarrow==24.0.0 \ --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ @@ -2280,140 +2311,140 @@ pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi # fastapi-mcp # mcp # pydantic-settings -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # fastapi-mcp # mcp @@ -2443,9 +2474,9 @@ pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via feast (pyproject.toml) -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python pyproject-metadata==0.11.0 \ --hash=sha256:85bbecca8694e2c00f63b492c96921d6c228454057c88e7c352b2077fcaa4096 \ @@ -2468,13 +2499,13 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via # pandas # snowflake-connector-python @@ -2567,9 +2598,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # fastapi-mcp @@ -2747,32 +2778,32 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2871,13 +2902,13 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via ibis-framework -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp starlette==1.0.0 \ --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ @@ -2956,9 +2987,9 @@ tomli==2.4.1 \ # setuptools-scm # sphinx # vcs-versioning -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -2973,13 +3004,13 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -trove-classifiers==2026.4.28.13 \ - --hash=sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8 \ - --hash=sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676 +trove-classifiers==2026.5.7.17 \ + --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ + --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 # via hatchling -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ @@ -2989,9 +3020,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (pyproject.toml) -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -3036,89 +3067,87 @@ tzdata==2026.2 \ # via # ibis-framework # pandas -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 84fd434e171..d487d7d9ec1 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -14,15 +14,48 @@ anyio==4.13.0 \ # via # starlette # watchfiles +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 # via # jsonschema # referencing -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) certifi==2026.4.22 \ --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ @@ -194,9 +227,9 @@ fsspec==2026.4.0 \ --hash=sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 \ --hash=sha256:301d8ac70ae90ef3ad05dcf94d6c3754a097f9b5fe4667d2787aa359ec7df7e4 # via dask -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -249,9 +282,9 @@ httptools==0.7.1 \ --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 # via uvicorn -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # requests @@ -271,97 +304,97 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -567,51 +600,51 @@ mmh3==5.2.1 \ --hash=sha256:fceef7fe67c81e1585198215e42ad3fdba3a25644beda8fbdaf85f4d7b93175a \ --hash=sha256:fd96476f04db5ceba1cfa0f21228f67c1f7402296f0e73fee3513aa680ad237b # via feast (pyproject.toml) -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -750,9 +783,9 @@ pathspec==1.1.1 \ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 # via mypy -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) protobuf==7.34.1 \ --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ @@ -841,133 +874,133 @@ pyarrow==24.0.0 \ # via # feast (pyproject.toml) # dask -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ @@ -985,9 +1018,9 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via uvicorn -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via pandas pyyaml==6.0.3 \ --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ @@ -1073,9 +1106,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via feast (pyproject.toml) rpds-py==0.30.0 \ --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ @@ -1340,9 +1373,9 @@ tqdm==4.67.3 \ --hash=sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb \ --hash=sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf # via feast (pyproject.toml) -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1371,9 +1404,9 @@ tzdata==2026.2 \ --hash=sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10 \ --hash=sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7 # via pandas -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index d6d91e0f371..a712a60a132 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -255,9 +255,9 @@ attrs==26.1.0 \ # jsonschema # openlineage-python # referencing -azure-core==1.40.0 \ - --hash=sha256:7f3ea02579b1bb1d34e45043423b650621d11d7c2ea3b05e5554010080b78dfd \ - --hash=sha256:ecf5b6ddf2564471fae9d576147b7e77a4da285958b2d9f4fd6c3af104f3e9d7 +azure-core==1.41.0 \ + --hash=sha256:522b4011e8180b1a3dcd2024396a4e7fe9ac37fb8597db47163d230b5efe892d \ + --hash=sha256:f46ff5dfcd230f25cf1c19e8a34b8dc08a337b2503e268bb600a16c00db8ad5a # via # azure-identity # azure-storage-blob @@ -346,9 +346,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -657,82 +657,68 @@ click==8.3.3 \ # ray # typer # uvicorn -clickhouse-connect==0.15.1 \ - --hash=sha256:08df7857ecd2e345abbbdfc54d80fa060732cf75c953940355140af9a73b730a \ - --hash=sha256:0bef871fb9803ae82b4dc1f797b6e784de0a4dec351591191a0c1a6008548284 \ - --hash=sha256:158325a06978f91a182967341188502a0761447d1e13ffa775cf017def1a3d9e \ - --hash=sha256:167e674dff8ac12be7796d93190b6fe9097c042940b3c41d87fe4d85970be27d \ - --hash=sha256:1ef6922c8887a8b0db49a81823ef031807c971f628a363f6d53b030abaefd589 \ - --hash=sha256:1ff5d10c6e49d36ee6941f52c4233f2bfb4198e9c726fed224f725974a667e37 \ - --hash=sha256:24cdfe9b486c8f2e66f5f51b1f322d89d9eb4df29d9ebb2fa19b553065651e85 \ - --hash=sha256:265f1660e8db5006ca32e8894e6c6cc984b343d96171ab0580b2104084b0fc08 \ - --hash=sha256:2e19c9daabe4c24027006e903d0ba3f2a6b2e0703af37b2536335ac4558d541e \ - --hash=sha256:2e52e20190004ed4578b803b1d5f2097c336fafec41b2cc0d490b5a4964c1284 \ - --hash=sha256:371a201ee128ba2b47bd05e2f184b0d20fb78171d27441a6fb1183f4fcc9316e \ - --hash=sha256:3b456d469db994b188bb0b5afa373e8f2e5e2bf41a70a736b9ed2485a976e9ae \ - --hash=sha256:3cf1b78abf7e1b97ab279a2b244357c40657d2d8504ff3f713c6577cd0550b38 \ - --hash=sha256:46bcebd00aff52ea5f7433e9cee1157b411dba9187f6677a18378c799c27c8aa \ - --hash=sha256:4bf70933ab860bd2f0a872db624603706bed400c915c7aeef382956cf8ebbdf3 \ - --hash=sha256:4f87d283399cbda676c8765605bf60dc6559df6fd38cbb9ea07048a4b34dda26 \ - --hash=sha256:5046cb96d1c344c35198fe072a21ce3f273754df3e58fd0a6222c9a1aff72e75 \ - --hash=sha256:5462bad97d97919a4ed230e2ef28d0b76bec0354a343218647830aac7744a43b \ - --hash=sha256:57ad606e878fd284242713449217a0c475fde6b9b7ab59e7ba9e9c388431f004 \ - --hash=sha256:5ab0d019c18d9d63b228ce2e45768f6c65fd27067d1127ab3e558c35c90f52ef \ - --hash=sha256:5de299ada0f7eb9090bb5a6304d8d78163d4d9cc8eb04d8f552bfb82bafb61d5 \ - --hash=sha256:60aa8c9c775d22db324260265f4c656f803fbc71de9193ef83cf8d8d0ef6ab9a \ - --hash=sha256:691cbf6d3dd16988feb75d43942bb212f50f0cbec284eb249e0cd33ebf74ad09 \ - --hash=sha256:693a03e44256886ac5dd26dc708833913157ec72e3b3a44fb89fd5fc202f85dc \ - --hash=sha256:6f9619f9e8885886039e451c2e22d3fb9bd2e95bc64bbf4ebe6c0a50875785f4 \ - --hash=sha256:7586fae639db65d6ff9f7d539aaac04ebd8604657751d78f6b45e7f971be83f3 \ - --hash=sha256:76699fb79c0de182f915d96a08c15afc19755d9d0e9c93411abb0e4b539c7166 \ - --hash=sha256:7a590116037ae56fab339b625f317d7c0a15bbede5f2f206ce1e55b1a2385e90 \ - --hash=sha256:82e60e108d78e32d58a0f21570b02d3baad67ccbad6482eeb79d74a616d8a5ad \ - --hash=sha256:83d881bf786b05489ccf96f07972b9c28638b513f3e064d39987d837749b35e3 \ - --hash=sha256:859c718cb93780dd681f75d59ceaf4415915fa9617a5ba2de6105e291d6df3ad \ - --hash=sha256:873d8f74eaec141f40ae060318c32353da94fdd4601f925bfd52426f3ddcd689 \ - --hash=sha256:8bb70307589099c67dfe9a973998491bc82c1af9040560b5ebab799721bb197d \ - --hash=sha256:9610ef6ff653f8a030f50e39cdeb1a39bea925c48f9196d787ea4b9f5eb1c8f0 \ - --hash=sha256:99d55aab64fdeb53d74c16d2c46ae5491e90aa37ba55c24884a68a869418ee8e \ - --hash=sha256:a1266a52bf61f0420630f625c5ac87bc2d095f08321820546300a699d4300ba3 \ - --hash=sha256:a326e2f5518d6a9d71f0895d50a3ccd8c4d5e3abb625f39330512ff3c45c6731 \ - --hash=sha256:a9d1e12bf86cd96626f74d21e3ac237abcda105f55cd2e78d139197d35f86209 \ - --hash=sha256:aa9890507aac52a8a5363813bb315b6867e86a97ffa08576cb934603f5bc0216 \ - --hash=sha256:ae24e4e7b10ff140c9041d9bdb2c08781145d844c7486c2661d223ededce7634 \ - --hash=sha256:aeb09a6f8585f3bd4d8c5bead38f3821c076e0bca08c474a7b9039732a6e2e9a \ - --hash=sha256:aed10f7615d0c72457d21ace9b59bfcbea0293188af2ffa3f3c2942d36974e7c \ - --hash=sha256:b2f5174fc6001a1555fc3cb565f3b727e1b786d572df0b30d14929ae13bd3542 \ - --hash=sha256:b692998e6dea344a4a2d7c34c129379767a068f234e1cb721ba27f1f023c70ee \ - --hash=sha256:b6d107b5f964af97f25a0d1bfd59fe3510f2a646c87ad4f9ab9014bb0c66aa1c \ - --hash=sha256:b8236c7dd675ed13d5e96f1f9126eeb711e8c266e4a0476ebc32be8a17decb32 \ - --hash=sha256:c12d9f2b2fc57adaf5ea267804f00e520771794641227ed5285e38fdf36557a6 \ - --hash=sha256:cd41ebe8b7f1c2579b22bbc414a800f3f8f5c843928019aca27c81592f70c5a7 \ - --hash=sha256:cdeee50fb2822e4f886d9676c5979b9e6f93ee9159b1aa1b7d62e71bcf7ae551 \ - --hash=sha256:d0dad989ae193c7261b12c9829f219fc1cb1ae9cad380c35cfe489f139c03ee9 \ - --hash=sha256:d10e8f42bafa12d43dd280d157af1ca5a1743e0ca94e61de94c1d00cb1b2da2b \ - --hash=sha256:d3fca3e0781b664556690decc788e7d25691043bf67a0d241e9c29233a2990d5 \ - --hash=sha256:d6e98c0cf53db3b24dc0ff9f522fcf13205b1d191c632567d1744fbd4671741f \ - --hash=sha256:d75324bb3a611eeb8c22b7fdda7c2cbc6ddbcc3871c65624b97f219430ded282 \ - --hash=sha256:df93fa024d6ed46dbc3182b6202180be4cf2bbe9c331dcb21f85963b1b3fd1e5 \ - --hash=sha256:e1a157205efd47884c22bfe061fc6f8c9aea844929ee755c47b446093805d21a \ - --hash=sha256:e307ea69dc2a6e6d942d2799ee8bfe20c99019ddf95121cbeaf7efbb97f79f09 \ - --hash=sha256:e702b77720ae6fd501e5a52262518dddb6c705fbc122bca4567694fb0bab401f \ - --hash=sha256:e88a31bbd9da7f4b49de39d21e8c93c8fbb5cf487071e935af0eba884681df00 \ - --hash=sha256:e911cffe6a9d9d27ccf91b8060086254c152c48ade47c1de3fc8e91d22cdd143 \ - --hash=sha256:eb595e820e46ccdffd702d23e4d1d1efadaa60db81a3da53e693ab055d8a3b1a \ - --hash=sha256:ecf244f91fc72e5dfe83652baf69a7ced414e9147288138897bc4376ebd6f8ac \ - --hash=sha256:f03814b6e6a72892ce913eaef3931e6d011068480e9c19b80e5c640fdac55109 \ - --hash=sha256:f13c34ad1ddb0d1efc92bc4039b50b534da94c51bbce25e61484bfd28b231cb5 \ - --hash=sha256:f25df0298ecea9c29768ab1267ff1186aacfff0cbd75ff3b588644043f313cd6 \ - --hash=sha256:f2aaf5fc0bb3098c24f0d8ca7e4ecbe605a26957481dfca2c8cef9d1fad7b7ca \ - --hash=sha256:fa01fdb92db6bf72cb9509eecd0a0057a4558a4f40c02eebffbc2d61b644620e +clickhouse-connect==1.0.0 \ + --hash=sha256:03ab4bda888575a2ea882ad4ed05bf9f5f15bb621209f6a4045231e3f26fedf7 \ + --hash=sha256:046f79215ebdd62192cc36e4d81b549570ca46e5b61e107b0d54cf7855b2ffff \ + --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ + --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ + --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ + --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ + --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ + --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ + --hash=sha256:20b76e54c9ea77e86c47b3194f1a9ff1833bd6fa34cb81bfcec621eff94ed033 \ + --hash=sha256:250826f2c3a8466faa51e03902f4c989be5da6f2ab6f74928afadd19ce1e2336 \ + --hash=sha256:29185891d5de03f60ff9da37dbe1e1e44bed8ef252d0d1281ddf3a450dfe5023 \ + --hash=sha256:295e6ff6e3f7fe71c28b1753967d8669ce12d924486150c74c892d8f67cba4d9 \ + --hash=sha256:298e7816ae3ecb7935bf1fe3fb8b8e9eb639e4e14516b87f01ef5a1c223b992c \ + --hash=sha256:2ff97a4a607eb525d9835c939a05ff63f0d3127f33afe1ed78b05d928f49c16c \ + --hash=sha256:320f0c53c4cb8b06732d875cabd35a357992a9e0fcf9f4a18b631ea7ce377ef1 \ + --hash=sha256:3222ae6bf39930a34ff4a483c6b34a1f3dab02d6743428b0383f4d47af7a48db \ + --hash=sha256:34557e29c4dfa0df1f6e26d053d6af1ae8d1444f4bd44a5c647dc7dd3bea22c0 \ + --hash=sha256:345838366b453a8c9c38366ac54493c2fb325982967d7bd0cde3ff619b66d9b7 \ + --hash=sha256:39315f2096809a08cdc75850b52a3675a0639525bbd634b87c4f188bfd875200 \ + --hash=sha256:40f9ade34a50ef2edfa0007d7b300a72fb4be239a0581b5ffc46f165b6a3d1a6 \ + --hash=sha256:444a735bf44390cbd0a81d84d3b20bd0c36084d2a8b9d030bc41b938c3dff1d1 \ + --hash=sha256:46b6dbabbda32e7e717b2732585ffbccf11815ad36987af57a068a66d1a0292c \ + --hash=sha256:4959f9b8915d5a64193523b9b25d7446c583befb5e339cbf45dba68eb2c4abbb \ + --hash=sha256:4964db35f9352452861e0d4d93ea4e7f41c77889e6f78092fe6c6cae5e09f478 \ + --hash=sha256:53f1f9cd31b1af371340f39923a08ba0aef57a7a85ef4a27376107f376c1efc3 \ + --hash=sha256:56a0d59bc1639827ac7ad14158ba557e5287f6cee1b6c942fc1747be12cbcc07 \ + --hash=sha256:5ce486901a4042f6fc6a76ad2961bf5be7c4d970fabecf99113f6cb49d936303 \ + --hash=sha256:6977afeabca17cdd3bc11215902f20e850eb1d71451d93eaee8ac26068a84af4 \ + --hash=sha256:715f50937fcafa849c53314d443b55fb5b04b938f2402ec135c41e515a8312af \ + --hash=sha256:77a5ce7880dea5deadd53d189cf690bdee14513c055343104f5ad3ddcfe25025 \ + --hash=sha256:80c455d0ce5d93c4a744911dcbfb37124c009a826727770fd86f21a47d654333 \ + --hash=sha256:8c4f5c8fa36b605435b32efea4f40ce11babb5f5afcec1e00f6a6cce81f81000 \ + --hash=sha256:8e74375b92cfa94cb4c944a393a027af5c5ed562fc6b862baf6288696bc48688 \ + --hash=sha256:965a496c770d17d061115ad096d2c966af3cee40c167b035afd0f3bd8037327b \ + --hash=sha256:98a3efce3af5308ba3ed140c20a4dc6bf175736e2803b5cb75838ee36365a4eb \ + --hash=sha256:9a2612b246bb9aa69419b8d24732df50e80579f0c43dea97db457cc15b39bfb2 \ + --hash=sha256:9c64f7a26f97eeca472dab6ca9baddc1e36fae1d1c244541926ada4fad14a99b \ + --hash=sha256:9ec2a93d353415951ab10da943f30f0038acc0a1ff82b3253d82a106f3065f34 \ + --hash=sha256:a763c1b1c7977fcab59d2d1d2f249a5231abf44f8a3aa5b0df06bb849b5d0f65 \ + --hash=sha256:a9e780a6d45025469d4e9cea5fec8b0ee55ef76bae867b2f255a106c0c720133 \ + --hash=sha256:ab0a095afd9a6353872a51304c795949fb31f8fdf7519a0f27d7c0fb255983d7 \ + --hash=sha256:aebf884c1aed8cf857d3323ac041e1cf636a865d231dc241543d9a68e82b553d \ + --hash=sha256:bbc6000c1c297b969b6d0a097e84a7bfa31931b0512e4eb1674c6c6d158ade0b \ + --hash=sha256:d84b8b799c71a88a600ca0455fed2d2edb320f510b04969bf04ca6f4807ab4fc \ + --hash=sha256:dae66adb575b7eb9626d84edad4481d5c3d93ca680766c3f1891c13694913bee \ + --hash=sha256:de4a5d1ffa12127f89b5308f95c6ef5da9b1c7f5d133a7d540c364bf259351fc \ + --hash=sha256:e7cfb81c08685ad721b30cb702324de8763f7e8ff8aa653d1c7b602363524cd9 \ + --hash=sha256:ede49d49101023f45d8cfb985719a9c20cf40ff4c60a9f895d48c17dac278448 \ + --hash=sha256:ef3b69da678fe40056f585c0a788356b6eeda04b751a3837ffe75340155ecfdb \ + --hash=sha256:ef8ba83257515fd38a7007a9ae1e8b70bf38d38f4bba34c3b7660af648f88cd2 \ + --hash=sha256:f61a6d42228694cbfcdf806061e752fc88511926389a271987d61c360029b72f \ + --hash=sha256:f8730073bc1adcee13b338b347f68fa0ec7b2460aecce227be2d5abb01ea7b8c \ + --hash=sha256:fc0801be2505b2e3d3b0337c875a624eab61912b8fd55218424ad52a69deab10 # via feast (pyproject.toml) cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a # via dask -codeflare-sdk==0.36.0 \ - --hash=sha256:5dfba97aef0c2a83437682b960a9c323d54e459d949e24729d00d330b00b96a2 \ - --hash=sha256:cbac45169916e63198d214492ed1c17c49ee27d3e98303cff59e2170266a441d +codeflare-sdk==0.37.0 \ + --hash=sha256:2106118d9341db7e329da59f296bc635c08e365d4a644013bb9a55ce38c54da5 \ + --hash=sha256:a5f86b9541a3ef2498bc920465b0e106c4e58bfa2004d14ff177f83761afd469 # via feast (pyproject.toml) colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ @@ -816,164 +802,164 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (pyproject.toml) -coverage[toml]==7.13.5 \ - --hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \ - --hash=sha256:02ca0eed225b2ff301c474aeeeae27d26e2537942aa0f87491d3e147e784a82b \ - --hash=sha256:03ccc709a17a1de074fb1d11f217342fb0d2b1582ed544f554fc9fc3f07e95f5 \ - --hash=sha256:0428cbef5783ad91fe240f673cc1f76b25e74bbfe1a13115e4aa30d3f538162d \ - --hash=sha256:04690832cbea4e4663d9149e05dba142546ca05cb1848816760e7f58285c970a \ - --hash=sha256:0590e44dd2745c696a778f7bab6aa95256de2cbc8b8cff4f7db8ff09813d6969 \ - --hash=sha256:0672854dc733c342fa3e957e0605256d2bf5934feeac328da9e0b5449634a642 \ - --hash=sha256:084b84a8c63e8d6fc7e3931b316a9bcafca1458d753c539db82d31ed20091a87 \ - --hash=sha256:0b67af5492adb31940ee418a5a655c28e48165da5afab8c7fa6fd72a142f8740 \ - --hash=sha256:0cd9ed7a8b181775459296e402ca4fb27db1279740a24e93b3b41942ebe4b215 \ - --hash=sha256:0cef0cdec915d11254a7f549c1170afecce708d30610c6abdded1f74e581666d \ - --hash=sha256:0e223ce4b4ed47f065bfb123687686512e37629be25cc63728557ae7db261422 \ - --hash=sha256:0e3c426ffc4cd952f54ee9ffbdd10345709ecc78a3ecfd796a57236bfad0b9b8 \ - --hash=sha256:0ecf12ecb326fe2c339d93fc131816f3a7367d223db37817208905c89bded911 \ - --hash=sha256:10a0c37f0b646eaff7cce1874c31d1f1ccb297688d4c747291f4f4c70741cc8b \ - --hash=sha256:145ede53ccbafb297c1c9287f788d1bc3efd6c900da23bf6931b09eafc931587 \ - --hash=sha256:1b11eef33edeae9d142f9b4358edb76273b3bfd30bc3df9a4f95d0e49caf94e8 \ - --hash=sha256:1b88c69c8ef5d4b6fe7dea66d6636056a0f6a7527c440e890cf9259011f5e606 \ - --hash=sha256:258354455f4e86e3e9d0d17571d522e13b4e1e19bf0f8596bcf9476d61e7d8a9 \ - --hash=sha256:259b69bb83ad9894c4b25be2528139eecba9a82646ebdda2d9db1ba28424a6bf \ - --hash=sha256:2aa055ae1857258f9e0045be26a6d62bdb47a72448b62d7b55f4820f361a2633 \ - --hash=sha256:2d3807015f138ffea1ed9afeeb8624fd781703f2858b62a8dd8da5a0994c57b6 \ - --hash=sha256:301e3b7dfefecaca37c9f1aa6f0049b7d4ab8dd933742b607765d757aca77d43 \ - --hash=sha256:32ca0c0114c9834a43f045a87dcebd69d108d8ffb666957ea65aa132f50332e2 \ - --hash=sha256:34b02417cf070e173989b3db962f7ed56d2f644307b2cf9d5a0f258e13084a61 \ - --hash=sha256:356e76b46783a98c2a2fe81ec79df4883a1e62895ea952968fb253c114e7f930 \ - --hash=sha256:35a31f2b1578185fbe6aa2e74cea1b1d0bbf4c552774247d9160d29b80ed56cc \ - --hash=sha256:380e8e9084d8eb38db3a9176a1a4f3c0082c3806fa0dc882d1d87abc3c789247 \ - --hash=sha256:3ad050321264c49c2fa67bb599100456fc51d004b82534f379d16445da40fb75 \ - --hash=sha256:3e1bb5f6c78feeb1be3475789b14a0f0a5b47d505bfc7267126ccbd50289999e \ - --hash=sha256:3f4818d065964db3c1c66dc0fbdac5ac692ecbc875555e13374fdbe7eedb4376 \ - --hash=sha256:460cf0114c5016fa841214ff5564aa4864f11948da9440bc97e21ad1f4ba1e01 \ - --hash=sha256:48c39bc4a04d983a54a705a6389512883d4a3b9862991b3617d547940e9f52b1 \ - --hash=sha256:4b59148601efcd2bac8c4dbf1f0ad6391693ccf7a74b8205781751637076aee3 \ - --hash=sha256:4d2afbc5cc54d286bfb54541aa50b64cdb07a718227168c87b9e2fb8f25e1743 \ - --hash=sha256:505d7083c8b0c87a8fa8c07370c285847c1f77739b22e299ad75a6af6c32c5c9 \ - --hash=sha256:52f444e86475992506b32d4e5ca55c24fc88d73bcbda0e9745095b28ef4dc0cf \ - --hash=sha256:5b13955d31d1633cf9376908089b7cebe7d15ddad7aeaabcbe969a595a97e95e \ - --hash=sha256:5ec4af212df513e399cf11610cc27063f1586419e814755ab362e50a85ea69c1 \ - --hash=sha256:60365289c3741e4db327e7baff2a4aaacf22f788e80fa4683393891b70a89fbd \ - --hash=sha256:631efb83f01569670a5e866ceb80fe483e7c159fac6f167e6571522636104a0b \ - --hash=sha256:6697e29b93707167687543480a40f0db8f356e86d9f67ddf2e37e2dfd91a9dab \ - --hash=sha256:66a80c616f80181f4d643b0f9e709d97bcea413ecd9631e1dedc7401c8e6695d \ - --hash=sha256:67e9bc5449801fad0e5dff329499fb090ba4c5800b86805c80617b4e29809b2a \ - --hash=sha256:68a4953be99b17ac3c23b6efbc8a38330d99680c9458927491d18700ef23ded0 \ - --hash=sha256:6c36ddb64ed9d7e496028d1d00dfec3e428e0aabf4006583bb1839958d280510 \ - --hash=sha256:6e3370441f4513c6252bf042b9c36d22491142385049243253c7e48398a15a9f \ - --hash=sha256:7034b5c56a58ae5e85f23949d52c14aca2cfc6848a31764995b7de88f13a1ea0 \ - --hash=sha256:704de6328e3d612a8f6c07000a878ff38181ec3263d5a11da1db294fa6a9bdf8 \ - --hash=sha256:7132bed4bd7b836200c591410ae7d97bf7ae8be6fc87d160b2bd881df929e7bf \ - --hash=sha256:7300c8a6d13335b29bb76d7651c66af6bd8658517c43499f110ddc6717bfc209 \ - --hash=sha256:750db93a81e3e5a9831b534be7b1229df848b2e125a604fe6651e48aa070e5f9 \ - --hash=sha256:777c4d1eff1b67876139d24288aaf1817f6c03d6bae9c5cc8d27b83bcfe38fe3 \ - --hash=sha256:78e696e1cc714e57e8b25760b33a8b1026b7048d270140d25dafe1b0a1ee05a3 \ - --hash=sha256:79060214983769c7ba3f0cee10b54c97609dca4d478fa1aa32b914480fd5738d \ - --hash=sha256:7c8d4bc913dd70b93488d6c496c77f3aff5ea99a07e36a18f865bca55adef8bd \ - --hash=sha256:7f2c47b36fe7709a6e83bfadf4eefb90bd25fbe4014d715224c4316f808e59a2 \ - --hash=sha256:800bc829053c80d240a687ceeb927a94fd108bbdc68dfbe505d0d75ab578a882 \ - --hash=sha256:843ea8643cf967d1ac7e8ecd4bb00c99135adf4816c0c0593fdcc47b597fcf09 \ - --hash=sha256:8769751c10f339021e2638cd354e13adeac54004d1941119b2c96fe5276d45ea \ - --hash=sha256:8dd02af98971bdb956363e4827d34425cb3df19ee550ef92855b0acb9c7ce51c \ - --hash=sha256:8fdf453a942c3e4d99bd80088141c4c6960bb232c409d9c3558e2dbaa3998562 \ - --hash=sha256:941617e518602e2d64942c88ec8499f7fbd49d3f6c4327d3a71d43a1973032f3 \ - --hash=sha256:972a9cd27894afe4bc2b1480107054e062df08e671df7c2f18c205e805ccd806 \ - --hash=sha256:9adb6688e3b53adffefd4a52d72cbd8b02602bfb8f74dcd862337182fd4d1a4e \ - --hash=sha256:9b74db26dfea4f4e50d48a4602207cd1e78be33182bc9cbf22da94f332f99878 \ - --hash=sha256:9bb2a28101a443669a423b665939381084412b81c3f8c0fcfbac57f4e30b5b8e \ - --hash=sha256:9d44d7aa963820b1b971dbecd90bfe5fe8f81cff79787eb6cca15750bd2f79b9 \ - --hash=sha256:9dacc2ad679b292709e0f5fc1ac74a6d4d5562e424058962c7bb0c658ad25e45 \ - --hash=sha256:9ddb4f4a5479f2539644be484da179b653273bca1a323947d48ab107b3ed1f29 \ - --hash=sha256:a1a6d79a14e1ec1832cabc833898636ad5f3754a678ef8bb4908515208bf84f4 \ - --hash=sha256:a698e363641b98843c517817db75373c83254781426e94ada3197cabbc2c919c \ - --hash=sha256:ad14385487393e386e2ea988b09d62dd42c397662ac2dabc3832d71253eee479 \ - --hash=sha256:ad146744ca4fd09b50c482650e3c1b1f4dfa1d4792e0a04a369c7f23336f0400 \ - --hash=sha256:b5db73ba3c41c7008037fa731ad5459fc3944cb7452fc0aa9f822ad3533c583c \ - --hash=sha256:bd3a2fbc1c6cccb3c5106140d87cc6a8715110373ef42b63cf5aea29df8c217a \ - --hash=sha256:bdba0a6b8812e8c7df002d908a9a2ea3c36e92611b5708633c50869e6d922fdf \ - --hash=sha256:be3d4bbad9d4b037791794ddeedd7d64a56f5933a2c1373e18e9e568b9141686 \ - --hash=sha256:bf69236a9a81bdca3bff53796237aab096cdbf8d78a66ad61e992d9dac7eb2de \ - --hash=sha256:bff95879c33ec8da99fc9b6fe345ddb5be6414b41d6d1ad1c8f188d26f36e028 \ - --hash=sha256:c555b48be1853fe3997c11c4bd521cdd9a9612352de01fa4508f16ec341e6fe0 \ - --hash=sha256:c81f6515c4c40141f83f502b07bbfa5c240ba25bbe73da7b33f1e5b6120ff179 \ - --hash=sha256:c9136ff29c3a91e25b1d1552b5308e53a1e0653a23e53b6366d7c2dcbbaf8a16 \ - --hash=sha256:ce1998c0483007608c8382f4ff50164bfc5bd07a2246dd272aa4043b75e61e85 \ - --hash=sha256:cec2d83125531bd153175354055cdb7a09987af08a9430bd173c937c6d0fba2a \ - --hash=sha256:cff784eef7f0b8f6cb28804fbddcfa99f89efe4cc35fb5627e3ac58f91ed3ac0 \ - --hash=sha256:d2c87e0c473a10bffe991502eac389220533024c8082ec1ce849f4218dded810 \ - --hash=sha256:d7cfad2d6d81dd298ab6b89fe72c3b7b05ec7544bdda3b707ddaecff8d25c161 \ - --hash=sha256:d8a7a2049c14f413163e2bdabd37e41179b1d1ccb10ffc6ccc4b7a718429c607 \ - --hash=sha256:da305e9937617ee95c2e39d8ff9f040e0487cbf1ac174f777ed5eddd7a7c1f26 \ - --hash=sha256:da86cdcf10d2519e10cabb8ac2de03da1bcb6e4853790b7fbd48523332e3a819 \ - --hash=sha256:dc022073d063b25a402454e5712ef9e007113e3a676b96c5f29b2bda29352f40 \ - --hash=sha256:e0723d2c96324561b9aa76fb982406e11d93cdb388a7a7da2b16e04719cf7ca5 \ - --hash=sha256:e092b9499de38ae0fbfbc603a74660eb6ff3e869e507b50d85a13b6db9863e15 \ - --hash=sha256:e0b216a19534b2427cc201a26c25da4a48633f29a487c61258643e89d28200c0 \ - --hash=sha256:e1c85e0b6c05c592ea6d8768a66a254bfb3874b53774b12d4c89c481eb78cb90 \ - --hash=sha256:e301d30dd7e95ae068671d746ba8c34e945a82682e62918e41b2679acd2051a0 \ - --hash=sha256:e808af52a0513762df4d945ea164a24b37f2f518cbe97e03deaa0ee66139b4d6 \ - --hash=sha256:eb07647a5738b89baab047f14edd18ded523de60f3b30e75c2acc826f79c839a \ - --hash=sha256:eb7fdf1ef130660e7415e0253a01a7d5a88c9c4d158bcf75cbbd922fd65a5b58 \ - --hash=sha256:ec10e2a42b41c923c2209b846126c6582db5e43a33157e9870ba9fb70dc7854b \ - --hash=sha256:ee2aa19e03161671ec964004fb74b2257805d9710bf14a5c704558b9d8dbaf17 \ - --hash=sha256:f08fd75c50a760c7eb068ae823777268daaf16a80b918fa58eea888f8e3919f5 \ - --hash=sha256:f4cd16206ad171cbc2470dbea9103cf9a7607d5fe8c242fdf1edf36174020664 \ - --hash=sha256:f70c9ab2595c56f81a89620e22899eea8b212a4041bd728ac6f4a28bf5d3ddd0 \ - --hash=sha256:fbabfaceaeb587e16f7008f7795cd80d20ec548dc7f94fbb0d4ec2e038ce563f +coverage[toml]==7.14.0 \ + --hash=sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74 \ + --hash=sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e \ + --hash=sha256:0a951308cde22cf77f953955a754d04dccb57fe3bb8e345d685778ed9fc1632a \ + --hash=sha256:0c451757d3fa2603354fdc789b5e58a0e327a117c370a40e3476ba4eabab228c \ + --hash=sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a \ + --hash=sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe \ + --hash=sha256:1733198802d71ec4c524f322e2867ee05c62e9e75df86bdca545407a221827d1 \ + --hash=sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db \ + --hash=sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9 \ + --hash=sha256:1c9ed6ef99f88fb8c14aa8e2bf8eb0fe55fa2edfea68f8675d78741df1a5ac0e \ + --hash=sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b \ + --hash=sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66 \ + --hash=sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644 \ + --hash=sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490 \ + --hash=sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5 \ + --hash=sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8 \ + --hash=sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f \ + --hash=sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212 \ + --hash=sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb \ + --hash=sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917 \ + --hash=sha256:3fd43f0616e765ab78d069cf8358def7363957a45cee446d65c502dcfeea7893 \ + --hash=sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c \ + --hash=sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90 \ + --hash=sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d \ + --hash=sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef \ + --hash=sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9 \ + --hash=sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087 \ + --hash=sha256:5904abf7e18cddc463219b17552229650c6b79e061d31a1059283051169cf7d5 \ + --hash=sha256:5ac83957a80d0701310e96d8bec68cdcf4f90a7674b7d13f15a344315b41ab27 \ + --hash=sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020 \ + --hash=sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3 \ + --hash=sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47 \ + --hash=sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca \ + --hash=sha256:65f267ca1370726ec2c1aa38bbe4df9a71a740f22878d2d4bf59d71a4cd8d323 \ + --hash=sha256:664123feb0929d7affc135717dbd70d61d98688a08ab1e5ba464739620c6252d \ + --hash=sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd \ + --hash=sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426 \ + --hash=sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828 \ + --hash=sha256:6a78e2a9d9c5e3b8d4ab9b9d28c985ea66fced0a7d7c2aec1f216e03a2011480 \ + --hash=sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97 \ + --hash=sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8 \ + --hash=sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899 \ + --hash=sha256:70390b0da32cb90b501953716302906e8bcce087cb283e70d8c97729f22e92b2 \ + --hash=sha256:72a305291fa8ee01332f1aaf38b348ca34097f6aa0b0ef627eef2837e57bbba5 \ + --hash=sha256:731dc15b385ac52289743d476245b61e1a2927e803bef655b52bc3b2a75a21f3 \ + --hash=sha256:731e535b1498b27d13594a0527a79b0510867b0ad891532be41cb883f2128e20 \ + --hash=sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436 \ + --hash=sha256:741f57cddc9004a8c81b084660215f33a6b597dbe62c31386b983ee26310e327 \ + --hash=sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b \ + --hash=sha256:7b2bb6c9d7e769360d0f20a0f219603fd64f0c8f97de17ab25853261602be0fb \ + --hash=sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe \ + --hash=sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab \ + --hash=sha256:7c843572c605ab51cfdb5c6b5f2586e2a8467c0d28eca4bdef4ec70c5fecbd82 \ + --hash=sha256:7ebb1c6df9f78046a1b1e0a89674cd4bf73b7c648914eebcf976a57fd99a5627 \ + --hash=sha256:7ffd19fc8aed057fd686a17a4935eef5f9859d69208f96310e893e64b9b6ccf5 \ + --hash=sha256:8231ade007f37959fbf58acc677f26b922c02eda6f0428ea307da0fd39681bf3 \ + --hash=sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477 \ + --hash=sha256:829994cfe1aeb773ca27bf246d4badc1e764893e3bfb98fff820fcecd1ca4662 \ + --hash=sha256:84c32d90bf4537f0e7b4dec9aaa9a938fb8205136b9d2ecf4d7629d5262dc075 \ + --hash=sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f \ + --hash=sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1 \ + --hash=sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7 \ + --hash=sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52 \ + --hash=sha256:91b993743d959b8be85b4abf9d5478216a69329c321efe5be0433c1a841d691d \ + --hash=sha256:92af52828e7f29d827346b0294e5a0853fa206db77db0395b282918d41e28db9 \ + --hash=sha256:9336e23e8bb3a3925398261385e2a1533957d3e760e91070dcb0e98bfa514eed \ + --hash=sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90 \ + --hash=sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1 \ + --hash=sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d \ + --hash=sha256:9cd1169b2230f9cbe9c638ba38022ed7a2b1e641cc07f7cea0365e4be2a74980 \ + --hash=sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca \ + --hash=sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa \ + --hash=sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6 \ + --hash=sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc \ + --hash=sha256:a1816c505187592dcd1c5a5f226601a549f70365fbd00930ac88b0c225b76bb4 \ + --hash=sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c \ + --hash=sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d \ + --hash=sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84 \ + --hash=sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2 \ + --hash=sha256:a93bac2cb577ef60074999ed56d8a1535894398e2ed920d4185c3ec0c8864742 \ + --hash=sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2 \ + --hash=sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb \ + --hash=sha256:b34ece8065914f938ed7f2c5872bb865336977a52919149846eac3744327267a \ + --hash=sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9 \ + --hash=sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96 \ + --hash=sha256:b4f07cf7edcb7ec39431a5074d7ea83b29a9f71fcfc494f0f40af4e65180420f \ + --hash=sha256:b812eb847b19876ebf33fb6c4f11819af05ab6050b0bfa1bc53412ae81779adb \ + --hash=sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63 \ + --hash=sha256:bcb2e855b87321259a037429288ae85216d191c74de3e79bf57cd2bc0761992c \ + --hash=sha256:bfb0ed8ec5d25e93face268115d7964db9df8b9aae8edcde9ec6b16c726a7cc1 \ + --hash=sha256:c7492f2d493b976941c7ca050f273cbda2f43c381124f7586a3e3c16d1804fec \ + --hash=sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367 \ + --hash=sha256:c83d2399a51bbec8429266905d33616f04bc5726b1138c35844d5fcd896b2e20 \ + --hash=sha256:ca3d9cf2c32b521bd9518385608787fa86f38daf993695307531822c3430ed67 \ + --hash=sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b \ + --hash=sha256:d128b1bba9361fbaaf6a19e179e6cfd6a9103ce0c0555876f72780acc93efd85 \ + --hash=sha256:d1bb3543b58fea74d2cd1abc4054cc927e4724687cb4560cd2ed88d2c7d820c0 \ + --hash=sha256:d8b013632cc1ce1d09dbe4f32667b4d320ec2f54fc326ebeffcd0b0bcc2bb6c4 \ + --hash=sha256:d8e1762f0e9cbc26ec315471e7b47855218e833cd5a032d706fbf43845d878c7 \ + --hash=sha256:d9c8ef6ed820c433de075657d72dda1f89a2984955e58b8a75feb3f184250218 \ + --hash=sha256:dc38367eaa2abb1b766ac333142bce7655335a73537f5c8b75aaa89c2b987757 \ + --hash=sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef \ + --hash=sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1 \ + --hash=sha256:fab3877e4ebb06bd9d4d4d00ee53309ee5478e66873c66a382272e3ee33eb7ea \ + --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ + --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 # via pytest-cov -cryptography==46.0.6 \ - --hash=sha256:02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70 \ - --hash=sha256:063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d \ - --hash=sha256:12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a \ - --hash=sha256:12f0fa16cc247b13c43d56d7b35287ff1569b5b1f4c5e87e92cc4fcc00cd10c0 \ - --hash=sha256:22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97 \ - --hash=sha256:26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30 \ - --hash=sha256:27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759 \ - --hash=sha256:2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c \ - --hash=sha256:2ea0f37e9a9cf0df2952893ad145fd9627d326a59daec9b0802480fa3bcd2ead \ - --hash=sha256:2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275 \ - --hash=sha256:341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58 \ - --hash=sha256:380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f \ - --hash=sha256:3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361 \ - --hash=sha256:3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507 \ - --hash=sha256:456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa \ - --hash=sha256:4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b \ - --hash=sha256:50575a76e2951fe7dbd1f56d181f8c5ceeeb075e9ff88e7ad997d2f42af06e7b \ - --hash=sha256:639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8 \ - --hash=sha256:64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8 \ - --hash=sha256:6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72 \ - --hash=sha256:67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175 \ - --hash=sha256:6728c49e3b2c180ef26f8e9f0a883a2c585638db64cf265b49c9ba10652d430e \ - --hash=sha256:6739d56300662c468fddb0e5e291f9b4d084bead381667b9e654c7dd81705124 \ - --hash=sha256:69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a \ - --hash=sha256:760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c \ - --hash=sha256:79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f \ - --hash=sha256:7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d \ - --hash=sha256:7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4 \ - --hash=sha256:7f6690b6c55e9c5332c0b59b9c8a3fb232ebf059094c17f9019a51e9827df91c \ - --hash=sha256:8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290 \ - --hash=sha256:8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca \ - --hash=sha256:8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d \ - --hash=sha256:90e5f0a7b3be5f40c3a0a0eafb32c681d8d2c181fc2a1bdabe9b3f611d9f6b1a \ - --hash=sha256:97c8115b27e19e592a05c45d0dd89c57f81f841cc9880e353e0d3bf25b2139ed \ - --hash=sha256:9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a \ - --hash=sha256:9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb \ - --hash=sha256:a3e84d5ec9ba01f8fd03802b2147ba77f0c8f2617b2aff254cedd551844209c8 \ - --hash=sha256:aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707 \ - --hash=sha256:b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410 \ - --hash=sha256:b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736 \ - --hash=sha256:bcb87663e1f7b075e48c3be3ecb5f0b46c8fc50b50a97cf264e7f60242dca3f2 \ - --hash=sha256:c797e2517cb7880f8297e2c0f43bb910e91381339336f75d2c1c2cbf811b70b4 \ - --hash=sha256:c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013 \ - --hash=sha256:cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19 \ - --hash=sha256:d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b \ - --hash=sha256:d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738 \ - --hash=sha256:d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463 \ - --hash=sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77 \ - --hash=sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4 +cryptography==46.0.7 \ + --hash=sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65 \ + --hash=sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832 \ + --hash=sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067 \ + --hash=sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de \ + --hash=sha256:258514877e15963bd43b558917bc9f54cf7cf866c38aa576ebf47a77ddbc43a4 \ + --hash=sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0 \ + --hash=sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b \ + --hash=sha256:3986ac1dee6def53797289999eabe84798ad7817f3e97779b5061a95b0ee4968 \ + --hash=sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef \ + --hash=sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b \ + --hash=sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4 \ + --hash=sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3 \ + --hash=sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308 \ + --hash=sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e \ + --hash=sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163 \ + --hash=sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f \ + --hash=sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee \ + --hash=sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77 \ + --hash=sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85 \ + --hash=sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99 \ + --hash=sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7 \ + --hash=sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83 \ + --hash=sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85 \ + --hash=sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006 \ + --hash=sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb \ + --hash=sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e \ + --hash=sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba \ + --hash=sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325 \ + --hash=sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d \ + --hash=sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1 \ + --hash=sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1 \ + --hash=sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2 \ + --hash=sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0 \ + --hash=sha256:d02c738dacda7dc2a74d1b2b3177042009d5cab7c7079db74afc19e56ca1b455 \ + --hash=sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842 \ + --hash=sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457 \ + --hash=sha256:d3b99c535a9de0adced13d159c5a9cf65c325601aa30f4be08afd680643e9c15 \ + --hash=sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2 \ + --hash=sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c \ + --hash=sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb \ + --hash=sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5 \ + --hash=sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4 \ + --hash=sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902 \ + --hash=sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246 \ + --hash=sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022 \ + --hash=sha256:fc9ab8856ae6cf7c9358430e49b368f3108f050031442eaeb6b9d87e4dcf4e4f \ + --hash=sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e \ + --hash=sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298 \ + --hash=sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce # via # feast (pyproject.toml) # azure-identity @@ -999,15 +985,15 @@ datasets==4.8.5 \ --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq -dbt-artifacts-parser==0.13.1 \ - --hash=sha256:c341730fa34ebb38cc7d2de0282e8b713e2fc65fc6577f0d944f8abee8949dc4 \ - --hash=sha256:c7a3c4e309ae2d7d566a615e92043b0d346a77998203b0cc466234717b806e40 +dbt-artifacts-parser==0.13.2 \ + --hash=sha256:9eca1e413f7eee522cc1556634b0b9effe790b70d8ffcc46ae2328b9868efaf1 \ + --hash=sha256:abb798aa73ff8cc295b4ecf03ee02d6a3bc48ad79f7d093d4bb3ffef68e77fb4 # via feast (pyproject.toml) debugpy==1.8.20 \ --hash=sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad \ @@ -1093,9 +1079,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.74.1 \ - --hash=sha256:46bf298686f2c51ddd69b6935a27dff1cc80838f2f5f1a8823492d99cf1a357b \ - --hash=sha256:e6464078012b3d45f4e0accd101fcb277063903f355eabbb9aee8de00527a789 +docling-core[chunking]==2.75.0 \ + --hash=sha256:60f7bc4025f6511ba82eeb0aa677e756e9d3bf069d6f207c6ef2fb8be3176f32 \ + --hash=sha256:7961be3c3f58855324b081fce9e1231b892da7c61d6babbaf3d49c28387eb782 # via # docling # docling-ibm-models @@ -1181,13 +1167,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.2.1 \ - --hash=sha256:39e1a25e486af34ce7aa1bc9005d1c736f1b6fb04c9b64ea0604ded5a61fc1d4 \ - --hash=sha256:97d9abd638ba8aa90faa4ca1bf1a18bde0fe2088fbc8757f2eb7b299f205773d +elastic-transport==9.4.0 \ + --hash=sha256:2dbb907ededa14e6ff5be058f8737bbba3926bd1b1a40dbc98a471285fa2cb3c \ + --hash=sha256:4eff263c8011dd950451b72be567a2484b814a89c70081053d6ae6addeab52e2 # via elasticsearch -elasticsearch==9.3.0 \ - --hash=sha256:67bd2bb4f0800f58c2847d29cd57d6e7bf5bc273483b4f17421f93e75ba09f39 \ - --hash=sha256:f76e149c0a22d5ccbba58bdc30c9f51cf894231b359ef4fd7e839b558b59f856 +elasticsearch==9.4.0 \ + --hash=sha256:95e38e130b1d01438b19343dfa0458e1857a7df8e2e30cbf23a72182b03f05ff \ + --hash=sha256:e20095ba40229f4562f7cc951883c7c62a017435f94dbe0c21526f58ba411885 # via feast (pyproject.toml) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1428,9 +1414,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -1442,9 +1428,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -1454,17 +1440,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -1516,15 +1502,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -1598,6 +1584,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -1675,9 +1662,9 @@ grpcio-tools==1.62.3 \ --hash=sha256:f4b1615adf67bd8bb71f3464146a6f9949972d06d21a4f5e87e73f6464d97f57 \ --hash=sha256:f6831fdec2b853c9daa3358535c55eed3694325889aa714070528cf8f92d7d6d # via feast (pyproject.toml) -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1699,32 +1686,32 @@ hazelcast-python-client==5.6.0 \ --hash=sha256:834b87076a47c781ef80bdcb522b86abc75ff28992dfe384e47f669f06cabb18 \ --hash=sha256:e2cec409068990ca9b4381fe97160cc2375412334782bef45ab4c8fe4d10536c # via feast (pyproject.toml) -hf-xet==1.4.3 \ - --hash=sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07 \ - --hash=sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2 \ - --hash=sha256:21644b404bb0100fe3857892f752c4d09642586fd988e61501c95bbf44b393a3 \ - --hash=sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8 \ - --hash=sha256:27c976ba60079fb8217f485b9c5c7fcd21c90b0367753805f87cb9f3cdc4418a \ - --hash=sha256:2815a49a7a59f3e2edf0cf113ae88e8cb2ca2a221bf353fb60c609584f4884d4 \ - --hash=sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f \ - --hash=sha256:42ee323265f1e6a81b0e11094564fb7f7e0ec75b5105ffd91ae63f403a11931b \ - --hash=sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac \ - --hash=sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6 \ - --hash=sha256:60cf7fc43a99da0a853345cf86d23738c03983ee5249613a6305d3e57a5dca74 \ - --hash=sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075 \ - --hash=sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021 \ - --hash=sha256:7551659ba4f1e1074e9623996f28c3873682530aee0a846b7f2f066239228144 \ - --hash=sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba \ - --hash=sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47 \ - --hash=sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791 \ - --hash=sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113 \ - --hash=sha256:987f09cfe418237812896a6736b81b1af02a3a6dcb4b4944425c4c4fca7a7cf8 \ - --hash=sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f \ - --hash=sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd \ - --hash=sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025 \ - --hash=sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653 \ - --hash=sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583 \ - --hash=sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08 +hf-xet==1.5.0 \ + --hash=sha256:1e60df5a42e9bed8628b6416af2cba4cba57ae9f02de226a06b020d98e1aab18 \ + --hash=sha256:2806c7c17b4d23f8d88f7c4814f838c3b6150773fe339c20af23e1cfaf2797e4 \ + --hash=sha256:2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60 \ + --hash=sha256:3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949 \ + --hash=sha256:4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690 \ + --hash=sha256:526345b3ed45f374f6317349df489167606736c876241ba984105afe7fd4839d \ + --hash=sha256:5906bf7718d3636dc13402914736abe723492cb730f744834f5f5b67d3a12702 \ + --hash=sha256:5f3dc2248fc01cc0a00cd392ab497f1ca373fcbc7e3f2da1f452480b384e839e \ + --hash=sha256:73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42 \ + --hash=sha256:786d28e2eb8315d5035544b9d137b4a842d600c434bb91bf7d0d953cce906ad4 \ + --hash=sha256:7d70fe2ce97b9db73b9c9b9c81fe3693640aec83416a966c446afea54acfae3c \ + --hash=sha256:872d5601e6deea30d15865ede55d29eac6daf5a534ab417b99b6ef6b076dd96c \ + --hash=sha256:8dbcbab554c9ef158ef2c991545c3e970ddd8cc7acdcd0a78c5a41095dab4ded \ + --hash=sha256:9929561f5abf4581c8ea79587881dfef6b8abb2a0d8a51915936fc2a614f4e73 \ + --hash=sha256:9a0ee58cd18d5ea799f7ed11290bbccbe56bdd8b1d97ca74b9cc49a3945d7a3b \ + --hash=sha256:a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a \ + --hash=sha256:b285cea1b5bab46b758772716ba8d6854a1a0310fed1c249d678a8b38601e5a0 \ + --hash=sha256:b6c9df403040248c76d808d3e047d64db2d923bae593eb244c41e425cf6cd7be \ + --hash=sha256:c799d49f1a5544a0ef7591c0ee75e0d6b93d6f56dc7a4979f59f7518d2872216 \ + --hash=sha256:cf7b2dc6f31a4ea754bb50f74cde482dcf5d366d184076d8530b9872787f3761 \ + --hash=sha256:dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56 \ + --hash=sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948 \ + --hash=sha256:e5de0f6deada0dada870bb376a11bcd1f08abf3a968a6d118f33e72d1b1eb480 \ + --hash=sha256:f7b7bbae318e583a86fb21e5a4a175d6721d628a2874f4bd022d0e660c32a682 \ + --hash=sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a # via huggingface-hub hiredis==3.3.1 \ --hash=sha256:002fc0201b9af1cc8960e27cdc501ad1f8cdd6dbadb2091c6ddbd4e5ace6cb77 \ @@ -1926,9 +1913,9 @@ identify==2.6.19 \ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842 # via pre-commit -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1991,9 +1978,9 @@ isoduration==20.11.0 \ --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 # via jsonschema -jedi==0.19.2 \ - --hash=sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0 \ - --hash=sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9 +jedi==0.20.0 \ + --hash=sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 \ + --hash=sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011 # via ipython jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -2085,9 +2072,9 @@ jupyter-lsp==2.3.1 \ --hash=sha256:71b954d834e85ff3096400554f2eefaf7fe37053036f9a782b0f7c5e42dadb81 \ --hash=sha256:fdf8a4aa7d85813976d6e29e95e6a2c8f752701f926f2715305249a3829805a6 # via jupyterlab -jupyter-server==2.17.0 \ - --hash=sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5 \ - --hash=sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f +jupyter-server==2.18.2 \ + --hash=sha256:06b4f40d8a7a00bb39d5216859c81374a0e7cfefe6d8a5a7facc5a5c37c679a7 \ + --hash=sha256:fa5e46539ded65791838035a2b6001f13e54d5f64b8b3752eb1e91fdd641a5b8 # via # jupyter-lsp # jupyterlab @@ -2349,9 +2336,9 @@ makefun==1.16.0 \ --hash=sha256:43baa4c3e7ae2b17de9ceac20b669e9a67ceeadff31581007cca20a07bbe42c4 \ --hash=sha256:e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947 # via great-expectations -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich marko==2.2.2 \ --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ @@ -2455,15 +2442,15 @@ marshmallow==3.26.2 \ --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations -matplotlib-inline==0.2.1 \ - --hash=sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76 \ - --hash=sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe +matplotlib-inline==0.2.2 \ + --hash=sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 \ + --hash=sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79 # via # ipykernel # ipython -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -2481,9 +2468,9 @@ minio==7.2.11 \ --hash=sha256:153582ed52ff3b5005ba558e1f25bfe1e9e834f7f0745e594777f28e3e81e1a0 \ --hash=sha256:4db95a21fe1e2022ec975292d8a1f83bd5b18f830d23d42a4518ac7a5281d7c5 # via feast (pyproject.toml) -mistune==3.2.0 \ - --hash=sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a \ - --hash=sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1 +mistune==3.2.1 \ + --hash=sha256:78cdb0ba5e938053ccf63651b352508d2efa9411dc8810bfb05f2dc5140c0048 \ + --hash=sha256:7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28 # via # great-expectations # nbconvert @@ -3079,8 +3066,8 @@ opencv-python-headless==4.13.0.92 \ --hash=sha256:a7cf08e5b191f4ebb530791acc0825a7986e0d0dee2a3c491184bd8599848a4b \ --hash=sha256:eb60e36b237b1ebd40a912da5384b348df8ed534f6f644d8e0b4f103e272ba7d # via easyocr -openlineage-python==1.46.0 \ - --hash=sha256:f6228a01d34990e76ede5b55b3f99169e54e2e624814c4493f064b9cb1bfba37 +openlineage-python==1.47.1 \ + --hash=sha256:44ca34b0b38c9a49f6b7200ace37612334a34a455361af29adcfb80e27d258dd # via feast (pyproject.toml) openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ @@ -3115,114 +3102,114 @@ opentelemetry-semantic-conventions==0.62b1 \ --hash=sha256:c5cc6e04a7f8c7cdd30be2ed81499fa4e75bfbd52c9cb70d40af1f9cd3619802 \ --hash=sha256:cf506938103d331fbb78eded0d9788095f7fd59016f2bda813c3324e5a74a93c # via opentelemetry-sdk -oracledb==3.4.2 \ - --hash=sha256:00c79448017f367bb7ab6900efe0706658a53768abea2b4519a4c9b2d5743890 \ - --hash=sha256:0e16fe3d057e0c41a23ad2ae95bfa002401690773376d476be608f79ac74bf05 \ - --hash=sha256:0f04a2d62073407672f114d02529921de0677c6883ed7c64d8d1a3c04caa3238 \ - --hash=sha256:1617a1db020346883455af005efbefd51be2c4d797e43b1b38455a19f8526b48 \ - --hash=sha256:19fa80ef84f85ad74077aa626067bbe697e527bd39604b4209f9d86cb2876b89 \ - --hash=sha256:1e4930d7f6584832dcc15b8ca415a7957b0c45f5aa7c4f88702e070e5c53bf93 \ - --hash=sha256:23aa07c1eaca17ae74c6fdc86b218f58484d56452958aead1aa460c0596a76c1 \ - --hash=sha256:31b7ee83c23d0439778303de8a675717f805f7e8edb5556d48c4d8343bcf14f5 \ - --hash=sha256:3df8eee1410d25360599968b1625b000f10c5ae0e47274031a7842a9dc418890 \ - --hash=sha256:404ec1451d0448653ee074213b87d6c5bd65eaa74b50083ddf2c9c3e11c71c71 \ - --hash=sha256:46e0f2278ff1fe83fbc33a3b93c72d429323ec7eed47bc9484e217776cd437e5 \ - --hash=sha256:55397e7eb43bb7017c03a981c736c25724182f5210951181dfe3fab0e5d457fb \ - --hash=sha256:574c8280d49cbbe21dbe03fc28356d9b9a5b9e300ebcde6c6d106e51453a7e65 \ - --hash=sha256:59ad6438f56a25e8e1a4a3dd1b42235a5d09ab9ba417ff2ad14eae6596f3d06f \ - --hash=sha256:5d7befb014174c5ae11c3a08f5ed6668a25ab2335d8e7104dca70d54d54a5b3a \ - --hash=sha256:5ed78d7e7079a778062744ccf42141ce4806818c3f4dd6463e4a7edd561c9f86 \ - --hash=sha256:643c25d301a289a371e37fcedb59e5fa5e54fb321708e5c12821c4b55bdd8a4d \ - --hash=sha256:6d85622664cc88d5a82bbd7beccb62cd53bd272c550a5e15e7d5f8ae6b86f1f1 \ - --hash=sha256:9f434a739405557bd57cb39b62238142bb27855a524a70dc6d397a2a8c576c9d \ - --hash=sha256:a7396664e592881225ba66385ee83ce339d864f39003d6e4ca31a894a7e7c552 \ - --hash=sha256:ac25a0448fc830fb7029ad50cd136cdbfcd06975d53967e269772cc5cb8c203a \ - --hash=sha256:b1095d95d0c8b37e4d0e17cf1928919cb59222b6344362a1cf6a2f3ca205a28a \ - --hash=sha256:b26a10f9c790bd141ffc8af68520803ed4a44a9258bf7d1eea9bfdd36bd6df7f \ - --hash=sha256:b8e4b8a852251cef09038b75f30fce1227010835f4e19cfbd436027acba2697c \ - --hash=sha256:b974caec2c330c22bbe765705a5ac7d98ec3022811dec2042d561a3c65cb991b \ - --hash=sha256:d7ce75c498bff758548ec6e4424ab4271aa257e5887cc436a54bc947fd46199a \ - --hash=sha256:d8d75e4f879b908be66cce05ba6c05791a5dbb4a15e39abc01aa25c8a2492bd9 \ - --hash=sha256:e068ef844a327877bfefbef1bc6fb7284c727bb87af80095f08d95bcaf7b8bb2 \ - --hash=sha256:f8ea989965a4f636a309444bd696ab877bba373d5d67bf744785f9bd8c560865 \ - --hash=sha256:f93cae08e8ed20f2d5b777a8602a71f9418389c661d2c937e84d94863e7e7011 \ - --hash=sha256:ff3c89cecea62af8ca02aa33cab0f2edc0214c747eac7d3364ed6b2640cb55e4 +oracledb==4.0.0 \ + --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ + --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ + --hash=sha256:22e33228d6955db8a69c8c83ee4b392a534c86f9493647ea3f511c2f5df08dd4 \ + --hash=sha256:244ebe47c4a4e32bc07a4206192de04d92fbfeb72bf11a01493e3a710bd4b19a \ + --hash=sha256:4582f87e56c2a2e3a74942f087c096525543e92fb59d3758e41d41145b809c52 \ + --hash=sha256:4e47a130120181b8226daf9e928e3c22107c1d03d9ac5f6b891360677a811787 \ + --hash=sha256:4fcbbd8977d8d91ae0d931ce21cda0048f9685e6cc29c9a84b49a769a2511b08 \ + --hash=sha256:62b36249e8db777cd6a2b56be768642d055c89df3cbcfb5d6a3b4dc2426b34df \ + --hash=sha256:6c65366200b44c0a71b927cd813628f0d993b098c61cc82c54c53bccb0dd0d80 \ + --hash=sha256:6fc3dd6ce0fb1d8ca865bdf39183e663b1dd5e2d585327feffedf379a05e3abb \ + --hash=sha256:758ac5a56e872eb517cbae5d28574b200d7b2b28c793ee31b6ce4938777d8364 \ + --hash=sha256:80434a5aa393833bfde853e9e2943671cab219b3081c34aad1974df73c21e04d \ + --hash=sha256:893acd019ee45184e85ef1b5f1ba425ab4da3e8ed4dab1339b7ef329d3658ffc \ + --hash=sha256:8974532ca43f50bc6c41b9efd78219121d3fa52c673d9790da12468d06fcf59f \ + --hash=sha256:8dd447f52482779f6cde277eaf7d734c7ac8f07f4d4e3d3609510f6033dfd0b8 \ + --hash=sha256:922c59a7fcdc44c93dac852b33b9ebae202614235e0ed235e632bf8d5ca4dd55 \ + --hash=sha256:997a4cd0f563b5a1aa92aeb9bdd70e67e3789f0d1a418600a7256b27e6c8947f \ + --hash=sha256:a1c22feae372978861786c65560498dbb36e32d7447318499694d4504c67c043 \ + --hash=sha256:a3a0221ccb33fb47b46cc3fbe587d80144e0ae6237ded5b3c58e8f6c674f02dc \ + --hash=sha256:a7e2c3d99a691e71b4eeb9efbefdfae4dcdfe3bb78abf05a5d9b1a5e65ce8ea0 \ + --hash=sha256:aad06930cf7a99914c863e6e550111b452560bef82b25bd9650541d5c7622837 \ + --hash=sha256:b691fbca4c83e72773c1bee17df5dfced4f01334ea48242262430074cc5a9b36 \ + --hash=sha256:b94a53c2524f4b9522a3091abdb12a2d8e1ac80a83456f7278d2165c3ec54482 \ + --hash=sha256:bad1d5101cd6191271ab89ec372ad8ca119dac9453f59b7be948bdebf6cd5a55 \ + --hash=sha256:ccf0b875850109a77ab932b03dbfa6c98e4eb011545465008d32e7a7207e8e9a \ + --hash=sha256:cd83db5710e26502352c4ce3f5b5e29f202223f9dade089a28daeb688083d0db \ + --hash=sha256:d4b36f906f2e6812d2e4bc1fe965d50670a3fd552cef66bcb2da892e946bba0c \ + --hash=sha256:dc96cf923b62baae45bf698f4e80407b5640d9760682ce5d424e847bf9e20298 \ + --hash=sha256:e29d9c9db167ade1c1649123c8f7cadf248f8e7f66f86335ec5b66b97f70f684 \ + --hash=sha256:f5b1f7ae53883336e23a235339e023d26d1d4b0d014ce4944c61dc79951c89df \ + --hash=sha256:f8c7f26d6e75848d7c75604eff71272c202ddb5eb65996630da3d6d5452401f6 # via ibis-framework -orjson==3.11.8 \ - --hash=sha256:0022bb50f90da04b009ce32c512dc1885910daa7cb10b7b0cba4505b16db82a8 \ - --hash=sha256:003646067cc48b7fcab2ae0c562491c9b5d2cbd43f1e5f16d98fd118c5522d34 \ - --hash=sha256:01928d0476b216ad2201823b0a74000440360cef4fed1912d297b8d84718f277 \ - --hash=sha256:01c4e5a6695dc09098f2e6468a251bc4671c50922d4d745aff1a0a33a0cf5b8d \ - --hash=sha256:093d489fa039ddade2db541097dbb484999fcc65fc2b0ff9819141e2ab364f25 \ - --hash=sha256:0b57f67710a8cd459e4e54eb96d5f77f3624eba0c661ba19a525807e42eccade \ - --hash=sha256:0e32f7154299f42ae66f13488963269e5eccb8d588a65bc839ed986919fc9fac \ - --hash=sha256:14439063aebcb92401c11afc68ee4e407258d2752e62d748b6942dad20d2a70d \ - --hash=sha256:14778ffd0f6896aa613951a7fbf4690229aa7a543cb2bfbe9f358e08aafa9546 \ - --hash=sha256:14f7b8fcb35ef403b42fa5ecfa4ed032332a91f3dc7368fbce4184d59e1eae0d \ - --hash=sha256:1ab359aff0436d80bfe8a23b46b5fea69f1e18aaf1760a709b4787f1318b317f \ - --hash=sha256:1cd0b77e77c95758f8e1100139844e99f3ccc87e71e6fc8e1c027e55807c549f \ - --hash=sha256:25e0c672a2e32348d2eb33057b41e754091f2835f87222e4675b796b92264f06 \ - --hash=sha256:29c009e7a2ca9ad0ed1376ce20dd692146a5d9fe4310848904b6b4fee5c5c137 \ - --hash=sha256:3222adff1e1ff0dce93c16146b93063a7793de6c43d52309ae321234cdaf0f4d \ - --hash=sha256:3223665349bbfb68da234acd9846955b1a0808cbe5520ff634bf253a4407009b \ - --hash=sha256:3cf17c141617b88ced4536b2135c552490f07799f6ad565948ea07bef0dcb9a6 \ - --hash=sha256:3f23426851d98478c8970da5991f84784a76682213cd50eb73a1da56b95239dc \ - --hash=sha256:3f262401086a3960586af06c054609365e98407151f5ea24a62893a40d80dbbb \ - --hash=sha256:436c4922968a619fb7fef1ccd4b8b3a76c13b67d607073914d675026e911a65c \ - --hash=sha256:469ac2125611b7c5741a0b3798cd9e5786cbad6345f9f400c77212be89563bec \ - --hash=sha256:4861bde57f4d253ab041e374f44023460e60e71efaa121f3c5f0ed457c3a701e \ - --hash=sha256:48854463b0572cc87dac7d981aa72ed8bf6deedc0511853dc76b8bbd5482d36d \ - --hash=sha256:53a0f57e59a530d18a142f4d4ba6dfc708dc5fdedce45e98ff06b44930a2a48f \ - --hash=sha256:54153d21520a71a4c82a0dbb4523e468941d549d221dc173de0f019678cf3813 \ - --hash=sha256:55120759e61309af7fcf9e961c6f6af3dde5921cdb3ee863ef63fd9db126cae6 \ - --hash=sha256:5774c1fdcc98b2259800b683b19599c133baeb11d60033e2095fd9d4667b82db \ - --hash=sha256:58a4a208a6fbfdb7a7327b8f201c6014f189f721fd55d047cafc4157af1bc62a \ - --hash=sha256:58fb9b17b4472c7b1dcf1a54583629e62e23779b2331052f09a9249edf81675b \ - --hash=sha256:5d8b5231de76c528a46b57010bbd83fb51e056aa0220a372fd5065e978406f1c \ - --hash=sha256:5f8952d6d2505c003e8f0224ff7858d341fa4e33fef82b91c4ff0ef070f2393c \ - --hash=sha256:61c9d357a59465736022d5d9ba06687afb7611dfb581a9d2129b77a6fcf78e59 \ - --hash=sha256:6a3d159d5ffa0e3961f353c4b036540996bf8b9697ccc38261c0eac1fd3347a6 \ - --hash=sha256:6a4a639049c44d36a6d1ae0f4a94b271605c745aee5647fa8ffaabcdc01b69a6 \ - --hash=sha256:6ccdea2c213cf9f3d9490cbd5d427693c870753df41e6cb375bd79bcbafc8817 \ - --hash=sha256:6dbe9a97bdb4d8d9d5367b52a7c32549bba70b2739c58ef74a6964a6d05ae054 \ - --hash=sha256:6eda5b8b6be91d3f26efb7dc6e5e68ee805bc5617f65a328587b35255f138bf4 \ - --hash=sha256:705b895b781b3e395c067129d8551655642dfe9437273211d5404e87ac752b53 \ - --hash=sha256:708c95f925a43ab9f34625e45dcdadf09ec8a6e7b664a938f2f8d5650f6c090b \ - --hash=sha256:735e2262363dcbe05c35e3a8869898022af78f89dde9e256924dc02e99fe69ca \ - --hash=sha256:76070a76e9c5ae661e2d9848f216980d8d533e0f8143e6ed462807b242e3c5e8 \ - --hash=sha256:7679bc2f01bb0d219758f1a5f87bb7c8a81c0a186824a393b366876b4948e14f \ - --hash=sha256:88006eda83858a9fdf73985ce3804e885c2befb2f506c9a3723cdeb5a2880e3e \ - --hash=sha256:883206d55b1bd5f5679ad5e6ddd3d1a5e3cac5190482927fdb8c78fb699193b5 \ - --hash=sha256:8ac7381c83dd3d4a6347e6635950aa448f54e7b8406a27c7ecb4a37e9f1ae08b \ - --hash=sha256:8e8c6218b614badf8e229b697865df4301afa74b791b6c9ade01d19a9953a942 \ - --hash=sha256:9185589c1f2a944c17e26c9925dcdbc2df061cc4a145395c57f0c51f9b5dbfcd \ - --hash=sha256:93de06bc920854552493c81f1f729fab7213b7db4b8195355db5fda02c7d1363 \ - --hash=sha256:96163d9cdc5a202703e9ad1b9ae757d5f0ca62f4fa0cc93d1f27b0e180cc404e \ - --hash=sha256:97c8f5d3b62380b70c36ffacb2a356b7c6becec86099b177f73851ba095ef623 \ - --hash=sha256:97d823831105c01f6c8029faf297633dbeb30271892bd430e9c24ceae3734744 \ - --hash=sha256:98bdc6cb889d19bed01de46e67574a2eab61f5cc6b768ed50e8ac68e9d6ffab6 \ - --hash=sha256:9b48e274f8824567d74e2158199e269597edf00823a1b12b63d48462bbf5123e \ - --hash=sha256:a5c370674ebabe16c6ccac33ff80c62bf8a6e59439f5e9d40c1f5ab8fd2215b7 \ - --hash=sha256:b43dc2a391981d36c42fa57747a49dae793ef1d2e43898b197925b5534abd10a \ - --hash=sha256:c154a35dd1330707450bb4d4e7dd1f17fa6f42267a40c1e8a1daa5e13719b4b8 \ - --hash=sha256:c2bdf7b2facc80b5e34f48a2d557727d5c5c57a8a450de122ae81fa26a81c1bc \ - --hash=sha256:c492a0e011c0f9066e9ceaa896fbc5b068c54d365fea5f3444b697ee01bc8625 \ - --hash=sha256:c60c0423f15abb6cf78f56dff00168a1b582f7a1c23f114036e2bfc697814d5f \ - --hash=sha256:c98121237fea2f679480765abd566f7713185897f35c9e6c2add7e3a9900eb61 \ - --hash=sha256:ccd7ba1b0605813a0715171d39ec4c314cb97a9c85893c2c5c0c3a3729df38bf \ - --hash=sha256:cdbc8c9c02463fef4d3c53a9ba3336d05496ec8e1f1c53326a1e4acc11f5c600 \ - --hash=sha256:e0950ed1bcb9893f4293fd5c5a7ee10934fbf82c4101c70be360db23ce24b7d2 \ - --hash=sha256:e6693ff90018600c72fd18d3d22fa438be26076cd3c823da5f63f7bab28c11cb \ - --hash=sha256:ea56a955056a6d6c550cf18b3348656a9d9a4f02e2d0c02cabf3c73f1055d506 \ - --hash=sha256:ebaed4cef74a045b83e23537b52ef19a367c7e3f536751e355a2a394f8648559 \ - --hash=sha256:ec795530a73c269a55130498842aaa762e4a939f6ce481a7e986eeaa790e9da4 \ - --hash=sha256:ed193ce51d77a3830cad399a529cd4ef029968761f43ddc549e1bc62b40d88f8 \ - --hash=sha256:ee8db7bfb6fe03581bbab54d7c4124a6dd6a7f4273a38f7267197890f094675f \ - --hash=sha256:f30491bc4f862aa15744b9738517454f1e46e56c972a2be87d70d727d5b2a8f8 \ - --hash=sha256:f89b6d0b3a8d81e1929d3ab3d92bbc225688bd80a770c49432543928fe09ac55 \ - --hash=sha256:fa72e71977bff96567b0f500fc5bfd2fdf915f34052c782a4c6ebbdaa97aa858 \ - --hash=sha256:fe0b8c83e0f36247fc9431ce5425a5d95f9b3a689133d494831bdbd6f0bceb13 \ - --hash=sha256:ff51f9d657d1afb6f410cb435792ce4e1fe427aab23d2fcd727a2876e21d4cb6 +orjson==3.11.9 \ + --hash=sha256:011382e2a60fda9d46f1cdee31068cfc52ffe952b587d683ec0463002802a0f4 \ + --hash=sha256:03db380e3780fa0015ed776a90f20e8e20bb11dde13b216ce19e5718e3dfba62 \ + --hash=sha256:051b102c93b4f634e89f3866b07b9a9a98915ada541f4ec30f177067b2694979 \ + --hash=sha256:08f4d8ebb44925c794e535b2bebc507cebf32209df81de22ae285fb0d8d66de0 \ + --hash=sha256:0b34789fa0da61cf7bef0546b09c738fb195331e017e477096d129e9105ab03d \ + --hash=sha256:0e4eed3b200023042814d2fc8a5d2e880f13b52e1ed2485e83da4f3962f7dc1a \ + --hash=sha256:115ab5f5f4a0f203cc2a5f0fb09aee503a3f771aa08392949ab5ca230c4fbdbd \ + --hash=sha256:135869ef917b8704ea0a94e01620e0c05021c15c52036e4663baffe75e72f8ce \ + --hash=sha256:147302878da387104b66bb4a8b0227d1d487e976ce41a8501916161072ed87b1 \ + --hash=sha256:14ed654580c1ed2bc217352ec82f91b047aef82951aa71c7f64e0dcb03c0e180 \ + --hash=sha256:16969c9d369c98eb084889c6e4d2d39b77c7eb38ceccf8da2a9fff62ae908980 \ + --hash=sha256:19b72ed11572a2ee51a67a903afbe5af504f84ed6f529c0fe44b0ab3fb5cc697 \ + --hash=sha256:231742b4a11dad8d5380a435962c57e91b7c37b79be858f4ef1c0df1a259897e \ + --hash=sha256:25e4aed0312d292c09f61af25bba34e0b2c88546041472b09088c39a4d828af1 \ + --hash=sha256:26a473dbb4162108b27901492546f83c76fdcea3d0eadff00ae7a07e18dcce09 \ + --hash=sha256:277fefe9d76ee17eb14debf399e3533d4d63b5f677a4d3719eb763536af1f4bd \ + --hash=sha256:2d057a602cdd19a0ad680417527c45b6961a095081c0f46fe0e03e304aac6470 \ + --hash=sha256:32ef5f4283a3be81913947d19608eacb7c6608026851123790cd9cc8982af34b \ + --hash=sha256:33d7d766701847dc6729846362dc27895d2f2d2251264f9d10e7cb9878194877 \ + --hash=sha256:34fd2317602587321faab75ab76c623a0117e80841a6413654f04e47f339a8fb \ + --hash=sha256:3513550321f8c8c811a7c3297b8a630e82dc08e4c10216d07703c997776236cd \ + --hash=sha256:380cdce7ba24989af81d0a7013d0aaec5d0e2a21734c0e2681b1bc4f141957fe \ + --hash=sha256:3a81d52442a7c99b3662333235b3adf96a1715864658b35bb797212be7bddb97 \ + --hash=sha256:3ebca4179031ee716ed076ffadc29428e900512f6fccee8614c9983157fcf19c \ + --hash=sha256:48ee05097750de0ff69ed5b7bbcf0732182fd57a24043dcc2a1da780a5ead3a5 \ + --hash=sha256:4bab1b2d6141fe7b32ae71dac905666ece4f94936efbfb13d55bb7739a3a6021 \ + --hash=sha256:4d4e98d6f3b8afed8bc8cd9718ec0cdf46661826beefb53fe8eafb37f2bf0362 \ + --hash=sha256:4d7fde5501b944f83b3e665e1b31343ff6e154b15560a16b7130ea1e594a4206 \ + --hash=sha256:4da3c38a2083ca4aaf9c2a36776cce3e9328e6647b10d118948f3cfb4913ffe4 \ + --hash=sha256:4e39364e726a8fff737309aff059ff67d8a8c8d5b677be7bb49a8b3e84b7e218 \ + --hash=sha256:4fd66214623f1b17501df9f0543bef0b833979ab5b6ded1e1d123222866aa8c9 \ + --hash=sha256:4fef17e1f8722c11587a6ef18e35902450221da0028e65dbaaa543619e68e48f \ + --hash=sha256:53b50b0e14084b8f7e29c5ce84c5af0f1160169b30d8a6914231d97d2fe297d4 \ + --hash=sha256:57ea77fb70a448ce87d18fca050193202a3da5e54598f6501ca5476fb66cfe02 \ + --hash=sha256:59e403b1cc5a676da8eaf31f6254801b7341b3e29efa85f92b48d272637e77be \ + --hash=sha256:5b192c6cf397e4455b11523c5cf2b18ed084c1bbd61b6c0926344d2129481972 \ + --hash=sha256:5f63aaf97afd9f6dec5b1a68e1b8da12bfccb4cb9a9a65c3e0b6c847849e7586 \ + --hash=sha256:63e0efbc991250c0b3143488fa57d95affcabbfc63c99c48d625dd37779aafe2 \ + --hash=sha256:6cc7923789694fd58f001cbcac7e47abc13af4d560ebbfcf3b41a8b1a0748124 \ + --hash=sha256:71e63adb0e1f1ed5d9e168f50a91ceb93ae6420731d222dc7da5c69409aa47aa \ + --hash=sha256:71f3db16e69b667b132e0f305a833d5497da302d801508cbb051ed9a9819da47 \ + --hash=sha256:844417969855fc7a41be124aafe83dc424592a7f77cd4501900c67307122b92c \ + --hash=sha256:8697ab6a080a5c46edaad50e2bc5bd8c7ca5c66442d24104fa44ec74910a8244 \ + --hash=sha256:87e4d4ab280b0c87424d47695bec2182caf8cfc17879ea78dab76680194abc13 \ + --hash=sha256:8aff7da9952a5ad1cef8e68017724d96c7b9a66e99e91d6252e1b133d67a7b10 \ + --hash=sha256:8ecc30f10465fa1e0ce13fd01d9e22c316e5053a719a8d915d4545a09a5ff677 \ + --hash=sha256:97d0d932803c1b164fde11cb542a9efcb1e0f63b184537cca65887147906ff48 \ + --hash=sha256:97db4c94a7db398a5bd636273324f0b3fd58b350bbbac8bb380ceb825a9b40f4 \ + --hash=sha256:9af678d6488357948f1f84c6cd1c1d397c014e1ae2f98ae082a44eb48f602624 \ + --hash=sha256:9ef6fe90aadef185c7b128859f40beb24720b4ecea95379fc9000931179c3a49 \ + --hash=sha256:9f78cf8fec5bd627f4082b8dfeac7871b43d7f3274904492a43dab39f18a19a0 \ + --hash=sha256:a028425d1b440c5d92a6be1e1a020739dfe67ea87d96c6dbe828c1b30041728b \ + --hash=sha256:a6082706765a95a6680d812e1daf1c0cfe8adec7831b3ff3b625693f3b461b1c \ + --hash=sha256:a8f5f8bc7ce7d59f08d9f99fa510c06496164a24cb5f3d34537dbd9ca30132e2 \ + --hash=sha256:aaea64f3f467d22e70eeed68bdccb3bc4f83f650446c4a03c59f2cba28a108db \ + --hash=sha256:ace6c58523302d3b97b6ac5c38a5298a54b473762b6be82726b4265c41029f92 \ + --hash=sha256:b3afcf569c15577a9fe64627292daa3e6b3a70f4fb77a5df246a87ec21681b94 \ + --hash=sha256:b6ef1979adc4bc243523f1a2ba91418030a8e29b0a99cbe7e0e2d6807d4dce6e \ + --hash=sha256:be4fa4f0af7fa18951f7ab3fc2148e223af211bf03f59e1c6034ec3f97f21d61 \ + --hash=sha256:c2d3dc759490128c5c1711a53eeaa8ee1d437fd0038ffd2b6008abf46db3f882 \ + --hash=sha256:c5d001196b89fa9cf0a4ab79766cd835b991a166e4b621ba95089edc50c429ff \ + --hash=sha256:cce9127885941bd28f080cecf1f1d288336b7e0d812c345b08be88b572796254 \ + --hash=sha256:cde1a448023ba7d5bb4c01c5afb48894380b5e4956e0627266526587ef4e535f \ + --hash=sha256:d4087e5c0209a0a8efe4de3303c234b9c44d1174161dcd851e8eea07c7560b32 \ + --hash=sha256:d8ea516b3726d190e1b4297e6f4e7a8650347ae053868a18163b4dd3641d1fff \ + --hash=sha256:e30ab17845bb9fa54ccf67fa4f9f5282652d54faa6d17452f47d0f369d038673 \ + --hash=sha256:e5c9b8f28e726e97d97696c826bc7bea5d71cecd63576dba92924a32c1961291 \ + --hash=sha256:ea407d4ccf5891d667d045fecae97a7a1e5e87b3b97f97ae1803c2e741130be0 \ + --hash=sha256:ea5c46eb2d3af39e806b986f4b09d5c2706a1f5afde3cbf7544ce6616127173c \ + --hash=sha256:eebdbdeef0094e4f5aefa20dcd4eb2368ab5e7a3b4edea27f1e7b2892e009cf9 \ + --hash=sha256:f01c4818b3fc9b0da8e096722a84318071eaa118df35f6ed2344da0e73a5444f \ + --hash=sha256:f36b7f32c7c0db4a719f1fc5824db4a9c6f8bd1a354debb91faf26ebf3a4c71e \ + --hash=sha256:f5d89a2ed90731df3be64bab0aa44f78bff39fdc9d71c291f4a8023aa46425b7 \ + --hash=sha256:ffe02797b5e9f3a9d8292ddcd289b474ad13e81ad83cd1891a240811f1d2cb81 # via trino overrides==7.7.0 \ --hash=sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a \ @@ -3341,17 +3328,17 @@ pandocfilters==1.5.1 \ --hash=sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e \ --hash=sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc # via nbconvert -paramiko==4.0.0 \ - --hash=sha256:0e20e00ac666503bf0b4eda3b6d833465a2b7aff2e2b3d79a8bba5ef144ee3b9 \ - --hash=sha256:6a25f07b380cc9c9a88d2b920ad37167ac4667f8d9886ccebd8f90f654b5d69f +paramiko==5.0.0 \ + --hash=sha256:36763b5b95c2a0dcfdf1abc48e48156ee425b21efe2f0e787c2dd5a95c0e5e79 \ + --hash=sha256:b7044611c30140d9a75261653210e2002977b71a0497ff3ba0d98d7edbf62f7c # via openshift-client parsimonious==0.11.0 \ --hash=sha256:32e3818abf9f05b3b9f3b6d87d128645e30177e91f614d2277d88a0aea98fae2 \ --hash=sha256:e080377d98957beec053580d38ae54fcdf7c470fb78670ba4bf8b5f9d5cad2a9 # via singlestoredb -parso==0.8.6 \ - --hash=sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd \ - --hash=sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff +parso==0.8.7 \ + --hash=sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c \ + --hash=sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1 # via jedi parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -3487,9 +3474,9 @@ pillow==11.3.0 \ # python-pptx # scikit-image # torchvision -pip==26.1 \ - --hash=sha256:4e8486d821d814b77319acb7b9e8bf5a4ee7590a643e7cb21029f209be8573c1 \ - --hash=sha256:81e13ebcca3ffa8cc85e4deff5c27e1ee26dea0aa7fc2f294a073ac208806ff3 +pip==26.1.1 \ + --hash=sha256:99cb1c2899893b075ff56e4ed0af55669a955b49ad7fb8d8603ecdaf4ed653fb \ + --hash=sha256:d36762751d156a4ee895de8af39aa0abeeeb577f93a2eca6ab62467bbf0f8a78 # via pip-tools pip-tools==7.5.3 \ --hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \ @@ -3521,9 +3508,9 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (pyproject.toml) -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via # feast (pyproject.toml) # jupyter-server @@ -3533,135 +3520,134 @@ prompt-toolkit==3.0.52 \ --hash=sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855 \ --hash=sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955 # via ipython -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage @@ -3806,9 +3792,9 @@ psycopg-binary==3.2.5 \ --hash=sha256:ee6d8f489a9b116ea8dc797664a50671585a4ca20573359f067858e1231cc217 \ --hash=sha256:efb878d08dd49d7d9d18512e791b418a1171d08f935475eec98305f0886b7c14 # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg ptyprocess==0.7.0 \ --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \ @@ -4005,9 +3991,9 @@ pycryptodome==3.23.0 \ --hash=sha256:e3f2d0aaf8080bda0587d58fc9fe4766e012441e2eed4269a77de6aea981c8be \ --hash=sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7 # via minio -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # codeflare-sdk @@ -4023,131 +4009,131 @@ pydantic==2.13.3 \ # pydantic-settings # qdrant-client # ray -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # docling # docling-core @@ -4417,9 +4403,9 @@ pyodbc==5.3.0 \ # via # feast (pyproject.toml) # ibis-framework -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python pyparsing==3.3.2 \ --hash=sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d \ @@ -4500,112 +4486,146 @@ pytest-xdist==3.8.0 \ --hash=sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88 \ --hash=sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1 # via feast (pyproject.toml) -python-bidi==0.6.7 \ - --hash=sha256:01ff2fd676ef8351f32e820b2d3b61eac875a21702d2118263a2641b458e1996 \ - --hash=sha256:05fe5971110013610f0db40505d0b204edc756e92eafac1372a464f8b9162b11 \ - --hash=sha256:06650a164e63e94dc8a291cc9d415b4027cb1cce125bc9b02dac0f34d535ed47 \ - --hash=sha256:0cb75e8a410166fd677d55095e505bf6a4773c066f51efbda72d302ebc56e79b \ - --hash=sha256:0dbb4bbae212cca5bcf6e522fe8f572aff7d62544557734c2f810ded844d9eea \ - --hash=sha256:0f86e447e94ae78db7d56e7da2124c435eaee4425c87d3d92aea271317811112 \ - --hash=sha256:11c51579e01f768446a7e13a0059fea1530936a707abcbeaad9467a55cb16073 \ - --hash=sha256:1395e236c71f11267860b53293a33b19b991b06e0f4ac61045b892e6a99d96f2 \ - --hash=sha256:17572944e6d8fb616d111fc702c759da2bf7cedab85a3e4fa2af0c9eb95ed438 \ - --hash=sha256:19737d217088ef27014f98eac1827c5913e6fb1dea96332ed84ede61791070d9 \ - --hash=sha256:1ba28642928d1c8fdb18b0632fe931f156e888c646326a3ad8eb3e55ee904951 \ - --hash=sha256:1c061207212cd1db27bf6140b96dcd0536246f1e13e99bb5d03f4632f8e2ad7f \ - --hash=sha256:1c5fb99f774748de283fadf915106f130b74be1bade934b7f73a7a8488b95da1 \ - --hash=sha256:1dd0a5ec0d8710905cebb4c9e5018aa8464395a33cb32a3a6c2a951bf1984fe5 \ - --hash=sha256:24388c77cb00b8aa0f9c84beb7e3e523a3dac4f786ece64a1d8175a07b24da72 \ - --hash=sha256:24a4a268289bbe80ad7da3064d7325f1571173859e8ad75d2f99075d5278b02b \ - --hash=sha256:24afff65c581a5d6f658a9ec027d6719d19a1d8a4401000fdb22d2eeb677b8e3 \ - --hash=sha256:257d6dd0e07221f1dc8720fa61158471f5aae30d5f89837c38a026386151c250 \ - --hash=sha256:26a8fe0d532b966708fc5f8aea0602107fde4745a8a5ae961edd3cf02e807d07 \ - --hash=sha256:2a93b0394cc684d64356b0475858c116f1e335ffbaba388db93bf47307deadfa \ - --hash=sha256:2d28e2bdcadf5b6161bb4ee9313ce41eac746ba57e744168bf723a415a11af05 \ - --hash=sha256:349b89c3110bd25aa56d79418239ca4785d4bcc7a596e63bb996a9696fc6a907 \ - --hash=sha256:3a85275dfc24a96629da058c4c2fc93af6390aefe2f7cdde1500b6ac3fd40ca0 \ - --hash=sha256:3b63d19f3f56ff7f99bce5ca9ef8c811dbf0f509d8e84c1bc06105ed26a49528 \ - --hash=sha256:3b96744e4709f4445788a3645cea7ef8d7520ccd4fa8bbbfb3b650702e12c1e6 \ - --hash=sha256:414004fe9cba33d288ff4a04e1c9afe6a737f440595d01b5bbed00d750296bbd \ - --hash=sha256:4283f8b517411cc81b3c92d11998981fe54ac0d2300f4c58d803e0c071aba1ba \ - --hash=sha256:4636d572b357ab9f313c5340915c1cf51e3e54dd069351e02b6b76577fd1a854 \ - --hash=sha256:47deaada8949af3a790f2cd73b613f9bfa153b4c9450f91c44a60c3109a81f73 \ - --hash=sha256:49639743f1230648fd4fb47547f8a48ada9c5ca1426b17ac08e3be607c65394c \ - --hash=sha256:4c73cd980d45bb967799c7f0fc98ea93ae3d65b21ef2ba6abef6a057720bf483 \ - --hash=sha256:4d84e70923392f8c9611f0fb6b341577346ef6224f3809b05f0ae1fbf8f17578 \ - --hash=sha256:4ea928c31c7364098f853f122868f6f2155d6840661f7ea8b2ccfdf6084eb9f4 \ - --hash=sha256:5013ba963e9da606c4c03958cc737ebd5f8b9b8404bd71ab0d580048c746f875 \ - --hash=sha256:5debaab33562fdfc79ffdbd8d9c51cf07b8529de0e889d8cd145d78137aab21e \ - --hash=sha256:5ebc19f24e65a1f5c472e26d88e78b9d316e293bc6f205f32de4c4e99276336e \ - --hash=sha256:630cee960ba9e3016f95a8e6f725a621ddeff6fd287839f5693ccfab3f3a9b5c \ - --hash=sha256:6323e943c7672b271ad9575a2232508f17e87e81a78d7d10d6e93040e210eddf \ - --hash=sha256:6c051f2d28ca542092d01da8b5fe110fb6191ff58d298a54a93dc183bece63bf \ - --hash=sha256:6c19ab378fefb1f09623f583fcfa12ed42369a998ddfbd39c40908397243c56b \ - --hash=sha256:6df7be07af867ec1d121c92ea827efad4d77b25457c06eeab477b601e82b2340 \ - --hash=sha256:6f9fa1257e075eeeed67d21f95e411036b7ca2b5c78f757d4ac66485c191720a \ - --hash=sha256:7336a3c4ba4fc9e6741fbe60c6483266fe39e1f24830724dfce453471d11fa40 \ - --hash=sha256:73a88dc333efc42281bd800d5182c8625c6e11d109fc183fe3d7a11d48ab1150 \ - --hash=sha256:766d5f5a686eb99b53168a7bdfb338035931a609bdbbcb537cef9e050a86f359 \ - --hash=sha256:77bb4cbadf4121db395189065c58c9dd5d1950257cc1983004e6df4a3e2f97ad \ - --hash=sha256:77fea54c2379b93def4ed16db6390e1232e7b235679587295a23dd8b1925475f \ - --hash=sha256:8047c33b85f7790474a1f488bef95689f049976a4e1c6f213a8d075d180a93e4 \ - --hash=sha256:80e6fd06f6e4074d183cea73962c89cf76cb4f70c0ee403689f57a429ebde488 \ - --hash=sha256:849a57d39feaf897955d0b19bbf4796bea53d1bcdf83b82e0a7b059167eb2049 \ - --hash=sha256:8678c2272e7bd60a75f781409e900c9ddb9f01f55c625d83ae0d49dfc6a2674f \ - --hash=sha256:8814db38fa317bebec8eb74b826bae7d0cb978a7eca30dfe4ecf60e61f06ee0b \ - --hash=sha256:8860d67dc04dc530b8b4f588f38b7341a76f2ec44a45685a2d54e9dcffa5d15a \ - --hash=sha256:898db0ea3e4aaa95b7fecba02a7560dfbf368f9d85053f2875f6d610c4d4ec2c \ - --hash=sha256:8a17631e3e691eec4ae6a370f7b035cf0a5767f4457bd615d11728c23df72e43 \ - --hash=sha256:8a18c61817f3210ba74ad5792c8a5048d9550ba233233a0a8fe35800350988f4 \ - --hash=sha256:8d4e621caadfdbc73d36eabdb2f392da850d28c58b020738411d09dda6208509 \ - --hash=sha256:94dbfd6a6ec0ae64b5262290bf014d6063f9ac8688bda9ec668dc175378d2c80 \ - --hash=sha256:95867a07c5dee0ea2340fe1d0e4f6d9f5c5687d473193b6ee6f86fa44aac45d1 \ - --hash=sha256:95c9de7ebc55ffb777548f2ecaf4b96b0fa0c92f42bf4d897b9f4cd164ec7394 \ - --hash=sha256:9adeec7cab0f2c2c291bd7faf9fa3fa233365fd0bf1c1c27a6ddd6cc563d4b32 \ - --hash=sha256:9c463ae15e94b1c6a8a50bd671d6166b0b0d779fd1e56cbf46d8a4a84c9aa2d0 \ - --hash=sha256:9d9de35eb5987da27dd81e371c52142dd8e924bd61c1006003071ea05a735587 \ - --hash=sha256:a2eb8fca918c7381531035c3aae31c29a1c1300ab8a63cad1ec3a71331096c78 \ - --hash=sha256:a4319f478ab1b90bbbe9921606ecb7baa0ebf0b332e821d41c3abdf1a30f0c35 \ - --hash=sha256:a507fe6928a27a308e04ebf2065719b7850d1bf9ff1924f4e601ef77758812bd \ - --hash=sha256:a8892a7da0f617135fe9c92dc7070d13a0f96ab3081f9db7ff5b172a3905bd78 \ - --hash=sha256:a99d898ad1a399d9c8cab5561b3667fd24f4385820ac90c3340aa637aa5adfc9 \ - --hash=sha256:aa4136f8ccb9a8cd32befd1b3882c2597e6791e64e8b3cf3129c55549b5de62f \ - --hash=sha256:ab2a5177522b62426db897b655a02f574e27d9735bbeb6da41bc981b771df636 \ - --hash=sha256:ab806fd026bfd48bade5e21e06d0d799cbfad32f236989ff6f37db03a5fbe34f \ - --hash=sha256:ad5f0847da00687f52d2b81828e8d887bdea9eb8686a9841024ea7a0e153028e \ - --hash=sha256:b0bee27fb596a0f518369c275a965d0448c39a0730e53a030b311bb10562d4d5 \ - --hash=sha256:b31d66b62736b8514982a24a7dedcf8c062b27a8e9b51e52d7a5899045a45fe1 \ - --hash=sha256:b38ddfab41d10e780edb431edc30aec89bee4ce43d718e3896e99f33dae5c1d3 \ - --hash=sha256:be1bdbd52145dfe46880d8bb56eacc25aa75c3bb075fa103de7974295eb2811f \ - --hash=sha256:c10065081c0e137975de5d9ba2ff2306286dbf5e0c586d4d5aec87c856239b41 \ - --hash=sha256:c11c62a3cdb9d1426b1536de9e3446cb09c7d025bd4df125275cae221f214899 \ - --hash=sha256:c3777ae3e088e94df854fbcbd8d59f9239b74aac036cb6bbd19f8035c8e42478 \ - --hash=sha256:c3d93171dd65b36eca5367acf19eef82c79b4df557cb4bd0daf323b7a27f2d3b \ - --hash=sha256:c9a679b24f5c6f366a0dec75745e1abeae2f597f033d0d54c74cbe62e7e6ae28 \ - --hash=sha256:caa71c723f512f8d859fa239573086e16f38ffc426b5b2f7dab5d40fdb356c80 \ - --hash=sha256:ce86d9dfc6b409ad16556384244572bb3cbefa2ca0f0eab7fba0ff2112b2f068 \ - --hash=sha256:d4cd82e65b5aeb31bd73534e61ece1cab625f4bcbdc13bc4ddc5f8cbfb37c24a \ - --hash=sha256:d524a4ba765bae9b950706472a77a887a525ed21144fe4b41f6190f6e57caa2c \ - --hash=sha256:d7310312a68fdb1a8249cf114acb5435aa6b6a958b15810f053c1df5f98476e4 \ - --hash=sha256:d8274ff02d447cca026ba00f56070ba15f95e184b2d028ee0e4b6c9813d2aaf9 \ - --hash=sha256:d879be7fb5296409e18731c7ba666d56ecd45b816b2c9eb35138aa1d7777aeb5 \ - --hash=sha256:d87ed09e5c9b6d2648e8856a4e556147b9d3cd4d63905fa664dd6706bc414256 \ - --hash=sha256:dde1c3f3edb1f0095dcbf79cf8a0bb768f9539e809d0ad010d78200eea97d42a \ - --hash=sha256:df5e9db9539d70426f5d20c7ebb6f7b33da5fbd40620e11261fe3fba7e177145 \ - --hash=sha256:e7cad66317f12f0fd755fe41ee7c6b06531d2189a9048a8f37addb5109f7e3e3 \ - --hash=sha256:ec1694134961b71ac05241ac989b49ccf08e232b5834d5fc46f8a7c3bb1c13a9 \ - --hash=sha256:ec985386bc3cd54155f2ef0434fccbfd743617ed6fc1a84dae2ab1de6062e0c6 \ - --hash=sha256:ef9d103706560c15fecaf7d3cff939e0f68ce5763cf0e64d0e4e5d37f9bdd2d1 \ - --hash=sha256:f1350033431d75be749273236dcfc808e54404cd6ece6204cdb1bc4ccc163455 \ - --hash=sha256:f1fe71c203f66bc169a393964d5702f9251cfd4d70279cb6453fdd42bd2e675f \ - --hash=sha256:f24189dc3aea3a0a94391a047076e1014306b39ba17d7a38ebab510553cd1a97 \ - --hash=sha256:f57726b5a90d818625e6996f5116971b7a4ceb888832337d0e2cf43d1c362a90 \ - --hash=sha256:f7c055a50d068b3a924bd33a327646346839f55bcb762a26ec3fde8ea5d40564 \ - --hash=sha256:f7e5072269c34a1b719910ee4decf13b288159fb320f18aba3885f6b6aab7753 \ - --hash=sha256:f7e507e1e798ebca77ddc9774fd405107833315ad802cfdaa1ab07b6d9154fc8 \ - --hash=sha256:fbbffb948a32f9783d1a28bc0c53616f0a76736ed1e7c1d62e3e99a8dfaab869 \ - --hash=sha256:fd87d112eda1f0528074e1f7c0312881816cb75854133021124269a27c6c48dc \ - --hash=sha256:ff06e4aa781aa4f68fbfaf1e727fe221fa1c552fef8ae70b6d2a0178e1f229ad +python-bidi==0.6.10 \ + --hash=sha256:00e8f3504e63a7713bdc1367b3de46270ddc76551f1cf04510039d65a123fd53 \ + --hash=sha256:038d29ba39a638a5aa904e3f86547f6f883ca16b3ea1db98fbc861e9644762fe \ + --hash=sha256:0533a900b9b9fa94e1c906e8cdb15b579389ce3fa959af228a12e8527aaba8cc \ + --hash=sha256:0675bdaceac9e2bd8ea99729d064435d1d1502e1875b87ed72ad93a8da153ff0 \ + --hash=sha256:07de0d6b998184233e8f753cbff5e828e0204b38daa3deaa458af6cb53c0960d \ + --hash=sha256:099b82f05557c1588973cceab0ebd2535800990850b4cbf8eae57682ef746a16 \ + --hash=sha256:099c3c29d813e263e999205ec9d59658c519c3bc51256e8ab3761ff3dc46a1b3 \ + --hash=sha256:09c90aca4713ed86422acfbaf90d8c5c9f64cbae02e737e7f82f13cd2ff4f34c \ + --hash=sha256:09d70ad127cbcb9cc5e90c4f2f427d998450374870f305345a8c23338a0bca55 \ + --hash=sha256:0c63bf9de0646eb7cf8d520e258701e5086c010e18cbc32e8ab884e29d5ff12f \ + --hash=sha256:0e404d7e027bd47553e48d9e3f207f3ee255698cac1fa80380d4703d4397ffe5 \ + --hash=sha256:0ef816ef2a04ce92108cdcc61c7710860e0f2b11906d493e14c6e5b403b09a01 \ + --hash=sha256:0f1c310774819302fba49b0608126033ba4b2bd0fb01d23b2c232df6d31003a4 \ + --hash=sha256:0f6a5c7b00ce285a3389e261db3f0477c2c3e893b352e65889410d995ff5ee13 \ + --hash=sha256:15298befde960a80885729c3603a95058f611b7d71de645cfbdd875f98146e14 \ + --hash=sha256:153a2f75648ceb583a09e66b4da99ec54b82e3226e5c0992f79e05d2d00d5a6e \ + --hash=sha256:1552aad47e65e8458346307e8b3fe7ae8eb0fcf3ea4ce3aba5cf44c50117e30b \ + --hash=sha256:15f0deadc4e8bf4d5458d62c4c94f7716c1d29f106751f2d9f5a478698465df0 \ + --hash=sha256:19c06c20f47f4a3daad14b5e7c2b4e23e76f4277883ef43616ecd9a8eff73203 \ + --hash=sha256:1a156226a8723942b50ffa210d1840688da158c185e3d0840743345003249875 \ + --hash=sha256:1d7714b96ab30df31337f5d100bf71ebe637976e2464761c81ab05787c4bacff \ + --hash=sha256:22f51e0e5c64e18f5f9b6ac2d01fcbbecdfa6a2d571ae71323d3051d0635b9c6 \ + --hash=sha256:2371afc3f50da896212b2d1ea7f461134ef292e1737c87d7547dd0384c092388 \ + --hash=sha256:2598937e05401111ade68cd6e2212fa556fe8cc401b541d19dcd039496a0cfdd \ + --hash=sha256:27fc502f2e368ffcedb97b674956f8306573f43cd0204e2ed9fbe7f41d116a7b \ + --hash=sha256:29a476af5efbe7fedfb53c8d05d1447e4f4149da8d88fa0643716a374b6abf27 \ + --hash=sha256:2a2013623ea8713e4bc712922d37449a4a86a504275b42447e1d2f22eb565f9d \ + --hash=sha256:322bea01cd3f9c1cc153ea4ca3b8f82d27efe5ae8c4bd81cc981420e25490bd4 \ + --hash=sha256:327e570f10443995d3697e8096bc337970dfc32cd5339759fa4e87093cf5cdf9 \ + --hash=sha256:32c6075f2b44c1b3d01e7d0c8a5bb519bdbbc832bee2d4b01a06908117d3b050 \ + --hash=sha256:32eb932af02b2dec7d3043daed84a80e34a3f46327a7cacf6a813773369fceb8 \ + --hash=sha256:341d75c8b0e107bd5188e30a8a340ec5e1a26066f21de3c761b53fde54e6cd7d \ + --hash=sha256:3a2fcfc6be1917695cd6f7c9626481aa81ade7e3ef3f79c0f7a286edf68e4463 \ + --hash=sha256:3a485820e499c74332929eb9fe9246cec92fd4e6b8c2abde03e8d8f0fea00728 \ + --hash=sha256:3d0c48305c58a5ed0017500dbeedbfc62fc8b9cd552d582ea578a10f77eed1c1 \ + --hash=sha256:3ebbf3915c39ed8d0095e3672ed4f824dfe9544e950a273513956b147528a18b \ + --hash=sha256:3ff3bc2221d8c32427cf90999b60ee9bd5e31e2e0b7f54b63ad54a05912725b8 \ + --hash=sha256:441d931609adfb2d213892e2da0326a5c5048f05e36497d5e37087b97a3287dd \ + --hash=sha256:446f1cd15783b14a280fc6c8e8931afa3f4ec1edc0b341b82cfca1537886cf28 \ + --hash=sha256:44caa945d27b7634bb4fdfe8fbeaa27b33fb12b66418e326e5a491d235b5c61b \ + --hash=sha256:44e21c6dc51b88ede76aafe730a208ef5a23cf7275d30d7870ff46e3a6ad4314 \ + --hash=sha256:44e6566093397def4e72f85e47d246d442838c497e6be3b14be0bca7d9761a50 \ + --hash=sha256:452a7ff78909edef965d1f2dc87e8cf04e6d4234771eef9b876688fdd821ab1d \ + --hash=sha256:473e718a86e5a9290ee240cf0cf49093ec0ca841d709f0fef191b7f5ea4e8b3b \ + --hash=sha256:48af3fc3bee49c3be03bbd47b503dc794474c52db249c57d230a4616cf13cf52 \ + --hash=sha256:4ed6794f07fcb4374e74a1a973350c5997c2088ba6143a8fedb533010f379502 \ + --hash=sha256:5040b6595e6a9d1cbca5fc2298684994cc5f1036ff2015eaf30063f015f31540 \ + --hash=sha256:5899a244bc0b60d71ae80dcf0dfad16c72e742857c13c0d040d1c975bb758983 \ + --hash=sha256:5d11a3eb283fbde362c4b1faa32a4053413a83aa6abc2274827e1f03c89f53f4 \ + --hash=sha256:5e4752fc7228a2d70b69dc81fe4bbe602eca44a520b3d7ff46b50fb2b68d435e \ + --hash=sha256:5f3febf9b547b3b237429fb8c214ff8faa50972c6de0fc0fbaf060fc29e4696d \ + --hash=sha256:5fdea42e1356d428cdc1771e3468327cf776da51c44a8ced855b67b02809ea56 \ + --hash=sha256:6054e1b9920a917749fb4e7547b378e0647c25095c012a2a7c184493b9204ef1 \ + --hash=sha256:644d068e01071c7af565a70269f8c93f6434c031df2b1428625ed8f6040b94b4 \ + --hash=sha256:64d4adc41eb79de0561874bbbe74e8f7974b3bb947070d0edd73d388c98e1234 \ + --hash=sha256:6a75d9ab145003094475bc955120b4577d70f34ee02f0b69696d7f216b513479 \ + --hash=sha256:6c5be3141bf22d2908d6269e613c2bc3824db0f31560a61b95be75d224812c67 \ + --hash=sha256:6e2b535558cad96805b58695353a628471e455f4f30e346d1d0a10468c991d0e \ + --hash=sha256:704c76e64aa0f7c0d4b8dff04ce9e8fb38314bddd1426985856e2533e66d7d21 \ + --hash=sha256:732ad1ebff85d4669152ec8c0bbeebdf945a3460e26ae852a30d39d93765765c \ + --hash=sha256:73bc12f9599cf1dbc39e3792abaa8fc62656cff30340308c3341583631ea5fcc \ + --hash=sha256:78248580e38051ba799076bffa5d0498d2550a4fa6d2ec733c38e4ec5a2d8039 \ + --hash=sha256:7965b1c468b986a1bbb9fd3ba8641b51f4f93352cefc83eec851fdf15850019f \ + --hash=sha256:79ba6f914436c674cb0a25d4e1356e54b3b788ccd1498e1b130edd6ba1ad2f8e \ + --hash=sha256:7a3f20dca786d493c1383273992ca87ff78942456898b136e2973a682dad73ae \ + --hash=sha256:7a5452fda554628660eb4c1c4da6187986c5497f34fbeb07f920c867b6daa943 \ + --hash=sha256:7ae97eed360514e229b0c407095a4184d8a0e6383bc87962972ae27f6ecb96e6 \ + --hash=sha256:8012aed843d01a96fbd5c2fe4d8062696f8720d38990d68eaf871aa692652e98 \ + --hash=sha256:81b27ffd3e40e2d8f274e1acbf5967873e53d6f32bf677899e0d8421170703da \ + --hash=sha256:82897bacfd8fc2fb1157b1828a011af954c24b1dc25adb2aec33fdbcacd3935f \ + --hash=sha256:84f6975f51d2af2e9b474669f26673486899138ea985f9967db4f6ab9a431b95 \ + --hash=sha256:86dea78bc3953853afb701b7bf3531f062e7aa7d0a4bdb1a59f496200967bbf7 \ + --hash=sha256:8af0d7059829d43e5b9e4072103f09d3869d3da9fc6db66b51e93da0ed0b1161 \ + --hash=sha256:8f95878c574eb603942561ad76d09ed8b05e2ffd46917b32f15bb83878f7f40e \ + --hash=sha256:903b8e4ea0fed7d453e7e437d41ba0357be55572a108f8d6110ab74cbe3b2bb0 \ + --hash=sha256:916688bcee55ce613879751a27b25977f75403c681e6d110cdf301edb48027a1 \ + --hash=sha256:929c705687f506fed02aa1fbd6781fb310203d7a20420dd7f106cd87fe1d01c5 \ + --hash=sha256:9545c3cd8238a79ab7e0ff7b27326bef3439001207984ea47fa3be31551d364e \ + --hash=sha256:97692e9fb3271a637f18d728d5db4ff729c82ae25356e35d371fada2fe0ff006 \ + --hash=sha256:9c2ae7649b77a4354b6db6423c495bd57ac5727d62266dfe98254896eb573b25 \ + --hash=sha256:a06a6e54a95b5c5864e117af2479113bb367660b0d95295b4adf314b3dff77af \ + --hash=sha256:a0df4cb0fe94de7565c3fc875888431ef774d643f00b030bd041fdebbdcd189b \ + --hash=sha256:a2e1da56d841ae506c49df41e16893428b96d3c8c255f096b1aa83c512302c94 \ + --hash=sha256:a50b1ce6c5a2aaa4febbd72cf030ec7d9bd63a063977850e484fb4a7983f7eaf \ + --hash=sha256:a51922e22ab237431c3d5505b2511732748f936349ab65d0c1a4a13e224144fc \ + --hash=sha256:a5aac3c9648872dcf11543751e2a8970ab0e8e3192fdf83ed507838917f50d70 \ + --hash=sha256:a7853e894f723675489ac49aa4b52dc8eac87d7a67b5940631c8c9d2aab46f90 \ + --hash=sha256:a7871f1226a062c641c500f81f05c2c00274c23de26707d747ce16ede43a6fdb \ + --hash=sha256:a84f26e55770a9326cedf79c005c2e7f9c13da9e0cbb65bc36890382a793bda9 \ + --hash=sha256:a9b83026c2907ad207eff37d5d302ecdd20441ba87d89401a79fa4b9af11f24d \ + --hash=sha256:afd28c86da0968996595b3dcc1166b24367954d69242c186c0916721fe36274d \ + --hash=sha256:b048ba7ec56dfd0eb37bee34d395771d1ce444fd7a32c6e8ddd3bfc92090a1d8 \ + --hash=sha256:b0c77d935abdd7e3bee0f9b8a7d0ae8a7c230e5aca3a7b9948576b2e151c9985 \ + --hash=sha256:b223d1f5493530777475fc40e4a47b6854a5ac56ea3211196d7a91809fa565f3 \ + --hash=sha256:b35b3c7e2c91f67dbf49de4513adf80ee052b06f15dcb9e7e5c6cd6f37373114 \ + --hash=sha256:b35ff4e825c4ad912a30909f2922eddd684c84bffc48e713c8bf22a4f3d7794f \ + --hash=sha256:b45368872b3770b20d101a87364ffeec5c0cf02d8aaee1834c30167fe29ddaaa \ + --hash=sha256:b47233bf36749ab63561ece99b8b32684043558415f1e4ca6c540f1793fa12f3 \ + --hash=sha256:b497a46082c3b0e0f9a2571d573e745686ed1a6f7a9c631ebe2b9d6f55ecc87a \ + --hash=sha256:b528e71c3f4b867e207418ea4ed465a111306ac6c2838bf75ff1e465c74ea933 \ + --hash=sha256:b5c66316296044bcdda0fa37296322973c73b708eac737565d5bbc2f6fd51037 \ + --hash=sha256:b6bbca74b7d39d4f259c0eebb6d62fd970999c0beae553db7232319d151fa533 \ + --hash=sha256:b6ff61cd6e3a60ae9bd559aa5ab5a7018e8d26067e7f80ca0ac30e08c76bf983 \ + --hash=sha256:b97376c559d90d80976a2b3c2d1f7699b6e3ae69ffd2bfdefaacf1eb4bc45f8e \ + --hash=sha256:bca06cdbd6d90a939af253ddeed232e7e122a1e027942c2ebd431307e6471be6 \ + --hash=sha256:bd1247b5138e23824b62f96aa03f1d45084dee6c76c46019784546cc432a85ee \ + --hash=sha256:c1726465626bcad9518ff878be9edb6897b42d57c1bfb9e4a00ffd4000980c48 \ + --hash=sha256:c267e531392cbdd900e46796d410dda380c7b311434bf5090ee261bb05650bcc \ + --hash=sha256:c2960742693ee19663bc448328b6b7035f6ae4ad28f57379568d22180911c7d5 \ + --hash=sha256:c55787b0274b1e06530817fe6d375a5443a0e32d5ee55071244fe5af3483fcbc \ + --hash=sha256:c5fb03df1d641d19cec53ee9eb5b89f659d0087d03ae94f06e78e2663824d013 \ + --hash=sha256:c7aa354a62e727b592cfa181a5d435d9a946aba4dd2349bb18fc52c869d470f1 \ + --hash=sha256:c7b849fa2ed07cb59ed5e76d3cf0e3527b7d7bfa2e70d4fcb6df048a9c9177ee \ + --hash=sha256:cac7477518b8cfd53e78527a873be7de5a69183397124f7ebcae295cc39187c1 \ + --hash=sha256:cdc2933960f9b1b160551ff4a0cc543ec3866550ad13f35f1881c22f08b5ad82 \ + --hash=sha256:ce576c6e9a548e09c853e47cb88a95bb29363586c6ec7778ead517e61449b275 \ + --hash=sha256:d698d1354d7e30d3a3fbfb91b7b6c904e13875b4ed2dc40c726ca23d82b5089a \ + --hash=sha256:d6ec69bd053def14e4538b15dcd28bc9528c820b644687c0d38afc38e81fe8e8 \ + --hash=sha256:d717dc455632ab75284969106c4f40cc1533709f852c50d6db643b20e903b23d \ + --hash=sha256:d7d9b2602cccbb92fc6a8b8ab2b1f0f03c77c126e089f22f7747b19499cb3e1d \ + --hash=sha256:de06759a2b223599a98a200b01b9fdafec7e346b513ce6a31632f7089234eca3 \ + --hash=sha256:de7f4782b4381ae5b0dfa36ce1e4b0a925ccecd4f52330fcc50bcd73430b99fd \ + --hash=sha256:df0a3aa46c78e56ebed8c5be33da34c0408d4114c6b782103208fecbd3b6cac0 \ + --hash=sha256:e0fe5c41dac834dfbf1f93f29438393fef13ce250e699d67d2c066da6a0eb8af \ + --hash=sha256:e13dc08bcf7ef257d0635400e3377d3a776ec57ea25e985e903b00bf5ea06911 \ + --hash=sha256:e2e81871fa3353376a35260bf0313e631624eac6997d8fa4d60f38beee3f633f \ + --hash=sha256:e4871a8955ba6c4d80eaffc0f44af6ab724a99f4ec2ad6499243fe542027494f \ + --hash=sha256:e65f8b3029e64af05323cc630550b27649d8b1b612387c2e88411ae32c6a5b59 \ + --hash=sha256:e75704f210e8fbcfbe9546f33d4ef86ff9932830d74726108b45dad72d5c1b55 \ + --hash=sha256:e7f1fa876d3b7c09c1c6be627338502e78d3cc6e9b21ea94f8eeec6ad4157afa \ + --hash=sha256:edec736cfe6b5421e6c0fbf3e4fc70b5db30263d22e070526c7c540f5895f9fb \ + --hash=sha256:f3386c4370515f7acb3372ca49b4bd6652b65c381f50e772b5de96da7df2dbad \ + --hash=sha256:f53dbcc5b1ab75ee593f9ccdd474f9091e21b2051ade79db9930540188f3c9e3 \ + --hash=sha256:f6dad7fe7f004900a45b04ab2ef51dd11a46c7be4b182c2e533810435e197249 \ + --hash=sha256:f6e8fca537eb348409549b75f8721fe911cc001124cc7cbfa1a4722e641584c3 \ + --hash=sha256:f6fb6b3fef1b611841f50688c46d722ad5bd9bb5b9beec9d7c51885519f6026c \ + --hash=sha256:fc012f8738e21462b8b173278ef9278a822373a64f558ac1bfa36eceb56296df \ + --hash=sha256:fedf838627e262a5a3b9312a144582e7c81ff3be986a3b0ecd51b9d904747c0b \ + --hash=sha256:ff693056db843b5e4de6d8e50b4847c116481406492d10517dfe4d7c573c8f82 # via easyocr python-dateutil==2.9.0 \ --hash=sha256:78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709 \ @@ -4645,19 +4665,18 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (pyproject.toml) -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ --hash=sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095 # via docling -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via - # clickhouse-connect # great-expectations # pandas # snowflake-connector-python @@ -4851,26 +4870,26 @@ pyzmq==27.1.0 \ # ipykernel # jupyter-client # jupyter-server -qdrant-client==1.17.1 \ - --hash=sha256:22f990bbd63485ed97ba551a4c498181fcb723f71dcab5d6e4e43fe1050a2bc0 \ - --hash=sha256:6cda4064adfeaf211c751f3fbc00edbbdb499850918c7aff4855a9a759d56cbd +qdrant-client==1.18.0 \ + --hash=sha256:093aa8cf8a420ee3ad2a68b007e1378d7992b2600e0b53c193fc172674f659cd \ + --hash=sha256:52e8ece1a7d40519801bf0b70713bfa0f6b7ae28c7275bbe0b0286fbed7f6db4 # via feast (pyproject.toml) -ray[data, default]==2.53.0 \ - --hash=sha256:14f46363e9b4cf0c1c8b4d8623ec337c5bd408377831b5e5b50067930137bbca \ - --hash=sha256:4108280d8a1cb90d7d68e5c954c35e63b8bb9a4ba15f88c5e7da0e2025647712 \ - --hash=sha256:4a1bb3fe09ab4cd0d16ddc96b9f60c9ed83b3f93b87aa8506e0d3b746fd4e825 \ - --hash=sha256:4db914a0a6dd608fa49c066929a1282745a2dbd73caee67d7b80fe684ca65bdd \ - --hash=sha256:4dbb5fce1364763f29741055f50abe33cf726397141f9cc0e845dd3cc963e455 \ - --hash=sha256:65e2ce58d3dc6baa3cf45824d889c1968ebde565ee54dfd80a98af8f31af8e4a \ - --hash=sha256:7196e5358dfcc8211be864f45e6dfe4827202df294af3c7a76ff8fbc080e0522 \ - --hash=sha256:73dbbaa7962a7f5e38aa8cf9483e0e9817205e989aa3dc859c738c2af1ae01df \ - --hash=sha256:85b472ab6fb8f1189f8cef81913fd91b24dd69b3fa7dcca7e144827bd924f6c0 \ - --hash=sha256:90faf630d20b6abf3135997fb3edb5842134aff92e04ee709865db04816d97ef \ - --hash=sha256:a0bbb98b0b0f25a3ee075ca10171e1260e70b6bc690cd509ecd7ce1228af854d \ - --hash=sha256:b828c147f9ff2f277b1d254e4fe9a746fdfaee7e313a93a97c7edf4dae9b81a4 \ - --hash=sha256:bd3ec4c342776ddac23ae2b108c64f5939f417ccc4875900d586c7c978463269 \ - --hash=sha256:d8b95d047d947493803fb8417aea31225dcacdab15afdc75b8a238901949d457 \ - --hash=sha256:eb000c17f7301071fdd15c44c4cd3ac0f7953bb4c7c227e61719fe7048195bcd +ray[data, default]==2.54.1 \ + --hash=sha256:054985194bd32f4464c93f9318d247fac61e1f32ac221565ecfdc81ab8c75d0b \ + --hash=sha256:0c3ae2943176e7b239c78b825a5b2bf4135d90280083a0e19c0a75a5db4d836f \ + --hash=sha256:2766f0230806480c38a9a94502087f1d4aea919f38521a28781690613b0290a4 \ + --hash=sha256:2ea650e648acc6e76edd98c694657fd1fcb1cd97700d944a7d20da90269e9810 \ + --hash=sha256:4c6f7e23dda62a32f94083141c3f97e9c4246e3ae4ae2bc488bcd8fd0311f54a \ + --hash=sha256:512587412e2f5e1753adabfdfa4dd9cff1dc509601e36fd5fab671e448ae4dac \ + --hash=sha256:6425f15cfe6a298366b53c8658350f94ced2c548802ca3b69f94b87db16e97c5 \ + --hash=sha256:645ebfb73cfd32bd510a05ed9f2738a18d6db69929cae9701d749f2740dbfd9a \ + --hash=sha256:673a895c0c4a716ed772552baa3f5b8d7d1f7a4b34e04787fdfe6fe3049ed0d8 \ + --hash=sha256:86c51eafd3e84dad59c1ef4cf97b3ac8c088af0705782ee915e31bca5880597a \ + --hash=sha256:c0240496af274af7cd3b1b1d015f23b88e5fdafe59bfdc040e5f229e0aff5dff \ + --hash=sha256:cd452b61ae2e0daf9271f5a554614397429cc2731681bae10fe72316dadc2749 \ + --hash=sha256:d05f477d1518a00fd5880644e889a7a3eaf64ae5d1f8f239a682d052ad2a383d \ + --hash=sha256:e095dfe9c521a04e5930520b4a82ea82d61903d4cd2f3270fbc5dfbdb41b9c72 \ + --hash=sha256:ea90bed0110e0ce3ff6571e7a0c800920a3c6d299d29b8eac020dac362667169 # via codeflare-sdk redis==7.4.0 \ --hash=sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad \ @@ -4883,128 +4902,128 @@ referencing==0.37.0 \ # jsonschema # jsonschema-specifications # jupyter-events -regex==2026.4.4 \ - --hash=sha256:011bb48bffc1b46553ac704c975b3348717f4e4aa7a67522b51906f99da1820c \ - --hash=sha256:04bb679bc0bde8a7bfb71e991493d47314e7b98380b083df2447cda4b6edb60f \ - --hash=sha256:0540e5b733618a2f84e9cb3e812c8afa82e151ca8e19cf6c4e95c5a65198236f \ - --hash=sha256:05568c4fbf3cb4fa9e28e3af198c40d3237cf6041608a9022285fe567ec3ad62 \ - --hash=sha256:0709f22a56798457ae317bcce42aacee33c680068a8f14097430d9f9ba364bee \ - --hash=sha256:0734f63afe785138549fbe822a8cfeaccd1bae814c5057cc0ed5b9f2de4fc883 \ - --hash=sha256:07edca1ba687998968f7db5bc355288d0c6505caa7374f013d27356d93976d13 \ - --hash=sha256:07f190d65f5a72dcb9cf7106bfc3d21e7a49dd2879eda2207b683f32165e4d99 \ - --hash=sha256:08c55c13d2eef54f73eeadc33146fb0baaa49e7335eb1aff6ae1324bf0ddbe4a \ - --hash=sha256:0a51cdb3c1e9161154f976cb2bef9894bc063ac82f31b733087ffb8e880137d0 \ - --hash=sha256:1371c2ccbb744d66ee63631cc9ca12aa233d5749972626b68fe1a649dd98e566 \ - --hash=sha256:173a66f3651cdb761018078e2d9487f4cf971232c990035ec0eb1cdc6bf929a9 \ - --hash=sha256:1b1ce5c81c9114f1ce2f9288a51a8fd3aeea33a0cc440c415bf02da323aa0a76 \ - --hash=sha256:1b9a00b83f3a40e09859c78920571dcb83293c8004079653dd22ec14bbfa98c7 \ - --hash=sha256:21e5eb86179b4c67b5759d452ea7c48eb135cd93308e7a260aa489ed2eb423a4 \ - --hash=sha256:261c015b3e2ed0919157046d768774ecde57f03d8fa4ba78d29793447f70e717 \ - --hash=sha256:2895506ebe32cc63eeed8f80e6eae453171cfccccab35b70dc3129abec35a5b8 \ - --hash=sha256:298c3ec2d53225b3bf91142eb9691025bab610e0c0c51592dde149db679b3d17 \ - --hash=sha256:2a5d273181b560ef8397c8825f2b9d57013de744da9e8257b8467e5da8599351 \ - --hash=sha256:2b69102a743e7569ebee67e634a69c4cb7e59d6fa2e1aa7d3bdbf3f61435f62d \ - --hash=sha256:2c785939dc023a1ce4ec09599c032cc9933d258a998d16ca6f2b596c010940eb \ - --hash=sha256:2da82d643fa698e5e5210e54af90181603d5853cf469f5eedf9bfc8f59b4b8c7 \ - --hash=sha256:2e19e18c568d2866d8b6a6dfad823db86193503f90823a8f66689315ba28fbe8 \ - --hash=sha256:312ec9dd1ae7d96abd8c5a36a552b2139931914407d26fba723f9e53c8186f86 \ - --hash=sha256:33424f5188a7db12958246a54f59a435b6cb62c5cf9c8d71f7cc49475a5fdada \ - --hash=sha256:3384df51ed52db0bea967e21458ab0a414f67cdddfd94401688274e55147bb81 \ - --hash=sha256:33bfda9684646d323414df7abe5692c61d297dbb0530b28ec66442e768813c59 \ - --hash=sha256:349d7310eddff40429a099c08d995c6d4a4bfaf3ff40bd3b5e5cb5a5a3c7d453 \ - --hash=sha256:36bcb9d6d1307ab629edc553775baada2aefa5c50ccc0215fbfd2afcfff43141 \ - --hash=sha256:3790ba9fb5dd76715a7afe34dbe603ba03f8820764b1dc929dd08106214ed031 \ - --hash=sha256:385edaebde5db5be103577afc8699fea73a0e36a734ba24870be7ffa61119d74 \ - --hash=sha256:39d8de85a08e32632974151ba59c6e9140646dcc36c80423962b1c5c0a92e244 \ - --hash=sha256:415a994b536440f5011aa77e50a4274d15da3245e876e5c7f19da349caaedd87 \ - --hash=sha256:421439d1bee44b19f4583ccf42670ca464ffb90e9fdc38d37f39d1ddd1e44f1f \ - --hash=sha256:475e50f3f73f73614f7cba5524d6de49dee269df00272a1b85e3d19f6d498465 \ - --hash=sha256:4ce255cc05c1947a12989c6db801c96461947adb7a59990f1360b5983fab4983 \ - --hash=sha256:504ffa8a03609a087cad81277a629b6ce884b51a24bd388a7980ad61748618ff \ - --hash=sha256:50a766ee2010d504554bfb5f578ed2e066898aa26411d57e6296230627cdefa0 \ - --hash=sha256:54170b3e95339f415d54651f97df3bff7434a663912f9358237941bbf9143f55 \ - --hash=sha256:54a1189ad9d9357760557c91103d5e421f0a2dabe68a5cdf9103d0dcf4e00752 \ - --hash=sha256:55d9304e0e7178dfb1e106c33edf834097ddf4a890e2f676f6c5118f84390f73 \ - --hash=sha256:586b89cdadf7d67bf86ae3342a4dcd2b8d70a832d90c18a0ae955105caf34dbe \ - --hash=sha256:59968142787042db793348a3f5b918cf24ced1f23247328530e063f89c128a95 \ - --hash=sha256:59efe72d37fd5a91e373e5146f187f921f365f4abc1249a5ab446a60f30dd5f8 \ - --hash=sha256:59f67cd0a0acaf0e564c20bbd7f767286f23e91e2572c5703bf3e56ea7557edb \ - --hash=sha256:5d354b18839328927832e2fa5f7c95b7a3ccc39e7a681529e1685898e6436d45 \ - --hash=sha256:62f5519042c101762509b1d717b45a69c0139d60414b3c604b81328c01bd1943 \ - --hash=sha256:6780f008ee81381c737634e75c24e5a6569cc883c4f8e37a37917ee79efcafd9 \ - --hash=sha256:6a50ab11b7779b849472337191f3a043e27e17f71555f98d0092fa6d73364520 \ - --hash=sha256:6aa809ed4dc3706cc38594d67e641601bd2f36d5555b2780ff074edfcb136cf8 \ - --hash=sha256:6c1818f37be3ca02dcb76d63f2c7aaba4b0dc171b579796c6fbe00148dfec6b1 \ - --hash=sha256:6dac006c8b6dda72d86ea3d1333d45147de79a3a3f26f10c1cf9287ca4ca0ac3 \ - --hash=sha256:7088fcdcb604a4417c208e2169715800d28838fefd7455fbe40416231d1d47c1 \ - --hash=sha256:70aadc6ff12e4b444586e57fc30771f86253f9f0045b29016b9605b4be5f7dfb \ - --hash=sha256:7429f4e6192c11d659900c0648ba8776243bf396ab95558b8c51a345afeddde6 \ - --hash=sha256:74fa82dcc8143386c7c0392e18032009d1db715c25f4ba22d23dc2e04d02a20f \ - --hash=sha256:760ef21c17d8e6a4fe8cf406a97cf2806a4df93416ccc82fc98d25b1c20425be \ - --hash=sha256:7698a6f38730fd1385d390d1ed07bb13dce39aa616aca6a6d89bea178464b9a4 \ - --hash=sha256:76d67d5afb1fe402d10a6403bae668d000441e2ab115191a804287d53b772951 \ - --hash=sha256:773d1dfd652bbffb09336abf890bfd64785c7463716bf766d0eb3bc19c8b7f27 \ - --hash=sha256:7d346fccdde28abba117cc9edc696b9518c3307fbfcb689e549d9b5979018c6d \ - --hash=sha256:8512fcdb43f1bf18582698a478b5ab73f9c1667a5b7548761329ef410cd0a760 \ - --hash=sha256:867bddc63109a0276f5a31999e4c8e0eb7bbbad7d6166e28d969a2c1afeb97f9 \ - --hash=sha256:88e9b048345c613f253bea4645b2fe7e579782b82cac99b1daad81e29cc2ed8e \ - --hash=sha256:8fae3c6e795d7678963f2170152b0d892cf6aee9ee8afc8c45e6be38d5107fe7 \ - --hash=sha256:9542ccc1e689e752594309444081582f7be2fdb2df75acafea8a075108566735 \ - --hash=sha256:9776b85f510062f5a75ef112afe5f494ef1635607bf1cc220c1391e9ac2f5e81 \ - --hash=sha256:97850d0638391bdc7d35dc1c1039974dcb921eaafa8cc935ae4d7f272b1d60b3 \ - --hash=sha256:993f657a7c1c6ec51b5e0ba97c9817d06b84ea5fa8d82e43b9405de0defdc2b9 \ - --hash=sha256:9a2741ce5a29d3c84b0b94261ba630ab459a1b847a0d6beca7d62d188175c790 \ - --hash=sha256:9e2f5217648f68e3028c823df58663587c1507a5ba8419f4fdfc8a461be76043 \ - --hash=sha256:a0d2b28aa1354c7cd7f71b7658c4326f7facac106edd7f40eda984424229fd59 \ - --hash=sha256:a152560af4f9742b96f3827090f866eeec5becd4765c8e0d3473d9d280e76a5a \ - --hash=sha256:a1c0c7d67b64d85ac2e1879923bad2f08a08f3004055f2f406ef73c850114bd4 \ - --hash=sha256:a7a5bb6aa0cf62208bb4fa079b0c756734f8ad0e333b425732e8609bd51ee22f \ - --hash=sha256:a85b620a388d6c9caa12189233109e236b3da3deffe4ff11b84ae84e218a274f \ - --hash=sha256:acd38177bd2c8e69a411d6521760806042e244d0ef94e2dd03ecdaa8a3c99427 \ - --hash=sha256:ae3e764bd4c5ff55035dc82a8d49acceb42a5298edf6eb2fc4d328ee5dd7afae \ - --hash=sha256:ae5266a82596114e41fb5302140e9630204c1b5f325c770bec654b95dd54b0aa \ - --hash=sha256:af0384cb01a33600c49505c27c6c57ab0b27bf84a74e28524c92ca897ebdac9d \ - --hash=sha256:b15b88b0d52b179712632832c1d6e58e5774f93717849a41096880442da41ab0 \ - --hash=sha256:b26c30df3a28fd9793113dac7385a4deb7294a06c0f760dd2b008bd49a9139bc \ - --hash=sha256:b40379b53ecbc747fd9bdf4a0ea14eb8188ca1bd0f54f78893a39024b28f4863 \ - --hash=sha256:b4c36a85b00fadb85db9d9e90144af0a980e1a3d2ef9cd0f8a5bef88054657c6 \ - --hash=sha256:b5f9fb784824a042be3455b53d0b112655686fdb7a91f88f095f3fee1e2a2a54 \ - --hash=sha256:be061028481186ba62a0f4c5f1cc1e3d5ab8bce70c89236ebe01023883bc903b \ - --hash=sha256:c07ab8794fa929e58d97a0e1796b8b76f70943fa39df225ac9964615cf1f9d52 \ - --hash=sha256:c228cf65b4a54583763645dcd73819b3b381ca8b4bb1b349dee1c135f4112c07 \ - --hash=sha256:c4ee50606cb1967db7e523224e05f32089101945f859928e65657a2cbb3d278b \ - --hash=sha256:c882cd92ec68585e9c1cf36c447ec846c0d94edd706fe59e0c198e65822fd23b \ - --hash=sha256:cf9b1b2e692d4877880388934ac746c99552ce6bf40792a767fd42c8c99f136d \ - --hash=sha256:d2228c02b368d69b724c36e96d3d1da721561fb9cc7faa373d7bf65e07d75cb5 \ - --hash=sha256:d51d20befd5275d092cdffba57ded05f3c436317ee56466c8928ac32d960edaf \ - --hash=sha256:db0ac18435a40a2543dbb3d21e161a6c78e33e8159bd2e009343d224bb03bb1b \ - --hash=sha256:dc4f10fbd5dd13dcf4265b4cc07d69ca70280742870c97ae10093e3d66000359 \ - --hash=sha256:dcb5453ecf9cd58b562967badd1edbf092b0588a3af9e32ee3d05c985077ce87 \ - --hash=sha256:dd2630faeb6876fb0c287f664d93ddce4d50cd46c6e88e60378c05c9047e08ca \ - --hash=sha256:e014a797de43d1847df957c0a2a8e861d1c17547ee08467d1db2c370b7568baa \ - --hash=sha256:e08270659717f6973523ce3afbafa53515c4dc5dcad637dc215b6fd50f689423 \ - --hash=sha256:e0aab3ff447845049d676827d2ff714aab4f73f340e155b7de7458cf53baa5a4 \ - --hash=sha256:e355be718caf838aa089870259cf1776dc2a4aa980514af9d02c59544d9a8b22 \ - --hash=sha256:e7ab63e9fe45a9ec3417509e18116b367e89c9ceb6219222a3396fa30b147f80 \ - --hash=sha256:e7cd3e4ee8d80447a83bbc9ab0c8459781fa77087f856c3e740d7763be0df27f \ - --hash=sha256:e9638791082eaf5b3ac112c587518ee78e083a11c4b28012d8fe2a0f536dfb17 \ - --hash=sha256:eb59c65069498dbae3c0ef07bbe224e1eaa079825a437fb47a479f0af11f774f \ - --hash=sha256:ee7337f88f2a580679f7bbfe69dc86c043954f9f9c541012f49abc554a962f2e \ - --hash=sha256:ee9627de8587c1a22201cb16d0296ab92b4df5cdcb5349f4e9744d61db7c7c98 \ - --hash=sha256:f4f83781191007b6ef43b03debc35435f10cad9b96e16d147efe84a1d48bdde4 \ - --hash=sha256:f56ebf9d70305307a707911b88469213630aba821e77de7d603f9d2f0730687d \ - --hash=sha256:f5bfc2741d150d0be3e4a0401a5c22b06e60acb9aa4daa46d9e79a6dcd0f135b \ - --hash=sha256:f94a11a9d05afcfcfa640e096319720a19cc0c9f7768e1a61fceee6a3afc6c7c \ - --hash=sha256:fa7922bbb2cc84fa062d37723f199d4c0cd200245ce269c05db82d904db66b83 \ - --hash=sha256:fe896e07a5a2462308297e515c0054e9ec2dd18dfdc9427b19900b37dfe6f40b \ - --hash=sha256:ffa81f81b80047ba89a3c69ae6a0f78d06f4a42ce5126b0eb2a0a10ad44e0b2e +regex==2026.5.9 \ + --hash=sha256:002205cafd2a9e78c6290c7d1df277bf3277b3b7a30e0b4bb0dac2e2e3f7cb2d \ + --hash=sha256:01f0f5f55f4b64dacec85dc116d3c05fd23ad3ff037bbc73a2085775953c2611 \ + --hash=sha256:01f28d868834624c934b8d2e0aa1c8341337e37831f4a012f18a5afcba4cbaf3 \ + --hash=sha256:075160bf16658e16d35233300b8453aac25de4cbea808d22348b6979668e924d \ + --hash=sha256:0de5cf193997384ed2ca6f1cd4f78055b255d93d82d5a8cd6ba0d11c10b167e4 \ + --hash=sha256:0e1b1b4e496afbb24f4a62aba855ee4f88f25578927697b340702e48c9ee6bc2 \ + --hash=sha256:0f03aa6898aaaac4592479821df16e68e8d0e29e903e65d8f2dfb2f19028a989 \ + --hash=sha256:0f9eede6a5cbdc02d4978090186390936e1776a7d1359b21e41014c609880bcf \ + --hash=sha256:1268eddd8486dc561d08eee1156e40aa3a8fe10f4bdec8fa653b455fcbffd12c \ + --hash=sha256:15ee42209947f4ca045412eae98416317238163618ace2a8e54f99586a466733 \ + --hash=sha256:164eba9b755ea6f244b0d881196fbc1fac09714e9782c9e2732b813142033c8e \ + --hash=sha256:19c16ceb4a267a8789e25733e583983eeab9f0f8664e66b0bd1c5d21f14c2d4b \ + --hash=sha256:1bd7587a2948b4085195d5a3374eaf4a425dc3e55784c038175355ecf3bbbf8a \ + --hash=sha256:1e6da47d679b7010ef27556b6e0f99771b744936db1792a10ceac6547ae1503e \ + --hash=sha256:205109e96b3cf5adf8f4cd62bedde9487feb282b9497a3535451e5a24cd706a0 \ + --hash=sha256:2099f7e7ff7b6aa3192312650a56e91cc091e49d50b04e4f6f8b6e28b3b27f1c \ + --hash=sha256:246de9d60aa3f8538b519834dd95cbf276ea263d6a7bd5a3666dc3fa0230505b \ + --hash=sha256:24b2355ef5cc9aa5b8f07d17704face1c166fdcc2290fa7bd6e6c925655a8346 \ + --hash=sha256:2a661a7d270a61f7cf460caee8b9fa2d5ef9e5c681234bcb9e0fe14f488e7dfc \ + --hash=sha256:2acfb48634f64996b57f90f39afa692ff362162722581921fe92239a59960f3c \ + --hash=sha256:2efa205e6d98b24d1f3ab395c11aa15cdf10935bca283d0285e0499c284fba21 \ + --hash=sha256:31037c82eccb44b7ea2e9e221d7c01429430e989a1f4b91ea5a855f6017b509a \ + --hash=sha256:3527bb4942d2c14552155406cdedd906567456821848aed1cb4933a391bf5eca \ + --hash=sha256:39617fb0cde9c0e6306dc70e3bfc096f3da793219879f7ae7aa341a69fbdcf6d \ + --hash=sha256:398c521292f4c7fb807001dcd54694d3a1fcafc179a36ad9cc56f98df85930b6 \ + --hash=sha256:3b1e39888c5e0c7d92cea4fc777396c4a90363b05de75d02eb459a4752200808 \ + --hash=sha256:3dd4a3ff360dfb836fecdb93a4598f9d6e2ac81e3e397125145c6221bf58cf4c \ + --hash=sha256:3ddd90103f9e5c471c49c7852ecc1fe27c7e45eb99e977aefe7caa4e779f4f58 \ + --hash=sha256:446ddd671e43ab535810c4b21cff7104945c701d4a14d1e6d1cd6f4e445a8bea \ + --hash=sha256:45375819235558a4ff1c4971dc32881f022613abdb180128f5cb4768c1765a1c \ + --hash=sha256:46f1326ca6e65b0879d23ca302c0f2415aad42ff0309b9c818e7949fe19a41d8 \ + --hash=sha256:48036f6374aaa79eb3b754ec29c61d1c6b1606749d705a13f8854fa2539671f6 \ + --hash=sha256:4ebe8f0b5ec5a5024dc4a4c59f444c4e9afc5f2abdbb8962065b75d27fb971f9 \ + --hash=sha256:4eeb011098fcb77af513dcef521a3dbecbf8849b1e38940759d293b7a93f5026 \ + --hash=sha256:508f56a89ba9cb26e4168cbc37dbd60a28d82430a9e18ad1d25fe0883c314ca2 \ + --hash=sha256:5604dfd046dc37eca90250fc3be938b076c8059fa772ac0ed6f499b0f0fb0415 \ + --hash=sha256:56a33f191f17d8c417f99945ebdc1e691d3af9605d86ec68c7e54a57e3e17af6 \ + --hash=sha256:57e8915c7986aa33d25e4d3629cef711cd2863f2961b10409f0c04cb8b7d9020 \ + --hash=sha256:57eeeb05db7979413dec5438f2db21d7ecbba787cde7a711df1a6f6df672aa06 \ + --hash=sha256:5b73ab8afcf66c622db143d1c6fda4e58e4d537ee4f125229ad47b1ab80f34c0 \ + --hash=sha256:5e41809d2683fcde7d5a8c87a6567ba1fb1ce0de9f31bff578de00a4b2d76daa \ + --hash=sha256:6351571c8a42b505eb555c0dc47d740d0fb66977dc142919eea6f4325b7c56a0 \ + --hash=sha256:6441cc660d76107934a09c22167200839a0e89604a6297f78a974e66e931d2c0 \ + --hash=sha256:65c8c8c37377794bd5b2f3ebe51919042bf17aec802e23c833d89782ed0c78af \ + --hash=sha256:6ba42b2e7e7f46cf68cc6a5ca36fa07959f9bbd9c6bdcc47b6ee76549a590248 \ + --hash=sha256:71b61c5bfe1c806332defc42ad6c780b3c55f661986d7f40283a3a88274b4c00 \ + --hash=sha256:728d8bfd28a8845c8b6bc5dc7ce010453d206396786c0765c2740cb65f37791e \ + --hash=sha256:7b92817338591505f282cf3864c145244b1edcf5381d237038df955001091538 \ + --hash=sha256:7e30b874d341fac767d7df5a0870540541c2c054b80cfaac116e8d367a8a7ff2 \ + --hash=sha256:7e87577720152d2caae19fe2baaf1f8d5ca12091e9e229f03915c37d1e4b9178 \ + --hash=sha256:83d0ee4a57d1c87cb549e195ec300b8f0ec3a82eba66d835e4e2ed8634fe4499 \ + --hash=sha256:8676474c07469d6f33dd1085ca2cd45f65785f32518f2b20e36d9953ca07f994 \ + --hash=sha256:86f40a5d6444db30a125c9c9177e6b25dad981cbc37451fd838f145e6edac92e \ + --hash=sha256:872acc074bd29ffc9913ecdfedf6ea77502312ca44a4aa0d3779089c6069d8de \ + --hash=sha256:8abd33fef90b2a9efac5557d6033ca82d1195ed3a15fea5af15ba7b463c6a63b \ + --hash=sha256:8c6e4218fbdfbcd4f6c19efca40930d24a621bf4b48cb76bc6640543bd28ef20 \ + --hash=sha256:8e76e8161ad00694cfce6767d5dea860c6391ac5b83e5c3a39661e696f11fc7e \ + --hash=sha256:8f3af7a4903c5c04a11a196a5aa75cdd7dd3f8508132f9fb3259d9f5908e3b88 \ + --hash=sha256:91328f1c23d47595ca3ef0a7557fa129c5a23404b775c770697d2f35b33e0107 \ + --hash=sha256:916714069da19329ef7de197dcbc77bb3104145c7c2c864dbfbe318f46b88b14 \ + --hash=sha256:93a7860539414dddaefba2b40f8771765ae17949d4c7182b876ce429e11a8309 \ + --hash=sha256:954cc214c04663ee6d266fc61739cad83054683048de65c5bd1d640ad28098ac \ + --hash=sha256:96f5f58b54a063d7ea9dca08e1cf57bfe10499c4d579ee672da284f57f5f0070 \ + --hash=sha256:97cf3bc1b7d7d2306772ec07366c80d9df00ff79e79cea32898883a646d2fae2 \ + --hash=sha256:98bd73080e8756255137e1bd3f3f00295bbc5aa383c0e0f973920e9134d7c4ad \ + --hash=sha256:992604d02e6d9c6d786c24a706a71ecffe1020fc1ef264044474cd81fa2c3919 \ + --hash=sha256:a24852d3c29ad9e47593593d8a247c44ccc3d0548ef12c822d6ed0810affe676 \ + --hash=sha256:a6a563446a41adc451393dc6b8e6ad87979efaee3c8738690a8d1b08ebead1b4 \ + --hash=sha256:a8234aa23ec39894bfe4a3f1b85616a7032481964a13ac6fc9f10de4f6fca270 \ + --hash=sha256:a8820737949116ffff55fe18f9fc644530063ba6ebfcb8314239416e78f1347c \ + --hash=sha256:a9e1328e17c84c1a5d22ec9f785ecef4a967fab9a42b6a8dc3bcbebd0a0c9e44 \ + --hash=sha256:aa0fbdbac82cb3e4450d0ccde7d7a35607f4cb2dd9fba4b8b69bfaf8c9fa6aed \ + --hash=sha256:b310768746dd314ea6e2ff4cc89ef215426813396ff4e94ee8e6f7096c8b6e03 \ + --hash=sha256:b46b0f094dc1d3b90356c85a0bd2c9bafc4a6a190b9d6f8ddd5a033b6e088ed4 \ + --hash=sha256:b4bb445ff3f725f59df8f6014edb547ee928ec7023a774f6a39a3f953038cbb2 \ + --hash=sha256:b6d189041f15691cfa2b6c4290448ec221244d225b3f5fe9e7771b34ffcdf6e2 \ + --hash=sha256:b96350aa424e79d4fd6b567b344dcbe2b2d6bfc48dfe7717587e1fa6d43da6ff \ + --hash=sha256:be3372b9df6ddecff6486d37e19095a7b4973137caf5512407a89f4455361f41 \ + --hash=sha256:bfe1ce50cbfb569d74e1e4337da6468961f31dbea55fd85aa5de59c0947a805a \ + --hash=sha256:c010eb8caca74bdb40c07498d7ece26b4428fd3f04aa8a72c9ac6f79e8faaac6 \ + --hash=sha256:c8b9b9d294cfea3cd19c718ade7cc93492b2c4991abd9a68d0b3477ae6d8e100 \ + --hash=sha256:c9411dd64ca95477225734a93dfc8583b51916b8d5942f99d6cac21e09965451 \ + --hash=sha256:ca518ed29c46eecba6010b15f1b9a479314d2de409536e71b6a13aa04e3b8a77 \ + --hash=sha256:ccf5249114cc3e772ecdd88a98a86eca0fd74c61ce32a94743758c083fc05d48 \ + --hash=sha256:cd2846168eb9ee3c513902bc8225409cb1caab31d04728b145171fa1625d9621 \ + --hash=sha256:d29eebfc9525db68cad3c97eedd7f754fa265aa5cd0cf4f863b2421e1b48fc9f \ + --hash=sha256:d3d7eb5c9a7f6df82ed3cfac9beb93882a5cbcb5b8b157b56cb2b3b276574ac1 \ + --hash=sha256:d626b84406444b165fc0ba981604edea39f0588ff1f92baa23fe50799ea9afdb \ + --hash=sha256:d641a8c9a61618047796d572a39a79b26167b0411d2c3031937b2fe2d081e2cf \ + --hash=sha256:d659eee77986549c9ea45b861c7567e44d6287c3dc9a4565478853f7b9fe2ff6 \ + --hash=sha256:d6b8a143aca6c39b446ea8092cde25cc8fe9304d4f5fecfbc1a9dbb0282703c2 \ + --hash=sha256:d726ca3f0d76969bf1e8e477d160d3d666bbf999f6860bd314889e5345782046 \ + --hash=sha256:d7bdc0ab8f3dd7e1b4f9ab88634e13374669db86bb3c72e8292f07ae313f539f \ + --hash=sha256:daff2bdbaf1d23e52fdff7c0b7bc2048b68f978df6a4d107ac981f94caef2e66 \ + --hash=sha256:dd2810d22146b6d838acc5ec15602cb6b47920aa4e33015df3868eedfd20bab8 \ + --hash=sha256:ddda5340e6c01a293027dd46232fa79eaff1b48058ce7a98f572b6445b088041 \ + --hash=sha256:dea2e88e1cce4522496cce630e11e67b98b7076620bc4336c3f674bc21a375f4 \ + --hash=sha256:debb893095e944091c16e641a6e33c1b0f4cb61ab945ec5afbf53ce7068834d8 \ + --hash=sha256:dfbe4579b9f08036aa7d101d1835437a20783574ac66327e6b29b4018a138081 \ + --hash=sha256:e1d93bf647916292e8edcec150c07ddf3dc50179ccaf770c04a7f9e452155372 \ + --hash=sha256:e82db382b44d0111b22601c509c89f64434816c9e0eef9d1989cda8cc6ff1c04 \ + --hash=sha256:ea9c8ecfa1b73c73b626534d6626e5340d429630943672b8480724f44e84b962 \ + --hash=sha256:ead4b163ac30a29574510cd4b3e2e985ac5290c05fc7095557d6a5f403fc31b5 \ + --hash=sha256:ecd353045824e4477562a2ac718c25799cdaaa41f7aa925a806a8a3e6848a5b9 \ + --hash=sha256:ed2c9e8068b614c574d8d30e543d617cf5379b0535d46f97ef00e904745a08b5 \ + --hash=sha256:ed457d8e98ae812ed7732bef7bf78de78e834eae0372a74e23ca90ef21d910f9 \ + --hash=sha256:ef31cbfe458e21c6122ba8150ff060e0c7789ed0d26eb423f25472584920b555 \ + --hash=sha256:f079e50a0d3cc3cd5091fa9ff45869a2e6b2cd35895731edafb0327901a8d86d \ + --hash=sha256:f3844f134e834076677dd369976e9f5068679fcb8e50102fdf6b7ac96a3ec127 \ + --hash=sha256:f7a7c26137296beba7784de6eba69c6a93a63ccebc385e4962fe67e267a91225 \ + --hash=sha256:fa411799ca8da32a8d38d020a88faa5b6f91657d284761352940ecf9f7c3bbdd \ + --hash=sha256:fd03c4f0e33280d15cae17159b899245d6b7c53d21def19b263b39655061f5ce \ + --hash=sha256:fd190e88a895a8901325fad284a3f74ea52b1da8525b76cc811fa9b1edf0ce2b \ + --hash=sha256:ff8d372ac2acdc048d1c19916f27ee61bc5722728458ba6ca5052f2c72d51763 # via # feast (pyproject.toml) # parsimonious # transformers -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # azure-core @@ -5207,25 +5226,25 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.15.12 \ - --hash=sha256:01da3988d225628b709493d7dc67c3b9b12c0210016b08690ef9bd27970b262b \ - --hash=sha256:2849ea9f3484c3aca43a82f484210370319e7170df4dfe4843395ddf6c57bc33 \ - --hash=sha256:83b2f4f2f3b1026b5fb449b467d9264bf22067b600f7b6f41fc5958909f449d0 \ - --hash=sha256:84a1630093121375a3e2a95b4a6dc7b59e2b4ee76216e32d81aae550a832d002 \ - --hash=sha256:9ba3b8f1afd7e2e43d8943e55f249e13f9682fde09711644a6e7290eb4f3e339 \ - --hash=sha256:9cae0f92bd5700d1213188b31cd3bdd2b315361296d10b96b8e2337d3d11f53e \ - --hash=sha256:9e77c7e51c07fe396826d5969a5b846d9cd4c402535835fb6e21ce8b28fef847 \ - --hash=sha256:a538f7a82d061cee7be55542aca1d86d1393d55d81d4fcc314370f4340930d4f \ - --hash=sha256:b0c862b172d695db7598426b8af465e7e9ac00a3ea2a3630ee67eb82e366aaa6 \ - --hash=sha256:c87a162d61ab3adca47c03f7f717c68672edec7d1b5499e652331780fe74950d \ - --hash=sha256:d0185894e038d7043ba8fd6aee7499ece6462dc0ea9f1e260c7451807c714c20 \ - --hash=sha256:dd8aed930da53780d22fc70bdf84452c843cf64f8cb4eb38984319c24c5cd5fd \ - --hash=sha256:e3bcd123364c3770b8e1b7baaf343cc99a35f197c5c6e8af79015c666c423a6c \ - --hash=sha256:e852ba9fdc890655e1d78f2df1499efbe0e54126bd405362154a75e2bde159c5 \ - --hash=sha256:ecea26adb26b4232c0c2ca19ccbc0083a68344180bba2a600605538ce51a40a6 \ - --hash=sha256:f86f176e188e94d6bdbc09f09bfd9dc729059ad93d0e7390b5a73efe19f8861c \ - --hash=sha256:fb129f40f114f089ebe0ca56c0d251cf2061b17651d464bb6478dc01e69f11f5 \ - --hash=sha256:fe87510d000220aa1ed530d4448a7c696a0cae1213e5ec30e5874287b66557b5 +ruff==0.15.13 \ + --hash=sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629 \ + --hash=sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21 \ + --hash=sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55 \ + --hash=sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41 \ + --hash=sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8 \ + --hash=sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7 \ + --hash=sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4 \ + --hash=sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd \ + --hash=sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2 \ + --hash=sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51 \ + --hash=sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5 \ + --hash=sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9 \ + --hash=sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22 \ + --hash=sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca \ + --hash=sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6 \ + --hash=sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b \ + --hash=sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7 \ + --hash=sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6 # via feast (pyproject.toml) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5429,9 +5448,9 @@ send2trash==2.1.0 \ --hash=sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c \ --hash=sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459 # via jupyter-server -sentence-transformers==5.4.1 \ - --hash=sha256:436bcb1182a0ff42a8fb2b1c43498a70d0a75b688d182f2cd0d1dd115af61ddc \ - --hash=sha256:a6d640fc363849b63affb8e140e9d328feabab86f83d58ac3e16b1c28140b790 +sentence-transformers==5.5.0 \ + --hash=sha256:75313fdcc2397ec4b58297c25d6187fcca5a6b2aeb09570a72eff5a3223d8d58 \ + --hash=sha256:9cec675e68bfe09d07466d1f13ab06d1d79d60a0f45b154baf433bde6ae159cb # via feast (pyproject.toml) setuptools==80.10.2 \ --hash=sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70 \ @@ -5531,9 +5550,9 @@ six==1.17.0 \ # python-dateutil # rfc3339-validator # thriftpy2 -smart-open==7.6.0 \ - --hash=sha256:2a78f454610a826aa688065b54b4a0a9b12a5599fa61d5190e9bac2df5e5f53f \ - --hash=sha256:44717f46b5ff276fac03b88e5d13d1c416f064f3b7b081381b0fa8889004bd7e +smart-open==7.6.1 \ + --hash=sha256:4347996e7ba21db7cd1e059632e0b30395407e4f6c660d2ddffc8f2a9ae5f990 \ + --hash=sha256:b4de6aebef023aca91cc9fb372052e1343ba3f152de215bd22391a663e3ddd21 # via ray sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ @@ -5546,32 +5565,32 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -5674,38 +5693,34 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot[rs]==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot[rs]==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via # feast (pyproject.toml) # ibis-framework -sqlglotc==30.6.0 \ - --hash=sha256:003b15bbe3f3a4a63313baeb3f090906cf0172fe007ab24974c612a577f56c61 \ - --hash=sha256:05861b5d74ae4b0a5a6e6a9309a8a975d9572c2bf1eb9634a33af9189eb7d333 \ - --hash=sha256:0b907206ef36fd8f0c28da4c5b8c8f896bd67826da0d765616e6c950689ac849 \ - --hash=sha256:0e1aae195008c1d87ed1b1543bceed1408ae8ecf146571b3029e98b23a19c59c \ - --hash=sha256:16291ee3da0276df2689cc139df41d8723cf6014aca979f307fb75a898b0d3e8 \ - --hash=sha256:27d6c22375395f1fdfe8a5d80b5fb781ca7849e29c7db7dfb11edb466a5b7a4d \ - --hash=sha256:2b50aba396d4622c201a9dd933b51cd6858b5af5ebbcf7db1af35db7e83ece48 \ - --hash=sha256:4a5beba24625bc14070992fdddc7aed22df912007882f31f27b0e88d7b7d9445 \ - --hash=sha256:4c84a933816374b6167d9347e488fb4a357bb0e3be2e8e820dafeb3c9948feab \ - --hash=sha256:4d45ee83e1f72ee94045ccfd13e51fa7d822548f50e9d20d3d42e127bcd9f453 \ - --hash=sha256:4eb6f349c21d5a3e39733db5416e57ec171ca3b1c17b02badfdbe55d9a3666a5 \ - --hash=sha256:61a1e4f533955db0bfd4219883bfab1f2030753ffaebc9cbb4e950dfbcae3db7 \ - --hash=sha256:63b02231cc2f10d63df373fa02f3e03b4216e94c6f32ccdfd11adc770dc95fb7 \ - --hash=sha256:6e8dab3b9f84c9b591ecd1fb0920b800c08dd6c38eda3be91176fc239d3c94bc \ - --hash=sha256:7acdb7b15f060bacea01e1c68d1dd70471f03bda89478ca0ee96bac3df03d0a7 \ - --hash=sha256:87437d4f32c1dc61c3ef046dc39b9fe119ac2e2e5253e33351f1a62ba802942a \ - --hash=sha256:875c6925f3d70aa1bc4bcc405090a12deec01de71193e7229f114c5ecf39f725 \ - --hash=sha256:949f5d457c8c98998ed06d060873370d7553077ab3c2db9569acda5887cd6ce7 \ - --hash=sha256:c69c9dbe4dfab74329294d07b2956ca9a03123089a1923f3d299a21d4b66898d \ - --hash=sha256:cb4b5a532fb35ce415aea6d360fe202278b46cc59c07318b97401930a1584e35 \ - --hash=sha256:cfba6244f52bcdffe22a35334d48d741aed3077c20bb7aa9bb511c21fd766438 \ - --hash=sha256:dd781790c3fc6cb82e6c00836f7f9ab33941cf2b9dca173d7b9f41c37c78d114 \ - --hash=sha256:e397befde3d08d870a8f1c7bd80d7abc68ee119c472143ab196709319e205af4 \ - --hash=sha256:f0a37ad865b106005cb5d36efd537a412912477c83cbca1579ee45f17d73fe54 \ - --hash=sha256:fb977d427a196a620aa60b71d4b66d60c3d015c9004e7393162d4771fb435406 +sqlglotc==30.8.0 \ + --hash=sha256:02ead13bbaf56a7eb0fdf1eb6ea23b1d70857901a60ea5118e09151ca4051712 \ + --hash=sha256:172ea79fcdcf3795134dcdff03995681c60bdc0c0874d43dc06ab06fecc0ae25 \ + --hash=sha256:1863950ef7f41467fe32f7cc55d10d4d747f2b532023c82ccbb44693e6911bc9 \ + --hash=sha256:2dcdf0a8e9f07f9cd95eb0b6e653352f85862feee0fb6e7a48251e888ae42a5c \ + --hash=sha256:3176d7a5dc4c97d462ef3a73eb32e513033cf61fc5a794d5e2a310621d078d9b \ + --hash=sha256:4fad7bceb63f831ec0ec07b5199a7e3f7448323354b9dd7b6f262b501cd76185 \ + --hash=sha256:62dfdd3ad97d80034ebf8d8117d15fff936aa9aa8394139f0f5f05aac25dc36b \ + --hash=sha256:6576f7979a506ff5cab4af781c058c0a9caa654d2cd4a864c96c2d785f44711c \ + --hash=sha256:7068fcfd64ebcedc10bd174b69e0d8d312a89a18772f6312e51a8d3bb1757f1d \ + --hash=sha256:86c974ec80867180f5bb9a67b9d801095a59b3b046da6df5d989c1572629b2ec \ + --hash=sha256:960ddda931beb89ae01f8d7c10fa72c486d4d04b077672f94978adb976adc60f \ + --hash=sha256:9f2dc50e2ca234c40dce5d5a3dfb212c6ed73278043225ac1b0ab577a2db1815 \ + --hash=sha256:ac64dd30ecc20421e0133883db4e10c3699354c592513aeb50b1ee243a8a5c60 \ + --hash=sha256:b7dca8aedfdd8f50694e04ea55b040e2cb685dcaf600ca4ea5dd0a141a6a6835 \ + --hash=sha256:be6257bdbdf2fd2a4daea46c0781542b69e94d968ba745374721dc96d0e55d02 \ + --hash=sha256:c445f11b470475848b75a03bc3d8ef765cf86e098c4f5003701838da435d492a \ + --hash=sha256:e6fa017c3fbcf28b1b259e254995949733bafa2d94f3c9398e4cc4230394f8e7 \ + --hash=sha256:ed86cbfc5b2b292e0474ca9fcf71b82b39aef150d968d8ac97d35a8ab85c43cd \ + --hash=sha256:f5f17e336a073d7087271468155cb401687e931b5b61d6438233278c2a636baf \ + --hash=sha256:f640eb821b7bf82e21557f3683f4db89302a9bac4680e8ff53dd951ad7e995d8 \ + --hash=sha256:f79acd23fcf6ef2e5ef42df26010f699134b3653ff40cb3e403fed083e3e38dc # via sqlglot sqlglotrs==0.13.0 \ --hash=sha256:6b934a244b16f26fca50974328a2ebc7689583c59f06203cebb46e2e6e8d93a7 \ @@ -5722,9 +5737,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5837,9 +5852,9 @@ tifffile==2026.3.3 \ --hash=sha256:d9a1266bed6f2ee1dd0abde2018a38b4f8b2935cb843df381d70ac4eac5458b7 \ --hash=sha256:e8be15c94273113d31ecb7aa3a39822189dd11c4967e3cc88c178f1ad2fd1170 # via scikit-image -timm==1.0.26 \ - --hash=sha256:985c330de5ccc3a2aa0224eb7272e6a336084702390bb7e3801f3c91603d3683 \ - --hash=sha256:f66f082f2f381cf68431c22714c8b70f723837fa2a185b155961eab90f2d5b10 +timm==1.0.27 \ + --hash=sha256:315dfe63186ca9fb7ff941268941231fd5be259f2b4bb4afa28560ae1015cb9a \ + --hash=sha256:5ff07c9ddf53cbada88eab1c93ff175c64cab683b5a2fddf863bcee985926f89 # via feast (pyproject.toml) tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ @@ -5926,9 +5941,9 @@ tomli==2.4.1 \ # via # coverage # fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -5938,35 +5953,35 @@ toolz==1.1.0 \ # dask # ibis-framework # partd -torch==2.11.0 \ - --hash=sha256:01018087326984a33b64e04c8cb5c2795f9120e0d775ada1f6638840227b04d7 \ - --hash=sha256:0f68f4ac6d95d12e896c3b7a912b5871619542ec54d3649cf48cc1edd4dd2756 \ - --hash=sha256:1b32ceda909818a03b112006709b02be1877240c31750a8d9c6b7bf5f2d8a6e5 \ - --hash=sha256:1e6debd97ccd3205bbb37eb806a9d8219e1139d15419982c09e23ef7d4369d18 \ - --hash=sha256:2658f34ce7e2dabf4ec73b45e2ca68aedad7a5be87ea756ad656eaf32bf1e1ea \ - --hash=sha256:2b4e811728bd0cc58fb2b0948fe939a1ee2bf1422f6025be2fca4c7bd9d79718 \ - --hash=sha256:2bb3cc54bd0dea126b0060bb1ec9de0f9c7f7342d93d436646516b0330cd5be7 \ - --hash=sha256:2c0d7fcfbc0c4e8bb5ebc3907cbc0c6a0da1b8f82b1fc6e14e914fa0b9baf74e \ - --hash=sha256:4b5866312ee6e52ea625cd211dcb97d6a2cdc1131a5f15cc0d87eec948f6dd34 \ - --hash=sha256:4cf8687f4aec3900f748d553483ef40e0ac38411c3c48d0a86a438f6d7a99b18 \ - --hash=sha256:4dc8b3809469b6c30b411bb8c4cad3828efd26236153d9beb6a3ec500f211a60 \ - --hash=sha256:4dda3b3f52d121063a731ddb835f010dc137b920d7fec2778e52f60d8e4bf0cd \ - --hash=sha256:563ed3d25542d7e7bbc5b235ccfacfeb97fb470c7fee257eae599adb8005c8a2 \ - --hash=sha256:63a68fa59de8f87acc7e85a5478bb2dddbb3392b7593ec3e78827c793c4b73fd \ - --hash=sha256:73e24aaf8f36ab90d95cd1761208b2eb70841c2a9ca1a3f9061b39fc5331b708 \ - --hash=sha256:7aa2f9bbc6d4595ba72138026b2074be1233186150e9292865e04b7a63b8c67a \ - --hash=sha256:7b6a60d48062809f58595509c524b88e6ddec3ebe25833d6462eeab81e5f2ce4 \ - --hash=sha256:8245477871c3700d4370352ffec94b103cfcb737229445cf9946cddb7b2ca7cd \ - --hash=sha256:8b394322f49af4362d4f80e424bcaca7efcd049619af03a4cf4501520bdf0fb4 \ - --hash=sha256:98bb213c3084cfe176302949bdc360074b18a9da7ab59ef2edc9d9f742504778 \ - --hash=sha256:a97b94bbf62992949b4730c6cd2cc9aee7b335921ee8dc207d930f2ed09ae2db \ - --hash=sha256:ab9a8482f475f9ba20e12db84b0e55e2f58784bdca43a854a6ccd3fd4b9f75e6 \ - --hash=sha256:b2a43985ff5ef6ddd923bbcf99943e5f58059805787c5c9a2622bf05ca2965b0 \ - --hash=sha256:b3c712ae6fb8e7a949051a953fc412fe0a6940337336c3b6f905e905dac5157f \ - --hash=sha256:cc89b9b173d9adfab59fd227f0ab5e5516d9a52b658ae41d64e59d2e55a418db \ - --hash=sha256:d91aac77f24082809d2c5a93f52a5f085032740a1ebc9252a7b052ef5a4fddc6 \ - --hash=sha256:f99924682ef0aa6a4ab3b1b76f40dc6e273fca09f367d15a524266db100a723f \ - --hash=sha256:fbf39280699d1b869f55eac536deceaa1b60bd6788ba74f399cc67e60a5fab10 +torch==2.12.0 \ + --hash=sha256:10802fd383bbfed646212e765a72c37d2185205d4f26eb197a254e8ac7ddcb25 \ + --hash=sha256:10ee1448a9f304d3b987eb4656f664ba6e4d7b410ca7a5a7c642199777a2cf88 \ + --hash=sha256:1834bd984f8a2f4f16bdfbeecca9146184b220aa46276bf5756735b5dae12812 \ + --hash=sha256:2140e373e9a51a3e22ef62e8d14366d0b470d18f0adf19fdc757368077133a34 \ + --hash=sha256:3fee918902090ade827643e758e98363278815de583c75d111fdd665ebffde9f \ + --hash=sha256:415c1b8d0412f67551c8e89a2daca0fb3e56694af0281ba155eaa9da481f58b4 \ + --hash=sha256:4b4f64c2c2b11f7510d93dd6412b87025ff6eddd6bb61c3b5a3d892ea20c4756 \ + --hash=sha256:5d6b560dfa7d56291c07d615c3bb73e8d9943d9b6d87f76cd0d9d570c4797fa6 \ + --hash=sha256:5f96b63f8287f66a005dd1b5a6abba2920f11156c5e5c4d815f3e2050fd1aa16 \ + --hash=sha256:6a7512adfdd7f6732e40de1c620831e3c75b39b98cef60b11d0c5f0a76473ec5 \ + --hash=sha256:864392c73b7654f4d2b3ae712f607937d0dbb1101c4555fbb41848106b297f39 \ + --hash=sha256:891c769072637c74e9a5a77a3bc782894696d8ffec83b938df8536dee7f0ba78 \ + --hash=sha256:8b958caff4a14d3a3b0b2dfc6a378f64dda9728a9dad28c08a0db9ce4dafb549 \ + --hash=sha256:8fbef9f108a863e7722a73740998967e3b074742a834fc5be3a535a2befa7057 \ + --hash=sha256:90dd587a5f61bfe1307148b581e2084fc5bc4a06e2b90a20e9a36b81087ff16b \ + --hash=sha256:a43ac605a5e13116c72b64c359644cce0229f213dde48d2ae0ae5eb5becf7feb \ + --hash=sha256:a6a2eebb237d3b1d9ad3b378e86d9b9e0782afdea8b1e0eba6a13646b9b49c07 \ + --hash=sha256:af68dbf403439cae9ceaeaaf92f8352b460787dcd27b92aa05c40dd4a19c0f1e \ + --hash=sha256:b41339df93d491435e790ff8bcbae1c0ce777175889bfd1281d119862793e6a2 \ + --hash=sha256:b4556715c8572758625d62b6e0ae3b1f76c440221913a6fb5e100f321fb4fb02 \ + --hash=sha256:c12592630aef72feaf18bd3f197ef587bbfa21131b31c38b23ab2e55fce92e36 \ + --hash=sha256:c66696857e987efb8bc1777a37357ec4f60ab5e8af6250b83d6034437fa2d8f3 \ + --hash=sha256:cf9839790285dd472e7a16aafcb4a4e6bf58ec1b494045044b0eefb0eb4bd1f2 \ + --hash=sha256:d47e7dee68ac4cd7a068b26bcd6b989935427709fae1c8f7bd0019978f829e15 \ + --hash=sha256:d4d029801cb7b6df858804a2a21b00cc2aa0bf0ee5d2ab18d343c9e9e5681f35 \ + --hash=sha256:dd37188ea325042cb1f6cafa56822b11ada2520c04791a52629b0af25bdfbfd9 \ + --hash=sha256:e2ad3eb85d39c3cab62dfa93ed5a73516e6a53c6713cb97d004004fe089f0f1f \ + --hash=sha256:f7dfae4a519197dfa050e98d8e36378a0fb5899625a875c2b54445005a2e404e # via # feast (pyproject.toml) # accelerate @@ -5976,35 +5991,35 @@ torch==2.11.0 \ # sentence-transformers # timm # torchvision -torchvision==0.26.0 \ - --hash=sha256:0f3e572efe62ad645017ea847e0b5e4f2f638d4e39f05bc011d1eb9ac68d4806 \ - --hash=sha256:114bec0c0e98aa4ba446f63e2fe7a2cbca37b39ac933987ee4804f65de121800 \ - --hash=sha256:1c55dc8affbcc0eb2060fbabbe996ae9e5839b24bb6419777f17848945a411b1 \ - --hash=sha256:2adfbe438473236191ff077a4a9a0c767436879c89628aa97137e959b0c11a94 \ - --hash=sha256:358fc4726d0c08615b6d83b3149854f11efb2a564ed1acb6fce882e151412d23 \ - --hash=sha256:3daf9cc149cf3cdcbd4df9c59dae69ffca86c6823250442c3bbfd63fc2e26c61 \ - --hash=sha256:406557718e62fdf10f5706e88d8a5ec000f872da913bf629aab9297622585547 \ - --hash=sha256:4280c35ec8cba1fcc8294fb87e136924708726864c379e4c54494797d86bc474 \ - --hash=sha256:55bd6ad4ae77be01ba67a410b05b51f53b0d0ee45f146eb6a0dfb9007e70ab3c \ - --hash=sha256:5d63dd43162691258b1b3529b9041bac7d54caa37eae0925f997108268cbf7c4 \ - --hash=sha256:7058c5878262937e876f20c25867b33724586aa4499e2853b2d52b99a5e51953 \ - --hash=sha256:7993c01648e7c61d191b018e84d38fe0825c8fcb2720cd0f37caf7ba14404aa1 \ - --hash=sha256:8008474855623c6ba52876589dc52df0aa66e518c25eca841445348e5f79844c \ - --hash=sha256:82c3965eca27e86a316e31e4c3e5a16d353e0bcbe0ef8efa2e66502c54493c4b \ - --hash=sha256:9a904f2131cbfadab4df828088a9f66291ad33f49ff853872aed1f86848ef776 \ - --hash=sha256:a06d4772a8e13e772906ed736cc53ec6639e5e60554f8e5fa6ca165aabebc464 \ - --hash=sha256:a39c7a26538c41fda453f9a9692b5ff9b35a5437db1d94f3027f6f509c160eac \ - --hash=sha256:b6f9ad1ecc0eab52647298b379ee9426845f8903703e6127973f8f3d049a798b \ - --hash=sha256:b7d3e295624a28b3b1769228ce1345d94cf4d390dd31136766f76f2d20f718da \ - --hash=sha256:b7e6213620bbf97742e5f79832f9e9d769e6cf0f744c5b53dad80b76db633691 \ - --hash=sha256:c409e1c3fdebec7a3834465086dbda8bf7680eff79abf7fd2f10c6b59520a7a4 \ - --hash=sha256:d61a5abb6b42a0c0c311996c2ac4b83a94418a97182c83b055a2a4ae985e05aa \ - --hash=sha256:de6424b12887ad884f39a0ee446994ae3cd3b6a00a9cafe1bead85a031132af0 \ - --hash=sha256:e9d0e022c19a78552fb055d0414d47fecb4a649309b9968573daea160ba6869c \ - --hash=sha256:eb61804eb9dbe88c5a2a6c4da8dec1d80d2d0a6f18c999c524e32266cb1ebcd3 \ - --hash=sha256:ebc043cc5a4f0bf22e7680806dbba37ffb19e70f6953bbb44ed1a90aeb5c9bea \ - --hash=sha256:f13f12b3791a266de2d599cb8162925261622a037d87fc03132848343cf68f75 \ - --hash=sha256:fd10b5f994c210f4f6d6761cf686f82d748554adf486cb0979770c3252868c8f +torchvision==0.27.0 \ + --hash=sha256:0822b58d2c5d325cd0c7152b744acbd15f898c07572e2cfb70b075a865a4f6f9 \ + --hash=sha256:1a6dd742a150645126df9e0b2e449874c1d635897c773b322c2e067e98382dfe \ + --hash=sha256:1c01f0d1091ae22b9dfc082b0a0fe5faaf053686a29b4fb082ba7691375c73cf \ + --hash=sha256:1c2db4bde82bc48ebff73436a6adf34d4f809448268a70d9a1285f5c8f92313d \ + --hash=sha256:2664d06acd64d328aa7689b0d0c81ee31e240e9977d8768816b4be7c66c03211 \ + --hash=sha256:2c037709072ca9b19750c0cbe9e8bb6f91c9a1be1befa26df33e281deccbd8c7 \ + --hash=sha256:2c4099a15150143b9b034730b404a56d572efe0b79489b4c765d929cb4eac7f3 \ + --hash=sha256:419c98a9275b27660cdce6d09080fd5974d1ec1d4a225f71439ebacb3b0c4e64 \ + --hash=sha256:41d6dae73e1af09fa82ded597ae57f2a2314285acde54b25890a8f8e51b999d7 \ + --hash=sha256:5bb82fc3c55daf1788621e504310b0a286f1069627a8742f692aebb075ef25a7 \ + --hash=sha256:65772ff3ec4f4f5d680e30019835555dd239e7fefee4b0a846375fe1cb1592ef \ + --hash=sha256:70f071c6f74b60d5fe8851636d8d4cd5f4fa29d57fd9348a87a6f17b990b95ba \ + --hash=sha256:72bf547e58ddb948689734eed6f4b6a2031f979dba4fb08e3690688b392e929f \ + --hash=sha256:7a9966a088d06b4cf6c610e03be62de469efa6f2cd2e7c7eed8e925ed6af59ac \ + --hash=sha256:91f61b9865423037c327eb56afa207cc72de874e458c361840db9dcf5ce0c0eb \ + --hash=sha256:9bb9251f64b854124efed95d02953a89f7e2726c3ca662d7ea0151129157297f \ + --hash=sha256:a49e55055a39a8506fe7e59850522cab004efb2c3839f6057658889c1d69c815 \ + --hash=sha256:aaafa6962c9d91f42503de1957d6fa349907d028c06f335bd95da7a5bc57147d \ + --hash=sha256:aee384a2782c89517c4ab9061d2720ba59fd2ffe5ef89d0a149cc2d43abdf521 \ + --hash=sha256:b4aacff70ea4b7377f996f9048989c850d221fef33658ddbcae42aa5bd4ca11a \ + --hash=sha256:b4c6bb0a670dcba017b3643e21902c9b8a1cc1c127d602f1488fa29ec3c6e865 \ + --hash=sha256:c1fac0fc2a7adf29481fc1938a0e7845c57ba1147a986784109c4d98f434ea8c \ + --hash=sha256:c5121f1b9ab09a7f73e837871deb8321551f7eaeb19d87aa00de9191968eae44 \ + --hash=sha256:c9f44e35e6ec01caedacce9e941a5bf21fe424403321efac2507a201273653c5 \ + --hash=sha256:cbf89764fc76f3f17fbf80c12d5a89c691e91cb9d82c38412aaf0568655ffb19 \ + --hash=sha256:dadea3c5ecfd05bbb2a3312ab0374f213c58bf6459cb059122e2f4dfe13d10ed \ + --hash=sha256:df0c166b6bdf7c47f88e81e8b43bc085451d5c50d0c5d1691bc474c1227d6fed \ + --hash=sha256:f44453f107c296d5446a79f7ac59733ad8bf5ddfa04c53805dfbae298a42a798 # via # feast (pyproject.toml) # docling-ibm-models @@ -6043,9 +6058,9 @@ tqdm==4.67.3 \ # semchunk # sentence-transformers # transformers -traitlets==5.14.3 \ - --hash=sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7 \ - --hash=sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f +traitlets==5.15.0 \ + --hash=sha256:4fead733f81cf1c4c938e06f8ca4633896833c9d89eff878159457f4d4392971 \ + --hash=sha256:fb36a18867a6803deab09f3c5e0fa81bb7b26a5c9e82501c9933f759166eff40 # via # ipykernel # ipython @@ -6152,9 +6167,9 @@ trino==0.337.0 \ --hash=sha256:3a0bd03a09b7ea5dccd41ca6e58abfb127c6303f3a48a258ff794d411dd83a3c \ --hash=sha256:868f2b8137d4d1baa84c9bc341f2cdf29039462aa69d7c089a0b821b5a91f29c # via feast (pyproject.toml) -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.12.5 \ --hash=sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b \ @@ -6163,9 +6178,9 @@ typer==0.12.5 \ # docling # docling-core # fastapi-mcp -types-cffi==2.0.0.20260429 \ - --hash=sha256:6a4237bfdbd50e4d0726929070d8b9983bde541726a5a6fe0e8e24e78c1b3826 \ - --hash=sha256:afe7d9777a2921139623af0b94647637a5bd0b938b77ec125e5e5e068a1727bd +types-cffi==2.0.0.20260508 \ + --hash=sha256:746b081b4bf84f9d8855c517a67c2dff717f3c18657fcff8e9c251fb5778f311 \ + --hash=sha256:d094065daf4edcfbdd3e11c37d2fa9511eaf7c509da7a9d9573c276398a8e745 # via types-pyopenssl types-protobuf==3.19.22 \ --hash=sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab \ @@ -6173,25 +6188,25 @@ types-protobuf==3.19.22 \ # via # feast (pyproject.toml) # mypy-protobuf -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ --hash=sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54 # via types-redis -types-python-dateutil==2.9.0.20260408 \ - --hash=sha256:473139d514a71c9d1fbd8bb328974bedcb1cc3dba57aad04ffa4157f483c216f \ - --hash=sha256:8b056ec01568674235f64ecbcef928972a5fac412f5aab09c516dfa2acfbb582 +types-python-dateutil==2.9.0.20260508 \ + --hash=sha256:596a6d63d81f587bf04c8254fb78df9d2344e915ce67948d7400512e3a6206d5 \ + --hash=sha256:bfc6fd2d81aa86e5ac97206a64304f6bd247426eedbca9b98619bbc48c6a1c10 # via feast (pyproject.toml) -types-pytz==2026.1.1.20260408 \ - --hash=sha256:89b6a34b9198ea2a4b98a9d15cbca987053f52a105fd44f7ce3789cae4349408 \ - --hash=sha256:c7e4dec76221fb7d0c97b91ad8561d689bebe39b6bcb7b728387e7ffd8cde788 +types-pytz==2026.2.0.20260506 \ + --hash=sha256:58ab5307c20885f9bcd42ff106616eb0e32710791f8cbdc770aee2ea0c4f01fb \ + --hash=sha256:fc6a0de6a1b7da82a748fb4065e152372dac3016559cb1eef5e8af1e338eb627 # via feast (pyproject.toml) -types-pyyaml==6.0.12.20260408 \ - --hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \ - --hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384 +types-pyyaml==6.0.12.20260510 \ + --hash=sha256:09c1f1cb65a6eebea1e2e51ccf4918b8288e152909609a35cdb0d805efd125ad \ + --hash=sha256:3492eb9ba4d9d833473214c4d5736cccf5f37d93f5854059721e1c84f785309d # via feast (pyproject.toml) types-redis==4.6.0.20241004 \ --hash=sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e \ @@ -6201,15 +6216,15 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (pyproject.toml) -types-setuptools==82.0.0.20260408 \ - --hash=sha256:036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3 \ - --hash=sha256:ece0a215cdfa6463a65fd6f68bd940f39e455729300ddfe61cab1147ed1d2462 +types-setuptools==82.0.0.20260508 \ + --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ + --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e # via # feast (pyproject.toml) # types-cffi -types-tabulate==0.10.0.20260408 \ - --hash=sha256:2b19d193603d38c34645de53c0c1087e2364487d518d4a2f44268db2366723cc \ - --hash=sha256:903d62fdf7e5a0ff659fd5d629df716232f7658c6d30e98f0374488d06ffacf4 +types-tabulate==0.10.0.20260508 \ + --hash=sha256:8e51f159e8b24976849706ae2ed1dc9adba8ebbd080b17e494ebb66a8cc92c74 \ + --hash=sha256:b1e1a2d0456fbd655a71690b09a7aaeffdf2978d32049184ea436492aa51d20a # via feast (pyproject.toml) types-urllib3==1.26.25.14 \ --hash=sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f \ @@ -6278,93 +6293,91 @@ tzlocal==5.3.1 \ # via # great-expectations # trino -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # feast (pyproject.toml) # botocore @@ -6560,9 +6573,9 @@ watchfiles==1.1.1 \ --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf # via uvicorn -wcwidth==0.6.0 \ - --hash=sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad \ - --hash=sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159 +wcwidth==0.7.0 \ + --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ + --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 # via prompt-toolkit webcolors==25.10.0 \ --hash=sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d \ diff --git a/sdk/python/requirements/py3.11-minimal-requirements.txt b/sdk/python/requirements/py3.11-minimal-requirements.txt index 48a46a21175..0a5fbedf9da 100644 --- a/sdk/python/requirements/py3.11-minimal-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-requirements.txt @@ -161,6 +161,39 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 @@ -176,9 +209,9 @@ attrs==26.1.0 \ # aiohttp # jsonschema # referencing -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -440,56 +473,56 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (pyproject.toml) -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # google-auth # pyjwt @@ -499,9 +532,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq @@ -716,9 +749,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -730,9 +763,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -742,17 +775,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -804,15 +837,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -882,6 +915,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -901,9 +935,9 @@ grpcio-status==1.62.3 \ --hash=sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485 \ --hash=sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8 # via google-api-core -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1083,9 +1117,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1121,105 +1155,105 @@ kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee # via feast (pyproject.toml) -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ --hash=sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 # via partd -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -1312,9 +1346,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1588,51 +1622,51 @@ multidict==6.7.1 \ # aiobotocore # aiohttp # yarl -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -1818,155 +1852,152 @@ platformdirs==4.9.6 \ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 # via snowflake-connector-python -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.34.1 \ + --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ + --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ + --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ + --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ + --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ + --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ + --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ + --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c # via # feast (pyproject.toml) # google-api-core @@ -2012,9 +2043,9 @@ psycopg[c, pool]==3.2.5 \ psycopg-c==3.2.5 \ --hash=sha256:57ad4cfd28de278c424aaceb1f2ad5c7910466e315dfe84e403f3c7a0a2ce81b # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg pyarrow==24.0.0 \ --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ @@ -2091,140 +2122,140 @@ pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi # fastapi-mcp # mcp # pydantic-settings -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # fastapi-mcp # mcp @@ -2253,9 +2284,9 @@ pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via feast (pyproject.toml) -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ @@ -2274,13 +2305,13 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via # pandas # snowflake-connector-python @@ -2373,9 +2404,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # fastapi-mcp @@ -2539,32 +2570,32 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2635,13 +2666,13 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via ibis-framework -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp starlette==1.0.0 \ --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ @@ -2711,9 +2742,9 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -2728,17 +2759,17 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc # via fastapi-mcp -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2775,89 +2806,87 @@ tzdata==2026.2 \ # via # ibis-framework # pandas -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt index 5a9824176cc..26e2004915f 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt @@ -4,6 +4,39 @@ # # pybuild-deps compile --generate-hashes --output-file=sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt sdk/python/requirements/py3.11-minimal-sdist-requirements.txt # +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 @@ -257,9 +290,9 @@ gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf # via gitpython -gitpython==3.1.49 \ - --hash=sha256:024b0422d7f84d15cd794844e029ffebd4c5d42a7eb9b936b458697ef550a02c \ - --hash=sha256:42f9399c9eb33fc581014bedd76049dfbaf6375aa2a5754575966387280315e1 +gitpython==3.1.50 \ + --hash=sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc \ + --hash=sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9 # via pymilvus hatch-fancy-pypi-readme==25.1.0 \ --hash=sha256:9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045 \ @@ -394,97 +427,97 @@ libcst==1.8.6 \ --hash=sha256:f729c37c9317126da9475bdd06a7208eb52fcbd180a6341648b45a56b4ba708b \ --hash=sha256:fea5c7fa26556eedf277d4f72779c5ede45ac3018650721edd77fd37ccd4a2d4 # via pyarrow -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -577,22 +610,23 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.13.1 \ - --hash=sha256:001741c6cff56aa8ea59a0d78ae990c0550d0e3e82b00b683eedb4158a8ef7e6 \ - --hash=sha256:01c845825c917c07c1d0b2c9032c59c16a7d383d1e649a46481d3e5693c2750f \ - --hash=sha256:2839024dcd65776abb4759e5bca29941971e095574162a4d335191da4be9ff24 \ - --hash=sha256:3da18cccf2f683c0977bff9146a0908d6ffce836d600665736ac01679f588cb9 \ - --hash=sha256:416e4e01cb88b798e606ee43929df897e42c1647b722ef68283816cca99a8742 \ - --hash=sha256:6b1e5916a253243e8f5f9e847b62bbc98420eec48c9ce2e2e8724c6da89d359b \ - --hash=sha256:72888e87819ce546d0d2df900e4b385e4ef299077d92ee37b48923a5602dae94 \ - --hash=sha256:98b5fcf1a186c217830a8295ecc2989c6b1cf50945417adfc15252107b9475b7 \ - --hash=sha256:9a87ff3b8e4d1c6eac33ebfe8e261e8236516d98d45c0323550621819b5a1a2f \ - --hash=sha256:a2017d2281203d0c6570240e7d746564d766d756105823b7de68bda6ae722711 \ - --hash=sha256:c1490584f3c70af45466ee99065b49e6657ebdccac6b10571bb44681309c9396 \ - --hash=sha256:c6a720b252c99de072922dbe4432ab19662b6f80045b0355fec23bdfccb450da \ - --hash=sha256:dc91031e0619c1e28730279ef9ee5f106c9b9ec806b013f888676b242f892eb7 \ - --hash=sha256:f69093ed4a0e6464e52a7fc26d714f859ce15630ec8070743398c6bf41f38a9e +maturin==1.13.3 \ + --hash=sha256:0ef257e692cc756c87af5bea95ddfe7d3ac49d3376a7a87f728d63f06e7b6f8b \ + --hash=sha256:1cc0a110b224ca90406b668a3e3c1f5a515062e59e26292f6dbaf5fd4909c6f3 \ + --hash=sha256:2389fe92d017cea9d94e521fa0175314a4c52f79a1057b901fbc9f8686ef7d0b \ + --hash=sha256:3cc13929ca82aefa4adbf0f2c35419369796213c6fb0eb24e914945f50ef5d8c \ + --hash=sha256:3db93337ed97e60ffc878aa8b493cd7ae44d3a5e1a37256db3a4491f57565018 \ + --hash=sha256:4667ef609ab446c1b5e0bfe4f9fb99699ab6d8548433f8d1a684256e0b67217f \ + --hash=sha256:49fd6ab08da28098ccf37afca24cdba72376ba9c1eedf9dd25ff82ed771961ff \ + --hash=sha256:4cd478e6e4c56251e48ed079b8efd55b30bc5c09cf695a1bdafaeb582ee735a0 \ + --hash=sha256:53b08bd075649ce96513ad9abf241a43cb685ed6e9e7790f8dbc2d66e95d8323 \ + --hash=sha256:771e1e9e71a278e56db01552e0d1acfd1464259f9575b6e72842f893cd299079 \ + --hash=sha256:a2675e25f313034ae6f57388cf14818f87d8961c4a96795287f3e155f59beb11 \ + --hash=sha256:b6741d7bf4af97da937528fd1e523c6ab54f53d9a21870fa735d6e67fd88e273 \ + --hash=sha256:c00ea6428dea17bf616fe93770837634454b28c2de1a876e42ef8036c616079a \ + --hash=sha256:def4a435ea9d2ee93b18ba579dc8c9cf898889a66f312cd379b5e374ec3e3ad6 # via + # ast-serialize # cryptography # pydantic-core # rpds-py @@ -725,9 +759,9 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -poetry-core==2.3.2 \ - --hash=sha256:20cb71be27b774628da9f384effd9183dfceb53bcef84063248a8672aa47031f \ - --hash=sha256:23df641b64f87fbb4ce1873c1915a4d4bb1b7d808c596e4307edc073e68d7234 +poetry-core==2.4.0 \ + --hash=sha256:4305848477da00272bebd3f615bbec87f64bd117cdb858ab660b626a06a9d96c \ + --hash=sha256:4e8c7496cf797998ffc493f2e23eba4b038c894c08eadacdcdf688945de6b43a # via # aiohappyeyeballs # dunamai @@ -870,17 +904,12 @@ setuptools-scm==10.0.5 \ # tqdm # typeguard # ujson + # urllib3 # zipp setuptools-scm==7.1.0 \ --hash=sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27 \ --hash=sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e # via python-dateutil -setuptools-scm==9.2.2 \ - --hash=sha256:1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57 \ - --hash=sha256:30e8f84d2ab1ba7cb0e653429b179395d0c33775d54807fc5f1dd6671801aef7 - # via - # hatch-vcs - # urllib3 smmap==5.0.3 \ --hash=sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c \ --hash=sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f @@ -934,21 +963,21 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via uv-dynamic-versioning -trove-classifiers==2026.4.28.13 \ - --hash=sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8 \ - --hash=sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676 +trove-classifiers==2026.5.7.17 \ + --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ + --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==82.0.0.20260408 \ - --hash=sha256:036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3 \ - --hash=sha256:ece0a215cdfa6463a65fd6f68bd940f39e455729300ddfe61cab1147ed1d2462 +types-setuptools==82.0.0.20260508 \ + --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ + --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1034,7 +1063,6 @@ setuptools==80.10.2 \ # pathspec # pluggy # prometheus-client - # propcache # proto-plus # psutil # psycopg @@ -1080,6 +1108,7 @@ setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb # via + # propcache # python-dateutil # types-pymysql # types-setuptools diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt index 84fa82236dc..ac7664e360f 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt @@ -165,6 +165,39 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 @@ -184,9 +217,9 @@ babel==2.18.0 \ --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ --hash=sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35 # via sphinx -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -452,56 +485,56 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (pyproject.toml) -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # google-auth # pyjwt @@ -577,9 +610,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq @@ -802,9 +835,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -816,9 +849,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -828,17 +861,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -890,15 +923,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -1029,6 +1062,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -1048,9 +1082,9 @@ grpcio-status==1.62.3 \ --hash=sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485 \ --hash=sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8 # via google-api-core -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1245,9 +1279,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1289,105 +1323,105 @@ kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee # via feast (pyproject.toml) -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ --hash=sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 # via partd -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -1480,9 +1514,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1758,51 +1792,51 @@ multidict==6.7.1 \ # aiobotocore # aiohttp # yarl -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -2012,155 +2046,152 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.34.1 \ + --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ + --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ + --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ + --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ + --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ + --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ + --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ + --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c # via # feast (pyproject.toml) # google-api-core @@ -2206,9 +2237,9 @@ psycopg[c, pool]==3.2.5 \ psycopg-c==3.2.5 \ --hash=sha256:57ad4cfd28de278c424aaceb1f2ad5c7910466e315dfe84e403f3c7a0a2ce81b # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg pyarrow==24.0.0 \ --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ @@ -2289,140 +2320,140 @@ pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi # fastapi-mcp # mcp # pydantic-settings -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # fastapi-mcp # mcp @@ -2452,9 +2483,9 @@ pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via feast (pyproject.toml) -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python pyproject-metadata==0.11.0 \ --hash=sha256:85bbecca8694e2c00f63b492c96921d6c228454057c88e7c352b2077fcaa4096 \ @@ -2477,13 +2508,13 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via # pandas # snowflake-connector-python @@ -2576,9 +2607,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # fastapi-mcp @@ -2760,32 +2791,32 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2884,13 +2915,13 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via ibis-framework -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp starlette==1.0.0 \ --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ @@ -2960,9 +2991,9 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -2977,13 +3008,13 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -trove-classifiers==2026.4.28.13 \ - --hash=sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8 \ - --hash=sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676 +trove-classifiers==2026.5.7.17 \ + --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ + --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 # via hatchling -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ @@ -2993,9 +3024,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (pyproject.toml) -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -3032,89 +3063,87 @@ tzdata==2026.2 \ # via # ibis-framework # pandas -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 706d85f5ec6..a1e662d60d0 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -14,15 +14,48 @@ anyio==4.13.0 \ # via # starlette # watchfiles +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 # via # jsonschema # referencing -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) certifi==2026.4.22 \ --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ @@ -190,9 +223,9 @@ fsspec==2026.4.0 \ --hash=sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 \ --hash=sha256:301d8ac70ae90ef3ad05dcf94d6c3754a097f9b5fe4667d2787aa359ec7df7e4 # via dask -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -245,9 +278,9 @@ httptools==0.7.1 \ --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 # via uvicorn -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # requests @@ -267,97 +300,97 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -563,51 +596,51 @@ mmh3==5.2.1 \ --hash=sha256:fceef7fe67c81e1585198215e42ad3fdba3a25644beda8fbdaf85f4d7b93175a \ --hash=sha256:fd96476f04db5ceba1cfa0f21228f67c1f7402296f0e73fee3513aa680ad237b # via feast (pyproject.toml) -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -763,9 +796,9 @@ pathspec==1.1.1 \ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 # via mypy -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) protobuf==7.34.1 \ --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ @@ -854,133 +887,133 @@ pyarrow==24.0.0 \ # via # feast (pyproject.toml) # dask -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ @@ -998,9 +1031,9 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via uvicorn -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via pandas pyyaml==6.0.3 \ --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ @@ -1086,9 +1119,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via feast (pyproject.toml) rpds-py==0.30.0 \ --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ @@ -1304,9 +1337,9 @@ tqdm==4.67.3 \ --hash=sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb \ --hash=sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf # via feast (pyproject.toml) -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1332,9 +1365,9 @@ tzdata==2026.2 \ --hash=sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10 \ --hash=sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7 # via pandas -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index fd43a7b70a9..3781f17c67d 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -251,9 +251,9 @@ attrs==26.1.0 \ # jsonschema # openlineage-python # referencing -azure-core==1.40.0 \ - --hash=sha256:7f3ea02579b1bb1d34e45043423b650621d11d7c2ea3b05e5554010080b78dfd \ - --hash=sha256:ecf5b6ddf2564471fae9d576147b7e77a4da285958b2d9f4fd6c3af104f3e9d7 +azure-core==1.41.0 \ + --hash=sha256:522b4011e8180b1a3dcd2024396a4e7fe9ac37fb8597db47163d230b5efe892d \ + --hash=sha256:f46ff5dfcd230f25cf1c19e8a34b8dc08a337b2503e268bb600a16c00db8ad5a # via # azure-identity # azure-storage-blob @@ -342,9 +342,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -653,82 +653,68 @@ click==8.3.3 \ # ray # typer # uvicorn -clickhouse-connect==0.15.1 \ - --hash=sha256:08df7857ecd2e345abbbdfc54d80fa060732cf75c953940355140af9a73b730a \ - --hash=sha256:0bef871fb9803ae82b4dc1f797b6e784de0a4dec351591191a0c1a6008548284 \ - --hash=sha256:158325a06978f91a182967341188502a0761447d1e13ffa775cf017def1a3d9e \ - --hash=sha256:167e674dff8ac12be7796d93190b6fe9097c042940b3c41d87fe4d85970be27d \ - --hash=sha256:1ef6922c8887a8b0db49a81823ef031807c971f628a363f6d53b030abaefd589 \ - --hash=sha256:1ff5d10c6e49d36ee6941f52c4233f2bfb4198e9c726fed224f725974a667e37 \ - --hash=sha256:24cdfe9b486c8f2e66f5f51b1f322d89d9eb4df29d9ebb2fa19b553065651e85 \ - --hash=sha256:265f1660e8db5006ca32e8894e6c6cc984b343d96171ab0580b2104084b0fc08 \ - --hash=sha256:2e19c9daabe4c24027006e903d0ba3f2a6b2e0703af37b2536335ac4558d541e \ - --hash=sha256:2e52e20190004ed4578b803b1d5f2097c336fafec41b2cc0d490b5a4964c1284 \ - --hash=sha256:371a201ee128ba2b47bd05e2f184b0d20fb78171d27441a6fb1183f4fcc9316e \ - --hash=sha256:3b456d469db994b188bb0b5afa373e8f2e5e2bf41a70a736b9ed2485a976e9ae \ - --hash=sha256:3cf1b78abf7e1b97ab279a2b244357c40657d2d8504ff3f713c6577cd0550b38 \ - --hash=sha256:46bcebd00aff52ea5f7433e9cee1157b411dba9187f6677a18378c799c27c8aa \ - --hash=sha256:4bf70933ab860bd2f0a872db624603706bed400c915c7aeef382956cf8ebbdf3 \ - --hash=sha256:4f87d283399cbda676c8765605bf60dc6559df6fd38cbb9ea07048a4b34dda26 \ - --hash=sha256:5046cb96d1c344c35198fe072a21ce3f273754df3e58fd0a6222c9a1aff72e75 \ - --hash=sha256:5462bad97d97919a4ed230e2ef28d0b76bec0354a343218647830aac7744a43b \ - --hash=sha256:57ad606e878fd284242713449217a0c475fde6b9b7ab59e7ba9e9c388431f004 \ - --hash=sha256:5ab0d019c18d9d63b228ce2e45768f6c65fd27067d1127ab3e558c35c90f52ef \ - --hash=sha256:5de299ada0f7eb9090bb5a6304d8d78163d4d9cc8eb04d8f552bfb82bafb61d5 \ - --hash=sha256:60aa8c9c775d22db324260265f4c656f803fbc71de9193ef83cf8d8d0ef6ab9a \ - --hash=sha256:691cbf6d3dd16988feb75d43942bb212f50f0cbec284eb249e0cd33ebf74ad09 \ - --hash=sha256:693a03e44256886ac5dd26dc708833913157ec72e3b3a44fb89fd5fc202f85dc \ - --hash=sha256:6f9619f9e8885886039e451c2e22d3fb9bd2e95bc64bbf4ebe6c0a50875785f4 \ - --hash=sha256:7586fae639db65d6ff9f7d539aaac04ebd8604657751d78f6b45e7f971be83f3 \ - --hash=sha256:76699fb79c0de182f915d96a08c15afc19755d9d0e9c93411abb0e4b539c7166 \ - --hash=sha256:7a590116037ae56fab339b625f317d7c0a15bbede5f2f206ce1e55b1a2385e90 \ - --hash=sha256:82e60e108d78e32d58a0f21570b02d3baad67ccbad6482eeb79d74a616d8a5ad \ - --hash=sha256:83d881bf786b05489ccf96f07972b9c28638b513f3e064d39987d837749b35e3 \ - --hash=sha256:859c718cb93780dd681f75d59ceaf4415915fa9617a5ba2de6105e291d6df3ad \ - --hash=sha256:873d8f74eaec141f40ae060318c32353da94fdd4601f925bfd52426f3ddcd689 \ - --hash=sha256:8bb70307589099c67dfe9a973998491bc82c1af9040560b5ebab799721bb197d \ - --hash=sha256:9610ef6ff653f8a030f50e39cdeb1a39bea925c48f9196d787ea4b9f5eb1c8f0 \ - --hash=sha256:99d55aab64fdeb53d74c16d2c46ae5491e90aa37ba55c24884a68a869418ee8e \ - --hash=sha256:a1266a52bf61f0420630f625c5ac87bc2d095f08321820546300a699d4300ba3 \ - --hash=sha256:a326e2f5518d6a9d71f0895d50a3ccd8c4d5e3abb625f39330512ff3c45c6731 \ - --hash=sha256:a9d1e12bf86cd96626f74d21e3ac237abcda105f55cd2e78d139197d35f86209 \ - --hash=sha256:aa9890507aac52a8a5363813bb315b6867e86a97ffa08576cb934603f5bc0216 \ - --hash=sha256:ae24e4e7b10ff140c9041d9bdb2c08781145d844c7486c2661d223ededce7634 \ - --hash=sha256:aeb09a6f8585f3bd4d8c5bead38f3821c076e0bca08c474a7b9039732a6e2e9a \ - --hash=sha256:aed10f7615d0c72457d21ace9b59bfcbea0293188af2ffa3f3c2942d36974e7c \ - --hash=sha256:b2f5174fc6001a1555fc3cb565f3b727e1b786d572df0b30d14929ae13bd3542 \ - --hash=sha256:b692998e6dea344a4a2d7c34c129379767a068f234e1cb721ba27f1f023c70ee \ - --hash=sha256:b6d107b5f964af97f25a0d1bfd59fe3510f2a646c87ad4f9ab9014bb0c66aa1c \ - --hash=sha256:b8236c7dd675ed13d5e96f1f9126eeb711e8c266e4a0476ebc32be8a17decb32 \ - --hash=sha256:c12d9f2b2fc57adaf5ea267804f00e520771794641227ed5285e38fdf36557a6 \ - --hash=sha256:cd41ebe8b7f1c2579b22bbc414a800f3f8f5c843928019aca27c81592f70c5a7 \ - --hash=sha256:cdeee50fb2822e4f886d9676c5979b9e6f93ee9159b1aa1b7d62e71bcf7ae551 \ - --hash=sha256:d0dad989ae193c7261b12c9829f219fc1cb1ae9cad380c35cfe489f139c03ee9 \ - --hash=sha256:d10e8f42bafa12d43dd280d157af1ca5a1743e0ca94e61de94c1d00cb1b2da2b \ - --hash=sha256:d3fca3e0781b664556690decc788e7d25691043bf67a0d241e9c29233a2990d5 \ - --hash=sha256:d6e98c0cf53db3b24dc0ff9f522fcf13205b1d191c632567d1744fbd4671741f \ - --hash=sha256:d75324bb3a611eeb8c22b7fdda7c2cbc6ddbcc3871c65624b97f219430ded282 \ - --hash=sha256:df93fa024d6ed46dbc3182b6202180be4cf2bbe9c331dcb21f85963b1b3fd1e5 \ - --hash=sha256:e1a157205efd47884c22bfe061fc6f8c9aea844929ee755c47b446093805d21a \ - --hash=sha256:e307ea69dc2a6e6d942d2799ee8bfe20c99019ddf95121cbeaf7efbb97f79f09 \ - --hash=sha256:e702b77720ae6fd501e5a52262518dddb6c705fbc122bca4567694fb0bab401f \ - --hash=sha256:e88a31bbd9da7f4b49de39d21e8c93c8fbb5cf487071e935af0eba884681df00 \ - --hash=sha256:e911cffe6a9d9d27ccf91b8060086254c152c48ade47c1de3fc8e91d22cdd143 \ - --hash=sha256:eb595e820e46ccdffd702d23e4d1d1efadaa60db81a3da53e693ab055d8a3b1a \ - --hash=sha256:ecf244f91fc72e5dfe83652baf69a7ced414e9147288138897bc4376ebd6f8ac \ - --hash=sha256:f03814b6e6a72892ce913eaef3931e6d011068480e9c19b80e5c640fdac55109 \ - --hash=sha256:f13c34ad1ddb0d1efc92bc4039b50b534da94c51bbce25e61484bfd28b231cb5 \ - --hash=sha256:f25df0298ecea9c29768ab1267ff1186aacfff0cbd75ff3b588644043f313cd6 \ - --hash=sha256:f2aaf5fc0bb3098c24f0d8ca7e4ecbe605a26957481dfca2c8cef9d1fad7b7ca \ - --hash=sha256:fa01fdb92db6bf72cb9509eecd0a0057a4558a4f40c02eebffbc2d61b644620e +clickhouse-connect==1.0.0 \ + --hash=sha256:03ab4bda888575a2ea882ad4ed05bf9f5f15bb621209f6a4045231e3f26fedf7 \ + --hash=sha256:046f79215ebdd62192cc36e4d81b549570ca46e5b61e107b0d54cf7855b2ffff \ + --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ + --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ + --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ + --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ + --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ + --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ + --hash=sha256:20b76e54c9ea77e86c47b3194f1a9ff1833bd6fa34cb81bfcec621eff94ed033 \ + --hash=sha256:250826f2c3a8466faa51e03902f4c989be5da6f2ab6f74928afadd19ce1e2336 \ + --hash=sha256:29185891d5de03f60ff9da37dbe1e1e44bed8ef252d0d1281ddf3a450dfe5023 \ + --hash=sha256:295e6ff6e3f7fe71c28b1753967d8669ce12d924486150c74c892d8f67cba4d9 \ + --hash=sha256:298e7816ae3ecb7935bf1fe3fb8b8e9eb639e4e14516b87f01ef5a1c223b992c \ + --hash=sha256:2ff97a4a607eb525d9835c939a05ff63f0d3127f33afe1ed78b05d928f49c16c \ + --hash=sha256:320f0c53c4cb8b06732d875cabd35a357992a9e0fcf9f4a18b631ea7ce377ef1 \ + --hash=sha256:3222ae6bf39930a34ff4a483c6b34a1f3dab02d6743428b0383f4d47af7a48db \ + --hash=sha256:34557e29c4dfa0df1f6e26d053d6af1ae8d1444f4bd44a5c647dc7dd3bea22c0 \ + --hash=sha256:345838366b453a8c9c38366ac54493c2fb325982967d7bd0cde3ff619b66d9b7 \ + --hash=sha256:39315f2096809a08cdc75850b52a3675a0639525bbd634b87c4f188bfd875200 \ + --hash=sha256:40f9ade34a50ef2edfa0007d7b300a72fb4be239a0581b5ffc46f165b6a3d1a6 \ + --hash=sha256:444a735bf44390cbd0a81d84d3b20bd0c36084d2a8b9d030bc41b938c3dff1d1 \ + --hash=sha256:46b6dbabbda32e7e717b2732585ffbccf11815ad36987af57a068a66d1a0292c \ + --hash=sha256:4959f9b8915d5a64193523b9b25d7446c583befb5e339cbf45dba68eb2c4abbb \ + --hash=sha256:4964db35f9352452861e0d4d93ea4e7f41c77889e6f78092fe6c6cae5e09f478 \ + --hash=sha256:53f1f9cd31b1af371340f39923a08ba0aef57a7a85ef4a27376107f376c1efc3 \ + --hash=sha256:56a0d59bc1639827ac7ad14158ba557e5287f6cee1b6c942fc1747be12cbcc07 \ + --hash=sha256:5ce486901a4042f6fc6a76ad2961bf5be7c4d970fabecf99113f6cb49d936303 \ + --hash=sha256:6977afeabca17cdd3bc11215902f20e850eb1d71451d93eaee8ac26068a84af4 \ + --hash=sha256:715f50937fcafa849c53314d443b55fb5b04b938f2402ec135c41e515a8312af \ + --hash=sha256:77a5ce7880dea5deadd53d189cf690bdee14513c055343104f5ad3ddcfe25025 \ + --hash=sha256:80c455d0ce5d93c4a744911dcbfb37124c009a826727770fd86f21a47d654333 \ + --hash=sha256:8c4f5c8fa36b605435b32efea4f40ce11babb5f5afcec1e00f6a6cce81f81000 \ + --hash=sha256:8e74375b92cfa94cb4c944a393a027af5c5ed562fc6b862baf6288696bc48688 \ + --hash=sha256:965a496c770d17d061115ad096d2c966af3cee40c167b035afd0f3bd8037327b \ + --hash=sha256:98a3efce3af5308ba3ed140c20a4dc6bf175736e2803b5cb75838ee36365a4eb \ + --hash=sha256:9a2612b246bb9aa69419b8d24732df50e80579f0c43dea97db457cc15b39bfb2 \ + --hash=sha256:9c64f7a26f97eeca472dab6ca9baddc1e36fae1d1c244541926ada4fad14a99b \ + --hash=sha256:9ec2a93d353415951ab10da943f30f0038acc0a1ff82b3253d82a106f3065f34 \ + --hash=sha256:a763c1b1c7977fcab59d2d1d2f249a5231abf44f8a3aa5b0df06bb849b5d0f65 \ + --hash=sha256:a9e780a6d45025469d4e9cea5fec8b0ee55ef76bae867b2f255a106c0c720133 \ + --hash=sha256:ab0a095afd9a6353872a51304c795949fb31f8fdf7519a0f27d7c0fb255983d7 \ + --hash=sha256:aebf884c1aed8cf857d3323ac041e1cf636a865d231dc241543d9a68e82b553d \ + --hash=sha256:bbc6000c1c297b969b6d0a097e84a7bfa31931b0512e4eb1674c6c6d158ade0b \ + --hash=sha256:d84b8b799c71a88a600ca0455fed2d2edb320f510b04969bf04ca6f4807ab4fc \ + --hash=sha256:dae66adb575b7eb9626d84edad4481d5c3d93ca680766c3f1891c13694913bee \ + --hash=sha256:de4a5d1ffa12127f89b5308f95c6ef5da9b1c7f5d133a7d540c364bf259351fc \ + --hash=sha256:e7cfb81c08685ad721b30cb702324de8763f7e8ff8aa653d1c7b602363524cd9 \ + --hash=sha256:ede49d49101023f45d8cfb985719a9c20cf40ff4c60a9f895d48c17dac278448 \ + --hash=sha256:ef3b69da678fe40056f585c0a788356b6eeda04b751a3837ffe75340155ecfdb \ + --hash=sha256:ef8ba83257515fd38a7007a9ae1e8b70bf38d38f4bba34c3b7660af648f88cd2 \ + --hash=sha256:f61a6d42228694cbfcdf806061e752fc88511926389a271987d61c360029b72f \ + --hash=sha256:f8730073bc1adcee13b338b347f68fa0ec7b2460aecce227be2d5abb01ea7b8c \ + --hash=sha256:fc0801be2505b2e3d3b0337c875a624eab61912b8fd55218424ad52a69deab10 # via feast (pyproject.toml) cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a # via dask -codeflare-sdk==0.36.0 \ - --hash=sha256:5dfba97aef0c2a83437682b960a9c323d54e459d949e24729d00d330b00b96a2 \ - --hash=sha256:cbac45169916e63198d214492ed1c17c49ee27d3e98303cff59e2170266a441d +codeflare-sdk==0.37.0 \ + --hash=sha256:2106118d9341db7e329da59f296bc635c08e365d4a644013bb9a55ce38c54da5 \ + --hash=sha256:a5f86b9541a3ef2498bc920465b0e106c4e58bfa2004d14ff177f83761afd469 # via feast (pyproject.toml) colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ @@ -812,164 +798,164 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (pyproject.toml) -coverage[toml]==7.13.5 \ - --hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \ - --hash=sha256:02ca0eed225b2ff301c474aeeeae27d26e2537942aa0f87491d3e147e784a82b \ - --hash=sha256:03ccc709a17a1de074fb1d11f217342fb0d2b1582ed544f554fc9fc3f07e95f5 \ - --hash=sha256:0428cbef5783ad91fe240f673cc1f76b25e74bbfe1a13115e4aa30d3f538162d \ - --hash=sha256:04690832cbea4e4663d9149e05dba142546ca05cb1848816760e7f58285c970a \ - --hash=sha256:0590e44dd2745c696a778f7bab6aa95256de2cbc8b8cff4f7db8ff09813d6969 \ - --hash=sha256:0672854dc733c342fa3e957e0605256d2bf5934feeac328da9e0b5449634a642 \ - --hash=sha256:084b84a8c63e8d6fc7e3931b316a9bcafca1458d753c539db82d31ed20091a87 \ - --hash=sha256:0b67af5492adb31940ee418a5a655c28e48165da5afab8c7fa6fd72a142f8740 \ - --hash=sha256:0cd9ed7a8b181775459296e402ca4fb27db1279740a24e93b3b41942ebe4b215 \ - --hash=sha256:0cef0cdec915d11254a7f549c1170afecce708d30610c6abdded1f74e581666d \ - --hash=sha256:0e223ce4b4ed47f065bfb123687686512e37629be25cc63728557ae7db261422 \ - --hash=sha256:0e3c426ffc4cd952f54ee9ffbdd10345709ecc78a3ecfd796a57236bfad0b9b8 \ - --hash=sha256:0ecf12ecb326fe2c339d93fc131816f3a7367d223db37817208905c89bded911 \ - --hash=sha256:10a0c37f0b646eaff7cce1874c31d1f1ccb297688d4c747291f4f4c70741cc8b \ - --hash=sha256:145ede53ccbafb297c1c9287f788d1bc3efd6c900da23bf6931b09eafc931587 \ - --hash=sha256:1b11eef33edeae9d142f9b4358edb76273b3bfd30bc3df9a4f95d0e49caf94e8 \ - --hash=sha256:1b88c69c8ef5d4b6fe7dea66d6636056a0f6a7527c440e890cf9259011f5e606 \ - --hash=sha256:258354455f4e86e3e9d0d17571d522e13b4e1e19bf0f8596bcf9476d61e7d8a9 \ - --hash=sha256:259b69bb83ad9894c4b25be2528139eecba9a82646ebdda2d9db1ba28424a6bf \ - --hash=sha256:2aa055ae1857258f9e0045be26a6d62bdb47a72448b62d7b55f4820f361a2633 \ - --hash=sha256:2d3807015f138ffea1ed9afeeb8624fd781703f2858b62a8dd8da5a0994c57b6 \ - --hash=sha256:301e3b7dfefecaca37c9f1aa6f0049b7d4ab8dd933742b607765d757aca77d43 \ - --hash=sha256:32ca0c0114c9834a43f045a87dcebd69d108d8ffb666957ea65aa132f50332e2 \ - --hash=sha256:34b02417cf070e173989b3db962f7ed56d2f644307b2cf9d5a0f258e13084a61 \ - --hash=sha256:356e76b46783a98c2a2fe81ec79df4883a1e62895ea952968fb253c114e7f930 \ - --hash=sha256:35a31f2b1578185fbe6aa2e74cea1b1d0bbf4c552774247d9160d29b80ed56cc \ - --hash=sha256:380e8e9084d8eb38db3a9176a1a4f3c0082c3806fa0dc882d1d87abc3c789247 \ - --hash=sha256:3ad050321264c49c2fa67bb599100456fc51d004b82534f379d16445da40fb75 \ - --hash=sha256:3e1bb5f6c78feeb1be3475789b14a0f0a5b47d505bfc7267126ccbd50289999e \ - --hash=sha256:3f4818d065964db3c1c66dc0fbdac5ac692ecbc875555e13374fdbe7eedb4376 \ - --hash=sha256:460cf0114c5016fa841214ff5564aa4864f11948da9440bc97e21ad1f4ba1e01 \ - --hash=sha256:48c39bc4a04d983a54a705a6389512883d4a3b9862991b3617d547940e9f52b1 \ - --hash=sha256:4b59148601efcd2bac8c4dbf1f0ad6391693ccf7a74b8205781751637076aee3 \ - --hash=sha256:4d2afbc5cc54d286bfb54541aa50b64cdb07a718227168c87b9e2fb8f25e1743 \ - --hash=sha256:505d7083c8b0c87a8fa8c07370c285847c1f77739b22e299ad75a6af6c32c5c9 \ - --hash=sha256:52f444e86475992506b32d4e5ca55c24fc88d73bcbda0e9745095b28ef4dc0cf \ - --hash=sha256:5b13955d31d1633cf9376908089b7cebe7d15ddad7aeaabcbe969a595a97e95e \ - --hash=sha256:5ec4af212df513e399cf11610cc27063f1586419e814755ab362e50a85ea69c1 \ - --hash=sha256:60365289c3741e4db327e7baff2a4aaacf22f788e80fa4683393891b70a89fbd \ - --hash=sha256:631efb83f01569670a5e866ceb80fe483e7c159fac6f167e6571522636104a0b \ - --hash=sha256:6697e29b93707167687543480a40f0db8f356e86d9f67ddf2e37e2dfd91a9dab \ - --hash=sha256:66a80c616f80181f4d643b0f9e709d97bcea413ecd9631e1dedc7401c8e6695d \ - --hash=sha256:67e9bc5449801fad0e5dff329499fb090ba4c5800b86805c80617b4e29809b2a \ - --hash=sha256:68a4953be99b17ac3c23b6efbc8a38330d99680c9458927491d18700ef23ded0 \ - --hash=sha256:6c36ddb64ed9d7e496028d1d00dfec3e428e0aabf4006583bb1839958d280510 \ - --hash=sha256:6e3370441f4513c6252bf042b9c36d22491142385049243253c7e48398a15a9f \ - --hash=sha256:7034b5c56a58ae5e85f23949d52c14aca2cfc6848a31764995b7de88f13a1ea0 \ - --hash=sha256:704de6328e3d612a8f6c07000a878ff38181ec3263d5a11da1db294fa6a9bdf8 \ - --hash=sha256:7132bed4bd7b836200c591410ae7d97bf7ae8be6fc87d160b2bd881df929e7bf \ - --hash=sha256:7300c8a6d13335b29bb76d7651c66af6bd8658517c43499f110ddc6717bfc209 \ - --hash=sha256:750db93a81e3e5a9831b534be7b1229df848b2e125a604fe6651e48aa070e5f9 \ - --hash=sha256:777c4d1eff1b67876139d24288aaf1817f6c03d6bae9c5cc8d27b83bcfe38fe3 \ - --hash=sha256:78e696e1cc714e57e8b25760b33a8b1026b7048d270140d25dafe1b0a1ee05a3 \ - --hash=sha256:79060214983769c7ba3f0cee10b54c97609dca4d478fa1aa32b914480fd5738d \ - --hash=sha256:7c8d4bc913dd70b93488d6c496c77f3aff5ea99a07e36a18f865bca55adef8bd \ - --hash=sha256:7f2c47b36fe7709a6e83bfadf4eefb90bd25fbe4014d715224c4316f808e59a2 \ - --hash=sha256:800bc829053c80d240a687ceeb927a94fd108bbdc68dfbe505d0d75ab578a882 \ - --hash=sha256:843ea8643cf967d1ac7e8ecd4bb00c99135adf4816c0c0593fdcc47b597fcf09 \ - --hash=sha256:8769751c10f339021e2638cd354e13adeac54004d1941119b2c96fe5276d45ea \ - --hash=sha256:8dd02af98971bdb956363e4827d34425cb3df19ee550ef92855b0acb9c7ce51c \ - --hash=sha256:8fdf453a942c3e4d99bd80088141c4c6960bb232c409d9c3558e2dbaa3998562 \ - --hash=sha256:941617e518602e2d64942c88ec8499f7fbd49d3f6c4327d3a71d43a1973032f3 \ - --hash=sha256:972a9cd27894afe4bc2b1480107054e062df08e671df7c2f18c205e805ccd806 \ - --hash=sha256:9adb6688e3b53adffefd4a52d72cbd8b02602bfb8f74dcd862337182fd4d1a4e \ - --hash=sha256:9b74db26dfea4f4e50d48a4602207cd1e78be33182bc9cbf22da94f332f99878 \ - --hash=sha256:9bb2a28101a443669a423b665939381084412b81c3f8c0fcfbac57f4e30b5b8e \ - --hash=sha256:9d44d7aa963820b1b971dbecd90bfe5fe8f81cff79787eb6cca15750bd2f79b9 \ - --hash=sha256:9dacc2ad679b292709e0f5fc1ac74a6d4d5562e424058962c7bb0c658ad25e45 \ - --hash=sha256:9ddb4f4a5479f2539644be484da179b653273bca1a323947d48ab107b3ed1f29 \ - --hash=sha256:a1a6d79a14e1ec1832cabc833898636ad5f3754a678ef8bb4908515208bf84f4 \ - --hash=sha256:a698e363641b98843c517817db75373c83254781426e94ada3197cabbc2c919c \ - --hash=sha256:ad14385487393e386e2ea988b09d62dd42c397662ac2dabc3832d71253eee479 \ - --hash=sha256:ad146744ca4fd09b50c482650e3c1b1f4dfa1d4792e0a04a369c7f23336f0400 \ - --hash=sha256:b5db73ba3c41c7008037fa731ad5459fc3944cb7452fc0aa9f822ad3533c583c \ - --hash=sha256:bd3a2fbc1c6cccb3c5106140d87cc6a8715110373ef42b63cf5aea29df8c217a \ - --hash=sha256:bdba0a6b8812e8c7df002d908a9a2ea3c36e92611b5708633c50869e6d922fdf \ - --hash=sha256:be3d4bbad9d4b037791794ddeedd7d64a56f5933a2c1373e18e9e568b9141686 \ - --hash=sha256:bf69236a9a81bdca3bff53796237aab096cdbf8d78a66ad61e992d9dac7eb2de \ - --hash=sha256:bff95879c33ec8da99fc9b6fe345ddb5be6414b41d6d1ad1c8f188d26f36e028 \ - --hash=sha256:c555b48be1853fe3997c11c4bd521cdd9a9612352de01fa4508f16ec341e6fe0 \ - --hash=sha256:c81f6515c4c40141f83f502b07bbfa5c240ba25bbe73da7b33f1e5b6120ff179 \ - --hash=sha256:c9136ff29c3a91e25b1d1552b5308e53a1e0653a23e53b6366d7c2dcbbaf8a16 \ - --hash=sha256:ce1998c0483007608c8382f4ff50164bfc5bd07a2246dd272aa4043b75e61e85 \ - --hash=sha256:cec2d83125531bd153175354055cdb7a09987af08a9430bd173c937c6d0fba2a \ - --hash=sha256:cff784eef7f0b8f6cb28804fbddcfa99f89efe4cc35fb5627e3ac58f91ed3ac0 \ - --hash=sha256:d2c87e0c473a10bffe991502eac389220533024c8082ec1ce849f4218dded810 \ - --hash=sha256:d7cfad2d6d81dd298ab6b89fe72c3b7b05ec7544bdda3b707ddaecff8d25c161 \ - --hash=sha256:d8a7a2049c14f413163e2bdabd37e41179b1d1ccb10ffc6ccc4b7a718429c607 \ - --hash=sha256:da305e9937617ee95c2e39d8ff9f040e0487cbf1ac174f777ed5eddd7a7c1f26 \ - --hash=sha256:da86cdcf10d2519e10cabb8ac2de03da1bcb6e4853790b7fbd48523332e3a819 \ - --hash=sha256:dc022073d063b25a402454e5712ef9e007113e3a676b96c5f29b2bda29352f40 \ - --hash=sha256:e0723d2c96324561b9aa76fb982406e11d93cdb388a7a7da2b16e04719cf7ca5 \ - --hash=sha256:e092b9499de38ae0fbfbc603a74660eb6ff3e869e507b50d85a13b6db9863e15 \ - --hash=sha256:e0b216a19534b2427cc201a26c25da4a48633f29a487c61258643e89d28200c0 \ - --hash=sha256:e1c85e0b6c05c592ea6d8768a66a254bfb3874b53774b12d4c89c481eb78cb90 \ - --hash=sha256:e301d30dd7e95ae068671d746ba8c34e945a82682e62918e41b2679acd2051a0 \ - --hash=sha256:e808af52a0513762df4d945ea164a24b37f2f518cbe97e03deaa0ee66139b4d6 \ - --hash=sha256:eb07647a5738b89baab047f14edd18ded523de60f3b30e75c2acc826f79c839a \ - --hash=sha256:eb7fdf1ef130660e7415e0253a01a7d5a88c9c4d158bcf75cbbd922fd65a5b58 \ - --hash=sha256:ec10e2a42b41c923c2209b846126c6582db5e43a33157e9870ba9fb70dc7854b \ - --hash=sha256:ee2aa19e03161671ec964004fb74b2257805d9710bf14a5c704558b9d8dbaf17 \ - --hash=sha256:f08fd75c50a760c7eb068ae823777268daaf16a80b918fa58eea888f8e3919f5 \ - --hash=sha256:f4cd16206ad171cbc2470dbea9103cf9a7607d5fe8c242fdf1edf36174020664 \ - --hash=sha256:f70c9ab2595c56f81a89620e22899eea8b212a4041bd728ac6f4a28bf5d3ddd0 \ - --hash=sha256:fbabfaceaeb587e16f7008f7795cd80d20ec548dc7f94fbb0d4ec2e038ce563f +coverage[toml]==7.14.0 \ + --hash=sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74 \ + --hash=sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e \ + --hash=sha256:0a951308cde22cf77f953955a754d04dccb57fe3bb8e345d685778ed9fc1632a \ + --hash=sha256:0c451757d3fa2603354fdc789b5e58a0e327a117c370a40e3476ba4eabab228c \ + --hash=sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a \ + --hash=sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe \ + --hash=sha256:1733198802d71ec4c524f322e2867ee05c62e9e75df86bdca545407a221827d1 \ + --hash=sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db \ + --hash=sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9 \ + --hash=sha256:1c9ed6ef99f88fb8c14aa8e2bf8eb0fe55fa2edfea68f8675d78741df1a5ac0e \ + --hash=sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b \ + --hash=sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66 \ + --hash=sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644 \ + --hash=sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490 \ + --hash=sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5 \ + --hash=sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8 \ + --hash=sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f \ + --hash=sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212 \ + --hash=sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb \ + --hash=sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917 \ + --hash=sha256:3fd43f0616e765ab78d069cf8358def7363957a45cee446d65c502dcfeea7893 \ + --hash=sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c \ + --hash=sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90 \ + --hash=sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d \ + --hash=sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef \ + --hash=sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9 \ + --hash=sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087 \ + --hash=sha256:5904abf7e18cddc463219b17552229650c6b79e061d31a1059283051169cf7d5 \ + --hash=sha256:5ac83957a80d0701310e96d8bec68cdcf4f90a7674b7d13f15a344315b41ab27 \ + --hash=sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020 \ + --hash=sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3 \ + --hash=sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47 \ + --hash=sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca \ + --hash=sha256:65f267ca1370726ec2c1aa38bbe4df9a71a740f22878d2d4bf59d71a4cd8d323 \ + --hash=sha256:664123feb0929d7affc135717dbd70d61d98688a08ab1e5ba464739620c6252d \ + --hash=sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd \ + --hash=sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426 \ + --hash=sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828 \ + --hash=sha256:6a78e2a9d9c5e3b8d4ab9b9d28c985ea66fced0a7d7c2aec1f216e03a2011480 \ + --hash=sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97 \ + --hash=sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8 \ + --hash=sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899 \ + --hash=sha256:70390b0da32cb90b501953716302906e8bcce087cb283e70d8c97729f22e92b2 \ + --hash=sha256:72a305291fa8ee01332f1aaf38b348ca34097f6aa0b0ef627eef2837e57bbba5 \ + --hash=sha256:731dc15b385ac52289743d476245b61e1a2927e803bef655b52bc3b2a75a21f3 \ + --hash=sha256:731e535b1498b27d13594a0527a79b0510867b0ad891532be41cb883f2128e20 \ + --hash=sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436 \ + --hash=sha256:741f57cddc9004a8c81b084660215f33a6b597dbe62c31386b983ee26310e327 \ + --hash=sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b \ + --hash=sha256:7b2bb6c9d7e769360d0f20a0f219603fd64f0c8f97de17ab25853261602be0fb \ + --hash=sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe \ + --hash=sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab \ + --hash=sha256:7c843572c605ab51cfdb5c6b5f2586e2a8467c0d28eca4bdef4ec70c5fecbd82 \ + --hash=sha256:7ebb1c6df9f78046a1b1e0a89674cd4bf73b7c648914eebcf976a57fd99a5627 \ + --hash=sha256:7ffd19fc8aed057fd686a17a4935eef5f9859d69208f96310e893e64b9b6ccf5 \ + --hash=sha256:8231ade007f37959fbf58acc677f26b922c02eda6f0428ea307da0fd39681bf3 \ + --hash=sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477 \ + --hash=sha256:829994cfe1aeb773ca27bf246d4badc1e764893e3bfb98fff820fcecd1ca4662 \ + --hash=sha256:84c32d90bf4537f0e7b4dec9aaa9a938fb8205136b9d2ecf4d7629d5262dc075 \ + --hash=sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f \ + --hash=sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1 \ + --hash=sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7 \ + --hash=sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52 \ + --hash=sha256:91b993743d959b8be85b4abf9d5478216a69329c321efe5be0433c1a841d691d \ + --hash=sha256:92af52828e7f29d827346b0294e5a0853fa206db77db0395b282918d41e28db9 \ + --hash=sha256:9336e23e8bb3a3925398261385e2a1533957d3e760e91070dcb0e98bfa514eed \ + --hash=sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90 \ + --hash=sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1 \ + --hash=sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d \ + --hash=sha256:9cd1169b2230f9cbe9c638ba38022ed7a2b1e641cc07f7cea0365e4be2a74980 \ + --hash=sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca \ + --hash=sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa \ + --hash=sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6 \ + --hash=sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc \ + --hash=sha256:a1816c505187592dcd1c5a5f226601a549f70365fbd00930ac88b0c225b76bb4 \ + --hash=sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c \ + --hash=sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d \ + --hash=sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84 \ + --hash=sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2 \ + --hash=sha256:a93bac2cb577ef60074999ed56d8a1535894398e2ed920d4185c3ec0c8864742 \ + --hash=sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2 \ + --hash=sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb \ + --hash=sha256:b34ece8065914f938ed7f2c5872bb865336977a52919149846eac3744327267a \ + --hash=sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9 \ + --hash=sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96 \ + --hash=sha256:b4f07cf7edcb7ec39431a5074d7ea83b29a9f71fcfc494f0f40af4e65180420f \ + --hash=sha256:b812eb847b19876ebf33fb6c4f11819af05ab6050b0bfa1bc53412ae81779adb \ + --hash=sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63 \ + --hash=sha256:bcb2e855b87321259a037429288ae85216d191c74de3e79bf57cd2bc0761992c \ + --hash=sha256:bfb0ed8ec5d25e93face268115d7964db9df8b9aae8edcde9ec6b16c726a7cc1 \ + --hash=sha256:c7492f2d493b976941c7ca050f273cbda2f43c381124f7586a3e3c16d1804fec \ + --hash=sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367 \ + --hash=sha256:c83d2399a51bbec8429266905d33616f04bc5726b1138c35844d5fcd896b2e20 \ + --hash=sha256:ca3d9cf2c32b521bd9518385608787fa86f38daf993695307531822c3430ed67 \ + --hash=sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b \ + --hash=sha256:d128b1bba9361fbaaf6a19e179e6cfd6a9103ce0c0555876f72780acc93efd85 \ + --hash=sha256:d1bb3543b58fea74d2cd1abc4054cc927e4724687cb4560cd2ed88d2c7d820c0 \ + --hash=sha256:d8b013632cc1ce1d09dbe4f32667b4d320ec2f54fc326ebeffcd0b0bcc2bb6c4 \ + --hash=sha256:d8e1762f0e9cbc26ec315471e7b47855218e833cd5a032d706fbf43845d878c7 \ + --hash=sha256:d9c8ef6ed820c433de075657d72dda1f89a2984955e58b8a75feb3f184250218 \ + --hash=sha256:dc38367eaa2abb1b766ac333142bce7655335a73537f5c8b75aaa89c2b987757 \ + --hash=sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef \ + --hash=sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1 \ + --hash=sha256:fab3877e4ebb06bd9d4d4d00ee53309ee5478e66873c66a382272e3ee33eb7ea \ + --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ + --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 # via pytest-cov -cryptography==46.0.6 \ - --hash=sha256:02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70 \ - --hash=sha256:063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d \ - --hash=sha256:12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a \ - --hash=sha256:12f0fa16cc247b13c43d56d7b35287ff1569b5b1f4c5e87e92cc4fcc00cd10c0 \ - --hash=sha256:22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97 \ - --hash=sha256:26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30 \ - --hash=sha256:27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759 \ - --hash=sha256:2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c \ - --hash=sha256:2ea0f37e9a9cf0df2952893ad145fd9627d326a59daec9b0802480fa3bcd2ead \ - --hash=sha256:2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275 \ - --hash=sha256:341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58 \ - --hash=sha256:380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f \ - --hash=sha256:3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361 \ - --hash=sha256:3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507 \ - --hash=sha256:456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa \ - --hash=sha256:4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b \ - --hash=sha256:50575a76e2951fe7dbd1f56d181f8c5ceeeb075e9ff88e7ad997d2f42af06e7b \ - --hash=sha256:639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8 \ - --hash=sha256:64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8 \ - --hash=sha256:6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72 \ - --hash=sha256:67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175 \ - --hash=sha256:6728c49e3b2c180ef26f8e9f0a883a2c585638db64cf265b49c9ba10652d430e \ - --hash=sha256:6739d56300662c468fddb0e5e291f9b4d084bead381667b9e654c7dd81705124 \ - --hash=sha256:69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a \ - --hash=sha256:760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c \ - --hash=sha256:79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f \ - --hash=sha256:7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d \ - --hash=sha256:7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4 \ - --hash=sha256:7f6690b6c55e9c5332c0b59b9c8a3fb232ebf059094c17f9019a51e9827df91c \ - --hash=sha256:8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290 \ - --hash=sha256:8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca \ - --hash=sha256:8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d \ - --hash=sha256:90e5f0a7b3be5f40c3a0a0eafb32c681d8d2c181fc2a1bdabe9b3f611d9f6b1a \ - --hash=sha256:97c8115b27e19e592a05c45d0dd89c57f81f841cc9880e353e0d3bf25b2139ed \ - --hash=sha256:9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a \ - --hash=sha256:9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb \ - --hash=sha256:a3e84d5ec9ba01f8fd03802b2147ba77f0c8f2617b2aff254cedd551844209c8 \ - --hash=sha256:aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707 \ - --hash=sha256:b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410 \ - --hash=sha256:b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736 \ - --hash=sha256:bcb87663e1f7b075e48c3be3ecb5f0b46c8fc50b50a97cf264e7f60242dca3f2 \ - --hash=sha256:c797e2517cb7880f8297e2c0f43bb910e91381339336f75d2c1c2cbf811b70b4 \ - --hash=sha256:c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013 \ - --hash=sha256:cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19 \ - --hash=sha256:d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b \ - --hash=sha256:d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738 \ - --hash=sha256:d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463 \ - --hash=sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77 \ - --hash=sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4 +cryptography==46.0.7 \ + --hash=sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65 \ + --hash=sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832 \ + --hash=sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067 \ + --hash=sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de \ + --hash=sha256:258514877e15963bd43b558917bc9f54cf7cf866c38aa576ebf47a77ddbc43a4 \ + --hash=sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0 \ + --hash=sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b \ + --hash=sha256:3986ac1dee6def53797289999eabe84798ad7817f3e97779b5061a95b0ee4968 \ + --hash=sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef \ + --hash=sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b \ + --hash=sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4 \ + --hash=sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3 \ + --hash=sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308 \ + --hash=sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e \ + --hash=sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163 \ + --hash=sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f \ + --hash=sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee \ + --hash=sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77 \ + --hash=sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85 \ + --hash=sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99 \ + --hash=sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7 \ + --hash=sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83 \ + --hash=sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85 \ + --hash=sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006 \ + --hash=sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb \ + --hash=sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e \ + --hash=sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba \ + --hash=sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325 \ + --hash=sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d \ + --hash=sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1 \ + --hash=sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1 \ + --hash=sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2 \ + --hash=sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0 \ + --hash=sha256:d02c738dacda7dc2a74d1b2b3177042009d5cab7c7079db74afc19e56ca1b455 \ + --hash=sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842 \ + --hash=sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457 \ + --hash=sha256:d3b99c535a9de0adced13d159c5a9cf65c325601aa30f4be08afd680643e9c15 \ + --hash=sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2 \ + --hash=sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c \ + --hash=sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb \ + --hash=sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5 \ + --hash=sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4 \ + --hash=sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902 \ + --hash=sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246 \ + --hash=sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022 \ + --hash=sha256:fc9ab8856ae6cf7c9358430e49b368f3108f050031442eaeb6b9d87e4dcf4e4f \ + --hash=sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e \ + --hash=sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298 \ + --hash=sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce # via # feast (pyproject.toml) # azure-identity @@ -995,15 +981,15 @@ datasets==4.8.5 \ --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq -dbt-artifacts-parser==0.13.1 \ - --hash=sha256:c341730fa34ebb38cc7d2de0282e8b713e2fc65fc6577f0d944f8abee8949dc4 \ - --hash=sha256:c7a3c4e309ae2d7d566a615e92043b0d346a77998203b0cc466234717b806e40 +dbt-artifacts-parser==0.13.2 \ + --hash=sha256:9eca1e413f7eee522cc1556634b0b9effe790b70d8ffcc46ae2328b9868efaf1 \ + --hash=sha256:abb798aa73ff8cc295b4ecf03ee02d6a3bc48ad79f7d093d4bb3ffef68e77fb4 # via feast (pyproject.toml) debugpy==1.8.20 \ --hash=sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad \ @@ -1089,9 +1075,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.74.1 \ - --hash=sha256:46bf298686f2c51ddd69b6935a27dff1cc80838f2f5f1a8823492d99cf1a357b \ - --hash=sha256:e6464078012b3d45f4e0accd101fcb277063903f355eabbb9aee8de00527a789 +docling-core[chunking]==2.75.0 \ + --hash=sha256:60f7bc4025f6511ba82eeb0aa677e756e9d3bf069d6f207c6ef2fb8be3176f32 \ + --hash=sha256:7961be3c3f58855324b081fce9e1231b892da7c61d6babbaf3d49c28387eb782 # via # docling # docling-ibm-models @@ -1177,13 +1163,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.2.1 \ - --hash=sha256:39e1a25e486af34ce7aa1bc9005d1c736f1b6fb04c9b64ea0604ded5a61fc1d4 \ - --hash=sha256:97d9abd638ba8aa90faa4ca1bf1a18bde0fe2088fbc8757f2eb7b299f205773d +elastic-transport==9.4.0 \ + --hash=sha256:2dbb907ededa14e6ff5be058f8737bbba3926bd1b1a40dbc98a471285fa2cb3c \ + --hash=sha256:4eff263c8011dd950451b72be567a2484b814a89c70081053d6ae6addeab52e2 # via elasticsearch -elasticsearch==9.3.0 \ - --hash=sha256:67bd2bb4f0800f58c2847d29cd57d6e7bf5bc273483b4f17421f93e75ba09f39 \ - --hash=sha256:f76e149c0a22d5ccbba58bdc30c9f51cf894231b359ef4fd7e839b558b59f856 +elasticsearch==9.4.0 \ + --hash=sha256:95e38e130b1d01438b19343dfa0458e1857a7df8e2e30cbf23a72182b03f05ff \ + --hash=sha256:e20095ba40229f4562f7cc951883c7c62a017435f94dbe0c21526f58ba411885 # via feast (pyproject.toml) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1424,9 +1410,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -1438,9 +1424,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -1450,17 +1436,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -1512,15 +1498,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -1594,6 +1580,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -1671,9 +1658,9 @@ grpcio-tools==1.62.3 \ --hash=sha256:f4b1615adf67bd8bb71f3464146a6f9949972d06d21a4f5e87e73f6464d97f57 \ --hash=sha256:f6831fdec2b853c9daa3358535c55eed3694325889aa714070528cf8f92d7d6d # via feast (pyproject.toml) -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1695,32 +1682,32 @@ hazelcast-python-client==5.6.0 \ --hash=sha256:834b87076a47c781ef80bdcb522b86abc75ff28992dfe384e47f669f06cabb18 \ --hash=sha256:e2cec409068990ca9b4381fe97160cc2375412334782bef45ab4c8fe4d10536c # via feast (pyproject.toml) -hf-xet==1.4.3 \ - --hash=sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07 \ - --hash=sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2 \ - --hash=sha256:21644b404bb0100fe3857892f752c4d09642586fd988e61501c95bbf44b393a3 \ - --hash=sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8 \ - --hash=sha256:27c976ba60079fb8217f485b9c5c7fcd21c90b0367753805f87cb9f3cdc4418a \ - --hash=sha256:2815a49a7a59f3e2edf0cf113ae88e8cb2ca2a221bf353fb60c609584f4884d4 \ - --hash=sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f \ - --hash=sha256:42ee323265f1e6a81b0e11094564fb7f7e0ec75b5105ffd91ae63f403a11931b \ - --hash=sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac \ - --hash=sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6 \ - --hash=sha256:60cf7fc43a99da0a853345cf86d23738c03983ee5249613a6305d3e57a5dca74 \ - --hash=sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075 \ - --hash=sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021 \ - --hash=sha256:7551659ba4f1e1074e9623996f28c3873682530aee0a846b7f2f066239228144 \ - --hash=sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba \ - --hash=sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47 \ - --hash=sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791 \ - --hash=sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113 \ - --hash=sha256:987f09cfe418237812896a6736b81b1af02a3a6dcb4b4944425c4c4fca7a7cf8 \ - --hash=sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f \ - --hash=sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd \ - --hash=sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025 \ - --hash=sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653 \ - --hash=sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583 \ - --hash=sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08 +hf-xet==1.5.0 \ + --hash=sha256:1e60df5a42e9bed8628b6416af2cba4cba57ae9f02de226a06b020d98e1aab18 \ + --hash=sha256:2806c7c17b4d23f8d88f7c4814f838c3b6150773fe339c20af23e1cfaf2797e4 \ + --hash=sha256:2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60 \ + --hash=sha256:3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949 \ + --hash=sha256:4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690 \ + --hash=sha256:526345b3ed45f374f6317349df489167606736c876241ba984105afe7fd4839d \ + --hash=sha256:5906bf7718d3636dc13402914736abe723492cb730f744834f5f5b67d3a12702 \ + --hash=sha256:5f3dc2248fc01cc0a00cd392ab497f1ca373fcbc7e3f2da1f452480b384e839e \ + --hash=sha256:73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42 \ + --hash=sha256:786d28e2eb8315d5035544b9d137b4a842d600c434bb91bf7d0d953cce906ad4 \ + --hash=sha256:7d70fe2ce97b9db73b9c9b9c81fe3693640aec83416a966c446afea54acfae3c \ + --hash=sha256:872d5601e6deea30d15865ede55d29eac6daf5a534ab417b99b6ef6b076dd96c \ + --hash=sha256:8dbcbab554c9ef158ef2c991545c3e970ddd8cc7acdcd0a78c5a41095dab4ded \ + --hash=sha256:9929561f5abf4581c8ea79587881dfef6b8abb2a0d8a51915936fc2a614f4e73 \ + --hash=sha256:9a0ee58cd18d5ea799f7ed11290bbccbe56bdd8b1d97ca74b9cc49a3945d7a3b \ + --hash=sha256:a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a \ + --hash=sha256:b285cea1b5bab46b758772716ba8d6854a1a0310fed1c249d678a8b38601e5a0 \ + --hash=sha256:b6c9df403040248c76d808d3e047d64db2d923bae593eb244c41e425cf6cd7be \ + --hash=sha256:c799d49f1a5544a0ef7591c0ee75e0d6b93d6f56dc7a4979f59f7518d2872216 \ + --hash=sha256:cf7b2dc6f31a4ea754bb50f74cde482dcf5d366d184076d8530b9872787f3761 \ + --hash=sha256:dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56 \ + --hash=sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948 \ + --hash=sha256:e5de0f6deada0dada870bb376a11bcd1f08abf3a968a6d118f33e72d1b1eb480 \ + --hash=sha256:f7b7bbae318e583a86fb21e5a4a175d6721d628a2874f4bd022d0e660c32a682 \ + --hash=sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a # via huggingface-hub hiredis==3.3.1 \ --hash=sha256:002fc0201b9af1cc8960e27cdc501ad1f8cdd6dbadb2091c6ddbd4e5ace6cb77 \ @@ -1922,9 +1909,9 @@ identify==2.6.19 \ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842 # via pre-commit -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1985,9 +1972,9 @@ isoduration==20.11.0 \ --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 # via jsonschema -jedi==0.19.2 \ - --hash=sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0 \ - --hash=sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9 +jedi==0.20.0 \ + --hash=sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 \ + --hash=sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011 # via ipython jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -2079,9 +2066,9 @@ jupyter-lsp==2.3.1 \ --hash=sha256:71b954d834e85ff3096400554f2eefaf7fe37053036f9a782b0f7c5e42dadb81 \ --hash=sha256:fdf8a4aa7d85813976d6e29e95e6a2c8f752701f926f2715305249a3829805a6 # via jupyterlab -jupyter-server==2.17.0 \ - --hash=sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5 \ - --hash=sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f +jupyter-server==2.18.2 \ + --hash=sha256:06b4f40d8a7a00bb39d5216859c81374a0e7cfefe6d8a5a7facc5a5c37c679a7 \ + --hash=sha256:fa5e46539ded65791838035a2b6001f13e54d5f64b8b3752eb1e91fdd641a5b8 # via # jupyter-lsp # jupyterlab @@ -2343,9 +2330,9 @@ makefun==1.16.0 \ --hash=sha256:43baa4c3e7ae2b17de9ceac20b669e9a67ceeadff31581007cca20a07bbe42c4 \ --hash=sha256:e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947 # via great-expectations -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich marko==2.2.2 \ --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ @@ -2449,15 +2436,15 @@ marshmallow==3.26.2 \ --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations -matplotlib-inline==0.2.1 \ - --hash=sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76 \ - --hash=sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe +matplotlib-inline==0.2.2 \ + --hash=sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 \ + --hash=sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79 # via # ipykernel # ipython -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -2475,9 +2462,9 @@ minio==7.2.11 \ --hash=sha256:153582ed52ff3b5005ba558e1f25bfe1e9e834f7f0745e594777f28e3e81e1a0 \ --hash=sha256:4db95a21fe1e2022ec975292d8a1f83bd5b18f830d23d42a4518ac7a5281d7c5 # via feast (pyproject.toml) -mistune==3.2.0 \ - --hash=sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a \ - --hash=sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1 +mistune==3.2.1 \ + --hash=sha256:78cdb0ba5e938053ccf63651b352508d2efa9411dc8810bfb05f2dc5140c0048 \ + --hash=sha256:7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28 # via # great-expectations # nbconvert @@ -3073,8 +3060,8 @@ opencv-python-headless==4.13.0.92 \ --hash=sha256:a7cf08e5b191f4ebb530791acc0825a7986e0d0dee2a3c491184bd8599848a4b \ --hash=sha256:eb60e36b237b1ebd40a912da5384b348df8ed534f6f644d8e0b4f103e272ba7d # via easyocr -openlineage-python==1.46.0 \ - --hash=sha256:f6228a01d34990e76ede5b55b3f99169e54e2e624814c4493f064b9cb1bfba37 +openlineage-python==1.47.1 \ + --hash=sha256:44ca34b0b38c9a49f6b7200ace37612334a34a455361af29adcfb80e27d258dd # via feast (pyproject.toml) openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ @@ -3109,114 +3096,114 @@ opentelemetry-semantic-conventions==0.62b1 \ --hash=sha256:c5cc6e04a7f8c7cdd30be2ed81499fa4e75bfbd52c9cb70d40af1f9cd3619802 \ --hash=sha256:cf506938103d331fbb78eded0d9788095f7fd59016f2bda813c3324e5a74a93c # via opentelemetry-sdk -oracledb==3.4.2 \ - --hash=sha256:00c79448017f367bb7ab6900efe0706658a53768abea2b4519a4c9b2d5743890 \ - --hash=sha256:0e16fe3d057e0c41a23ad2ae95bfa002401690773376d476be608f79ac74bf05 \ - --hash=sha256:0f04a2d62073407672f114d02529921de0677c6883ed7c64d8d1a3c04caa3238 \ - --hash=sha256:1617a1db020346883455af005efbefd51be2c4d797e43b1b38455a19f8526b48 \ - --hash=sha256:19fa80ef84f85ad74077aa626067bbe697e527bd39604b4209f9d86cb2876b89 \ - --hash=sha256:1e4930d7f6584832dcc15b8ca415a7957b0c45f5aa7c4f88702e070e5c53bf93 \ - --hash=sha256:23aa07c1eaca17ae74c6fdc86b218f58484d56452958aead1aa460c0596a76c1 \ - --hash=sha256:31b7ee83c23d0439778303de8a675717f805f7e8edb5556d48c4d8343bcf14f5 \ - --hash=sha256:3df8eee1410d25360599968b1625b000f10c5ae0e47274031a7842a9dc418890 \ - --hash=sha256:404ec1451d0448653ee074213b87d6c5bd65eaa74b50083ddf2c9c3e11c71c71 \ - --hash=sha256:46e0f2278ff1fe83fbc33a3b93c72d429323ec7eed47bc9484e217776cd437e5 \ - --hash=sha256:55397e7eb43bb7017c03a981c736c25724182f5210951181dfe3fab0e5d457fb \ - --hash=sha256:574c8280d49cbbe21dbe03fc28356d9b9a5b9e300ebcde6c6d106e51453a7e65 \ - --hash=sha256:59ad6438f56a25e8e1a4a3dd1b42235a5d09ab9ba417ff2ad14eae6596f3d06f \ - --hash=sha256:5d7befb014174c5ae11c3a08f5ed6668a25ab2335d8e7104dca70d54d54a5b3a \ - --hash=sha256:5ed78d7e7079a778062744ccf42141ce4806818c3f4dd6463e4a7edd561c9f86 \ - --hash=sha256:643c25d301a289a371e37fcedb59e5fa5e54fb321708e5c12821c4b55bdd8a4d \ - --hash=sha256:6d85622664cc88d5a82bbd7beccb62cd53bd272c550a5e15e7d5f8ae6b86f1f1 \ - --hash=sha256:9f434a739405557bd57cb39b62238142bb27855a524a70dc6d397a2a8c576c9d \ - --hash=sha256:a7396664e592881225ba66385ee83ce339d864f39003d6e4ca31a894a7e7c552 \ - --hash=sha256:ac25a0448fc830fb7029ad50cd136cdbfcd06975d53967e269772cc5cb8c203a \ - --hash=sha256:b1095d95d0c8b37e4d0e17cf1928919cb59222b6344362a1cf6a2f3ca205a28a \ - --hash=sha256:b26a10f9c790bd141ffc8af68520803ed4a44a9258bf7d1eea9bfdd36bd6df7f \ - --hash=sha256:b8e4b8a852251cef09038b75f30fce1227010835f4e19cfbd436027acba2697c \ - --hash=sha256:b974caec2c330c22bbe765705a5ac7d98ec3022811dec2042d561a3c65cb991b \ - --hash=sha256:d7ce75c498bff758548ec6e4424ab4271aa257e5887cc436a54bc947fd46199a \ - --hash=sha256:d8d75e4f879b908be66cce05ba6c05791a5dbb4a15e39abc01aa25c8a2492bd9 \ - --hash=sha256:e068ef844a327877bfefbef1bc6fb7284c727bb87af80095f08d95bcaf7b8bb2 \ - --hash=sha256:f8ea989965a4f636a309444bd696ab877bba373d5d67bf744785f9bd8c560865 \ - --hash=sha256:f93cae08e8ed20f2d5b777a8602a71f9418389c661d2c937e84d94863e7e7011 \ - --hash=sha256:ff3c89cecea62af8ca02aa33cab0f2edc0214c747eac7d3364ed6b2640cb55e4 +oracledb==4.0.0 \ + --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ + --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ + --hash=sha256:22e33228d6955db8a69c8c83ee4b392a534c86f9493647ea3f511c2f5df08dd4 \ + --hash=sha256:244ebe47c4a4e32bc07a4206192de04d92fbfeb72bf11a01493e3a710bd4b19a \ + --hash=sha256:4582f87e56c2a2e3a74942f087c096525543e92fb59d3758e41d41145b809c52 \ + --hash=sha256:4e47a130120181b8226daf9e928e3c22107c1d03d9ac5f6b891360677a811787 \ + --hash=sha256:4fcbbd8977d8d91ae0d931ce21cda0048f9685e6cc29c9a84b49a769a2511b08 \ + --hash=sha256:62b36249e8db777cd6a2b56be768642d055c89df3cbcfb5d6a3b4dc2426b34df \ + --hash=sha256:6c65366200b44c0a71b927cd813628f0d993b098c61cc82c54c53bccb0dd0d80 \ + --hash=sha256:6fc3dd6ce0fb1d8ca865bdf39183e663b1dd5e2d585327feffedf379a05e3abb \ + --hash=sha256:758ac5a56e872eb517cbae5d28574b200d7b2b28c793ee31b6ce4938777d8364 \ + --hash=sha256:80434a5aa393833bfde853e9e2943671cab219b3081c34aad1974df73c21e04d \ + --hash=sha256:893acd019ee45184e85ef1b5f1ba425ab4da3e8ed4dab1339b7ef329d3658ffc \ + --hash=sha256:8974532ca43f50bc6c41b9efd78219121d3fa52c673d9790da12468d06fcf59f \ + --hash=sha256:8dd447f52482779f6cde277eaf7d734c7ac8f07f4d4e3d3609510f6033dfd0b8 \ + --hash=sha256:922c59a7fcdc44c93dac852b33b9ebae202614235e0ed235e632bf8d5ca4dd55 \ + --hash=sha256:997a4cd0f563b5a1aa92aeb9bdd70e67e3789f0d1a418600a7256b27e6c8947f \ + --hash=sha256:a1c22feae372978861786c65560498dbb36e32d7447318499694d4504c67c043 \ + --hash=sha256:a3a0221ccb33fb47b46cc3fbe587d80144e0ae6237ded5b3c58e8f6c674f02dc \ + --hash=sha256:a7e2c3d99a691e71b4eeb9efbefdfae4dcdfe3bb78abf05a5d9b1a5e65ce8ea0 \ + --hash=sha256:aad06930cf7a99914c863e6e550111b452560bef82b25bd9650541d5c7622837 \ + --hash=sha256:b691fbca4c83e72773c1bee17df5dfced4f01334ea48242262430074cc5a9b36 \ + --hash=sha256:b94a53c2524f4b9522a3091abdb12a2d8e1ac80a83456f7278d2165c3ec54482 \ + --hash=sha256:bad1d5101cd6191271ab89ec372ad8ca119dac9453f59b7be948bdebf6cd5a55 \ + --hash=sha256:ccf0b875850109a77ab932b03dbfa6c98e4eb011545465008d32e7a7207e8e9a \ + --hash=sha256:cd83db5710e26502352c4ce3f5b5e29f202223f9dade089a28daeb688083d0db \ + --hash=sha256:d4b36f906f2e6812d2e4bc1fe965d50670a3fd552cef66bcb2da892e946bba0c \ + --hash=sha256:dc96cf923b62baae45bf698f4e80407b5640d9760682ce5d424e847bf9e20298 \ + --hash=sha256:e29d9c9db167ade1c1649123c8f7cadf248f8e7f66f86335ec5b66b97f70f684 \ + --hash=sha256:f5b1f7ae53883336e23a235339e023d26d1d4b0d014ce4944c61dc79951c89df \ + --hash=sha256:f8c7f26d6e75848d7c75604eff71272c202ddb5eb65996630da3d6d5452401f6 # via ibis-framework -orjson==3.11.8 \ - --hash=sha256:0022bb50f90da04b009ce32c512dc1885910daa7cb10b7b0cba4505b16db82a8 \ - --hash=sha256:003646067cc48b7fcab2ae0c562491c9b5d2cbd43f1e5f16d98fd118c5522d34 \ - --hash=sha256:01928d0476b216ad2201823b0a74000440360cef4fed1912d297b8d84718f277 \ - --hash=sha256:01c4e5a6695dc09098f2e6468a251bc4671c50922d4d745aff1a0a33a0cf5b8d \ - --hash=sha256:093d489fa039ddade2db541097dbb484999fcc65fc2b0ff9819141e2ab364f25 \ - --hash=sha256:0b57f67710a8cd459e4e54eb96d5f77f3624eba0c661ba19a525807e42eccade \ - --hash=sha256:0e32f7154299f42ae66f13488963269e5eccb8d588a65bc839ed986919fc9fac \ - --hash=sha256:14439063aebcb92401c11afc68ee4e407258d2752e62d748b6942dad20d2a70d \ - --hash=sha256:14778ffd0f6896aa613951a7fbf4690229aa7a543cb2bfbe9f358e08aafa9546 \ - --hash=sha256:14f7b8fcb35ef403b42fa5ecfa4ed032332a91f3dc7368fbce4184d59e1eae0d \ - --hash=sha256:1ab359aff0436d80bfe8a23b46b5fea69f1e18aaf1760a709b4787f1318b317f \ - --hash=sha256:1cd0b77e77c95758f8e1100139844e99f3ccc87e71e6fc8e1c027e55807c549f \ - --hash=sha256:25e0c672a2e32348d2eb33057b41e754091f2835f87222e4675b796b92264f06 \ - --hash=sha256:29c009e7a2ca9ad0ed1376ce20dd692146a5d9fe4310848904b6b4fee5c5c137 \ - --hash=sha256:3222adff1e1ff0dce93c16146b93063a7793de6c43d52309ae321234cdaf0f4d \ - --hash=sha256:3223665349bbfb68da234acd9846955b1a0808cbe5520ff634bf253a4407009b \ - --hash=sha256:3cf17c141617b88ced4536b2135c552490f07799f6ad565948ea07bef0dcb9a6 \ - --hash=sha256:3f23426851d98478c8970da5991f84784a76682213cd50eb73a1da56b95239dc \ - --hash=sha256:3f262401086a3960586af06c054609365e98407151f5ea24a62893a40d80dbbb \ - --hash=sha256:436c4922968a619fb7fef1ccd4b8b3a76c13b67d607073914d675026e911a65c \ - --hash=sha256:469ac2125611b7c5741a0b3798cd9e5786cbad6345f9f400c77212be89563bec \ - --hash=sha256:4861bde57f4d253ab041e374f44023460e60e71efaa121f3c5f0ed457c3a701e \ - --hash=sha256:48854463b0572cc87dac7d981aa72ed8bf6deedc0511853dc76b8bbd5482d36d \ - --hash=sha256:53a0f57e59a530d18a142f4d4ba6dfc708dc5fdedce45e98ff06b44930a2a48f \ - --hash=sha256:54153d21520a71a4c82a0dbb4523e468941d549d221dc173de0f019678cf3813 \ - --hash=sha256:55120759e61309af7fcf9e961c6f6af3dde5921cdb3ee863ef63fd9db126cae6 \ - --hash=sha256:5774c1fdcc98b2259800b683b19599c133baeb11d60033e2095fd9d4667b82db \ - --hash=sha256:58a4a208a6fbfdb7a7327b8f201c6014f189f721fd55d047cafc4157af1bc62a \ - --hash=sha256:58fb9b17b4472c7b1dcf1a54583629e62e23779b2331052f09a9249edf81675b \ - --hash=sha256:5d8b5231de76c528a46b57010bbd83fb51e056aa0220a372fd5065e978406f1c \ - --hash=sha256:5f8952d6d2505c003e8f0224ff7858d341fa4e33fef82b91c4ff0ef070f2393c \ - --hash=sha256:61c9d357a59465736022d5d9ba06687afb7611dfb581a9d2129b77a6fcf78e59 \ - --hash=sha256:6a3d159d5ffa0e3961f353c4b036540996bf8b9697ccc38261c0eac1fd3347a6 \ - --hash=sha256:6a4a639049c44d36a6d1ae0f4a94b271605c745aee5647fa8ffaabcdc01b69a6 \ - --hash=sha256:6ccdea2c213cf9f3d9490cbd5d427693c870753df41e6cb375bd79bcbafc8817 \ - --hash=sha256:6dbe9a97bdb4d8d9d5367b52a7c32549bba70b2739c58ef74a6964a6d05ae054 \ - --hash=sha256:6eda5b8b6be91d3f26efb7dc6e5e68ee805bc5617f65a328587b35255f138bf4 \ - --hash=sha256:705b895b781b3e395c067129d8551655642dfe9437273211d5404e87ac752b53 \ - --hash=sha256:708c95f925a43ab9f34625e45dcdadf09ec8a6e7b664a938f2f8d5650f6c090b \ - --hash=sha256:735e2262363dcbe05c35e3a8869898022af78f89dde9e256924dc02e99fe69ca \ - --hash=sha256:76070a76e9c5ae661e2d9848f216980d8d533e0f8143e6ed462807b242e3c5e8 \ - --hash=sha256:7679bc2f01bb0d219758f1a5f87bb7c8a81c0a186824a393b366876b4948e14f \ - --hash=sha256:88006eda83858a9fdf73985ce3804e885c2befb2f506c9a3723cdeb5a2880e3e \ - --hash=sha256:883206d55b1bd5f5679ad5e6ddd3d1a5e3cac5190482927fdb8c78fb699193b5 \ - --hash=sha256:8ac7381c83dd3d4a6347e6635950aa448f54e7b8406a27c7ecb4a37e9f1ae08b \ - --hash=sha256:8e8c6218b614badf8e229b697865df4301afa74b791b6c9ade01d19a9953a942 \ - --hash=sha256:9185589c1f2a944c17e26c9925dcdbc2df061cc4a145395c57f0c51f9b5dbfcd \ - --hash=sha256:93de06bc920854552493c81f1f729fab7213b7db4b8195355db5fda02c7d1363 \ - --hash=sha256:96163d9cdc5a202703e9ad1b9ae757d5f0ca62f4fa0cc93d1f27b0e180cc404e \ - --hash=sha256:97c8f5d3b62380b70c36ffacb2a356b7c6becec86099b177f73851ba095ef623 \ - --hash=sha256:97d823831105c01f6c8029faf297633dbeb30271892bd430e9c24ceae3734744 \ - --hash=sha256:98bdc6cb889d19bed01de46e67574a2eab61f5cc6b768ed50e8ac68e9d6ffab6 \ - --hash=sha256:9b48e274f8824567d74e2158199e269597edf00823a1b12b63d48462bbf5123e \ - --hash=sha256:a5c370674ebabe16c6ccac33ff80c62bf8a6e59439f5e9d40c1f5ab8fd2215b7 \ - --hash=sha256:b43dc2a391981d36c42fa57747a49dae793ef1d2e43898b197925b5534abd10a \ - --hash=sha256:c154a35dd1330707450bb4d4e7dd1f17fa6f42267a40c1e8a1daa5e13719b4b8 \ - --hash=sha256:c2bdf7b2facc80b5e34f48a2d557727d5c5c57a8a450de122ae81fa26a81c1bc \ - --hash=sha256:c492a0e011c0f9066e9ceaa896fbc5b068c54d365fea5f3444b697ee01bc8625 \ - --hash=sha256:c60c0423f15abb6cf78f56dff00168a1b582f7a1c23f114036e2bfc697814d5f \ - --hash=sha256:c98121237fea2f679480765abd566f7713185897f35c9e6c2add7e3a9900eb61 \ - --hash=sha256:ccd7ba1b0605813a0715171d39ec4c314cb97a9c85893c2c5c0c3a3729df38bf \ - --hash=sha256:cdbc8c9c02463fef4d3c53a9ba3336d05496ec8e1f1c53326a1e4acc11f5c600 \ - --hash=sha256:e0950ed1bcb9893f4293fd5c5a7ee10934fbf82c4101c70be360db23ce24b7d2 \ - --hash=sha256:e6693ff90018600c72fd18d3d22fa438be26076cd3c823da5f63f7bab28c11cb \ - --hash=sha256:ea56a955056a6d6c550cf18b3348656a9d9a4f02e2d0c02cabf3c73f1055d506 \ - --hash=sha256:ebaed4cef74a045b83e23537b52ef19a367c7e3f536751e355a2a394f8648559 \ - --hash=sha256:ec795530a73c269a55130498842aaa762e4a939f6ce481a7e986eeaa790e9da4 \ - --hash=sha256:ed193ce51d77a3830cad399a529cd4ef029968761f43ddc549e1bc62b40d88f8 \ - --hash=sha256:ee8db7bfb6fe03581bbab54d7c4124a6dd6a7f4273a38f7267197890f094675f \ - --hash=sha256:f30491bc4f862aa15744b9738517454f1e46e56c972a2be87d70d727d5b2a8f8 \ - --hash=sha256:f89b6d0b3a8d81e1929d3ab3d92bbc225688bd80a770c49432543928fe09ac55 \ - --hash=sha256:fa72e71977bff96567b0f500fc5bfd2fdf915f34052c782a4c6ebbdaa97aa858 \ - --hash=sha256:fe0b8c83e0f36247fc9431ce5425a5d95f9b3a689133d494831bdbd6f0bceb13 \ - --hash=sha256:ff51f9d657d1afb6f410cb435792ce4e1fe427aab23d2fcd727a2876e21d4cb6 +orjson==3.11.9 \ + --hash=sha256:011382e2a60fda9d46f1cdee31068cfc52ffe952b587d683ec0463002802a0f4 \ + --hash=sha256:03db380e3780fa0015ed776a90f20e8e20bb11dde13b216ce19e5718e3dfba62 \ + --hash=sha256:051b102c93b4f634e89f3866b07b9a9a98915ada541f4ec30f177067b2694979 \ + --hash=sha256:08f4d8ebb44925c794e535b2bebc507cebf32209df81de22ae285fb0d8d66de0 \ + --hash=sha256:0b34789fa0da61cf7bef0546b09c738fb195331e017e477096d129e9105ab03d \ + --hash=sha256:0e4eed3b200023042814d2fc8a5d2e880f13b52e1ed2485e83da4f3962f7dc1a \ + --hash=sha256:115ab5f5f4a0f203cc2a5f0fb09aee503a3f771aa08392949ab5ca230c4fbdbd \ + --hash=sha256:135869ef917b8704ea0a94e01620e0c05021c15c52036e4663baffe75e72f8ce \ + --hash=sha256:147302878da387104b66bb4a8b0227d1d487e976ce41a8501916161072ed87b1 \ + --hash=sha256:14ed654580c1ed2bc217352ec82f91b047aef82951aa71c7f64e0dcb03c0e180 \ + --hash=sha256:16969c9d369c98eb084889c6e4d2d39b77c7eb38ceccf8da2a9fff62ae908980 \ + --hash=sha256:19b72ed11572a2ee51a67a903afbe5af504f84ed6f529c0fe44b0ab3fb5cc697 \ + --hash=sha256:231742b4a11dad8d5380a435962c57e91b7c37b79be858f4ef1c0df1a259897e \ + --hash=sha256:25e4aed0312d292c09f61af25bba34e0b2c88546041472b09088c39a4d828af1 \ + --hash=sha256:26a473dbb4162108b27901492546f83c76fdcea3d0eadff00ae7a07e18dcce09 \ + --hash=sha256:277fefe9d76ee17eb14debf399e3533d4d63b5f677a4d3719eb763536af1f4bd \ + --hash=sha256:2d057a602cdd19a0ad680417527c45b6961a095081c0f46fe0e03e304aac6470 \ + --hash=sha256:32ef5f4283a3be81913947d19608eacb7c6608026851123790cd9cc8982af34b \ + --hash=sha256:33d7d766701847dc6729846362dc27895d2f2d2251264f9d10e7cb9878194877 \ + --hash=sha256:34fd2317602587321faab75ab76c623a0117e80841a6413654f04e47f339a8fb \ + --hash=sha256:3513550321f8c8c811a7c3297b8a630e82dc08e4c10216d07703c997776236cd \ + --hash=sha256:380cdce7ba24989af81d0a7013d0aaec5d0e2a21734c0e2681b1bc4f141957fe \ + --hash=sha256:3a81d52442a7c99b3662333235b3adf96a1715864658b35bb797212be7bddb97 \ + --hash=sha256:3ebca4179031ee716ed076ffadc29428e900512f6fccee8614c9983157fcf19c \ + --hash=sha256:48ee05097750de0ff69ed5b7bbcf0732182fd57a24043dcc2a1da780a5ead3a5 \ + --hash=sha256:4bab1b2d6141fe7b32ae71dac905666ece4f94936efbfb13d55bb7739a3a6021 \ + --hash=sha256:4d4e98d6f3b8afed8bc8cd9718ec0cdf46661826beefb53fe8eafb37f2bf0362 \ + --hash=sha256:4d7fde5501b944f83b3e665e1b31343ff6e154b15560a16b7130ea1e594a4206 \ + --hash=sha256:4da3c38a2083ca4aaf9c2a36776cce3e9328e6647b10d118948f3cfb4913ffe4 \ + --hash=sha256:4e39364e726a8fff737309aff059ff67d8a8c8d5b677be7bb49a8b3e84b7e218 \ + --hash=sha256:4fd66214623f1b17501df9f0543bef0b833979ab5b6ded1e1d123222866aa8c9 \ + --hash=sha256:4fef17e1f8722c11587a6ef18e35902450221da0028e65dbaaa543619e68e48f \ + --hash=sha256:53b50b0e14084b8f7e29c5ce84c5af0f1160169b30d8a6914231d97d2fe297d4 \ + --hash=sha256:57ea77fb70a448ce87d18fca050193202a3da5e54598f6501ca5476fb66cfe02 \ + --hash=sha256:59e403b1cc5a676da8eaf31f6254801b7341b3e29efa85f92b48d272637e77be \ + --hash=sha256:5b192c6cf397e4455b11523c5cf2b18ed084c1bbd61b6c0926344d2129481972 \ + --hash=sha256:5f63aaf97afd9f6dec5b1a68e1b8da12bfccb4cb9a9a65c3e0b6c847849e7586 \ + --hash=sha256:63e0efbc991250c0b3143488fa57d95affcabbfc63c99c48d625dd37779aafe2 \ + --hash=sha256:6cc7923789694fd58f001cbcac7e47abc13af4d560ebbfcf3b41a8b1a0748124 \ + --hash=sha256:71e63adb0e1f1ed5d9e168f50a91ceb93ae6420731d222dc7da5c69409aa47aa \ + --hash=sha256:71f3db16e69b667b132e0f305a833d5497da302d801508cbb051ed9a9819da47 \ + --hash=sha256:844417969855fc7a41be124aafe83dc424592a7f77cd4501900c67307122b92c \ + --hash=sha256:8697ab6a080a5c46edaad50e2bc5bd8c7ca5c66442d24104fa44ec74910a8244 \ + --hash=sha256:87e4d4ab280b0c87424d47695bec2182caf8cfc17879ea78dab76680194abc13 \ + --hash=sha256:8aff7da9952a5ad1cef8e68017724d96c7b9a66e99e91d6252e1b133d67a7b10 \ + --hash=sha256:8ecc30f10465fa1e0ce13fd01d9e22c316e5053a719a8d915d4545a09a5ff677 \ + --hash=sha256:97d0d932803c1b164fde11cb542a9efcb1e0f63b184537cca65887147906ff48 \ + --hash=sha256:97db4c94a7db398a5bd636273324f0b3fd58b350bbbac8bb380ceb825a9b40f4 \ + --hash=sha256:9af678d6488357948f1f84c6cd1c1d397c014e1ae2f98ae082a44eb48f602624 \ + --hash=sha256:9ef6fe90aadef185c7b128859f40beb24720b4ecea95379fc9000931179c3a49 \ + --hash=sha256:9f78cf8fec5bd627f4082b8dfeac7871b43d7f3274904492a43dab39f18a19a0 \ + --hash=sha256:a028425d1b440c5d92a6be1e1a020739dfe67ea87d96c6dbe828c1b30041728b \ + --hash=sha256:a6082706765a95a6680d812e1daf1c0cfe8adec7831b3ff3b625693f3b461b1c \ + --hash=sha256:a8f5f8bc7ce7d59f08d9f99fa510c06496164a24cb5f3d34537dbd9ca30132e2 \ + --hash=sha256:aaea64f3f467d22e70eeed68bdccb3bc4f83f650446c4a03c59f2cba28a108db \ + --hash=sha256:ace6c58523302d3b97b6ac5c38a5298a54b473762b6be82726b4265c41029f92 \ + --hash=sha256:b3afcf569c15577a9fe64627292daa3e6b3a70f4fb77a5df246a87ec21681b94 \ + --hash=sha256:b6ef1979adc4bc243523f1a2ba91418030a8e29b0a99cbe7e0e2d6807d4dce6e \ + --hash=sha256:be4fa4f0af7fa18951f7ab3fc2148e223af211bf03f59e1c6034ec3f97f21d61 \ + --hash=sha256:c2d3dc759490128c5c1711a53eeaa8ee1d437fd0038ffd2b6008abf46db3f882 \ + --hash=sha256:c5d001196b89fa9cf0a4ab79766cd835b991a166e4b621ba95089edc50c429ff \ + --hash=sha256:cce9127885941bd28f080cecf1f1d288336b7e0d812c345b08be88b572796254 \ + --hash=sha256:cde1a448023ba7d5bb4c01c5afb48894380b5e4956e0627266526587ef4e535f \ + --hash=sha256:d4087e5c0209a0a8efe4de3303c234b9c44d1174161dcd851e8eea07c7560b32 \ + --hash=sha256:d8ea516b3726d190e1b4297e6f4e7a8650347ae053868a18163b4dd3641d1fff \ + --hash=sha256:e30ab17845bb9fa54ccf67fa4f9f5282652d54faa6d17452f47d0f369d038673 \ + --hash=sha256:e5c9b8f28e726e97d97696c826bc7bea5d71cecd63576dba92924a32c1961291 \ + --hash=sha256:ea407d4ccf5891d667d045fecae97a7a1e5e87b3b97f97ae1803c2e741130be0 \ + --hash=sha256:ea5c46eb2d3af39e806b986f4b09d5c2706a1f5afde3cbf7544ce6616127173c \ + --hash=sha256:eebdbdeef0094e4f5aefa20dcd4eb2368ab5e7a3b4edea27f1e7b2892e009cf9 \ + --hash=sha256:f01c4818b3fc9b0da8e096722a84318071eaa118df35f6ed2344da0e73a5444f \ + --hash=sha256:f36b7f32c7c0db4a719f1fc5824db4a9c6f8bd1a354debb91faf26ebf3a4c71e \ + --hash=sha256:f5d89a2ed90731df3be64bab0aa44f78bff39fdc9d71c291f4a8023aa46425b7 \ + --hash=sha256:ffe02797b5e9f3a9d8292ddcd289b474ad13e81ad83cd1891a240811f1d2cb81 # via trino packaging==26.2 \ --hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \ @@ -3331,17 +3318,17 @@ pandocfilters==1.5.1 \ --hash=sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e \ --hash=sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc # via nbconvert -paramiko==4.0.0 \ - --hash=sha256:0e20e00ac666503bf0b4eda3b6d833465a2b7aff2e2b3d79a8bba5ef144ee3b9 \ - --hash=sha256:6a25f07b380cc9c9a88d2b920ad37167ac4667f8d9886ccebd8f90f654b5d69f +paramiko==5.0.0 \ + --hash=sha256:36763b5b95c2a0dcfdf1abc48e48156ee425b21efe2f0e787c2dd5a95c0e5e79 \ + --hash=sha256:b7044611c30140d9a75261653210e2002977b71a0497ff3ba0d98d7edbf62f7c # via openshift-client parsimonious==0.11.0 \ --hash=sha256:32e3818abf9f05b3b9f3b6d87d128645e30177e91f614d2277d88a0aea98fae2 \ --hash=sha256:e080377d98957beec053580d38ae54fcdf7c470fb78670ba4bf8b5f9d5cad2a9 # via singlestoredb -parso==0.8.6 \ - --hash=sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd \ - --hash=sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff +parso==0.8.7 \ + --hash=sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c \ + --hash=sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1 # via jedi parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -3477,9 +3464,9 @@ pillow==11.3.0 \ # python-pptx # scikit-image # torchvision -pip==26.1 \ - --hash=sha256:4e8486d821d814b77319acb7b9e8bf5a4ee7590a643e7cb21029f209be8573c1 \ - --hash=sha256:81e13ebcca3ffa8cc85e4deff5c27e1ee26dea0aa7fc2f294a073ac208806ff3 +pip==26.1.1 \ + --hash=sha256:99cb1c2899893b075ff56e4ed0af55669a955b49ad7fb8d8603ecdaf4ed653fb \ + --hash=sha256:d36762751d156a4ee895de8af39aa0abeeeb577f93a2eca6ab62467bbf0f8a78 # via pip-tools pip-tools==7.5.3 \ --hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \ @@ -3511,9 +3498,9 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (pyproject.toml) -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via # feast (pyproject.toml) # jupyter-server @@ -3523,135 +3510,134 @@ prompt-toolkit==3.0.52 \ --hash=sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855 \ --hash=sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955 # via ipython -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage @@ -3796,9 +3782,9 @@ psycopg-binary==3.2.5 \ --hash=sha256:ee6d8f489a9b116ea8dc797664a50671585a4ca20573359f067858e1231cc217 \ --hash=sha256:efb878d08dd49d7d9d18512e791b418a1171d08f935475eec98305f0886b7c14 # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg ptyprocess==0.7.0 \ --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \ @@ -3995,9 +3981,9 @@ pycryptodome==3.23.0 \ --hash=sha256:e3f2d0aaf8080bda0587d58fc9fe4766e012441e2eed4269a77de6aea981c8be \ --hash=sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7 # via minio -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # codeflare-sdk @@ -4013,131 +3999,131 @@ pydantic==2.13.3 \ # pydantic-settings # qdrant-client # ray -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # docling # docling-core @@ -4407,9 +4393,9 @@ pyodbc==5.3.0 \ # via # feast (pyproject.toml) # ibis-framework -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python pyparsing==3.3.2 \ --hash=sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d \ @@ -4490,112 +4476,146 @@ pytest-xdist==3.8.0 \ --hash=sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88 \ --hash=sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1 # via feast (pyproject.toml) -python-bidi==0.6.7 \ - --hash=sha256:01ff2fd676ef8351f32e820b2d3b61eac875a21702d2118263a2641b458e1996 \ - --hash=sha256:05fe5971110013610f0db40505d0b204edc756e92eafac1372a464f8b9162b11 \ - --hash=sha256:06650a164e63e94dc8a291cc9d415b4027cb1cce125bc9b02dac0f34d535ed47 \ - --hash=sha256:0cb75e8a410166fd677d55095e505bf6a4773c066f51efbda72d302ebc56e79b \ - --hash=sha256:0dbb4bbae212cca5bcf6e522fe8f572aff7d62544557734c2f810ded844d9eea \ - --hash=sha256:0f86e447e94ae78db7d56e7da2124c435eaee4425c87d3d92aea271317811112 \ - --hash=sha256:11c51579e01f768446a7e13a0059fea1530936a707abcbeaad9467a55cb16073 \ - --hash=sha256:1395e236c71f11267860b53293a33b19b991b06e0f4ac61045b892e6a99d96f2 \ - --hash=sha256:17572944e6d8fb616d111fc702c759da2bf7cedab85a3e4fa2af0c9eb95ed438 \ - --hash=sha256:19737d217088ef27014f98eac1827c5913e6fb1dea96332ed84ede61791070d9 \ - --hash=sha256:1ba28642928d1c8fdb18b0632fe931f156e888c646326a3ad8eb3e55ee904951 \ - --hash=sha256:1c061207212cd1db27bf6140b96dcd0536246f1e13e99bb5d03f4632f8e2ad7f \ - --hash=sha256:1c5fb99f774748de283fadf915106f130b74be1bade934b7f73a7a8488b95da1 \ - --hash=sha256:1dd0a5ec0d8710905cebb4c9e5018aa8464395a33cb32a3a6c2a951bf1984fe5 \ - --hash=sha256:24388c77cb00b8aa0f9c84beb7e3e523a3dac4f786ece64a1d8175a07b24da72 \ - --hash=sha256:24a4a268289bbe80ad7da3064d7325f1571173859e8ad75d2f99075d5278b02b \ - --hash=sha256:24afff65c581a5d6f658a9ec027d6719d19a1d8a4401000fdb22d2eeb677b8e3 \ - --hash=sha256:257d6dd0e07221f1dc8720fa61158471f5aae30d5f89837c38a026386151c250 \ - --hash=sha256:26a8fe0d532b966708fc5f8aea0602107fde4745a8a5ae961edd3cf02e807d07 \ - --hash=sha256:2a93b0394cc684d64356b0475858c116f1e335ffbaba388db93bf47307deadfa \ - --hash=sha256:2d28e2bdcadf5b6161bb4ee9313ce41eac746ba57e744168bf723a415a11af05 \ - --hash=sha256:349b89c3110bd25aa56d79418239ca4785d4bcc7a596e63bb996a9696fc6a907 \ - --hash=sha256:3a85275dfc24a96629da058c4c2fc93af6390aefe2f7cdde1500b6ac3fd40ca0 \ - --hash=sha256:3b63d19f3f56ff7f99bce5ca9ef8c811dbf0f509d8e84c1bc06105ed26a49528 \ - --hash=sha256:3b96744e4709f4445788a3645cea7ef8d7520ccd4fa8bbbfb3b650702e12c1e6 \ - --hash=sha256:414004fe9cba33d288ff4a04e1c9afe6a737f440595d01b5bbed00d750296bbd \ - --hash=sha256:4283f8b517411cc81b3c92d11998981fe54ac0d2300f4c58d803e0c071aba1ba \ - --hash=sha256:4636d572b357ab9f313c5340915c1cf51e3e54dd069351e02b6b76577fd1a854 \ - --hash=sha256:47deaada8949af3a790f2cd73b613f9bfa153b4c9450f91c44a60c3109a81f73 \ - --hash=sha256:49639743f1230648fd4fb47547f8a48ada9c5ca1426b17ac08e3be607c65394c \ - --hash=sha256:4c73cd980d45bb967799c7f0fc98ea93ae3d65b21ef2ba6abef6a057720bf483 \ - --hash=sha256:4d84e70923392f8c9611f0fb6b341577346ef6224f3809b05f0ae1fbf8f17578 \ - --hash=sha256:4ea928c31c7364098f853f122868f6f2155d6840661f7ea8b2ccfdf6084eb9f4 \ - --hash=sha256:5013ba963e9da606c4c03958cc737ebd5f8b9b8404bd71ab0d580048c746f875 \ - --hash=sha256:5debaab33562fdfc79ffdbd8d9c51cf07b8529de0e889d8cd145d78137aab21e \ - --hash=sha256:5ebc19f24e65a1f5c472e26d88e78b9d316e293bc6f205f32de4c4e99276336e \ - --hash=sha256:630cee960ba9e3016f95a8e6f725a621ddeff6fd287839f5693ccfab3f3a9b5c \ - --hash=sha256:6323e943c7672b271ad9575a2232508f17e87e81a78d7d10d6e93040e210eddf \ - --hash=sha256:6c051f2d28ca542092d01da8b5fe110fb6191ff58d298a54a93dc183bece63bf \ - --hash=sha256:6c19ab378fefb1f09623f583fcfa12ed42369a998ddfbd39c40908397243c56b \ - --hash=sha256:6df7be07af867ec1d121c92ea827efad4d77b25457c06eeab477b601e82b2340 \ - --hash=sha256:6f9fa1257e075eeeed67d21f95e411036b7ca2b5c78f757d4ac66485c191720a \ - --hash=sha256:7336a3c4ba4fc9e6741fbe60c6483266fe39e1f24830724dfce453471d11fa40 \ - --hash=sha256:73a88dc333efc42281bd800d5182c8625c6e11d109fc183fe3d7a11d48ab1150 \ - --hash=sha256:766d5f5a686eb99b53168a7bdfb338035931a609bdbbcb537cef9e050a86f359 \ - --hash=sha256:77bb4cbadf4121db395189065c58c9dd5d1950257cc1983004e6df4a3e2f97ad \ - --hash=sha256:77fea54c2379b93def4ed16db6390e1232e7b235679587295a23dd8b1925475f \ - --hash=sha256:8047c33b85f7790474a1f488bef95689f049976a4e1c6f213a8d075d180a93e4 \ - --hash=sha256:80e6fd06f6e4074d183cea73962c89cf76cb4f70c0ee403689f57a429ebde488 \ - --hash=sha256:849a57d39feaf897955d0b19bbf4796bea53d1bcdf83b82e0a7b059167eb2049 \ - --hash=sha256:8678c2272e7bd60a75f781409e900c9ddb9f01f55c625d83ae0d49dfc6a2674f \ - --hash=sha256:8814db38fa317bebec8eb74b826bae7d0cb978a7eca30dfe4ecf60e61f06ee0b \ - --hash=sha256:8860d67dc04dc530b8b4f588f38b7341a76f2ec44a45685a2d54e9dcffa5d15a \ - --hash=sha256:898db0ea3e4aaa95b7fecba02a7560dfbf368f9d85053f2875f6d610c4d4ec2c \ - --hash=sha256:8a17631e3e691eec4ae6a370f7b035cf0a5767f4457bd615d11728c23df72e43 \ - --hash=sha256:8a18c61817f3210ba74ad5792c8a5048d9550ba233233a0a8fe35800350988f4 \ - --hash=sha256:8d4e621caadfdbc73d36eabdb2f392da850d28c58b020738411d09dda6208509 \ - --hash=sha256:94dbfd6a6ec0ae64b5262290bf014d6063f9ac8688bda9ec668dc175378d2c80 \ - --hash=sha256:95867a07c5dee0ea2340fe1d0e4f6d9f5c5687d473193b6ee6f86fa44aac45d1 \ - --hash=sha256:95c9de7ebc55ffb777548f2ecaf4b96b0fa0c92f42bf4d897b9f4cd164ec7394 \ - --hash=sha256:9adeec7cab0f2c2c291bd7faf9fa3fa233365fd0bf1c1c27a6ddd6cc563d4b32 \ - --hash=sha256:9c463ae15e94b1c6a8a50bd671d6166b0b0d779fd1e56cbf46d8a4a84c9aa2d0 \ - --hash=sha256:9d9de35eb5987da27dd81e371c52142dd8e924bd61c1006003071ea05a735587 \ - --hash=sha256:a2eb8fca918c7381531035c3aae31c29a1c1300ab8a63cad1ec3a71331096c78 \ - --hash=sha256:a4319f478ab1b90bbbe9921606ecb7baa0ebf0b332e821d41c3abdf1a30f0c35 \ - --hash=sha256:a507fe6928a27a308e04ebf2065719b7850d1bf9ff1924f4e601ef77758812bd \ - --hash=sha256:a8892a7da0f617135fe9c92dc7070d13a0f96ab3081f9db7ff5b172a3905bd78 \ - --hash=sha256:a99d898ad1a399d9c8cab5561b3667fd24f4385820ac90c3340aa637aa5adfc9 \ - --hash=sha256:aa4136f8ccb9a8cd32befd1b3882c2597e6791e64e8b3cf3129c55549b5de62f \ - --hash=sha256:ab2a5177522b62426db897b655a02f574e27d9735bbeb6da41bc981b771df636 \ - --hash=sha256:ab806fd026bfd48bade5e21e06d0d799cbfad32f236989ff6f37db03a5fbe34f \ - --hash=sha256:ad5f0847da00687f52d2b81828e8d887bdea9eb8686a9841024ea7a0e153028e \ - --hash=sha256:b0bee27fb596a0f518369c275a965d0448c39a0730e53a030b311bb10562d4d5 \ - --hash=sha256:b31d66b62736b8514982a24a7dedcf8c062b27a8e9b51e52d7a5899045a45fe1 \ - --hash=sha256:b38ddfab41d10e780edb431edc30aec89bee4ce43d718e3896e99f33dae5c1d3 \ - --hash=sha256:be1bdbd52145dfe46880d8bb56eacc25aa75c3bb075fa103de7974295eb2811f \ - --hash=sha256:c10065081c0e137975de5d9ba2ff2306286dbf5e0c586d4d5aec87c856239b41 \ - --hash=sha256:c11c62a3cdb9d1426b1536de9e3446cb09c7d025bd4df125275cae221f214899 \ - --hash=sha256:c3777ae3e088e94df854fbcbd8d59f9239b74aac036cb6bbd19f8035c8e42478 \ - --hash=sha256:c3d93171dd65b36eca5367acf19eef82c79b4df557cb4bd0daf323b7a27f2d3b \ - --hash=sha256:c9a679b24f5c6f366a0dec75745e1abeae2f597f033d0d54c74cbe62e7e6ae28 \ - --hash=sha256:caa71c723f512f8d859fa239573086e16f38ffc426b5b2f7dab5d40fdb356c80 \ - --hash=sha256:ce86d9dfc6b409ad16556384244572bb3cbefa2ca0f0eab7fba0ff2112b2f068 \ - --hash=sha256:d4cd82e65b5aeb31bd73534e61ece1cab625f4bcbdc13bc4ddc5f8cbfb37c24a \ - --hash=sha256:d524a4ba765bae9b950706472a77a887a525ed21144fe4b41f6190f6e57caa2c \ - --hash=sha256:d7310312a68fdb1a8249cf114acb5435aa6b6a958b15810f053c1df5f98476e4 \ - --hash=sha256:d8274ff02d447cca026ba00f56070ba15f95e184b2d028ee0e4b6c9813d2aaf9 \ - --hash=sha256:d879be7fb5296409e18731c7ba666d56ecd45b816b2c9eb35138aa1d7777aeb5 \ - --hash=sha256:d87ed09e5c9b6d2648e8856a4e556147b9d3cd4d63905fa664dd6706bc414256 \ - --hash=sha256:dde1c3f3edb1f0095dcbf79cf8a0bb768f9539e809d0ad010d78200eea97d42a \ - --hash=sha256:df5e9db9539d70426f5d20c7ebb6f7b33da5fbd40620e11261fe3fba7e177145 \ - --hash=sha256:e7cad66317f12f0fd755fe41ee7c6b06531d2189a9048a8f37addb5109f7e3e3 \ - --hash=sha256:ec1694134961b71ac05241ac989b49ccf08e232b5834d5fc46f8a7c3bb1c13a9 \ - --hash=sha256:ec985386bc3cd54155f2ef0434fccbfd743617ed6fc1a84dae2ab1de6062e0c6 \ - --hash=sha256:ef9d103706560c15fecaf7d3cff939e0f68ce5763cf0e64d0e4e5d37f9bdd2d1 \ - --hash=sha256:f1350033431d75be749273236dcfc808e54404cd6ece6204cdb1bc4ccc163455 \ - --hash=sha256:f1fe71c203f66bc169a393964d5702f9251cfd4d70279cb6453fdd42bd2e675f \ - --hash=sha256:f24189dc3aea3a0a94391a047076e1014306b39ba17d7a38ebab510553cd1a97 \ - --hash=sha256:f57726b5a90d818625e6996f5116971b7a4ceb888832337d0e2cf43d1c362a90 \ - --hash=sha256:f7c055a50d068b3a924bd33a327646346839f55bcb762a26ec3fde8ea5d40564 \ - --hash=sha256:f7e5072269c34a1b719910ee4decf13b288159fb320f18aba3885f6b6aab7753 \ - --hash=sha256:f7e507e1e798ebca77ddc9774fd405107833315ad802cfdaa1ab07b6d9154fc8 \ - --hash=sha256:fbbffb948a32f9783d1a28bc0c53616f0a76736ed1e7c1d62e3e99a8dfaab869 \ - --hash=sha256:fd87d112eda1f0528074e1f7c0312881816cb75854133021124269a27c6c48dc \ - --hash=sha256:ff06e4aa781aa4f68fbfaf1e727fe221fa1c552fef8ae70b6d2a0178e1f229ad +python-bidi==0.6.10 \ + --hash=sha256:00e8f3504e63a7713bdc1367b3de46270ddc76551f1cf04510039d65a123fd53 \ + --hash=sha256:038d29ba39a638a5aa904e3f86547f6f883ca16b3ea1db98fbc861e9644762fe \ + --hash=sha256:0533a900b9b9fa94e1c906e8cdb15b579389ce3fa959af228a12e8527aaba8cc \ + --hash=sha256:0675bdaceac9e2bd8ea99729d064435d1d1502e1875b87ed72ad93a8da153ff0 \ + --hash=sha256:07de0d6b998184233e8f753cbff5e828e0204b38daa3deaa458af6cb53c0960d \ + --hash=sha256:099b82f05557c1588973cceab0ebd2535800990850b4cbf8eae57682ef746a16 \ + --hash=sha256:099c3c29d813e263e999205ec9d59658c519c3bc51256e8ab3761ff3dc46a1b3 \ + --hash=sha256:09c90aca4713ed86422acfbaf90d8c5c9f64cbae02e737e7f82f13cd2ff4f34c \ + --hash=sha256:09d70ad127cbcb9cc5e90c4f2f427d998450374870f305345a8c23338a0bca55 \ + --hash=sha256:0c63bf9de0646eb7cf8d520e258701e5086c010e18cbc32e8ab884e29d5ff12f \ + --hash=sha256:0e404d7e027bd47553e48d9e3f207f3ee255698cac1fa80380d4703d4397ffe5 \ + --hash=sha256:0ef816ef2a04ce92108cdcc61c7710860e0f2b11906d493e14c6e5b403b09a01 \ + --hash=sha256:0f1c310774819302fba49b0608126033ba4b2bd0fb01d23b2c232df6d31003a4 \ + --hash=sha256:0f6a5c7b00ce285a3389e261db3f0477c2c3e893b352e65889410d995ff5ee13 \ + --hash=sha256:15298befde960a80885729c3603a95058f611b7d71de645cfbdd875f98146e14 \ + --hash=sha256:153a2f75648ceb583a09e66b4da99ec54b82e3226e5c0992f79e05d2d00d5a6e \ + --hash=sha256:1552aad47e65e8458346307e8b3fe7ae8eb0fcf3ea4ce3aba5cf44c50117e30b \ + --hash=sha256:15f0deadc4e8bf4d5458d62c4c94f7716c1d29f106751f2d9f5a478698465df0 \ + --hash=sha256:19c06c20f47f4a3daad14b5e7c2b4e23e76f4277883ef43616ecd9a8eff73203 \ + --hash=sha256:1a156226a8723942b50ffa210d1840688da158c185e3d0840743345003249875 \ + --hash=sha256:1d7714b96ab30df31337f5d100bf71ebe637976e2464761c81ab05787c4bacff \ + --hash=sha256:22f51e0e5c64e18f5f9b6ac2d01fcbbecdfa6a2d571ae71323d3051d0635b9c6 \ + --hash=sha256:2371afc3f50da896212b2d1ea7f461134ef292e1737c87d7547dd0384c092388 \ + --hash=sha256:2598937e05401111ade68cd6e2212fa556fe8cc401b541d19dcd039496a0cfdd \ + --hash=sha256:27fc502f2e368ffcedb97b674956f8306573f43cd0204e2ed9fbe7f41d116a7b \ + --hash=sha256:29a476af5efbe7fedfb53c8d05d1447e4f4149da8d88fa0643716a374b6abf27 \ + --hash=sha256:2a2013623ea8713e4bc712922d37449a4a86a504275b42447e1d2f22eb565f9d \ + --hash=sha256:322bea01cd3f9c1cc153ea4ca3b8f82d27efe5ae8c4bd81cc981420e25490bd4 \ + --hash=sha256:327e570f10443995d3697e8096bc337970dfc32cd5339759fa4e87093cf5cdf9 \ + --hash=sha256:32c6075f2b44c1b3d01e7d0c8a5bb519bdbbc832bee2d4b01a06908117d3b050 \ + --hash=sha256:32eb932af02b2dec7d3043daed84a80e34a3f46327a7cacf6a813773369fceb8 \ + --hash=sha256:341d75c8b0e107bd5188e30a8a340ec5e1a26066f21de3c761b53fde54e6cd7d \ + --hash=sha256:3a2fcfc6be1917695cd6f7c9626481aa81ade7e3ef3f79c0f7a286edf68e4463 \ + --hash=sha256:3a485820e499c74332929eb9fe9246cec92fd4e6b8c2abde03e8d8f0fea00728 \ + --hash=sha256:3d0c48305c58a5ed0017500dbeedbfc62fc8b9cd552d582ea578a10f77eed1c1 \ + --hash=sha256:3ebbf3915c39ed8d0095e3672ed4f824dfe9544e950a273513956b147528a18b \ + --hash=sha256:3ff3bc2221d8c32427cf90999b60ee9bd5e31e2e0b7f54b63ad54a05912725b8 \ + --hash=sha256:441d931609adfb2d213892e2da0326a5c5048f05e36497d5e37087b97a3287dd \ + --hash=sha256:446f1cd15783b14a280fc6c8e8931afa3f4ec1edc0b341b82cfca1537886cf28 \ + --hash=sha256:44caa945d27b7634bb4fdfe8fbeaa27b33fb12b66418e326e5a491d235b5c61b \ + --hash=sha256:44e21c6dc51b88ede76aafe730a208ef5a23cf7275d30d7870ff46e3a6ad4314 \ + --hash=sha256:44e6566093397def4e72f85e47d246d442838c497e6be3b14be0bca7d9761a50 \ + --hash=sha256:452a7ff78909edef965d1f2dc87e8cf04e6d4234771eef9b876688fdd821ab1d \ + --hash=sha256:473e718a86e5a9290ee240cf0cf49093ec0ca841d709f0fef191b7f5ea4e8b3b \ + --hash=sha256:48af3fc3bee49c3be03bbd47b503dc794474c52db249c57d230a4616cf13cf52 \ + --hash=sha256:4ed6794f07fcb4374e74a1a973350c5997c2088ba6143a8fedb533010f379502 \ + --hash=sha256:5040b6595e6a9d1cbca5fc2298684994cc5f1036ff2015eaf30063f015f31540 \ + --hash=sha256:5899a244bc0b60d71ae80dcf0dfad16c72e742857c13c0d040d1c975bb758983 \ + --hash=sha256:5d11a3eb283fbde362c4b1faa32a4053413a83aa6abc2274827e1f03c89f53f4 \ + --hash=sha256:5e4752fc7228a2d70b69dc81fe4bbe602eca44a520b3d7ff46b50fb2b68d435e \ + --hash=sha256:5f3febf9b547b3b237429fb8c214ff8faa50972c6de0fc0fbaf060fc29e4696d \ + --hash=sha256:5fdea42e1356d428cdc1771e3468327cf776da51c44a8ced855b67b02809ea56 \ + --hash=sha256:6054e1b9920a917749fb4e7547b378e0647c25095c012a2a7c184493b9204ef1 \ + --hash=sha256:644d068e01071c7af565a70269f8c93f6434c031df2b1428625ed8f6040b94b4 \ + --hash=sha256:64d4adc41eb79de0561874bbbe74e8f7974b3bb947070d0edd73d388c98e1234 \ + --hash=sha256:6a75d9ab145003094475bc955120b4577d70f34ee02f0b69696d7f216b513479 \ + --hash=sha256:6c5be3141bf22d2908d6269e613c2bc3824db0f31560a61b95be75d224812c67 \ + --hash=sha256:6e2b535558cad96805b58695353a628471e455f4f30e346d1d0a10468c991d0e \ + --hash=sha256:704c76e64aa0f7c0d4b8dff04ce9e8fb38314bddd1426985856e2533e66d7d21 \ + --hash=sha256:732ad1ebff85d4669152ec8c0bbeebdf945a3460e26ae852a30d39d93765765c \ + --hash=sha256:73bc12f9599cf1dbc39e3792abaa8fc62656cff30340308c3341583631ea5fcc \ + --hash=sha256:78248580e38051ba799076bffa5d0498d2550a4fa6d2ec733c38e4ec5a2d8039 \ + --hash=sha256:7965b1c468b986a1bbb9fd3ba8641b51f4f93352cefc83eec851fdf15850019f \ + --hash=sha256:79ba6f914436c674cb0a25d4e1356e54b3b788ccd1498e1b130edd6ba1ad2f8e \ + --hash=sha256:7a3f20dca786d493c1383273992ca87ff78942456898b136e2973a682dad73ae \ + --hash=sha256:7a5452fda554628660eb4c1c4da6187986c5497f34fbeb07f920c867b6daa943 \ + --hash=sha256:7ae97eed360514e229b0c407095a4184d8a0e6383bc87962972ae27f6ecb96e6 \ + --hash=sha256:8012aed843d01a96fbd5c2fe4d8062696f8720d38990d68eaf871aa692652e98 \ + --hash=sha256:81b27ffd3e40e2d8f274e1acbf5967873e53d6f32bf677899e0d8421170703da \ + --hash=sha256:82897bacfd8fc2fb1157b1828a011af954c24b1dc25adb2aec33fdbcacd3935f \ + --hash=sha256:84f6975f51d2af2e9b474669f26673486899138ea985f9967db4f6ab9a431b95 \ + --hash=sha256:86dea78bc3953853afb701b7bf3531f062e7aa7d0a4bdb1a59f496200967bbf7 \ + --hash=sha256:8af0d7059829d43e5b9e4072103f09d3869d3da9fc6db66b51e93da0ed0b1161 \ + --hash=sha256:8f95878c574eb603942561ad76d09ed8b05e2ffd46917b32f15bb83878f7f40e \ + --hash=sha256:903b8e4ea0fed7d453e7e437d41ba0357be55572a108f8d6110ab74cbe3b2bb0 \ + --hash=sha256:916688bcee55ce613879751a27b25977f75403c681e6d110cdf301edb48027a1 \ + --hash=sha256:929c705687f506fed02aa1fbd6781fb310203d7a20420dd7f106cd87fe1d01c5 \ + --hash=sha256:9545c3cd8238a79ab7e0ff7b27326bef3439001207984ea47fa3be31551d364e \ + --hash=sha256:97692e9fb3271a637f18d728d5db4ff729c82ae25356e35d371fada2fe0ff006 \ + --hash=sha256:9c2ae7649b77a4354b6db6423c495bd57ac5727d62266dfe98254896eb573b25 \ + --hash=sha256:a06a6e54a95b5c5864e117af2479113bb367660b0d95295b4adf314b3dff77af \ + --hash=sha256:a0df4cb0fe94de7565c3fc875888431ef774d643f00b030bd041fdebbdcd189b \ + --hash=sha256:a2e1da56d841ae506c49df41e16893428b96d3c8c255f096b1aa83c512302c94 \ + --hash=sha256:a50b1ce6c5a2aaa4febbd72cf030ec7d9bd63a063977850e484fb4a7983f7eaf \ + --hash=sha256:a51922e22ab237431c3d5505b2511732748f936349ab65d0c1a4a13e224144fc \ + --hash=sha256:a5aac3c9648872dcf11543751e2a8970ab0e8e3192fdf83ed507838917f50d70 \ + --hash=sha256:a7853e894f723675489ac49aa4b52dc8eac87d7a67b5940631c8c9d2aab46f90 \ + --hash=sha256:a7871f1226a062c641c500f81f05c2c00274c23de26707d747ce16ede43a6fdb \ + --hash=sha256:a84f26e55770a9326cedf79c005c2e7f9c13da9e0cbb65bc36890382a793bda9 \ + --hash=sha256:a9b83026c2907ad207eff37d5d302ecdd20441ba87d89401a79fa4b9af11f24d \ + --hash=sha256:afd28c86da0968996595b3dcc1166b24367954d69242c186c0916721fe36274d \ + --hash=sha256:b048ba7ec56dfd0eb37bee34d395771d1ce444fd7a32c6e8ddd3bfc92090a1d8 \ + --hash=sha256:b0c77d935abdd7e3bee0f9b8a7d0ae8a7c230e5aca3a7b9948576b2e151c9985 \ + --hash=sha256:b223d1f5493530777475fc40e4a47b6854a5ac56ea3211196d7a91809fa565f3 \ + --hash=sha256:b35b3c7e2c91f67dbf49de4513adf80ee052b06f15dcb9e7e5c6cd6f37373114 \ + --hash=sha256:b35ff4e825c4ad912a30909f2922eddd684c84bffc48e713c8bf22a4f3d7794f \ + --hash=sha256:b45368872b3770b20d101a87364ffeec5c0cf02d8aaee1834c30167fe29ddaaa \ + --hash=sha256:b47233bf36749ab63561ece99b8b32684043558415f1e4ca6c540f1793fa12f3 \ + --hash=sha256:b497a46082c3b0e0f9a2571d573e745686ed1a6f7a9c631ebe2b9d6f55ecc87a \ + --hash=sha256:b528e71c3f4b867e207418ea4ed465a111306ac6c2838bf75ff1e465c74ea933 \ + --hash=sha256:b5c66316296044bcdda0fa37296322973c73b708eac737565d5bbc2f6fd51037 \ + --hash=sha256:b6bbca74b7d39d4f259c0eebb6d62fd970999c0beae553db7232319d151fa533 \ + --hash=sha256:b6ff61cd6e3a60ae9bd559aa5ab5a7018e8d26067e7f80ca0ac30e08c76bf983 \ + --hash=sha256:b97376c559d90d80976a2b3c2d1f7699b6e3ae69ffd2bfdefaacf1eb4bc45f8e \ + --hash=sha256:bca06cdbd6d90a939af253ddeed232e7e122a1e027942c2ebd431307e6471be6 \ + --hash=sha256:bd1247b5138e23824b62f96aa03f1d45084dee6c76c46019784546cc432a85ee \ + --hash=sha256:c1726465626bcad9518ff878be9edb6897b42d57c1bfb9e4a00ffd4000980c48 \ + --hash=sha256:c267e531392cbdd900e46796d410dda380c7b311434bf5090ee261bb05650bcc \ + --hash=sha256:c2960742693ee19663bc448328b6b7035f6ae4ad28f57379568d22180911c7d5 \ + --hash=sha256:c55787b0274b1e06530817fe6d375a5443a0e32d5ee55071244fe5af3483fcbc \ + --hash=sha256:c5fb03df1d641d19cec53ee9eb5b89f659d0087d03ae94f06e78e2663824d013 \ + --hash=sha256:c7aa354a62e727b592cfa181a5d435d9a946aba4dd2349bb18fc52c869d470f1 \ + --hash=sha256:c7b849fa2ed07cb59ed5e76d3cf0e3527b7d7bfa2e70d4fcb6df048a9c9177ee \ + --hash=sha256:cac7477518b8cfd53e78527a873be7de5a69183397124f7ebcae295cc39187c1 \ + --hash=sha256:cdc2933960f9b1b160551ff4a0cc543ec3866550ad13f35f1881c22f08b5ad82 \ + --hash=sha256:ce576c6e9a548e09c853e47cb88a95bb29363586c6ec7778ead517e61449b275 \ + --hash=sha256:d698d1354d7e30d3a3fbfb91b7b6c904e13875b4ed2dc40c726ca23d82b5089a \ + --hash=sha256:d6ec69bd053def14e4538b15dcd28bc9528c820b644687c0d38afc38e81fe8e8 \ + --hash=sha256:d717dc455632ab75284969106c4f40cc1533709f852c50d6db643b20e903b23d \ + --hash=sha256:d7d9b2602cccbb92fc6a8b8ab2b1f0f03c77c126e089f22f7747b19499cb3e1d \ + --hash=sha256:de06759a2b223599a98a200b01b9fdafec7e346b513ce6a31632f7089234eca3 \ + --hash=sha256:de7f4782b4381ae5b0dfa36ce1e4b0a925ccecd4f52330fcc50bcd73430b99fd \ + --hash=sha256:df0a3aa46c78e56ebed8c5be33da34c0408d4114c6b782103208fecbd3b6cac0 \ + --hash=sha256:e0fe5c41dac834dfbf1f93f29438393fef13ce250e699d67d2c066da6a0eb8af \ + --hash=sha256:e13dc08bcf7ef257d0635400e3377d3a776ec57ea25e985e903b00bf5ea06911 \ + --hash=sha256:e2e81871fa3353376a35260bf0313e631624eac6997d8fa4d60f38beee3f633f \ + --hash=sha256:e4871a8955ba6c4d80eaffc0f44af6ab724a99f4ec2ad6499243fe542027494f \ + --hash=sha256:e65f8b3029e64af05323cc630550b27649d8b1b612387c2e88411ae32c6a5b59 \ + --hash=sha256:e75704f210e8fbcfbe9546f33d4ef86ff9932830d74726108b45dad72d5c1b55 \ + --hash=sha256:e7f1fa876d3b7c09c1c6be627338502e78d3cc6e9b21ea94f8eeec6ad4157afa \ + --hash=sha256:edec736cfe6b5421e6c0fbf3e4fc70b5db30263d22e070526c7c540f5895f9fb \ + --hash=sha256:f3386c4370515f7acb3372ca49b4bd6652b65c381f50e772b5de96da7df2dbad \ + --hash=sha256:f53dbcc5b1ab75ee593f9ccdd474f9091e21b2051ade79db9930540188f3c9e3 \ + --hash=sha256:f6dad7fe7f004900a45b04ab2ef51dd11a46c7be4b182c2e533810435e197249 \ + --hash=sha256:f6e8fca537eb348409549b75f8721fe911cc001124cc7cbfa1a4722e641584c3 \ + --hash=sha256:f6fb6b3fef1b611841f50688c46d722ad5bd9bb5b9beec9d7c51885519f6026c \ + --hash=sha256:fc012f8738e21462b8b173278ef9278a822373a64f558ac1bfa36eceb56296df \ + --hash=sha256:fedf838627e262a5a3b9312a144582e7c81ff3be986a3b0ecd51b9d904747c0b \ + --hash=sha256:ff693056db843b5e4de6d8e50b4847c116481406492d10517dfe4d7c573c8f82 # via easyocr python-dateutil==2.9.0 \ --hash=sha256:78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709 \ @@ -4635,19 +4655,18 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (pyproject.toml) -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ --hash=sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095 # via docling -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via - # clickhouse-connect # great-expectations # pandas # snowflake-connector-python @@ -4841,26 +4860,26 @@ pyzmq==27.1.0 \ # ipykernel # jupyter-client # jupyter-server -qdrant-client==1.17.1 \ - --hash=sha256:22f990bbd63485ed97ba551a4c498181fcb723f71dcab5d6e4e43fe1050a2bc0 \ - --hash=sha256:6cda4064adfeaf211c751f3fbc00edbbdb499850918c7aff4855a9a759d56cbd +qdrant-client==1.18.0 \ + --hash=sha256:093aa8cf8a420ee3ad2a68b007e1378d7992b2600e0b53c193fc172674f659cd \ + --hash=sha256:52e8ece1a7d40519801bf0b70713bfa0f6b7ae28c7275bbe0b0286fbed7f6db4 # via feast (pyproject.toml) -ray[data, default]==2.53.0 \ - --hash=sha256:14f46363e9b4cf0c1c8b4d8623ec337c5bd408377831b5e5b50067930137bbca \ - --hash=sha256:4108280d8a1cb90d7d68e5c954c35e63b8bb9a4ba15f88c5e7da0e2025647712 \ - --hash=sha256:4a1bb3fe09ab4cd0d16ddc96b9f60c9ed83b3f93b87aa8506e0d3b746fd4e825 \ - --hash=sha256:4db914a0a6dd608fa49c066929a1282745a2dbd73caee67d7b80fe684ca65bdd \ - --hash=sha256:4dbb5fce1364763f29741055f50abe33cf726397141f9cc0e845dd3cc963e455 \ - --hash=sha256:65e2ce58d3dc6baa3cf45824d889c1968ebde565ee54dfd80a98af8f31af8e4a \ - --hash=sha256:7196e5358dfcc8211be864f45e6dfe4827202df294af3c7a76ff8fbc080e0522 \ - --hash=sha256:73dbbaa7962a7f5e38aa8cf9483e0e9817205e989aa3dc859c738c2af1ae01df \ - --hash=sha256:85b472ab6fb8f1189f8cef81913fd91b24dd69b3fa7dcca7e144827bd924f6c0 \ - --hash=sha256:90faf630d20b6abf3135997fb3edb5842134aff92e04ee709865db04816d97ef \ - --hash=sha256:a0bbb98b0b0f25a3ee075ca10171e1260e70b6bc690cd509ecd7ce1228af854d \ - --hash=sha256:b828c147f9ff2f277b1d254e4fe9a746fdfaee7e313a93a97c7edf4dae9b81a4 \ - --hash=sha256:bd3ec4c342776ddac23ae2b108c64f5939f417ccc4875900d586c7c978463269 \ - --hash=sha256:d8b95d047d947493803fb8417aea31225dcacdab15afdc75b8a238901949d457 \ - --hash=sha256:eb000c17f7301071fdd15c44c4cd3ac0f7953bb4c7c227e61719fe7048195bcd +ray[data, default]==2.54.1 \ + --hash=sha256:054985194bd32f4464c93f9318d247fac61e1f32ac221565ecfdc81ab8c75d0b \ + --hash=sha256:0c3ae2943176e7b239c78b825a5b2bf4135d90280083a0e19c0a75a5db4d836f \ + --hash=sha256:2766f0230806480c38a9a94502087f1d4aea919f38521a28781690613b0290a4 \ + --hash=sha256:2ea650e648acc6e76edd98c694657fd1fcb1cd97700d944a7d20da90269e9810 \ + --hash=sha256:4c6f7e23dda62a32f94083141c3f97e9c4246e3ae4ae2bc488bcd8fd0311f54a \ + --hash=sha256:512587412e2f5e1753adabfdfa4dd9cff1dc509601e36fd5fab671e448ae4dac \ + --hash=sha256:6425f15cfe6a298366b53c8658350f94ced2c548802ca3b69f94b87db16e97c5 \ + --hash=sha256:645ebfb73cfd32bd510a05ed9f2738a18d6db69929cae9701d749f2740dbfd9a \ + --hash=sha256:673a895c0c4a716ed772552baa3f5b8d7d1f7a4b34e04787fdfe6fe3049ed0d8 \ + --hash=sha256:86c51eafd3e84dad59c1ef4cf97b3ac8c088af0705782ee915e31bca5880597a \ + --hash=sha256:c0240496af274af7cd3b1b1d015f23b88e5fdafe59bfdc040e5f229e0aff5dff \ + --hash=sha256:cd452b61ae2e0daf9271f5a554614397429cc2731681bae10fe72316dadc2749 \ + --hash=sha256:d05f477d1518a00fd5880644e889a7a3eaf64ae5d1f8f239a682d052ad2a383d \ + --hash=sha256:e095dfe9c521a04e5930520b4a82ea82d61903d4cd2f3270fbc5dfbdb41b9c72 \ + --hash=sha256:ea90bed0110e0ce3ff6571e7a0c800920a3c6d299d29b8eac020dac362667169 # via codeflare-sdk redis==7.4.0 \ --hash=sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad \ @@ -4873,128 +4892,128 @@ referencing==0.37.0 \ # jsonschema # jsonschema-specifications # jupyter-events -regex==2026.4.4 \ - --hash=sha256:011bb48bffc1b46553ac704c975b3348717f4e4aa7a67522b51906f99da1820c \ - --hash=sha256:04bb679bc0bde8a7bfb71e991493d47314e7b98380b083df2447cda4b6edb60f \ - --hash=sha256:0540e5b733618a2f84e9cb3e812c8afa82e151ca8e19cf6c4e95c5a65198236f \ - --hash=sha256:05568c4fbf3cb4fa9e28e3af198c40d3237cf6041608a9022285fe567ec3ad62 \ - --hash=sha256:0709f22a56798457ae317bcce42aacee33c680068a8f14097430d9f9ba364bee \ - --hash=sha256:0734f63afe785138549fbe822a8cfeaccd1bae814c5057cc0ed5b9f2de4fc883 \ - --hash=sha256:07edca1ba687998968f7db5bc355288d0c6505caa7374f013d27356d93976d13 \ - --hash=sha256:07f190d65f5a72dcb9cf7106bfc3d21e7a49dd2879eda2207b683f32165e4d99 \ - --hash=sha256:08c55c13d2eef54f73eeadc33146fb0baaa49e7335eb1aff6ae1324bf0ddbe4a \ - --hash=sha256:0a51cdb3c1e9161154f976cb2bef9894bc063ac82f31b733087ffb8e880137d0 \ - --hash=sha256:1371c2ccbb744d66ee63631cc9ca12aa233d5749972626b68fe1a649dd98e566 \ - --hash=sha256:173a66f3651cdb761018078e2d9487f4cf971232c990035ec0eb1cdc6bf929a9 \ - --hash=sha256:1b1ce5c81c9114f1ce2f9288a51a8fd3aeea33a0cc440c415bf02da323aa0a76 \ - --hash=sha256:1b9a00b83f3a40e09859c78920571dcb83293c8004079653dd22ec14bbfa98c7 \ - --hash=sha256:21e5eb86179b4c67b5759d452ea7c48eb135cd93308e7a260aa489ed2eb423a4 \ - --hash=sha256:261c015b3e2ed0919157046d768774ecde57f03d8fa4ba78d29793447f70e717 \ - --hash=sha256:2895506ebe32cc63eeed8f80e6eae453171cfccccab35b70dc3129abec35a5b8 \ - --hash=sha256:298c3ec2d53225b3bf91142eb9691025bab610e0c0c51592dde149db679b3d17 \ - --hash=sha256:2a5d273181b560ef8397c8825f2b9d57013de744da9e8257b8467e5da8599351 \ - --hash=sha256:2b69102a743e7569ebee67e634a69c4cb7e59d6fa2e1aa7d3bdbf3f61435f62d \ - --hash=sha256:2c785939dc023a1ce4ec09599c032cc9933d258a998d16ca6f2b596c010940eb \ - --hash=sha256:2da82d643fa698e5e5210e54af90181603d5853cf469f5eedf9bfc8f59b4b8c7 \ - --hash=sha256:2e19e18c568d2866d8b6a6dfad823db86193503f90823a8f66689315ba28fbe8 \ - --hash=sha256:312ec9dd1ae7d96abd8c5a36a552b2139931914407d26fba723f9e53c8186f86 \ - --hash=sha256:33424f5188a7db12958246a54f59a435b6cb62c5cf9c8d71f7cc49475a5fdada \ - --hash=sha256:3384df51ed52db0bea967e21458ab0a414f67cdddfd94401688274e55147bb81 \ - --hash=sha256:33bfda9684646d323414df7abe5692c61d297dbb0530b28ec66442e768813c59 \ - --hash=sha256:349d7310eddff40429a099c08d995c6d4a4bfaf3ff40bd3b5e5cb5a5a3c7d453 \ - --hash=sha256:36bcb9d6d1307ab629edc553775baada2aefa5c50ccc0215fbfd2afcfff43141 \ - --hash=sha256:3790ba9fb5dd76715a7afe34dbe603ba03f8820764b1dc929dd08106214ed031 \ - --hash=sha256:385edaebde5db5be103577afc8699fea73a0e36a734ba24870be7ffa61119d74 \ - --hash=sha256:39d8de85a08e32632974151ba59c6e9140646dcc36c80423962b1c5c0a92e244 \ - --hash=sha256:415a994b536440f5011aa77e50a4274d15da3245e876e5c7f19da349caaedd87 \ - --hash=sha256:421439d1bee44b19f4583ccf42670ca464ffb90e9fdc38d37f39d1ddd1e44f1f \ - --hash=sha256:475e50f3f73f73614f7cba5524d6de49dee269df00272a1b85e3d19f6d498465 \ - --hash=sha256:4ce255cc05c1947a12989c6db801c96461947adb7a59990f1360b5983fab4983 \ - --hash=sha256:504ffa8a03609a087cad81277a629b6ce884b51a24bd388a7980ad61748618ff \ - --hash=sha256:50a766ee2010d504554bfb5f578ed2e066898aa26411d57e6296230627cdefa0 \ - --hash=sha256:54170b3e95339f415d54651f97df3bff7434a663912f9358237941bbf9143f55 \ - --hash=sha256:54a1189ad9d9357760557c91103d5e421f0a2dabe68a5cdf9103d0dcf4e00752 \ - --hash=sha256:55d9304e0e7178dfb1e106c33edf834097ddf4a890e2f676f6c5118f84390f73 \ - --hash=sha256:586b89cdadf7d67bf86ae3342a4dcd2b8d70a832d90c18a0ae955105caf34dbe \ - --hash=sha256:59968142787042db793348a3f5b918cf24ced1f23247328530e063f89c128a95 \ - --hash=sha256:59efe72d37fd5a91e373e5146f187f921f365f4abc1249a5ab446a60f30dd5f8 \ - --hash=sha256:59f67cd0a0acaf0e564c20bbd7f767286f23e91e2572c5703bf3e56ea7557edb \ - --hash=sha256:5d354b18839328927832e2fa5f7c95b7a3ccc39e7a681529e1685898e6436d45 \ - --hash=sha256:62f5519042c101762509b1d717b45a69c0139d60414b3c604b81328c01bd1943 \ - --hash=sha256:6780f008ee81381c737634e75c24e5a6569cc883c4f8e37a37917ee79efcafd9 \ - --hash=sha256:6a50ab11b7779b849472337191f3a043e27e17f71555f98d0092fa6d73364520 \ - --hash=sha256:6aa809ed4dc3706cc38594d67e641601bd2f36d5555b2780ff074edfcb136cf8 \ - --hash=sha256:6c1818f37be3ca02dcb76d63f2c7aaba4b0dc171b579796c6fbe00148dfec6b1 \ - --hash=sha256:6dac006c8b6dda72d86ea3d1333d45147de79a3a3f26f10c1cf9287ca4ca0ac3 \ - --hash=sha256:7088fcdcb604a4417c208e2169715800d28838fefd7455fbe40416231d1d47c1 \ - --hash=sha256:70aadc6ff12e4b444586e57fc30771f86253f9f0045b29016b9605b4be5f7dfb \ - --hash=sha256:7429f4e6192c11d659900c0648ba8776243bf396ab95558b8c51a345afeddde6 \ - --hash=sha256:74fa82dcc8143386c7c0392e18032009d1db715c25f4ba22d23dc2e04d02a20f \ - --hash=sha256:760ef21c17d8e6a4fe8cf406a97cf2806a4df93416ccc82fc98d25b1c20425be \ - --hash=sha256:7698a6f38730fd1385d390d1ed07bb13dce39aa616aca6a6d89bea178464b9a4 \ - --hash=sha256:76d67d5afb1fe402d10a6403bae668d000441e2ab115191a804287d53b772951 \ - --hash=sha256:773d1dfd652bbffb09336abf890bfd64785c7463716bf766d0eb3bc19c8b7f27 \ - --hash=sha256:7d346fccdde28abba117cc9edc696b9518c3307fbfcb689e549d9b5979018c6d \ - --hash=sha256:8512fcdb43f1bf18582698a478b5ab73f9c1667a5b7548761329ef410cd0a760 \ - --hash=sha256:867bddc63109a0276f5a31999e4c8e0eb7bbbad7d6166e28d969a2c1afeb97f9 \ - --hash=sha256:88e9b048345c613f253bea4645b2fe7e579782b82cac99b1daad81e29cc2ed8e \ - --hash=sha256:8fae3c6e795d7678963f2170152b0d892cf6aee9ee8afc8c45e6be38d5107fe7 \ - --hash=sha256:9542ccc1e689e752594309444081582f7be2fdb2df75acafea8a075108566735 \ - --hash=sha256:9776b85f510062f5a75ef112afe5f494ef1635607bf1cc220c1391e9ac2f5e81 \ - --hash=sha256:97850d0638391bdc7d35dc1c1039974dcb921eaafa8cc935ae4d7f272b1d60b3 \ - --hash=sha256:993f657a7c1c6ec51b5e0ba97c9817d06b84ea5fa8d82e43b9405de0defdc2b9 \ - --hash=sha256:9a2741ce5a29d3c84b0b94261ba630ab459a1b847a0d6beca7d62d188175c790 \ - --hash=sha256:9e2f5217648f68e3028c823df58663587c1507a5ba8419f4fdfc8a461be76043 \ - --hash=sha256:a0d2b28aa1354c7cd7f71b7658c4326f7facac106edd7f40eda984424229fd59 \ - --hash=sha256:a152560af4f9742b96f3827090f866eeec5becd4765c8e0d3473d9d280e76a5a \ - --hash=sha256:a1c0c7d67b64d85ac2e1879923bad2f08a08f3004055f2f406ef73c850114bd4 \ - --hash=sha256:a7a5bb6aa0cf62208bb4fa079b0c756734f8ad0e333b425732e8609bd51ee22f \ - --hash=sha256:a85b620a388d6c9caa12189233109e236b3da3deffe4ff11b84ae84e218a274f \ - --hash=sha256:acd38177bd2c8e69a411d6521760806042e244d0ef94e2dd03ecdaa8a3c99427 \ - --hash=sha256:ae3e764bd4c5ff55035dc82a8d49acceb42a5298edf6eb2fc4d328ee5dd7afae \ - --hash=sha256:ae5266a82596114e41fb5302140e9630204c1b5f325c770bec654b95dd54b0aa \ - --hash=sha256:af0384cb01a33600c49505c27c6c57ab0b27bf84a74e28524c92ca897ebdac9d \ - --hash=sha256:b15b88b0d52b179712632832c1d6e58e5774f93717849a41096880442da41ab0 \ - --hash=sha256:b26c30df3a28fd9793113dac7385a4deb7294a06c0f760dd2b008bd49a9139bc \ - --hash=sha256:b40379b53ecbc747fd9bdf4a0ea14eb8188ca1bd0f54f78893a39024b28f4863 \ - --hash=sha256:b4c36a85b00fadb85db9d9e90144af0a980e1a3d2ef9cd0f8a5bef88054657c6 \ - --hash=sha256:b5f9fb784824a042be3455b53d0b112655686fdb7a91f88f095f3fee1e2a2a54 \ - --hash=sha256:be061028481186ba62a0f4c5f1cc1e3d5ab8bce70c89236ebe01023883bc903b \ - --hash=sha256:c07ab8794fa929e58d97a0e1796b8b76f70943fa39df225ac9964615cf1f9d52 \ - --hash=sha256:c228cf65b4a54583763645dcd73819b3b381ca8b4bb1b349dee1c135f4112c07 \ - --hash=sha256:c4ee50606cb1967db7e523224e05f32089101945f859928e65657a2cbb3d278b \ - --hash=sha256:c882cd92ec68585e9c1cf36c447ec846c0d94edd706fe59e0c198e65822fd23b \ - --hash=sha256:cf9b1b2e692d4877880388934ac746c99552ce6bf40792a767fd42c8c99f136d \ - --hash=sha256:d2228c02b368d69b724c36e96d3d1da721561fb9cc7faa373d7bf65e07d75cb5 \ - --hash=sha256:d51d20befd5275d092cdffba57ded05f3c436317ee56466c8928ac32d960edaf \ - --hash=sha256:db0ac18435a40a2543dbb3d21e161a6c78e33e8159bd2e009343d224bb03bb1b \ - --hash=sha256:dc4f10fbd5dd13dcf4265b4cc07d69ca70280742870c97ae10093e3d66000359 \ - --hash=sha256:dcb5453ecf9cd58b562967badd1edbf092b0588a3af9e32ee3d05c985077ce87 \ - --hash=sha256:dd2630faeb6876fb0c287f664d93ddce4d50cd46c6e88e60378c05c9047e08ca \ - --hash=sha256:e014a797de43d1847df957c0a2a8e861d1c17547ee08467d1db2c370b7568baa \ - --hash=sha256:e08270659717f6973523ce3afbafa53515c4dc5dcad637dc215b6fd50f689423 \ - --hash=sha256:e0aab3ff447845049d676827d2ff714aab4f73f340e155b7de7458cf53baa5a4 \ - --hash=sha256:e355be718caf838aa089870259cf1776dc2a4aa980514af9d02c59544d9a8b22 \ - --hash=sha256:e7ab63e9fe45a9ec3417509e18116b367e89c9ceb6219222a3396fa30b147f80 \ - --hash=sha256:e7cd3e4ee8d80447a83bbc9ab0c8459781fa77087f856c3e740d7763be0df27f \ - --hash=sha256:e9638791082eaf5b3ac112c587518ee78e083a11c4b28012d8fe2a0f536dfb17 \ - --hash=sha256:eb59c65069498dbae3c0ef07bbe224e1eaa079825a437fb47a479f0af11f774f \ - --hash=sha256:ee7337f88f2a580679f7bbfe69dc86c043954f9f9c541012f49abc554a962f2e \ - --hash=sha256:ee9627de8587c1a22201cb16d0296ab92b4df5cdcb5349f4e9744d61db7c7c98 \ - --hash=sha256:f4f83781191007b6ef43b03debc35435f10cad9b96e16d147efe84a1d48bdde4 \ - --hash=sha256:f56ebf9d70305307a707911b88469213630aba821e77de7d603f9d2f0730687d \ - --hash=sha256:f5bfc2741d150d0be3e4a0401a5c22b06e60acb9aa4daa46d9e79a6dcd0f135b \ - --hash=sha256:f94a11a9d05afcfcfa640e096319720a19cc0c9f7768e1a61fceee6a3afc6c7c \ - --hash=sha256:fa7922bbb2cc84fa062d37723f199d4c0cd200245ce269c05db82d904db66b83 \ - --hash=sha256:fe896e07a5a2462308297e515c0054e9ec2dd18dfdc9427b19900b37dfe6f40b \ - --hash=sha256:ffa81f81b80047ba89a3c69ae6a0f78d06f4a42ce5126b0eb2a0a10ad44e0b2e +regex==2026.5.9 \ + --hash=sha256:002205cafd2a9e78c6290c7d1df277bf3277b3b7a30e0b4bb0dac2e2e3f7cb2d \ + --hash=sha256:01f0f5f55f4b64dacec85dc116d3c05fd23ad3ff037bbc73a2085775953c2611 \ + --hash=sha256:01f28d868834624c934b8d2e0aa1c8341337e37831f4a012f18a5afcba4cbaf3 \ + --hash=sha256:075160bf16658e16d35233300b8453aac25de4cbea808d22348b6979668e924d \ + --hash=sha256:0de5cf193997384ed2ca6f1cd4f78055b255d93d82d5a8cd6ba0d11c10b167e4 \ + --hash=sha256:0e1b1b4e496afbb24f4a62aba855ee4f88f25578927697b340702e48c9ee6bc2 \ + --hash=sha256:0f03aa6898aaaac4592479821df16e68e8d0e29e903e65d8f2dfb2f19028a989 \ + --hash=sha256:0f9eede6a5cbdc02d4978090186390936e1776a7d1359b21e41014c609880bcf \ + --hash=sha256:1268eddd8486dc561d08eee1156e40aa3a8fe10f4bdec8fa653b455fcbffd12c \ + --hash=sha256:15ee42209947f4ca045412eae98416317238163618ace2a8e54f99586a466733 \ + --hash=sha256:164eba9b755ea6f244b0d881196fbc1fac09714e9782c9e2732b813142033c8e \ + --hash=sha256:19c16ceb4a267a8789e25733e583983eeab9f0f8664e66b0bd1c5d21f14c2d4b \ + --hash=sha256:1bd7587a2948b4085195d5a3374eaf4a425dc3e55784c038175355ecf3bbbf8a \ + --hash=sha256:1e6da47d679b7010ef27556b6e0f99771b744936db1792a10ceac6547ae1503e \ + --hash=sha256:205109e96b3cf5adf8f4cd62bedde9487feb282b9497a3535451e5a24cd706a0 \ + --hash=sha256:2099f7e7ff7b6aa3192312650a56e91cc091e49d50b04e4f6f8b6e28b3b27f1c \ + --hash=sha256:246de9d60aa3f8538b519834dd95cbf276ea263d6a7bd5a3666dc3fa0230505b \ + --hash=sha256:24b2355ef5cc9aa5b8f07d17704face1c166fdcc2290fa7bd6e6c925655a8346 \ + --hash=sha256:2a661a7d270a61f7cf460caee8b9fa2d5ef9e5c681234bcb9e0fe14f488e7dfc \ + --hash=sha256:2acfb48634f64996b57f90f39afa692ff362162722581921fe92239a59960f3c \ + --hash=sha256:2efa205e6d98b24d1f3ab395c11aa15cdf10935bca283d0285e0499c284fba21 \ + --hash=sha256:31037c82eccb44b7ea2e9e221d7c01429430e989a1f4b91ea5a855f6017b509a \ + --hash=sha256:3527bb4942d2c14552155406cdedd906567456821848aed1cb4933a391bf5eca \ + --hash=sha256:39617fb0cde9c0e6306dc70e3bfc096f3da793219879f7ae7aa341a69fbdcf6d \ + --hash=sha256:398c521292f4c7fb807001dcd54694d3a1fcafc179a36ad9cc56f98df85930b6 \ + --hash=sha256:3b1e39888c5e0c7d92cea4fc777396c4a90363b05de75d02eb459a4752200808 \ + --hash=sha256:3dd4a3ff360dfb836fecdb93a4598f9d6e2ac81e3e397125145c6221bf58cf4c \ + --hash=sha256:3ddd90103f9e5c471c49c7852ecc1fe27c7e45eb99e977aefe7caa4e779f4f58 \ + --hash=sha256:446ddd671e43ab535810c4b21cff7104945c701d4a14d1e6d1cd6f4e445a8bea \ + --hash=sha256:45375819235558a4ff1c4971dc32881f022613abdb180128f5cb4768c1765a1c \ + --hash=sha256:46f1326ca6e65b0879d23ca302c0f2415aad42ff0309b9c818e7949fe19a41d8 \ + --hash=sha256:48036f6374aaa79eb3b754ec29c61d1c6b1606749d705a13f8854fa2539671f6 \ + --hash=sha256:4ebe8f0b5ec5a5024dc4a4c59f444c4e9afc5f2abdbb8962065b75d27fb971f9 \ + --hash=sha256:4eeb011098fcb77af513dcef521a3dbecbf8849b1e38940759d293b7a93f5026 \ + --hash=sha256:508f56a89ba9cb26e4168cbc37dbd60a28d82430a9e18ad1d25fe0883c314ca2 \ + --hash=sha256:5604dfd046dc37eca90250fc3be938b076c8059fa772ac0ed6f499b0f0fb0415 \ + --hash=sha256:56a33f191f17d8c417f99945ebdc1e691d3af9605d86ec68c7e54a57e3e17af6 \ + --hash=sha256:57e8915c7986aa33d25e4d3629cef711cd2863f2961b10409f0c04cb8b7d9020 \ + --hash=sha256:57eeeb05db7979413dec5438f2db21d7ecbba787cde7a711df1a6f6df672aa06 \ + --hash=sha256:5b73ab8afcf66c622db143d1c6fda4e58e4d537ee4f125229ad47b1ab80f34c0 \ + --hash=sha256:5e41809d2683fcde7d5a8c87a6567ba1fb1ce0de9f31bff578de00a4b2d76daa \ + --hash=sha256:6351571c8a42b505eb555c0dc47d740d0fb66977dc142919eea6f4325b7c56a0 \ + --hash=sha256:6441cc660d76107934a09c22167200839a0e89604a6297f78a974e66e931d2c0 \ + --hash=sha256:65c8c8c37377794bd5b2f3ebe51919042bf17aec802e23c833d89782ed0c78af \ + --hash=sha256:6ba42b2e7e7f46cf68cc6a5ca36fa07959f9bbd9c6bdcc47b6ee76549a590248 \ + --hash=sha256:71b61c5bfe1c806332defc42ad6c780b3c55f661986d7f40283a3a88274b4c00 \ + --hash=sha256:728d8bfd28a8845c8b6bc5dc7ce010453d206396786c0765c2740cb65f37791e \ + --hash=sha256:7b92817338591505f282cf3864c145244b1edcf5381d237038df955001091538 \ + --hash=sha256:7e30b874d341fac767d7df5a0870540541c2c054b80cfaac116e8d367a8a7ff2 \ + --hash=sha256:7e87577720152d2caae19fe2baaf1f8d5ca12091e9e229f03915c37d1e4b9178 \ + --hash=sha256:83d0ee4a57d1c87cb549e195ec300b8f0ec3a82eba66d835e4e2ed8634fe4499 \ + --hash=sha256:8676474c07469d6f33dd1085ca2cd45f65785f32518f2b20e36d9953ca07f994 \ + --hash=sha256:86f40a5d6444db30a125c9c9177e6b25dad981cbc37451fd838f145e6edac92e \ + --hash=sha256:872acc074bd29ffc9913ecdfedf6ea77502312ca44a4aa0d3779089c6069d8de \ + --hash=sha256:8abd33fef90b2a9efac5557d6033ca82d1195ed3a15fea5af15ba7b463c6a63b \ + --hash=sha256:8c6e4218fbdfbcd4f6c19efca40930d24a621bf4b48cb76bc6640543bd28ef20 \ + --hash=sha256:8e76e8161ad00694cfce6767d5dea860c6391ac5b83e5c3a39661e696f11fc7e \ + --hash=sha256:8f3af7a4903c5c04a11a196a5aa75cdd7dd3f8508132f9fb3259d9f5908e3b88 \ + --hash=sha256:91328f1c23d47595ca3ef0a7557fa129c5a23404b775c770697d2f35b33e0107 \ + --hash=sha256:916714069da19329ef7de197dcbc77bb3104145c7c2c864dbfbe318f46b88b14 \ + --hash=sha256:93a7860539414dddaefba2b40f8771765ae17949d4c7182b876ce429e11a8309 \ + --hash=sha256:954cc214c04663ee6d266fc61739cad83054683048de65c5bd1d640ad28098ac \ + --hash=sha256:96f5f58b54a063d7ea9dca08e1cf57bfe10499c4d579ee672da284f57f5f0070 \ + --hash=sha256:97cf3bc1b7d7d2306772ec07366c80d9df00ff79e79cea32898883a646d2fae2 \ + --hash=sha256:98bd73080e8756255137e1bd3f3f00295bbc5aa383c0e0f973920e9134d7c4ad \ + --hash=sha256:992604d02e6d9c6d786c24a706a71ecffe1020fc1ef264044474cd81fa2c3919 \ + --hash=sha256:a24852d3c29ad9e47593593d8a247c44ccc3d0548ef12c822d6ed0810affe676 \ + --hash=sha256:a6a563446a41adc451393dc6b8e6ad87979efaee3c8738690a8d1b08ebead1b4 \ + --hash=sha256:a8234aa23ec39894bfe4a3f1b85616a7032481964a13ac6fc9f10de4f6fca270 \ + --hash=sha256:a8820737949116ffff55fe18f9fc644530063ba6ebfcb8314239416e78f1347c \ + --hash=sha256:a9e1328e17c84c1a5d22ec9f785ecef4a967fab9a42b6a8dc3bcbebd0a0c9e44 \ + --hash=sha256:aa0fbdbac82cb3e4450d0ccde7d7a35607f4cb2dd9fba4b8b69bfaf8c9fa6aed \ + --hash=sha256:b310768746dd314ea6e2ff4cc89ef215426813396ff4e94ee8e6f7096c8b6e03 \ + --hash=sha256:b46b0f094dc1d3b90356c85a0bd2c9bafc4a6a190b9d6f8ddd5a033b6e088ed4 \ + --hash=sha256:b4bb445ff3f725f59df8f6014edb547ee928ec7023a774f6a39a3f953038cbb2 \ + --hash=sha256:b6d189041f15691cfa2b6c4290448ec221244d225b3f5fe9e7771b34ffcdf6e2 \ + --hash=sha256:b96350aa424e79d4fd6b567b344dcbe2b2d6bfc48dfe7717587e1fa6d43da6ff \ + --hash=sha256:be3372b9df6ddecff6486d37e19095a7b4973137caf5512407a89f4455361f41 \ + --hash=sha256:bfe1ce50cbfb569d74e1e4337da6468961f31dbea55fd85aa5de59c0947a805a \ + --hash=sha256:c010eb8caca74bdb40c07498d7ece26b4428fd3f04aa8a72c9ac6f79e8faaac6 \ + --hash=sha256:c8b9b9d294cfea3cd19c718ade7cc93492b2c4991abd9a68d0b3477ae6d8e100 \ + --hash=sha256:c9411dd64ca95477225734a93dfc8583b51916b8d5942f99d6cac21e09965451 \ + --hash=sha256:ca518ed29c46eecba6010b15f1b9a479314d2de409536e71b6a13aa04e3b8a77 \ + --hash=sha256:ccf5249114cc3e772ecdd88a98a86eca0fd74c61ce32a94743758c083fc05d48 \ + --hash=sha256:cd2846168eb9ee3c513902bc8225409cb1caab31d04728b145171fa1625d9621 \ + --hash=sha256:d29eebfc9525db68cad3c97eedd7f754fa265aa5cd0cf4f863b2421e1b48fc9f \ + --hash=sha256:d3d7eb5c9a7f6df82ed3cfac9beb93882a5cbcb5b8b157b56cb2b3b276574ac1 \ + --hash=sha256:d626b84406444b165fc0ba981604edea39f0588ff1f92baa23fe50799ea9afdb \ + --hash=sha256:d641a8c9a61618047796d572a39a79b26167b0411d2c3031937b2fe2d081e2cf \ + --hash=sha256:d659eee77986549c9ea45b861c7567e44d6287c3dc9a4565478853f7b9fe2ff6 \ + --hash=sha256:d6b8a143aca6c39b446ea8092cde25cc8fe9304d4f5fecfbc1a9dbb0282703c2 \ + --hash=sha256:d726ca3f0d76969bf1e8e477d160d3d666bbf999f6860bd314889e5345782046 \ + --hash=sha256:d7bdc0ab8f3dd7e1b4f9ab88634e13374669db86bb3c72e8292f07ae313f539f \ + --hash=sha256:daff2bdbaf1d23e52fdff7c0b7bc2048b68f978df6a4d107ac981f94caef2e66 \ + --hash=sha256:dd2810d22146b6d838acc5ec15602cb6b47920aa4e33015df3868eedfd20bab8 \ + --hash=sha256:ddda5340e6c01a293027dd46232fa79eaff1b48058ce7a98f572b6445b088041 \ + --hash=sha256:dea2e88e1cce4522496cce630e11e67b98b7076620bc4336c3f674bc21a375f4 \ + --hash=sha256:debb893095e944091c16e641a6e33c1b0f4cb61ab945ec5afbf53ce7068834d8 \ + --hash=sha256:dfbe4579b9f08036aa7d101d1835437a20783574ac66327e6b29b4018a138081 \ + --hash=sha256:e1d93bf647916292e8edcec150c07ddf3dc50179ccaf770c04a7f9e452155372 \ + --hash=sha256:e82db382b44d0111b22601c509c89f64434816c9e0eef9d1989cda8cc6ff1c04 \ + --hash=sha256:ea9c8ecfa1b73c73b626534d6626e5340d429630943672b8480724f44e84b962 \ + --hash=sha256:ead4b163ac30a29574510cd4b3e2e985ac5290c05fc7095557d6a5f403fc31b5 \ + --hash=sha256:ecd353045824e4477562a2ac718c25799cdaaa41f7aa925a806a8a3e6848a5b9 \ + --hash=sha256:ed2c9e8068b614c574d8d30e543d617cf5379b0535d46f97ef00e904745a08b5 \ + --hash=sha256:ed457d8e98ae812ed7732bef7bf78de78e834eae0372a74e23ca90ef21d910f9 \ + --hash=sha256:ef31cbfe458e21c6122ba8150ff060e0c7789ed0d26eb423f25472584920b555 \ + --hash=sha256:f079e50a0d3cc3cd5091fa9ff45869a2e6b2cd35895731edafb0327901a8d86d \ + --hash=sha256:f3844f134e834076677dd369976e9f5068679fcb8e50102fdf6b7ac96a3ec127 \ + --hash=sha256:f7a7c26137296beba7784de6eba69c6a93a63ccebc385e4962fe67e267a91225 \ + --hash=sha256:fa411799ca8da32a8d38d020a88faa5b6f91657d284761352940ecf9f7c3bbdd \ + --hash=sha256:fd03c4f0e33280d15cae17159b899245d6b7c53d21def19b263b39655061f5ce \ + --hash=sha256:fd190e88a895a8901325fad284a3f74ea52b1da8525b76cc811fa9b1edf0ce2b \ + --hash=sha256:ff8d372ac2acdc048d1c19916f27ee61bc5722728458ba6ca5052f2c72d51763 # via # feast (pyproject.toml) # parsimonious # transformers -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # azure-core @@ -5197,25 +5216,25 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.15.12 \ - --hash=sha256:01da3988d225628b709493d7dc67c3b9b12c0210016b08690ef9bd27970b262b \ - --hash=sha256:2849ea9f3484c3aca43a82f484210370319e7170df4dfe4843395ddf6c57bc33 \ - --hash=sha256:83b2f4f2f3b1026b5fb449b467d9264bf22067b600f7b6f41fc5958909f449d0 \ - --hash=sha256:84a1630093121375a3e2a95b4a6dc7b59e2b4ee76216e32d81aae550a832d002 \ - --hash=sha256:9ba3b8f1afd7e2e43d8943e55f249e13f9682fde09711644a6e7290eb4f3e339 \ - --hash=sha256:9cae0f92bd5700d1213188b31cd3bdd2b315361296d10b96b8e2337d3d11f53e \ - --hash=sha256:9e77c7e51c07fe396826d5969a5b846d9cd4c402535835fb6e21ce8b28fef847 \ - --hash=sha256:a538f7a82d061cee7be55542aca1d86d1393d55d81d4fcc314370f4340930d4f \ - --hash=sha256:b0c862b172d695db7598426b8af465e7e9ac00a3ea2a3630ee67eb82e366aaa6 \ - --hash=sha256:c87a162d61ab3adca47c03f7f717c68672edec7d1b5499e652331780fe74950d \ - --hash=sha256:d0185894e038d7043ba8fd6aee7499ece6462dc0ea9f1e260c7451807c714c20 \ - --hash=sha256:dd8aed930da53780d22fc70bdf84452c843cf64f8cb4eb38984319c24c5cd5fd \ - --hash=sha256:e3bcd123364c3770b8e1b7baaf343cc99a35f197c5c6e8af79015c666c423a6c \ - --hash=sha256:e852ba9fdc890655e1d78f2df1499efbe0e54126bd405362154a75e2bde159c5 \ - --hash=sha256:ecea26adb26b4232c0c2ca19ccbc0083a68344180bba2a600605538ce51a40a6 \ - --hash=sha256:f86f176e188e94d6bdbc09f09bfd9dc729059ad93d0e7390b5a73efe19f8861c \ - --hash=sha256:fb129f40f114f089ebe0ca56c0d251cf2061b17651d464bb6478dc01e69f11f5 \ - --hash=sha256:fe87510d000220aa1ed530d4448a7c696a0cae1213e5ec30e5874287b66557b5 +ruff==0.15.13 \ + --hash=sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629 \ + --hash=sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21 \ + --hash=sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55 \ + --hash=sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41 \ + --hash=sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8 \ + --hash=sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7 \ + --hash=sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4 \ + --hash=sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd \ + --hash=sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2 \ + --hash=sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51 \ + --hash=sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5 \ + --hash=sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9 \ + --hash=sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22 \ + --hash=sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca \ + --hash=sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6 \ + --hash=sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b \ + --hash=sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7 \ + --hash=sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6 # via feast (pyproject.toml) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5419,9 +5438,9 @@ send2trash==2.1.0 \ --hash=sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c \ --hash=sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459 # via jupyter-server -sentence-transformers==5.4.1 \ - --hash=sha256:436bcb1182a0ff42a8fb2b1c43498a70d0a75b688d182f2cd0d1dd115af61ddc \ - --hash=sha256:a6d640fc363849b63affb8e140e9d328feabab86f83d58ac3e16b1c28140b790 +sentence-transformers==5.5.0 \ + --hash=sha256:75313fdcc2397ec4b58297c25d6187fcca5a6b2aeb09570a72eff5a3223d8d58 \ + --hash=sha256:9cec675e68bfe09d07466d1f13ab06d1d79d60a0f45b154baf433bde6ae159cb # via feast (pyproject.toml) setuptools==80.10.2 \ --hash=sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70 \ @@ -5521,9 +5540,9 @@ six==1.17.0 \ # python-dateutil # rfc3339-validator # thriftpy2 -smart-open==7.6.0 \ - --hash=sha256:2a78f454610a826aa688065b54b4a0a9b12a5599fa61d5190e9bac2df5e5f53f \ - --hash=sha256:44717f46b5ff276fac03b88e5d13d1c416f064f3b7b081381b0fa8889004bd7e +smart-open==7.6.1 \ + --hash=sha256:4347996e7ba21db7cd1e059632e0b30395407e4f6c660d2ddffc8f2a9ae5f990 \ + --hash=sha256:b4de6aebef023aca91cc9fb372052e1343ba3f152de215bd22391a663e3ddd21 # via ray sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ @@ -5536,32 +5555,32 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -5664,38 +5683,34 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot[rs]==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot[rs]==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via # feast (pyproject.toml) # ibis-framework -sqlglotc==30.6.0 \ - --hash=sha256:003b15bbe3f3a4a63313baeb3f090906cf0172fe007ab24974c612a577f56c61 \ - --hash=sha256:05861b5d74ae4b0a5a6e6a9309a8a975d9572c2bf1eb9634a33af9189eb7d333 \ - --hash=sha256:0b907206ef36fd8f0c28da4c5b8c8f896bd67826da0d765616e6c950689ac849 \ - --hash=sha256:0e1aae195008c1d87ed1b1543bceed1408ae8ecf146571b3029e98b23a19c59c \ - --hash=sha256:16291ee3da0276df2689cc139df41d8723cf6014aca979f307fb75a898b0d3e8 \ - --hash=sha256:27d6c22375395f1fdfe8a5d80b5fb781ca7849e29c7db7dfb11edb466a5b7a4d \ - --hash=sha256:2b50aba396d4622c201a9dd933b51cd6858b5af5ebbcf7db1af35db7e83ece48 \ - --hash=sha256:4a5beba24625bc14070992fdddc7aed22df912007882f31f27b0e88d7b7d9445 \ - --hash=sha256:4c84a933816374b6167d9347e488fb4a357bb0e3be2e8e820dafeb3c9948feab \ - --hash=sha256:4d45ee83e1f72ee94045ccfd13e51fa7d822548f50e9d20d3d42e127bcd9f453 \ - --hash=sha256:4eb6f349c21d5a3e39733db5416e57ec171ca3b1c17b02badfdbe55d9a3666a5 \ - --hash=sha256:61a1e4f533955db0bfd4219883bfab1f2030753ffaebc9cbb4e950dfbcae3db7 \ - --hash=sha256:63b02231cc2f10d63df373fa02f3e03b4216e94c6f32ccdfd11adc770dc95fb7 \ - --hash=sha256:6e8dab3b9f84c9b591ecd1fb0920b800c08dd6c38eda3be91176fc239d3c94bc \ - --hash=sha256:7acdb7b15f060bacea01e1c68d1dd70471f03bda89478ca0ee96bac3df03d0a7 \ - --hash=sha256:87437d4f32c1dc61c3ef046dc39b9fe119ac2e2e5253e33351f1a62ba802942a \ - --hash=sha256:875c6925f3d70aa1bc4bcc405090a12deec01de71193e7229f114c5ecf39f725 \ - --hash=sha256:949f5d457c8c98998ed06d060873370d7553077ab3c2db9569acda5887cd6ce7 \ - --hash=sha256:c69c9dbe4dfab74329294d07b2956ca9a03123089a1923f3d299a21d4b66898d \ - --hash=sha256:cb4b5a532fb35ce415aea6d360fe202278b46cc59c07318b97401930a1584e35 \ - --hash=sha256:cfba6244f52bcdffe22a35334d48d741aed3077c20bb7aa9bb511c21fd766438 \ - --hash=sha256:dd781790c3fc6cb82e6c00836f7f9ab33941cf2b9dca173d7b9f41c37c78d114 \ - --hash=sha256:e397befde3d08d870a8f1c7bd80d7abc68ee119c472143ab196709319e205af4 \ - --hash=sha256:f0a37ad865b106005cb5d36efd537a412912477c83cbca1579ee45f17d73fe54 \ - --hash=sha256:fb977d427a196a620aa60b71d4b66d60c3d015c9004e7393162d4771fb435406 +sqlglotc==30.8.0 \ + --hash=sha256:02ead13bbaf56a7eb0fdf1eb6ea23b1d70857901a60ea5118e09151ca4051712 \ + --hash=sha256:172ea79fcdcf3795134dcdff03995681c60bdc0c0874d43dc06ab06fecc0ae25 \ + --hash=sha256:1863950ef7f41467fe32f7cc55d10d4d747f2b532023c82ccbb44693e6911bc9 \ + --hash=sha256:2dcdf0a8e9f07f9cd95eb0b6e653352f85862feee0fb6e7a48251e888ae42a5c \ + --hash=sha256:3176d7a5dc4c97d462ef3a73eb32e513033cf61fc5a794d5e2a310621d078d9b \ + --hash=sha256:4fad7bceb63f831ec0ec07b5199a7e3f7448323354b9dd7b6f262b501cd76185 \ + --hash=sha256:62dfdd3ad97d80034ebf8d8117d15fff936aa9aa8394139f0f5f05aac25dc36b \ + --hash=sha256:6576f7979a506ff5cab4af781c058c0a9caa654d2cd4a864c96c2d785f44711c \ + --hash=sha256:7068fcfd64ebcedc10bd174b69e0d8d312a89a18772f6312e51a8d3bb1757f1d \ + --hash=sha256:86c974ec80867180f5bb9a67b9d801095a59b3b046da6df5d989c1572629b2ec \ + --hash=sha256:960ddda931beb89ae01f8d7c10fa72c486d4d04b077672f94978adb976adc60f \ + --hash=sha256:9f2dc50e2ca234c40dce5d5a3dfb212c6ed73278043225ac1b0ab577a2db1815 \ + --hash=sha256:ac64dd30ecc20421e0133883db4e10c3699354c592513aeb50b1ee243a8a5c60 \ + --hash=sha256:b7dca8aedfdd8f50694e04ea55b040e2cb685dcaf600ca4ea5dd0a141a6a6835 \ + --hash=sha256:be6257bdbdf2fd2a4daea46c0781542b69e94d968ba745374721dc96d0e55d02 \ + --hash=sha256:c445f11b470475848b75a03bc3d8ef765cf86e098c4f5003701838da435d492a \ + --hash=sha256:e6fa017c3fbcf28b1b259e254995949733bafa2d94f3c9398e4cc4230394f8e7 \ + --hash=sha256:ed86cbfc5b2b292e0474ca9fcf71b82b39aef150d968d8ac97d35a8ab85c43cd \ + --hash=sha256:f5f17e336a073d7087271468155cb401687e931b5b61d6438233278c2a636baf \ + --hash=sha256:f640eb821b7bf82e21557f3683f4db89302a9bac4680e8ff53dd951ad7e995d8 \ + --hash=sha256:f79acd23fcf6ef2e5ef42df26010f699134b3653ff40cb3e403fed083e3e38dc # via sqlglot sqlglotrs==0.13.0 \ --hash=sha256:6b934a244b16f26fca50974328a2ebc7689583c59f06203cebb46e2e6e8d93a7 \ @@ -5712,9 +5727,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5823,13 +5838,13 @@ thriftpy2==0.6.0 \ --hash=sha256:f6b86112cca7bd04151ce248d781763ea5f74cc18d148476c6d16cee32db81ac \ --hash=sha256:f837ab85ae93b118766b8b28a1cec47a1daddee303e1f986a595c56379062a5c # via happybase -tifffile==2026.4.11 \ - --hash=sha256:17758ff0c0d4db385792a083ad3ca51fcb0f4d942642f4d8f8bc1287fdcf17bc \ - --hash=sha256:9b94ffeddb39e97601af646345e8808f885773de01b299e480ed6d3a41509ec9 +tifffile==2026.5.2 \ + --hash=sha256:21b10227ede8493814a34676774797f721f487e36cb0530e7c3bd882caa87f5a \ + --hash=sha256:5129b53b826e768a5b1af26b765eeea75c2d0a227d2d12849617e0737588e105 # via scikit-image -timm==1.0.26 \ - --hash=sha256:985c330de5ccc3a2aa0224eb7272e6a336084702390bb7e3801f3c91603d3683 \ - --hash=sha256:f66f082f2f381cf68431c22714c8b70f723837fa2a185b155961eab90f2d5b10 +timm==1.0.27 \ + --hash=sha256:315dfe63186ca9fb7ff941268941231fd5be259f2b4bb4afa28560ae1015cb9a \ + --hash=sha256:5ff07c9ddf53cbada88eab1c93ff175c64cab683b5a2fddf863bcee985926f89 # via feast (pyproject.toml) tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ @@ -5914,9 +5929,9 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -5926,35 +5941,35 @@ toolz==1.1.0 \ # dask # ibis-framework # partd -torch==2.11.0 \ - --hash=sha256:01018087326984a33b64e04c8cb5c2795f9120e0d775ada1f6638840227b04d7 \ - --hash=sha256:0f68f4ac6d95d12e896c3b7a912b5871619542ec54d3649cf48cc1edd4dd2756 \ - --hash=sha256:1b32ceda909818a03b112006709b02be1877240c31750a8d9c6b7bf5f2d8a6e5 \ - --hash=sha256:1e6debd97ccd3205bbb37eb806a9d8219e1139d15419982c09e23ef7d4369d18 \ - --hash=sha256:2658f34ce7e2dabf4ec73b45e2ca68aedad7a5be87ea756ad656eaf32bf1e1ea \ - --hash=sha256:2b4e811728bd0cc58fb2b0948fe939a1ee2bf1422f6025be2fca4c7bd9d79718 \ - --hash=sha256:2bb3cc54bd0dea126b0060bb1ec9de0f9c7f7342d93d436646516b0330cd5be7 \ - --hash=sha256:2c0d7fcfbc0c4e8bb5ebc3907cbc0c6a0da1b8f82b1fc6e14e914fa0b9baf74e \ - --hash=sha256:4b5866312ee6e52ea625cd211dcb97d6a2cdc1131a5f15cc0d87eec948f6dd34 \ - --hash=sha256:4cf8687f4aec3900f748d553483ef40e0ac38411c3c48d0a86a438f6d7a99b18 \ - --hash=sha256:4dc8b3809469b6c30b411bb8c4cad3828efd26236153d9beb6a3ec500f211a60 \ - --hash=sha256:4dda3b3f52d121063a731ddb835f010dc137b920d7fec2778e52f60d8e4bf0cd \ - --hash=sha256:563ed3d25542d7e7bbc5b235ccfacfeb97fb470c7fee257eae599adb8005c8a2 \ - --hash=sha256:63a68fa59de8f87acc7e85a5478bb2dddbb3392b7593ec3e78827c793c4b73fd \ - --hash=sha256:73e24aaf8f36ab90d95cd1761208b2eb70841c2a9ca1a3f9061b39fc5331b708 \ - --hash=sha256:7aa2f9bbc6d4595ba72138026b2074be1233186150e9292865e04b7a63b8c67a \ - --hash=sha256:7b6a60d48062809f58595509c524b88e6ddec3ebe25833d6462eeab81e5f2ce4 \ - --hash=sha256:8245477871c3700d4370352ffec94b103cfcb737229445cf9946cddb7b2ca7cd \ - --hash=sha256:8b394322f49af4362d4f80e424bcaca7efcd049619af03a4cf4501520bdf0fb4 \ - --hash=sha256:98bb213c3084cfe176302949bdc360074b18a9da7ab59ef2edc9d9f742504778 \ - --hash=sha256:a97b94bbf62992949b4730c6cd2cc9aee7b335921ee8dc207d930f2ed09ae2db \ - --hash=sha256:ab9a8482f475f9ba20e12db84b0e55e2f58784bdca43a854a6ccd3fd4b9f75e6 \ - --hash=sha256:b2a43985ff5ef6ddd923bbcf99943e5f58059805787c5c9a2622bf05ca2965b0 \ - --hash=sha256:b3c712ae6fb8e7a949051a953fc412fe0a6940337336c3b6f905e905dac5157f \ - --hash=sha256:cc89b9b173d9adfab59fd227f0ab5e5516d9a52b658ae41d64e59d2e55a418db \ - --hash=sha256:d91aac77f24082809d2c5a93f52a5f085032740a1ebc9252a7b052ef5a4fddc6 \ - --hash=sha256:f99924682ef0aa6a4ab3b1b76f40dc6e273fca09f367d15a524266db100a723f \ - --hash=sha256:fbf39280699d1b869f55eac536deceaa1b60bd6788ba74f399cc67e60a5fab10 +torch==2.12.0 \ + --hash=sha256:10802fd383bbfed646212e765a72c37d2185205d4f26eb197a254e8ac7ddcb25 \ + --hash=sha256:10ee1448a9f304d3b987eb4656f664ba6e4d7b410ca7a5a7c642199777a2cf88 \ + --hash=sha256:1834bd984f8a2f4f16bdfbeecca9146184b220aa46276bf5756735b5dae12812 \ + --hash=sha256:2140e373e9a51a3e22ef62e8d14366d0b470d18f0adf19fdc757368077133a34 \ + --hash=sha256:3fee918902090ade827643e758e98363278815de583c75d111fdd665ebffde9f \ + --hash=sha256:415c1b8d0412f67551c8e89a2daca0fb3e56694af0281ba155eaa9da481f58b4 \ + --hash=sha256:4b4f64c2c2b11f7510d93dd6412b87025ff6eddd6bb61c3b5a3d892ea20c4756 \ + --hash=sha256:5d6b560dfa7d56291c07d615c3bb73e8d9943d9b6d87f76cd0d9d570c4797fa6 \ + --hash=sha256:5f96b63f8287f66a005dd1b5a6abba2920f11156c5e5c4d815f3e2050fd1aa16 \ + --hash=sha256:6a7512adfdd7f6732e40de1c620831e3c75b39b98cef60b11d0c5f0a76473ec5 \ + --hash=sha256:864392c73b7654f4d2b3ae712f607937d0dbb1101c4555fbb41848106b297f39 \ + --hash=sha256:891c769072637c74e9a5a77a3bc782894696d8ffec83b938df8536dee7f0ba78 \ + --hash=sha256:8b958caff4a14d3a3b0b2dfc6a378f64dda9728a9dad28c08a0db9ce4dafb549 \ + --hash=sha256:8fbef9f108a863e7722a73740998967e3b074742a834fc5be3a535a2befa7057 \ + --hash=sha256:90dd587a5f61bfe1307148b581e2084fc5bc4a06e2b90a20e9a36b81087ff16b \ + --hash=sha256:a43ac605a5e13116c72b64c359644cce0229f213dde48d2ae0ae5eb5becf7feb \ + --hash=sha256:a6a2eebb237d3b1d9ad3b378e86d9b9e0782afdea8b1e0eba6a13646b9b49c07 \ + --hash=sha256:af68dbf403439cae9ceaeaaf92f8352b460787dcd27b92aa05c40dd4a19c0f1e \ + --hash=sha256:b41339df93d491435e790ff8bcbae1c0ce777175889bfd1281d119862793e6a2 \ + --hash=sha256:b4556715c8572758625d62b6e0ae3b1f76c440221913a6fb5e100f321fb4fb02 \ + --hash=sha256:c12592630aef72feaf18bd3f197ef587bbfa21131b31c38b23ab2e55fce92e36 \ + --hash=sha256:c66696857e987efb8bc1777a37357ec4f60ab5e8af6250b83d6034437fa2d8f3 \ + --hash=sha256:cf9839790285dd472e7a16aafcb4a4e6bf58ec1b494045044b0eefb0eb4bd1f2 \ + --hash=sha256:d47e7dee68ac4cd7a068b26bcd6b989935427709fae1c8f7bd0019978f829e15 \ + --hash=sha256:d4d029801cb7b6df858804a2a21b00cc2aa0bf0ee5d2ab18d343c9e9e5681f35 \ + --hash=sha256:dd37188ea325042cb1f6cafa56822b11ada2520c04791a52629b0af25bdfbfd9 \ + --hash=sha256:e2ad3eb85d39c3cab62dfa93ed5a73516e6a53c6713cb97d004004fe089f0f1f \ + --hash=sha256:f7dfae4a519197dfa050e98d8e36378a0fb5899625a875c2b54445005a2e404e # via # feast (pyproject.toml) # accelerate @@ -5964,35 +5979,35 @@ torch==2.11.0 \ # sentence-transformers # timm # torchvision -torchvision==0.26.0 \ - --hash=sha256:0f3e572efe62ad645017ea847e0b5e4f2f638d4e39f05bc011d1eb9ac68d4806 \ - --hash=sha256:114bec0c0e98aa4ba446f63e2fe7a2cbca37b39ac933987ee4804f65de121800 \ - --hash=sha256:1c55dc8affbcc0eb2060fbabbe996ae9e5839b24bb6419777f17848945a411b1 \ - --hash=sha256:2adfbe438473236191ff077a4a9a0c767436879c89628aa97137e959b0c11a94 \ - --hash=sha256:358fc4726d0c08615b6d83b3149854f11efb2a564ed1acb6fce882e151412d23 \ - --hash=sha256:3daf9cc149cf3cdcbd4df9c59dae69ffca86c6823250442c3bbfd63fc2e26c61 \ - --hash=sha256:406557718e62fdf10f5706e88d8a5ec000f872da913bf629aab9297622585547 \ - --hash=sha256:4280c35ec8cba1fcc8294fb87e136924708726864c379e4c54494797d86bc474 \ - --hash=sha256:55bd6ad4ae77be01ba67a410b05b51f53b0d0ee45f146eb6a0dfb9007e70ab3c \ - --hash=sha256:5d63dd43162691258b1b3529b9041bac7d54caa37eae0925f997108268cbf7c4 \ - --hash=sha256:7058c5878262937e876f20c25867b33724586aa4499e2853b2d52b99a5e51953 \ - --hash=sha256:7993c01648e7c61d191b018e84d38fe0825c8fcb2720cd0f37caf7ba14404aa1 \ - --hash=sha256:8008474855623c6ba52876589dc52df0aa66e518c25eca841445348e5f79844c \ - --hash=sha256:82c3965eca27e86a316e31e4c3e5a16d353e0bcbe0ef8efa2e66502c54493c4b \ - --hash=sha256:9a904f2131cbfadab4df828088a9f66291ad33f49ff853872aed1f86848ef776 \ - --hash=sha256:a06d4772a8e13e772906ed736cc53ec6639e5e60554f8e5fa6ca165aabebc464 \ - --hash=sha256:a39c7a26538c41fda453f9a9692b5ff9b35a5437db1d94f3027f6f509c160eac \ - --hash=sha256:b6f9ad1ecc0eab52647298b379ee9426845f8903703e6127973f8f3d049a798b \ - --hash=sha256:b7d3e295624a28b3b1769228ce1345d94cf4d390dd31136766f76f2d20f718da \ - --hash=sha256:b7e6213620bbf97742e5f79832f9e9d769e6cf0f744c5b53dad80b76db633691 \ - --hash=sha256:c409e1c3fdebec7a3834465086dbda8bf7680eff79abf7fd2f10c6b59520a7a4 \ - --hash=sha256:d61a5abb6b42a0c0c311996c2ac4b83a94418a97182c83b055a2a4ae985e05aa \ - --hash=sha256:de6424b12887ad884f39a0ee446994ae3cd3b6a00a9cafe1bead85a031132af0 \ - --hash=sha256:e9d0e022c19a78552fb055d0414d47fecb4a649309b9968573daea160ba6869c \ - --hash=sha256:eb61804eb9dbe88c5a2a6c4da8dec1d80d2d0a6f18c999c524e32266cb1ebcd3 \ - --hash=sha256:ebc043cc5a4f0bf22e7680806dbba37ffb19e70f6953bbb44ed1a90aeb5c9bea \ - --hash=sha256:f13f12b3791a266de2d599cb8162925261622a037d87fc03132848343cf68f75 \ - --hash=sha256:fd10b5f994c210f4f6d6761cf686f82d748554adf486cb0979770c3252868c8f +torchvision==0.27.0 \ + --hash=sha256:0822b58d2c5d325cd0c7152b744acbd15f898c07572e2cfb70b075a865a4f6f9 \ + --hash=sha256:1a6dd742a150645126df9e0b2e449874c1d635897c773b322c2e067e98382dfe \ + --hash=sha256:1c01f0d1091ae22b9dfc082b0a0fe5faaf053686a29b4fb082ba7691375c73cf \ + --hash=sha256:1c2db4bde82bc48ebff73436a6adf34d4f809448268a70d9a1285f5c8f92313d \ + --hash=sha256:2664d06acd64d328aa7689b0d0c81ee31e240e9977d8768816b4be7c66c03211 \ + --hash=sha256:2c037709072ca9b19750c0cbe9e8bb6f91c9a1be1befa26df33e281deccbd8c7 \ + --hash=sha256:2c4099a15150143b9b034730b404a56d572efe0b79489b4c765d929cb4eac7f3 \ + --hash=sha256:419c98a9275b27660cdce6d09080fd5974d1ec1d4a225f71439ebacb3b0c4e64 \ + --hash=sha256:41d6dae73e1af09fa82ded597ae57f2a2314285acde54b25890a8f8e51b999d7 \ + --hash=sha256:5bb82fc3c55daf1788621e504310b0a286f1069627a8742f692aebb075ef25a7 \ + --hash=sha256:65772ff3ec4f4f5d680e30019835555dd239e7fefee4b0a846375fe1cb1592ef \ + --hash=sha256:70f071c6f74b60d5fe8851636d8d4cd5f4fa29d57fd9348a87a6f17b990b95ba \ + --hash=sha256:72bf547e58ddb948689734eed6f4b6a2031f979dba4fb08e3690688b392e929f \ + --hash=sha256:7a9966a088d06b4cf6c610e03be62de469efa6f2cd2e7c7eed8e925ed6af59ac \ + --hash=sha256:91f61b9865423037c327eb56afa207cc72de874e458c361840db9dcf5ce0c0eb \ + --hash=sha256:9bb9251f64b854124efed95d02953a89f7e2726c3ca662d7ea0151129157297f \ + --hash=sha256:a49e55055a39a8506fe7e59850522cab004efb2c3839f6057658889c1d69c815 \ + --hash=sha256:aaafa6962c9d91f42503de1957d6fa349907d028c06f335bd95da7a5bc57147d \ + --hash=sha256:aee384a2782c89517c4ab9061d2720ba59fd2ffe5ef89d0a149cc2d43abdf521 \ + --hash=sha256:b4aacff70ea4b7377f996f9048989c850d221fef33658ddbcae42aa5bd4ca11a \ + --hash=sha256:b4c6bb0a670dcba017b3643e21902c9b8a1cc1c127d602f1488fa29ec3c6e865 \ + --hash=sha256:c1fac0fc2a7adf29481fc1938a0e7845c57ba1147a986784109c4d98f434ea8c \ + --hash=sha256:c5121f1b9ab09a7f73e837871deb8321551f7eaeb19d87aa00de9191968eae44 \ + --hash=sha256:c9f44e35e6ec01caedacce9e941a5bf21fe424403321efac2507a201273653c5 \ + --hash=sha256:cbf89764fc76f3f17fbf80c12d5a89c691e91cb9d82c38412aaf0568655ffb19 \ + --hash=sha256:dadea3c5ecfd05bbb2a3312ab0374f213c58bf6459cb059122e2f4dfe13d10ed \ + --hash=sha256:df0c166b6bdf7c47f88e81e8b43bc085451d5c50d0c5d1691bc474c1227d6fed \ + --hash=sha256:f44453f107c296d5446a79f7ac59733ad8bf5ddfa04c53805dfbae298a42a798 # via # feast (pyproject.toml) # docling-ibm-models @@ -6031,9 +6046,9 @@ tqdm==4.67.3 \ # semchunk # sentence-transformers # transformers -traitlets==5.14.3 \ - --hash=sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7 \ - --hash=sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f +traitlets==5.15.0 \ + --hash=sha256:4fead733f81cf1c4c938e06f8ca4633896833c9d89eff878159457f4d4392971 \ + --hash=sha256:fb36a18867a6803deab09f3c5e0fa81bb7b26a5c9e82501c9933f759166eff40 # via # ipykernel # ipython @@ -6140,9 +6155,9 @@ trino==0.337.0 \ --hash=sha256:3a0bd03a09b7ea5dccd41ca6e58abfb127c6303f3a48a258ff794d411dd83a3c \ --hash=sha256:868f2b8137d4d1baa84c9bc341f2cdf29039462aa69d7c089a0b821b5a91f29c # via feast (pyproject.toml) -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.12.5 \ --hash=sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b \ @@ -6151,9 +6166,9 @@ typer==0.12.5 \ # docling # docling-core # fastapi-mcp -types-cffi==2.0.0.20260429 \ - --hash=sha256:6a4237bfdbd50e4d0726929070d8b9983bde541726a5a6fe0e8e24e78c1b3826 \ - --hash=sha256:afe7d9777a2921139623af0b94647637a5bd0b938b77ec125e5e5e068a1727bd +types-cffi==2.0.0.20260508 \ + --hash=sha256:746b081b4bf84f9d8855c517a67c2dff717f3c18657fcff8e9c251fb5778f311 \ + --hash=sha256:d094065daf4edcfbdd3e11c37d2fa9511eaf7c509da7a9d9573c276398a8e745 # via types-pyopenssl types-protobuf==3.19.22 \ --hash=sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab \ @@ -6161,25 +6176,25 @@ types-protobuf==3.19.22 \ # via # feast (pyproject.toml) # mypy-protobuf -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ --hash=sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54 # via types-redis -types-python-dateutil==2.9.0.20260408 \ - --hash=sha256:473139d514a71c9d1fbd8bb328974bedcb1cc3dba57aad04ffa4157f483c216f \ - --hash=sha256:8b056ec01568674235f64ecbcef928972a5fac412f5aab09c516dfa2acfbb582 +types-python-dateutil==2.9.0.20260508 \ + --hash=sha256:596a6d63d81f587bf04c8254fb78df9d2344e915ce67948d7400512e3a6206d5 \ + --hash=sha256:bfc6fd2d81aa86e5ac97206a64304f6bd247426eedbca9b98619bbc48c6a1c10 # via feast (pyproject.toml) -types-pytz==2026.1.1.20260408 \ - --hash=sha256:89b6a34b9198ea2a4b98a9d15cbca987053f52a105fd44f7ce3789cae4349408 \ - --hash=sha256:c7e4dec76221fb7d0c97b91ad8561d689bebe39b6bcb7b728387e7ffd8cde788 +types-pytz==2026.2.0.20260506 \ + --hash=sha256:58ab5307c20885f9bcd42ff106616eb0e32710791f8cbdc770aee2ea0c4f01fb \ + --hash=sha256:fc6a0de6a1b7da82a748fb4065e152372dac3016559cb1eef5e8af1e338eb627 # via feast (pyproject.toml) -types-pyyaml==6.0.12.20260408 \ - --hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \ - --hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384 +types-pyyaml==6.0.12.20260510 \ + --hash=sha256:09c1f1cb65a6eebea1e2e51ccf4918b8288e152909609a35cdb0d805efd125ad \ + --hash=sha256:3492eb9ba4d9d833473214c4d5736cccf5f37d93f5854059721e1c84f785309d # via feast (pyproject.toml) types-redis==4.6.0.20241004 \ --hash=sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e \ @@ -6189,15 +6204,15 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (pyproject.toml) -types-setuptools==82.0.0.20260408 \ - --hash=sha256:036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3 \ - --hash=sha256:ece0a215cdfa6463a65fd6f68bd940f39e455729300ddfe61cab1147ed1d2462 +types-setuptools==82.0.0.20260508 \ + --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ + --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e # via # feast (pyproject.toml) # types-cffi -types-tabulate==0.10.0.20260408 \ - --hash=sha256:2b19d193603d38c34645de53c0c1087e2364487d518d4a2f44268db2366723cc \ - --hash=sha256:903d62fdf7e5a0ff659fd5d629df716232f7658c6d30e98f0374488d06ffacf4 +types-tabulate==0.10.0.20260508 \ + --hash=sha256:8e51f159e8b24976849706ae2ed1dc9adba8ebbd080b17e494ebb66a8cc92c74 \ + --hash=sha256:b1e1a2d0456fbd655a71690b09a7aaeffdf2978d32049184ea436492aa51d20a # via feast (pyproject.toml) types-urllib3==1.26.25.14 \ --hash=sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f \ @@ -6265,93 +6280,91 @@ tzlocal==5.3.1 \ # via # great-expectations # trino -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # feast (pyproject.toml) # botocore @@ -6547,9 +6560,9 @@ watchfiles==1.1.1 \ --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf # via uvicorn -wcwidth==0.6.0 \ - --hash=sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad \ - --hash=sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159 +wcwidth==0.7.0 \ + --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ + --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 # via prompt-toolkit webcolors==25.10.0 \ --hash=sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d \ diff --git a/sdk/python/requirements/py3.12-minimal-requirements.txt b/sdk/python/requirements/py3.12-minimal-requirements.txt index d06134cb36e..9a531793acb 100644 --- a/sdk/python/requirements/py3.12-minimal-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-requirements.txt @@ -161,6 +161,39 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy atpublic==7.0.0 \ --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b @@ -172,9 +205,9 @@ attrs==26.1.0 \ # aiohttp # jsonschema # referencing -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -436,56 +469,56 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (pyproject.toml) -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # google-auth # pyjwt @@ -495,9 +528,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq @@ -712,9 +745,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -726,9 +759,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -738,17 +771,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -800,15 +833,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -878,6 +911,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -897,9 +931,9 @@ grpcio-status==1.62.3 \ --hash=sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485 \ --hash=sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8 # via google-api-core -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1079,9 +1113,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1113,105 +1147,105 @@ kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee # via feast (pyproject.toml) -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ --hash=sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 # via partd -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -1304,9 +1338,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1580,51 +1614,51 @@ multidict==6.7.1 \ # aiobotocore # aiohttp # yarl -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -1810,155 +1844,152 @@ platformdirs==4.9.6 \ --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 # via snowflake-connector-python -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.34.1 \ + --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ + --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ + --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ + --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ + --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ + --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ + --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ + --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c # via # feast (pyproject.toml) # google-api-core @@ -2004,9 +2035,9 @@ psycopg[c, pool]==3.2.5 \ psycopg-c==3.2.5 \ --hash=sha256:57ad4cfd28de278c424aaceb1f2ad5c7910466e315dfe84e403f3c7a0a2ce81b # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg pyarrow==24.0.0 \ --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ @@ -2083,140 +2114,140 @@ pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi # fastapi-mcp # mcp # pydantic-settings -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # fastapi-mcp # mcp @@ -2245,9 +2276,9 @@ pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via feast (pyproject.toml) -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ @@ -2266,13 +2297,13 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via # pandas # snowflake-connector-python @@ -2365,9 +2396,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # fastapi-mcp @@ -2531,32 +2562,32 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2627,13 +2658,13 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via ibis-framework -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp starlette==1.0.0 \ --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ @@ -2703,9 +2734,9 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -2720,17 +2751,17 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc # via fastapi-mcp -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2767,89 +2798,87 @@ tzdata==2026.2 \ # via # ibis-framework # pandas -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt index ae10670be7c..070790ae39c 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt @@ -4,6 +4,39 @@ # # pybuild-deps compile --generate-hashes --output-file=sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt sdk/python/requirements/py3.12-minimal-sdist-requirements.txt # +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 @@ -250,9 +283,9 @@ gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf # via gitpython -gitpython==3.1.49 \ - --hash=sha256:024b0422d7f84d15cd794844e029ffebd4c5d42a7eb9b936b458697ef550a02c \ - --hash=sha256:42f9399c9eb33fc581014bedd76049dfbaf6375aa2a5754575966387280315e1 +gitpython==3.1.50 \ + --hash=sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc \ + --hash=sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9 # via pymilvus hatch-fancy-pypi-readme==25.1.0 \ --hash=sha256:9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045 \ @@ -387,97 +420,97 @@ libcst==1.8.6 \ --hash=sha256:f729c37c9317126da9475bdd06a7208eb52fcbd180a6341648b45a56b4ba708b \ --hash=sha256:fea5c7fa26556eedf277d4f72779c5ede45ac3018650721edd77fd37ccd4a2d4 # via pyarrow -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -570,22 +603,23 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.13.1 \ - --hash=sha256:001741c6cff56aa8ea59a0d78ae990c0550d0e3e82b00b683eedb4158a8ef7e6 \ - --hash=sha256:01c845825c917c07c1d0b2c9032c59c16a7d383d1e649a46481d3e5693c2750f \ - --hash=sha256:2839024dcd65776abb4759e5bca29941971e095574162a4d335191da4be9ff24 \ - --hash=sha256:3da18cccf2f683c0977bff9146a0908d6ffce836d600665736ac01679f588cb9 \ - --hash=sha256:416e4e01cb88b798e606ee43929df897e42c1647b722ef68283816cca99a8742 \ - --hash=sha256:6b1e5916a253243e8f5f9e847b62bbc98420eec48c9ce2e2e8724c6da89d359b \ - --hash=sha256:72888e87819ce546d0d2df900e4b385e4ef299077d92ee37b48923a5602dae94 \ - --hash=sha256:98b5fcf1a186c217830a8295ecc2989c6b1cf50945417adfc15252107b9475b7 \ - --hash=sha256:9a87ff3b8e4d1c6eac33ebfe8e261e8236516d98d45c0323550621819b5a1a2f \ - --hash=sha256:a2017d2281203d0c6570240e7d746564d766d756105823b7de68bda6ae722711 \ - --hash=sha256:c1490584f3c70af45466ee99065b49e6657ebdccac6b10571bb44681309c9396 \ - --hash=sha256:c6a720b252c99de072922dbe4432ab19662b6f80045b0355fec23bdfccb450da \ - --hash=sha256:dc91031e0619c1e28730279ef9ee5f106c9b9ec806b013f888676b242f892eb7 \ - --hash=sha256:f69093ed4a0e6464e52a7fc26d714f859ce15630ec8070743398c6bf41f38a9e +maturin==1.13.3 \ + --hash=sha256:0ef257e692cc756c87af5bea95ddfe7d3ac49d3376a7a87f728d63f06e7b6f8b \ + --hash=sha256:1cc0a110b224ca90406b668a3e3c1f5a515062e59e26292f6dbaf5fd4909c6f3 \ + --hash=sha256:2389fe92d017cea9d94e521fa0175314a4c52f79a1057b901fbc9f8686ef7d0b \ + --hash=sha256:3cc13929ca82aefa4adbf0f2c35419369796213c6fb0eb24e914945f50ef5d8c \ + --hash=sha256:3db93337ed97e60ffc878aa8b493cd7ae44d3a5e1a37256db3a4491f57565018 \ + --hash=sha256:4667ef609ab446c1b5e0bfe4f9fb99699ab6d8548433f8d1a684256e0b67217f \ + --hash=sha256:49fd6ab08da28098ccf37afca24cdba72376ba9c1eedf9dd25ff82ed771961ff \ + --hash=sha256:4cd478e6e4c56251e48ed079b8efd55b30bc5c09cf695a1bdafaeb582ee735a0 \ + --hash=sha256:53b08bd075649ce96513ad9abf241a43cb685ed6e9e7790f8dbc2d66e95d8323 \ + --hash=sha256:771e1e9e71a278e56db01552e0d1acfd1464259f9575b6e72842f893cd299079 \ + --hash=sha256:a2675e25f313034ae6f57388cf14818f87d8961c4a96795287f3e155f59beb11 \ + --hash=sha256:b6741d7bf4af97da937528fd1e523c6ab54f53d9a21870fa735d6e67fd88e273 \ + --hash=sha256:c00ea6428dea17bf616fe93770837634454b28c2de1a876e42ef8036c616079a \ + --hash=sha256:def4a435ea9d2ee93b18ba579dc8c9cf898889a66f312cd379b5e374ec3e3ad6 # via + # ast-serialize # cryptography # pydantic-core # rpds-py @@ -718,9 +752,9 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -poetry-core==2.3.2 \ - --hash=sha256:20cb71be27b774628da9f384effd9183dfceb53bcef84063248a8672aa47031f \ - --hash=sha256:23df641b64f87fbb4ce1873c1915a4d4bb1b7d808c596e4307edc073e68d7234 +poetry-core==2.4.0 \ + --hash=sha256:4305848477da00272bebd3f615bbec87f64bd117cdb858ab660b626a06a9d96c \ + --hash=sha256:4e8c7496cf797998ffc493f2e23eba4b038c894c08eadacdcdf688945de6b43a # via # aiohappyeyeballs # dunamai @@ -862,16 +896,11 @@ setuptools-scm==10.0.5 \ # tqdm # typeguard # ujson + # urllib3 setuptools-scm==7.1.0 \ --hash=sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27 \ --hash=sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e # via python-dateutil -setuptools-scm==9.2.2 \ - --hash=sha256:1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57 \ - --hash=sha256:30e8f84d2ab1ba7cb0e653429b179395d0c33775d54807fc5f1dd6671801aef7 - # via - # hatch-vcs - # urllib3 smmap==5.0.3 \ --hash=sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c \ --hash=sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f @@ -925,21 +954,21 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via uv-dynamic-versioning -trove-classifiers==2026.4.28.13 \ - --hash=sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8 \ - --hash=sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676 +trove-classifiers==2026.5.7.17 \ + --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ + --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==82.0.0.20260408 \ - --hash=sha256:036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3 \ - --hash=sha256:ece0a215cdfa6463a65fd6f68bd940f39e455729300ddfe61cab1147ed1d2462 +types-setuptools==82.0.0.20260508 \ + --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ + --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1022,7 +1051,6 @@ setuptools==80.10.2 \ # pathspec # pluggy # prometheus-client - # propcache # proto-plus # psutil # psycopg @@ -1067,6 +1095,7 @@ setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb # via + # propcache # python-dateutil # types-pymysql # types-setuptools diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt index c5231d0fd24..e3de3af6245 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt @@ -165,6 +165,39 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy atpublic==7.0.0 \ --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b @@ -180,9 +213,9 @@ babel==2.18.0 \ --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ --hash=sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35 # via sphinx -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -448,56 +481,56 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (pyproject.toml) -cryptography==47.0.0 \ - --hash=sha256:0024b87d47ae2399165a6bfb20d24888881eeab83ae2566d62467c5ff0030ce7 \ - --hash=sha256:07efe86201817e7d3c18781ca9770bc0db04e1e48c994be384e4602bc38f8f27 \ - --hash=sha256:09f6d7bf6724f8db8b32f11eccf23efc8e759924bc5603800335cf8859a3ddbd \ - --hash=sha256:11438c7518132d95f354fa01a4aa2f806d172a061a7bed18cf18cbdacdb204d7 \ - --hash=sha256:11dbb9f50a0f1bb9757b3d8c27c1101780efb8f0bdecfb12439c22a74d64c001 \ - --hash=sha256:14432c8a9bcb37009784f9594a62fae211a2ae9543e96c92b2a8e4c3cd5cd0c4 \ - --hash=sha256:1581aef4219f7ca2849d0250edaa3866212fb74bf5667284f46aa92f9e65c1ca \ - --hash=sha256:160ad728f128972d362e714054f6ba0067cab7fb350c5202a9ae8ae4ce3ef1a0 \ - --hash=sha256:1a405c08857258c11016777e11c02bacbe7ef596faf259305d282272a3a05cbe \ - --hash=sha256:1e47422b5557bb82d3fff997e8d92cff4e28b9789576984f08c248d2b3535d93 \ - --hash=sha256:20fdbe3e38fb67c385d233c89371fa27f9909f6ebca1cecc20c13518dae65475 \ - --hash=sha256:2207a498b03275d0051589e326b79d4cf59985c99031b05bb292ac52631c37fe \ - --hash=sha256:256d07c78a04d6b276f5df935a9923275f53bd1522f214447fdf365494e2d515 \ - --hash=sha256:2b45761c6ec22b7c726d6a829558777e32d0f1c8be7c3f3480f9c912d5ee8a10 \ - --hash=sha256:2ebd84adf0728c039a3be2700289378e1c164afc6748df1a5ed456767bef9ba7 \ - --hash=sha256:34b4358b925a5ea3e14384ca781a2c0ef7ac219b57bb9eacc4457078e2b19f92 \ - --hash=sha256:3fb8fa48075fad7193f2e5496135c6a76ac4b2aa5a38433df0a539296b377829 \ - --hash=sha256:4e1de79e047e25d6e9f8cea71c86b4a53aced64134f0f003bbcbf3655fd172c8 \ - --hash=sha256:4f7722c97826770bab8ae92959a2e7b20a5e9e9bf4deae68fd86c3ca457bab52 \ - --hash=sha256:51c9313e90bd1690ec5a75ed047c27c0b8e6c570029712943d6116ef9a90620b \ - --hash=sha256:5d0e362ff51041b0c0d219cc7d6924d7b8996f57ce5712bdcef71eb3c65a59cc \ - --hash=sha256:6651d32eff255423503aa276739da98c30f26c40cbeffcc6048e0d54ef704c0c \ - --hash=sha256:6eebcaf0df1d21ce1f90605c9b432dd2c4f4ab665ac29a40d5e3fc68f51b5e63 \ - --hash=sha256:6f29f36582e6151d9686235e586dd35bb67491f024767d10b842e520dc6a07ac \ - --hash=sha256:7a02675e2fabd0c0fc04c868b8781863cbf1967691543c22f5470500ff840b31 \ - --hash=sha256:7f1207974a904e005f762869996cf620e9bf79ecb4622f148550bb48e0eb35a7 \ - --hash=sha256:7f68d6fbc7fbbcfb0939fea72c3b96a9f9a6edfc0e1b1d29778a2066030418b1 \ - --hash=sha256:7fda2f02c9015db3f42bb8a22324a454516ed10a8c29ca6ece6cdbb5efe2a203 \ - --hash=sha256:80887c5cbd1774683cb126f0ab4184567f080071d5acf62205acb354b4b753b7 \ - --hash=sha256:835d2d7f47cdc53b3224e90810fb1d36ca94ea29cc1801fb4c1bc43876735769 \ - --hash=sha256:8c1a736bbb3288005796c3f7ccb9453360d7fed483b13b9f468aea5171432923 \ - --hash=sha256:9af828c0d5a65c70ec729cd7495a4bf1a67ecb66417b8f02ff125ab8a6326a74 \ - --hash=sha256:9c59ab0e0fa3a180a5a9c59f3a5abe3ef90d474bc56d7fadfbe80359491b615b \ - --hash=sha256:9f8e55fe4e63613a5e1cc5819030f27b97742d720203a087802ce4ce9ceb52bb \ - --hash=sha256:9fe6b7c64926c765f9dff301f9c1b867febcda5768868ca084e18589113732ab \ - --hash=sha256:a49a3eb5341b9503fa3000a9a0db033161db90d47285291f53c2a9d2cd1b7f76 \ - --hash=sha256:a9b761f012a943b7de0e828843c5688d0de94a0578d44d6c85a1bae32f87791f \ - --hash=sha256:b1c76fca783aa7698eb21eb14f9c4aa09452248ee54a627d125025a43f83e7a7 \ - --hash=sha256:b9a8943e359b7615db1a3ba587994618e094ff3d6fa5a390c73d079ce18b3973 \ - --hash=sha256:be12cb6a204f77ed968bcefe68086eb061695b540a3dd05edac507a3111b25f0 \ - --hash=sha256:cffbba3392df0fa8629bb7f43454ee2925059ee158e23c54620b9063912b86c8 \ - --hash=sha256:ed67ea4e0cfb5faa5bc7ecb6e2b8838f3807a03758eec239d6c21c8769355310 \ - --hash=sha256:edd4da498015da5b9f26d38d3bfc2e90257bfa9cbed1f6767c282a0025ae649b \ - --hash=sha256:ef6b3634087f18d2155b1e8ce264e5345a753da2c5fa9815e7d41315c90f8318 \ - --hash=sha256:f1557695e5c2b86e204f6ce9470497848634100787935ab7adc5397c54abd7ab \ - --hash=sha256:f5c15764f261394b22aef6b00252f5195f46f2ca300bec57149474e2538b31f8 \ - --hash=sha256:f5c3296dab66202f1b18a91fa266be93d6aa0c2806ea3d67762c69f60adc71aa \ - --hash=sha256:f7db373287273d8af1414cf95dc4118b13ffdc62be521997b0f2b270771fef50 \ - --hash=sha256:f9a034b642b960767fb343766ae5ba6ad653f2e890ddd82955aef288ffea8736 +cryptography==48.0.0 \ + --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ + --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ + --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ + --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ + --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ + --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ + --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ + --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ + --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ + --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ + --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ + --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ + --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ + --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ + --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ + --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ + --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ + --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ + --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ + --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ + --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ + --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ + --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ + --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ + --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ + --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ + --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ + --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ + --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ + --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ + --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ + --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ + --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ + --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ + --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ + --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ + --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ + --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ + --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ + --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ + --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ + --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ + --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ + --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ + --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ + --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ + --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ + --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ + --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b # via # google-auth # pyjwt @@ -573,9 +606,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -db-dtypes==1.5.1 \ - --hash=sha256:901099b807c9312bc61a5bddbfb07512884e6c6d5a9edacf24d50bcf303aa5f7 \ - --hash=sha256:ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 +db-dtypes==1.6.0 \ + --hash=sha256:03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d \ + --hash=sha256:4ba87b15cc972a7cc0aed2b7483e0823c7765eca88128453f52c88c5e0f4ae46 # via # google-cloud-bigquery # pandas-gbq @@ -798,9 +831,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.50.0 \ - --hash=sha256:04382175e28b94f49694977f0a792688b59a668def1499e9d8de996dc9ce5b15 \ - --hash=sha256:f35eafb191195328e8ce10a7883970877e7aeb49c2bfaa54aa0e394316d353d0 +google-auth==2.52.0 \ + --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ + --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 # via # google-api-core # google-auth-oauthlib @@ -812,9 +845,9 @@ google-auth==2.50.0 \ # google-cloud-storage # pandas-gbq # pydata-google-auth -google-auth-oauthlib==1.3.1 \ - --hash=sha256:14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa \ - --hash=sha256:1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 +google-auth-oauthlib==1.4.0 \ + --hash=sha256:18b5e28880eb8eba9065c436becdc0ee8e4b59117a73a510679c82f70cd363d2 \ + --hash=sha256:251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 # via # pandas-gbq # pydata-google-auth @@ -824,17 +857,17 @@ google-cloud-bigquery[pandas]==3.41.0 \ # via # feast (pyproject.toml) # pandas-gbq -google-cloud-bigquery-storage==2.37.0 \ - --hash=sha256:1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 \ - --hash=sha256:f88ee7f1e49db1e639da3d9a8b79835ca4bc47afbb514fb2adfc0ccb41a7fd97 +google-cloud-bigquery-storage==2.38.0 \ + --hash=sha256:313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 \ + --hash=sha256:bc703ab31c8c7dc9d0a281ff5109ba7461b3a6dc517f6acca1a823124085ab0d # via feast (pyproject.toml) -google-cloud-bigtable==2.36.0 \ - --hash=sha256:21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 \ - --hash=sha256:d5987733c2f60c739f93f259d2037858411cc994ac37cdfbccb6bb159f3ca43e +google-cloud-bigtable==2.38.0 \ + --hash=sha256:0ad24f0106c2eb0f38e278b1641052e65882a4da0141d1f9ad78ea691724aaa3 \ + --hash=sha256:9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 # via feast (pyproject.toml) -google-cloud-core==2.5.1 \ - --hash=sha256:3dc94bdec9d05a31d9f355045ed0f369fbc0d8c665076c734f065d729800f811 \ - --hash=sha256:ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 +google-cloud-core==2.6.0 \ + --hash=sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e \ + --hash=sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83 # via # google-cloud-bigquery # google-cloud-bigtable @@ -886,15 +919,15 @@ google-crc32c==1.8.0 \ # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-resumable-media==2.8.2 \ - --hash=sha256:82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 \ - --hash=sha256:f3354a182ebd193ae3f42e3ef95e6c9b10f128320de23ac7637236713b1acd70 +google-resumable-media==2.9.0 \ + --hash=sha256:c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 \ + --hash=sha256:f7cfb224846a9dd444d125115dfbe8ef02a2b893e78f087762fe716a255a734b # via # google-cloud-bigquery # google-cloud-storage -googleapis-common-protos[grpc]==1.74.0 \ - --hash=sha256:57971e4eeeba6aad1163c1f0fc88543f965bb49129b8bb55b2b7b26ecab084f1 \ - --hash=sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 +googleapis-common-protos[grpc]==1.75.0 \ + --hash=sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd \ + --hash=sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed # via # feast (pyproject.toml) # google-api-core @@ -1025,6 +1058,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-bigtable # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 @@ -1044,9 +1078,9 @@ grpcio-status==1.62.3 \ --hash=sha256:289bdd7b2459794a12cf95dc0cb727bd4a1742c37bd823f760236c937e53a485 \ --hash=sha256:f9049b762ba8de6b1086789d8315846e094edac2c50beaf462338b301a8fd4b8 # via google-api-core -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -1241,9 +1275,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # httpx @@ -1281,105 +1315,105 @@ kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee # via feast (pyproject.toml) -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ --hash=sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 # via partd -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -1472,9 +1506,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.27.0 \ - --hash=sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741 \ - --hash=sha256:d3dc35a7eec0d458c1da4976a48f982097ddaab87e278c5511d5a4a56e852b83 +mcp==1.27.1 \ + --hash=sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924 \ + --hash=sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1750,51 +1784,51 @@ multidict==6.7.1 \ # aiobotocore # aiohttp # yarl -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -2004,155 +2038,152 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -propcache==0.4.1 \ - --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ - --hash=sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4 \ - --hash=sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be \ - --hash=sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3 \ - --hash=sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85 \ - --hash=sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b \ - --hash=sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367 \ - --hash=sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf \ - --hash=sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393 \ - --hash=sha256:182b51b421f0501952d938dc0b0eb45246a5b5153c50d42b495ad5fb7517c888 \ - --hash=sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37 \ - --hash=sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 \ - --hash=sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60 \ - --hash=sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1 \ - --hash=sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4 \ - --hash=sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717 \ - --hash=sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 \ - --hash=sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc \ - --hash=sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe \ - --hash=sha256:357f5bb5c377a82e105e44bd3d52ba22b616f7b9773714bff93573988ef0a5fb \ - --hash=sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75 \ - --hash=sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6 \ - --hash=sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e \ - --hash=sha256:3d233076ccf9e450c8b3bc6720af226b898ef5d051a2d145f7d765e6e9f9bcff \ - --hash=sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566 \ - --hash=sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12 \ - --hash=sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367 \ - --hash=sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874 \ - --hash=sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf \ - --hash=sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566 \ - --hash=sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a \ - --hash=sha256:4b536b39c5199b96fc6245eb5fb796c497381d3942f169e44e8e392b29c9ebcc \ - --hash=sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a \ - --hash=sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1 \ - --hash=sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6 \ - --hash=sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61 \ - --hash=sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726 \ - --hash=sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49 \ - --hash=sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44 \ - --hash=sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af \ - --hash=sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa \ - --hash=sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153 \ - --hash=sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc \ - --hash=sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5 \ - --hash=sha256:5fd37c406dd6dc85aa743e214cef35dc54bbdd1419baac4f6ae5e5b1a2976938 \ - --hash=sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf \ - --hash=sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 \ - --hash=sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8 \ - --hash=sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c \ - --hash=sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85 \ - --hash=sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e \ - --hash=sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0 \ - --hash=sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1 \ - --hash=sha256:71b749281b816793678ae7f3d0d84bd36e694953822eaad408d682efc5ca18e0 \ - --hash=sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992 \ - --hash=sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db \ - --hash=sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f \ - --hash=sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d \ - --hash=sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1 \ - --hash=sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e \ - --hash=sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900 \ - --hash=sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89 \ - --hash=sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a \ - --hash=sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b \ - --hash=sha256:948dab269721ae9a87fd16c514a0a2c2a1bdb23a9a61b969b0f9d9ee2968546f \ - --hash=sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f \ - --hash=sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1 \ - --hash=sha256:99d43339c83aaf4d32bda60928231848eee470c6bda8d02599cc4cebe872d183 \ - --hash=sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66 \ - --hash=sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21 \ - --hash=sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db \ - --hash=sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded \ - --hash=sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb \ - --hash=sha256:a129e76735bc792794d5177069691c3217898b9f5cee2b2661471e52ffe13f19 \ - --hash=sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0 \ - --hash=sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165 \ - --hash=sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778 \ - --hash=sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455 \ - --hash=sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f \ - --hash=sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b \ - --hash=sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237 \ - --hash=sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81 \ - --hash=sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859 \ - --hash=sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c \ - --hash=sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835 \ - --hash=sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393 \ - --hash=sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5 \ - --hash=sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641 \ - --hash=sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144 \ - --hash=sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74 \ - --hash=sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db \ - --hash=sha256:cbc3b6dfc728105b2a57c06791eb07a94229202ea75c59db644d7d496b698cac \ - --hash=sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403 \ - --hash=sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9 \ - --hash=sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f \ - --hash=sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311 \ - --hash=sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581 \ - --hash=sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36 \ - --hash=sha256:daede9cd44e0f8bdd9e6cc9a607fc81feb80fae7a5fc6cecaff0e0bb32e42d00 \ - --hash=sha256:db65d2af507bbfbdcedb254a11149f894169d90488dd3e7190f7cdcb2d6cd57a \ - --hash=sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f \ - --hash=sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2 \ - --hash=sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7 \ - --hash=sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239 \ - --hash=sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757 \ - --hash=sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72 \ - --hash=sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9 \ - --hash=sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4 \ - --hash=sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24 \ - --hash=sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207 \ - --hash=sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e \ - --hash=sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1 \ - --hash=sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d \ - --hash=sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37 \ - --hash=sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c \ - --hash=sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e \ - --hash=sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570 \ - --hash=sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af \ - --hash=sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f \ - --hash=sha256:fd2dbc472da1f772a4dae4fa24be938a6c544671a912e30529984dd80400cd88 \ - --hash=sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48 \ - --hash=sha256:fe49d0a85038f36ba9e3ffafa1103e61170b28e95b16622e11be0a0ea07c6781 +propcache==0.5.2 \ + --hash=sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427 \ + --hash=sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5 \ + --hash=sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa \ + --hash=sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7 \ + --hash=sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a \ + --hash=sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0 \ + --hash=sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660 \ + --hash=sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94 \ + --hash=sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917 \ + --hash=sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42 \ + --hash=sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3 \ + --hash=sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa \ + --hash=sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d \ + --hash=sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33 \ + --hash=sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a \ + --hash=sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511 \ + --hash=sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0 \ + --hash=sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84 \ + --hash=sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c \ + --hash=sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66 \ + --hash=sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821 \ + --hash=sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb \ + --hash=sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e \ + --hash=sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853 \ + --hash=sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56 \ + --hash=sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55 \ + --hash=sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6 \ + --hash=sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704 \ + --hash=sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82 \ + --hash=sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f \ + --hash=sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64 \ + --hash=sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999 \ + --hash=sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b \ + --hash=sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb \ + --hash=sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d \ + --hash=sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4 \ + --hash=sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab \ + --hash=sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f \ + --hash=sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03 \ + --hash=sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5 \ + --hash=sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba \ + --hash=sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979 \ + --hash=sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b \ + --hash=sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144 \ + --hash=sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d \ + --hash=sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e \ + --hash=sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67 \ + --hash=sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117 \ + --hash=sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa \ + --hash=sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb \ + --hash=sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96 \ + --hash=sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5 \ + --hash=sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476 \ + --hash=sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191 \ + --hash=sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78 \ + --hash=sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078 \ + --hash=sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837 \ + --hash=sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a \ + --hash=sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba \ + --hash=sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe \ + --hash=sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c \ + --hash=sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf \ + --hash=sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c \ + --hash=sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9 \ + --hash=sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8 \ + --hash=sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe \ + --hash=sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031 \ + --hash=sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913 \ + --hash=sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d \ + --hash=sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf \ + --hash=sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f \ + --hash=sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539 \ + --hash=sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b \ + --hash=sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285 \ + --hash=sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959 \ + --hash=sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d \ + --hash=sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4 \ + --hash=sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f \ + --hash=sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836 \ + --hash=sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274 \ + --hash=sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d \ + --hash=sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f \ + --hash=sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e \ + --hash=sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe \ + --hash=sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1 \ + --hash=sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a \ + --hash=sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39 \ + --hash=sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7 \ + --hash=sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a \ + --hash=sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164 \ + --hash=sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e \ + --hash=sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2 \ + --hash=sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0 \ + --hash=sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0 \ + --hash=sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335 \ + --hash=sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568 \ + --hash=sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4 \ + --hash=sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80 \ + --hash=sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2 \ + --hash=sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370 \ + --hash=sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4 \ + --hash=sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b \ + --hash=sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42 \ + --hash=sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a \ + --hash=sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e \ + --hash=sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757 \ + --hash=sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825 \ + --hash=sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0 \ + --hash=sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27 \ + --hash=sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf \ + --hash=sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f \ + --hash=sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d \ + --hash=sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366 \ + --hash=sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc \ + --hash=sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c \ + --hash=sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7 \ + --hash=sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702 \ + --hash=sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098 \ + --hash=sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751 \ + --hash=sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e \ + --hash=sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6 # via # aiohttp # yarl -proto-plus==1.27.2 \ - --hash=sha256:6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 \ - --hash=sha256:b2adde53adadf75737c44d3dcb0104fde65250dfc83ad59168b4aa3e574b6a24 +proto-plus==1.28.0 \ + --hash=sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9 \ + --hash=sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 # via # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.34.1 \ + --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ + --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ + --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ + --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ + --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ + --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ + --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ + --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c # via # feast (pyproject.toml) # google-api-core @@ -2198,9 +2229,9 @@ psycopg[c, pool]==3.2.5 \ psycopg-c==3.2.5 \ --hash=sha256:57ad4cfd28de278c424aaceb1f2ad5c7910466e315dfe84e403f3c7a0a2ce81b # via psycopg -psycopg-pool==3.3.0 \ - --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ - --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 +psycopg-pool==3.3.1 \ + --hash=sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 \ + --hash=sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c # via psycopg pyarrow==24.0.0 \ --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ @@ -2281,140 +2312,140 @@ pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi # fastapi-mcp # mcp # pydantic-settings -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic -pydantic-settings==2.14.0 \ - --hash=sha256:24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d \ - --hash=sha256:fc8d5d692eb7092e43c8647c1c35a3ecd00e040fcf02ed86f4cb5458ca62182e +pydantic-settings==2.14.1 \ + --hash=sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de \ + --hash=sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa # via # fastapi-mcp # mcp @@ -2444,9 +2475,9 @@ pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via feast (pyproject.toml) -pyopenssl==26.1.0 \ - --hash=sha256:115563879b2c8ccb207975705d3e491434d8c9d7c79667c902ecbf5f3bbd2ece \ - --hash=sha256:737f0a2275c5bc54f3b02137687e1a765931fb3949b9a92a825e4d33b9eec08b +pyopenssl==26.2.0 \ + --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ + --hash=sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387 # via snowflake-connector-python pyproject-metadata==0.11.0 \ --hash=sha256:85bbecca8694e2c00f63b492c96921d6c228454057c88e7c352b2077fcaa4096 \ @@ -2469,13 +2500,13 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.27 \ - --hash=sha256:6fccfad17a27334bd0193681b369f476eda3409f17381a2d65aa7df3f7275645 \ - --hash=sha256:9870a6a8c5a20a5bf4f07c017bd1489006ff8836cff097b6933355ee2b49b602 +python-multipart==0.0.28 \ + --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ + --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 # via mcp -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via # pandas # snowflake-connector-python @@ -2568,9 +2599,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # feast (pyproject.toml) # fastapi-mcp @@ -2752,32 +2783,32 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -snowflake-connector-python[pandas]==4.4.0 \ - --hash=sha256:16fdca775f7ca5ce4a973c07c434f5ab72bef5284e81a5e4ae2fb4d54d28965c \ - --hash=sha256:19d0c1ed033abae715a71b74c53010b180a5247c6924f851e4f7d0b0d58066c4 \ - --hash=sha256:2a6f6a514a10c3bb2d4554132f0b639f43d7e9fbb73fa1fae1c8a75333102686 \ - --hash=sha256:307f41326c702f6976746d2001dacf35adaf567f3f12afb3a5778fbb063c7241 \ - --hash=sha256:43e1a2f3ac51d24406d4eb0c23a8ceb9d6f5cb4854c941e5e1375d8c481e2844 \ - --hash=sha256:52efe2d6543a09807283748dd50a36ec01d52b4f342868132f8f9856b9c95a42 \ - --hash=sha256:56ff04dd9e17edc82128f412aa3776687dc94088f3d6b9144971e169952623cb \ - --hash=sha256:648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b \ - --hash=sha256:693a1bef97509f09b7e6f42ea6f743d27819413c04fb3dc543b060d029871c56 \ - --hash=sha256:70d4051e2d9c87258b02672e17e21f5873e0cb49ff9705f6194ccfa25ac0d5fd \ - --hash=sha256:7c2984663a733d06c979aa6c8c1d7691621ec0d3521ef345d57c869ff2f1c4b2 \ - --hash=sha256:8304b4818d3e9de552dcfbdd0bca61bae1583e1c9794e242e58fe44bce701604 \ - --hash=sha256:85a01338d282423611f357cd5392dca2219bbda9a66b44761b11d6ae8ebf1e50 \ - --hash=sha256:96fdca994c4d9f7780e82fc7b4bd3398d856b43de3bae57d44e242ff435a2431 \ - --hash=sha256:9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 \ - --hash=sha256:9fa43d330389df27024757c4f97dabddafbedc74b8bcc189b6a86e8b4d036014 \ - --hash=sha256:a088f108da4653ad1396ddb63a1c757ad614d0862c38f6f69cc77344bdcfeccb \ - --hash=sha256:b9f0ac0c00075321e1720d3876e936ee0256f54832e7463c5193a8dfa54913d5 \ - --hash=sha256:c828248214a49f77b903e05acf887d3ccb9d958b5a979f2ed3663bba1bd0f2b3 \ - --hash=sha256:d6fd334e4d8df7fcb30e6746e5ade845e82de2942268862aa8bce974ae2b86a2 \ - --hash=sha256:d8ac1659c8e588b9502f8d3d03c1ded2f274de0da9c09e62fe007cba5b46d6a5 \ - --hash=sha256:e8e7ce0e8b33aec8b1fc6741eb51dbeb54e2c3a6d282a0d459c355a85f089b08 \ - --hash=sha256:ea6e4083ebea0a814b46f029d64a2fb0ba6e7732952cd8af4406041708ce0e21 \ - --hash=sha256:f5d0e90e68a899c13fda5ca842ff77b5759b1674adf2c72702d3c2b53ca9d27b \ - --hash=sha256:fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 +snowflake-connector-python[pandas]==4.5.0 \ + --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ + --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ + --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ + --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ + --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ + --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ + --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ + --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ + --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ + --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ + --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ + --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ + --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ + --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ + --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ + --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ + --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ + --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ + --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ + --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ + --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ + --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ + --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ + --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ + --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2876,13 +2907,13 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via feast (pyproject.toml) -sqlglot==30.6.0 \ - --hash=sha256:246d34d39927422a50a3fa155f37b2f6346fba85f1a755b13c941eb32ef93361 \ - --hash=sha256:e005fc2f47994f90d7d8df341f1cbe937518497b0b7b1507d4c03c4c9dfd2778 +sqlglot==30.8.0 \ + --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ + --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 # via ibis-framework -sse-starlette==3.4.1 \ - --hash=sha256:6b43cf21f1d574d582a6e1b0cfbde1c94dc86a32a701a7168c99c4475c6bd1d0 \ - --hash=sha256:f780bebcf6c8997fe514e3bd8e8c648d8284976b391c8bed0bcb1f611632b555 +sse-starlette==3.4.4 \ + --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ + --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp starlette==1.0.0 \ --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ @@ -2952,9 +2983,9 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via fastapi-mcp -tomlkit==0.14.0 \ - --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ - --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 +tomlkit==0.15.0 \ + --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ + --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via snowflake-connector-python toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -2969,13 +3000,13 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -trove-classifiers==2026.4.28.13 \ - --hash=sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8 \ - --hash=sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676 +trove-classifiers==2026.5.7.17 \ + --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ + --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 # via hatchling -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ @@ -2985,9 +3016,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (pyproject.toml) -types-pymysql==1.1.0.20260408 \ - --hash=sha256:b784dc37908479e3767e2d794ab507b3674adb1c686ca3d13fc9e2960dbcb9ec \ - --hash=sha256:da630647eaaa7a926a3907794f4067f269cd245b2c202c74aa3c6a3bd660a9db +types-pymysql==1.1.0.20260508 \ + --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ + --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -3024,89 +3055,87 @@ tzdata==2026.2 \ # via # ibis-framework # pandas -ujson==5.12.0 \ - --hash=sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb \ - --hash=sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e \ - --hash=sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61 \ - --hash=sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827 \ - --hash=sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a \ - --hash=sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983 \ - --hash=sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84 \ - --hash=sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961 \ - --hash=sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e \ - --hash=sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d \ - --hash=sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4 \ - --hash=sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8 \ - --hash=sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2 \ - --hash=sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb \ - --hash=sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3 \ - --hash=sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb \ - --hash=sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e \ - --hash=sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d \ - --hash=sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a \ - --hash=sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da \ - --hash=sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504 \ - --hash=sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b \ - --hash=sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be \ - --hash=sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0 \ - --hash=sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161 \ - --hash=sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd \ - --hash=sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa \ - --hash=sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87 \ - --hash=sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e \ - --hash=sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e \ - --hash=sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d \ - --hash=sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4 \ - --hash=sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da \ - --hash=sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09 \ - --hash=sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00 \ - --hash=sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d \ - --hash=sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0 \ - --hash=sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed \ - --hash=sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b \ - --hash=sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc \ - --hash=sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da \ - --hash=sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d \ - --hash=sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2 \ - --hash=sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef \ - --hash=sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5 \ - --hash=sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927 \ - --hash=sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab \ - --hash=sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87 \ - --hash=sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759 \ - --hash=sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4 \ - --hash=sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2 \ - --hash=sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c \ - --hash=sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68 \ - --hash=sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26 \ - --hash=sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797 \ - --hash=sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688 \ - --hash=sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57 \ - --hash=sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94 \ - --hash=sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c \ - --hash=sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab \ - --hash=sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235 \ - --hash=sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f \ - --hash=sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad \ - --hash=sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487 \ - --hash=sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6 \ - --hash=sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c \ - --hash=sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052 \ - --hash=sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e \ - --hash=sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc \ - --hash=sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9 \ - --hash=sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315 \ - --hash=sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654 \ - --hash=sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50 \ - --hash=sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9 \ - --hash=sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3 \ - --hash=sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6 \ - --hash=sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382 \ - --hash=sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65 +ujson==5.12.1 \ + --hash=sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb \ + --hash=sha256:080bc65ac7c0a6314d45d55b6171d3a48b1aeaf89895654d625b291cfe46309f \ + --hash=sha256:0be2b4f2f547b9f0f3d902640e410e5a2fc851576cbe033c88445a23e3e7aef1 \ + --hash=sha256:10f44bd08ae52ee23ca6e8b472692e5da1768af2d53ff1bad6f40b532e0bc7ee \ + --hash=sha256:12e99e49c62322ed0394c914aff15403ba7ede0b74f05a0faa4ec12c7d17a139 \ + --hash=sha256:191d2077fd53441599a2efd3dcc205b9cc5f3a4d685a76e9f73f4b6c19aee0c9 \ + --hash=sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33 \ + --hash=sha256:1a09636220f26c66f80c6c6283023cb53120e843825f890be92696cd1aa43f39 \ + --hash=sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0 \ + --hash=sha256:251ba8229e19b4b0b3efb5e7e3ddfa67c5c466aa492707bc3f6568bf714604dc \ + --hash=sha256:26dcb43869057373048cbd2678293c5b0f962d5774cc76fc9488564a209bcbf2 \ + --hash=sha256:289f13095764d03734adfa10107da9b530ceb64dc1b02a5f507588d978d5b7df \ + --hash=sha256:29d1d64ed2c3c17666f4f0e15462800f3477255dc53667ad5d099277866c5666 \ + --hash=sha256:2cfbd6b0c677d5d053964b8f98d8bb1af10c591c8c24454bcd40006ac8ba18db \ + --hash=sha256:3a6efff7dc6515416366819de4a1bc449b77107c5b48508b101fd40f7f8bec08 \ + --hash=sha256:3e30fa6bc7156ed709e13f8b52e917db08fbfd611ba61346b62630974ec0ba8e \ + --hash=sha256:427893168d074e59214b0ee058337c57f5bb80175cdd5b4799a9c931aae22022 \ + --hash=sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430 \ + --hash=sha256:46315b82505c99101dcab3bd979f15fecfde85c02df7efbb4e428fa357665290 \ + --hash=sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b \ + --hash=sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5 \ + --hash=sha256:4e12ca368b397aed7fa1eec534ea1ba8d94977b376f9df3e93ae1acfd004ec40 \ + --hash=sha256:4ea0c490c702c20495e97345acfcf0c2f3153e658ef537ff111929c48b89e10a \ + --hash=sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f \ + --hash=sha256:50d07e79ec70d32b4fbe18ab706ed0b172be08710d5901b9d067d7951bfaa164 \ + --hash=sha256:558673c6c3a2309775683ca96d5f1e4cd99889f71b1ba5cb6be8aa37ae67f9e0 \ + --hash=sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35 \ + --hash=sha256:5dc91fa06ea35920b704fd9d70871897680145998071cfbf5ee3e19f2c9fc242 \ + --hash=sha256:66005b49c753a1b9f2f8853919dc58e1e6bd66846ea341a33afa76c6d7602485 \ + --hash=sha256:696224d4cfb8883fa5c0285dff31e5ce924704dd9ccd38e9ea8b5bf4a42b12fc \ + --hash=sha256:6cc6ea753b7303fa5629fa9ac9257ea4b001c4d72583b2bb36ff1855a07db49f \ + --hash=sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102 \ + --hash=sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc \ + --hash=sha256:71bdb5d10c6d7e710cfa78e743d9fb79a37c7c66fa916cd287bffbaa520f5abe \ + --hash=sha256:727e983ef27892d86ee2d28fd517eeb02b2c1165aafcbe929dce988aeee81bfe \ + --hash=sha256:757f2026bef09d231d63a2250a2c7ad21ea1c9cb1ded6480659d202c4e2ef09e \ + --hash=sha256:758e5c8fbe4e6d483041e03b307b01fb5d2f2dd4452d4d4b927ab902e188939e \ + --hash=sha256:7642a41520ac1b2bc25ea282b66b8da522cc43424442e6fb5e039be4d4f96530 \ + --hash=sha256:77a71fe53427a0cf49d56eafd801d9f7e203b784b7f99cc717783fd6f6f7b732 \ + --hash=sha256:7957b64583793042521f7f7c71c01626b3d32a17528eaab980eb8cdc3d4eec68 \ + --hash=sha256:7bba5ab7965619db7d6f5503133b8e2d8bfce9bb6754224ca64d19261cc52f7c \ + --hash=sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd \ + --hash=sha256:7e31afad20cd6837a5ac6965d95b44b0ff06e42a82b01a8d3dc606a07f0b7a2a \ + --hash=sha256:80f58ae2be100da0f525330ee274accd8892d1c125fea75076f60539d9a5f9cd \ + --hash=sha256:8416bb724db9accfa97bdb77245952494b1800c23e42defd46afb5c661c9af19 \ + --hash=sha256:8aa731138d6dfca4ab84501b72384e6c544bfb48cb87a0dd4d304df3246cac25 \ + --hash=sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd \ + --hash=sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682 \ + --hash=sha256:949cb4863a5d4847edeb47c5364b334e8cadf23a7cbdaa547d86098a4b093106 \ + --hash=sha256:9523d67d45334f9a1d62e423bd72be62b58d2289a50420ffffa9363763eab73f \ + --hash=sha256:963287e4b1bc463735c4056968a2dfa59bb831b6daba68bddd14f451191fe9e5 \ + --hash=sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc \ + --hash=sha256:a7a81724d5d90a2da7155d15d8b156ce57eaed7cdd622df813f36a8e612fd4c8 \ + --hash=sha256:b21b4c680594c8686bcd4cdda0fd3ea2567b9d42bcf1d1e3d92d39bcdb02e8f1 \ + --hash=sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1 \ + --hash=sha256:b2c419bf42ae40963fc27f70c59e24e9a97f5cf168dbce2c572f3c0ce3595912 \ + --hash=sha256:b5db0849c0e3da54822a5834f2dc51d7c51072d7f7d665014ee34600dc10889b \ + --hash=sha256:b6afa86c117b66034004ee83c5149c6dccf7cb88941f9d3a1640c7076577f2d4 \ + --hash=sha256:bca3f04b2f590a8211acdc3ca06649b65a7ed1e999437dccf095310be9d3ba4e \ + --hash=sha256:bdc6b277dcd27663f7fb76b6a5088424c66e0407c23e9884f80cd733f7d71b19 \ + --hash=sha256:c4bdc052a5d097f0a2e56d93aed97355f9f7a62ef9baa4f8517e43245434af9c \ + --hash=sha256:c6d3bdd020333688ee60559437021ed68a98a28fdd609b5af16de5dd58f90cba \ + --hash=sha256:c8e626b6bc9bdd2e8f7393b7d99f3daa2ca4022e6203662e70de7bb3604b21b9 \ + --hash=sha256:cec6b9b539539affc1f01a795c99574592a635ce22331b64f2b42e0af570659e \ + --hash=sha256:d57d731ecf492d3d011e65369f8330654f0875b19f646be5270d478e843d3b81 \ + --hash=sha256:d90d27953716ef206c42f166932b3dbb264dc638bbf32acae81b216ae35f566d \ + --hash=sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c \ + --hash=sha256:e08d9e096c416ddc34519241f97c201258b42639f2012d9547d8ae32921800dd \ + --hash=sha256:e3c9c894971f4ada3ded16a804ed4640e1f2b3e5239beaeec7c48296f39f4232 \ + --hash=sha256:e4b0c9f6a56aa94bb98b403e1f57a866f0b43abaa89757b24d4a4b3cd8643ced \ + --hash=sha256:ea3bed53d2ea8e5642e814a9e41f3e29420a8067874ba03ace8c0462e160490c \ + --hash=sha256:ee83fbac03a0896faf190177c938f94eb610b798d495a19d50997242c4eca685 \ + --hash=sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508 \ + --hash=sha256:f6074d3d3267ba1914c624b6e1fa3d8152648ff36b0ab77ddf83b92db488c30d \ + --hash=sha256:f67c5f0d64eba0fbbd6d2d6a79b0c43c5bc06f27564378fd5d716e0d40360068 \ + --hash=sha256:f75caed5b6d1fc271bb720a780c4199914267f7b865f9bf17826c4feccea582c # via pymilvus -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.12-requirements.txt b/sdk/python/requirements/py3.12-requirements.txt index de90b34c05d..7e85eaec765 100644 --- a/sdk/python/requirements/py3.12-requirements.txt +++ b/sdk/python/requirements/py3.12-requirements.txt @@ -14,15 +14,48 @@ anyio==4.13.0 \ # via # starlette # watchfiles +ast-serialize==0.4.0 \ + --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ + --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ + --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ + --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ + --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ + --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ + --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ + --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ + --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ + --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ + --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ + --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ + --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ + --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ + --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ + --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ + --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ + --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ + --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ + --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ + --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ + --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ + --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ + --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ + --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ + --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ + --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ + --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ + --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ + --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ + --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a + # via mypy attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 # via # jsonschema # referencing -bigtree==1.4.0 \ - --hash=sha256:d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea \ - --hash=sha256:e5ae2e948168da671d99601c9ed87ab3b48d9d4ea8a98f111e5748e98064c31c +bigtree==1.4.1 \ + --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ + --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) certifi==2026.4.22 \ --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ @@ -190,9 +223,9 @@ fsspec==2026.4.0 \ --hash=sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 \ --hash=sha256:301d8ac70ae90ef3ad05dcf94d6c3754a097f9b5fe4667d2787aa359ec7df7e4 # via dask -gunicorn==25.3.0 \ - --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ - --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 +gunicorn==26.0.0 \ + --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ + --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via # feast (pyproject.toml) # uvicorn-worker @@ -245,9 +278,9 @@ httptools==0.7.1 \ --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 # via uvicorn -idna==3.13 \ - --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ - --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 +idna==3.15 \ + --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ + --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc # via # anyio # requests @@ -263,97 +296,97 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.9.0 \ - --hash=sha256:07cf11f769831186eeac424376e6189f20ace4f7263e2134bdb9757340d84d4d \ - --hash=sha256:0a09c2f5869649101738653a9b7ab70cf045a1105ac66cbb8f4055e61df78f2d \ - --hash=sha256:0a1be03168b2691ba61927e299b352a6315189199ca18a57b733f86cb3cc8d38 \ - --hash=sha256:0b73e4266307e51c95e09c0750b7ec383c561d2e97d58e473f6f6a209952fbb8 \ - --hash=sha256:15cb151e52a044f06e54ac7f7b47adbfc89b5c8e2b63e1175a9d587c43e8942a \ - --hash=sha256:194fc1a32e1e21fe809d38b5faea66cc65eaa00217c8901fbdb99866938adbdb \ - --hash=sha256:1bf465d1e5b0a27713862441f6467b5ab76385f4ecf8f1f3a44f8aa3c695b4b6 \ - --hash=sha256:1c587494461ebd42229d0f1739f3aa34237dd9980623ecf1be8d3bcba79f4499 \ - --hash=sha256:224b9727eb8bc188bc3bcf29d969dba0cd61b01d9bac80c41575520cc4baabb2 \ - --hash=sha256:22a904cbdb678f7cb348c90d543d3c52f581663d687992fee47fd566dcbf5285 \ - --hash=sha256:2b8f5d00b49818f4e2b1667db994488b045835e0ac16fe2f924f3871bd2b8ac5 \ - --hash=sha256:2c3786f0f4490a5cd87f1ed6cefae833ad6b1060d52044ce0434a2e85893afd0 \ - --hash=sha256:2d03fa4fd277a7974c1978c92c374c57f44edeee163d147b477b143446ad1bf6 \ - --hash=sha256:2f8e12706dcb8ff6b3ed57514a19e45c49ad00bcd423e87b2b2e4b5f64578443 \ - --hash=sha256:3be322a15ee5e70b93b7a59cfd074614f22cc8c9ff18bd27f474e79137ea8d3b \ - --hash=sha256:3cc2917258e131ae5f958a4d872e07555b51cb7466a43433218061c74ef33745 \ - --hash=sha256:3f05d145df35dca5056a8bc3838e940efebd893a54b3e19b2dda39ceaa299bcb \ - --hash=sha256:3fe56e80badb66fdcde06bef81bbaa5bfcf6fbd7aefb86222d9e369c38c6b228 \ - --hash=sha256:42ff8a962554c350d4a83cf47d9b7b78b0e6ff7943e87df7cdfc97c07f3c016f \ - --hash=sha256:451daa98463b7695b0a30aa56bf637831ea559e7b8101ac2ef6382e8eb15e29c \ - --hash=sha256:465814ab157986acb9dfa5ccd7df944be5eefc0d08d31ec6e8d88bc71251d845 \ - --hash=sha256:4c4d0440a3a8e31d962340c3e1cc3fc9ee7febd34c8d8f770d06adb947779ea5 \ - --hash=sha256:4e3dda8345307fd7306db0ed0cb109a63a2c85ba780eb9dc2d09b2049a931f9c \ - --hash=sha256:5093043afb226ecfa1400120d1ebd4442b4f99977783e4f4f7248879009b227f \ - --hash=sha256:5112c2fb7c2eefefaeaf5c97fec81343ef44ee86a30dcfaa8223822fba6467b4 \ - --hash=sha256:527b5b820b47a09e09829051452bb0d1dd2122261254e2a6f674d12f1d793d54 \ - --hash=sha256:54d412e47c21b85865676ed0724e37a89e9593c2eee1e7367adf85bfad56ffb1 \ - --hash=sha256:56d65b583cf43b8cf4c8fbe1e1da20fa3076cc32a1149a141507af1062718236 \ - --hash=sha256:5ca8e133d799c948db2ab1afc081c333a825b5540475164726dcbf73537e5c2f \ - --hash=sha256:603138ee838ee1583f1b960b62d5d0007845c5c423feb68e44648b1359014e27 \ - --hash=sha256:63c12efcd160e1d14da11af0c46c0217473e1e0d2ae1acbccc83f561ea4c2a7b \ - --hash=sha256:657f8ba7b9eaaa82759a104137aed2a3ef7bc46ccfd43e0d89b04005b3e0a4cc \ - --hash=sha256:66b58fed90a545328e80d575467244de3741e088c1af928f0b489ebec3ef3858 \ - --hash=sha256:6788207daa0c19955d2b668f3294a368d19f67d9b5f274553fd073c1260cbb9f \ - --hash=sha256:703f4ae36d6240bfe24f542bac784c7e4194ec49c3ba5a994d02891649e2d85b \ - --hash=sha256:7202bdcac47d3a708271c4304a474a8605a4a9a4a709e954bf2d3241140aa938 \ - --hash=sha256:756775d25ec8345b837ab52effee3ad2f3b2dfd6bbee3e3f029c517bd5d8f05a \ - --hash=sha256:78042f6facfd98ecb25e9829c7e37cce23363d9d7c83bc5f72702c5059eb082b \ - --hash=sha256:789fff71757facc0738e8d89e3b84e4f0251c1c975e85e81b152cdaca927cc2d \ - --hash=sha256:7bc30ad339f4e1a01d4917d645e522a0bc0030644d8973f6346397c93ba1503f \ - --hash=sha256:7d429bdd4ac0ab17c8e4a8af0ed2a7440b16eba474909ab357131018fe8c7e71 \ - --hash=sha256:7d5c8a5929ac325729f6119802070b561f4db793dffc45e9ac750992a4ed4d22 \ - --hash=sha256:7e6274fd33fc5b2a14d41c9119629d3ff395849d8bcbc80cf637d9e8d2034da8 \ - --hash=sha256:80b25c7b570a86c03b5da69e665809deb39265476e8e21d96a9328f9762f9990 \ - --hash=sha256:81107843ed1836874b46b310f9b1816abcb89912af627868522461c3b7333c0f \ - --hash=sha256:8494cfc61e03542f2d381e71804990b3931175a29b9278fdb4a5459948778dc2 \ - --hash=sha256:850d6d03177e52700af605fd60db7f37dcb89782049a149674d1a9649c2138fd \ - --hash=sha256:8c6bc1384d9738781cfd41d09ad7f6e8af13cfea2c75ece6bd6d2566cdea2076 \ - --hash=sha256:90904fac73c478f4b83f4ed96c99c8208b75e6f9a8a1910548f69a00f1eaa671 \ - --hash=sha256:90e6d5420fc8a300518d4d2288154ff45005e920425c22cbbfe8330f3f754bd9 \ - --hash=sha256:928bd06eca2c2bbf4349e5b817f837509b0604342e65a502de1d50a7570afd15 \ - --hash=sha256:9b3e3bc363f71bda1639a4ee593cb78f7fbfeacc73411ec0d4c92f00730010a4 \ - --hash=sha256:9edcc35d1cae9fd5320171b1a838c7da8a5c968af31e82ecc3dff30b4be0957f \ - --hash=sha256:9fcb461fbf70654a52a7cc670e606f04449e2374c199b1825f754e16dacfedd8 \ - --hash=sha256:a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d \ - --hash=sha256:a361c9434a64d70a7dbb771d1de302c0cc9f13c0bffe1cf7e642152814b35265 \ - --hash=sha256:a4b25c6c25cac5d0d9d6d6da855195b254e0021e513e0249f0e3b444dc6e0e61 \ - --hash=sha256:a5af136bfba820d592f86c67affcef9b3ff4d4360ac3255e341e964489b48519 \ - --hash=sha256:a81eea9b999b985e4bacc650c4312805ea7008fd5e45e1bf221310176a7bcb3a \ - --hash=sha256:a9c63e04d003bc0fb6a03b348018b9a3002f98268200e22cc80f146beac5dc40 \ - --hash=sha256:aa95738a68cedd3a6f5492feddc513e2e166b50602958139e47bbdd82da0f5a7 \ - --hash=sha256:b0a2040f801406b93657a70b72fa12311063a319fee72ce98e1524da7200171f \ - --hash=sha256:b8bd70d5d816566a580d193326912f4a76ec2d28a97dc4cd4cc831c0af8e330e \ - --hash=sha256:b8da9f8035bb417770b1e1610526d87ad4fc58a2804dc4d79c53f6d2cf5a6eb9 \ - --hash=sha256:bc5518873822d2faa8ebdd2c1a4d7c8ef47b01a058495ab7924cb65bdbf5fc9a \ - --hash=sha256:c0d620e74897f8c2613b3c4e2e9c1e422eb46d2ddd07df540784d44117836af3 \ - --hash=sha256:c2640e23d2b7c98796f123ffd95cf2022c7777aa8a4a3b98b36c570d37e85eee \ - --hash=sha256:c81aef782380f0f13ead670aae01825eb653b44b046aa0e5ebbb79f76ed4aa11 \ - --hash=sha256:d4d16b608a1c43d7e33142099a75cd93af482dadce0bf82421e91cad077157f4 \ - --hash=sha256:d69fc39e627908f4c03297d5a88d9284b73f4d90b424461e32e8c2485e21c283 \ - --hash=sha256:d9da80e5b04acce03ced8ba6479a71c2a2edf535c2acc0d09c80d2f80f3bad15 \ - --hash=sha256:dd2c7e082b0b92e1baa4da28163a808672485617bc855cc22a2fd06978fa9084 \ - --hash=sha256:de7dac64e3eb832ffc7b840eb8f52f76420cde1b845be51b2a0f6b870890645e \ - --hash=sha256:e0785c2fb4a81e1aece366aa3e2e039f4a4d7d21aaaded5227d7f3c703427882 \ - --hash=sha256:e306d956cfa027fe041585f02a1602c32bfa6bb8ebea4899d373383295a6c62f \ - --hash=sha256:e78fb7419e07d98c2af4b8567b72b3eaf8cb05caad642e9963465569c8b2d87e \ - --hash=sha256:e9002e98dcb1c0a66723592520decd86238ddcef168b37ff6cfb559200b4b774 \ - --hash=sha256:e94cbc6ad9a6aeea46d775cbb11f361022f778a9cc8cc90af653d3a594b057ce \ - --hash=sha256:eea1b54943475f51698f85fa230c65ccac769f1e603b981be060ac5763d90927 \ - --hash=sha256:f100bfe2acf8a3689af9d0cc660d89f17286c9c795f9f18f7b62dd1a6b247ae6 \ - --hash=sha256:f162af66a2ed3f7d1d161a82ca584efd15acd9c1cff190a373458c32f7d42118 \ - --hash=sha256:f24b90b0e0c8cc9491fb1693ae91fe17cb7963153a1946395acdbdd5818429a4 \ - --hash=sha256:f29b68cd9714531672db62cc54f6e8ff981900f824d13fa0e00749189e13778e \ - --hash=sha256:f38bc489037eca88d6ebefc9c4d41a4e07c8e8b4de5188a9e6d290273ad7ebb1 \ - --hash=sha256:f3fd278f5e6bf7c75ccd6d12344eb686cc020712683363b66f46ac79d37c799f \ - --hash=sha256:f4003f70c56a5addd6aa0897f200dd59afd3bf7bcd5b3cce46dd21f925743bc2 \ - --hash=sha256:f48c963a76d71b9d7927eb817b543d0dccd52ab6648b99d37bd54f4cd475d856 \ - --hash=sha256:f819e0c6413e259a17a7c0d49f97f405abadd3c2a316a3b46c6440b7dbbedbb1 \ - --hash=sha256:fc5758e2b7a56532dc33e3c544d78cbaa9ecf0a0f2a2da2df882c1d6b99a317f \ - --hash=sha256:fcbdf2a9ca24e87bbebb47f1fe34e531ef06f104f98c9ccfc953a3f3344c567a +librt==0.11.0 \ + --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ + --hash=sha256:070aa8c26c0a74774317a72df8851facc7f0f012a5b406557ac56992d92e1ec8 \ + --hash=sha256:075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1 \ + --hash=sha256:0827efe7854718f04aaddf6496e96960a956e676fe1d0f04eb41511fd8ad06d5 \ + --hash=sha256:0add982e0e7b9fc14cf4b33789d5f13f66581889b88c2f58099f6ce8f92617bd \ + --hash=sha256:0cad8a4d6a8ff03c9b76f9414caccd78e7cfbc8a2e12fa334d8e1d9932753783 \ + --hash=sha256:0d1029d7e1ae1a7e647ed6fb5df8c4ce2dffefb7a9f5fd1376a4554d96dac09f \ + --hash=sha256:0dc56b1f8d06e60db362cc3fdae206681817f86ce4725d34511473487f12a34b \ + --hash=sha256:0ef69ac715f3cd8e5cd252cb2aebfa72c015492aacc339d5d7bf8fef3c62c677 \ + --hash=sha256:11bd19822431cc21af9f27374e7ae2e58103c7d98bda823536a6c47f6bb2bb3d \ + --hash=sha256:137e79445c896a0ea7b265f52d23954e05b64222ee1af69e2cb34219067cbb67 \ + --hash=sha256:140695816ddf3c86eb972981a26f35efd871c44b0c3aed44c8cd01749386617f \ + --hash=sha256:22bdf239b219d3993761a148ffa134b19e52e9989c84f845d5d7b71d70a17412 \ + --hash=sha256:258d73a0aa66a055e65b2e4d1b8cdb23b9d132c5bb915d9547d804fcaed116cc \ + --hash=sha256:28edb433edde181112a908c78907af28f964eabc15f4dd16c9d66c834302677c \ + --hash=sha256:2b481d846ac894c4e8403c5fd0e87c5d11d6499e404b474602508a224ff531c8 \ + --hash=sha256:2f10cf143e4a9bb0f4f5af568a00df94a2d69ef41c2579584454bb0fe5cc642c \ + --hash=sha256:32bcc918c0148eb7e3d57385125bac7e5f9e4359d05f07448b09f6f778c2f31c \ + --hash=sha256:40071fc5fe0ce8daa6de616702314a01e1250711682b0523d6ab8d4525910cb3 \ + --hash=sha256:41dc19fe150b69716c8ece4f76773a9e8813fe3e35e032a58b4d46423fb8d7c0 \ + --hash=sha256:461bbceede621f1ffb8839755f8663e886087ee7af16294cab7fb4d782c62eeb \ + --hash=sha256:46c60b61e308eb535fbd6fa622b1ee1bb2815691c1ad9c98bf7b84952ec3bc8d \ + --hash=sha256:4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd \ + --hash=sha256:4a9a237d13addb93715b6fee74023d5ee3469b53fce527626c0e088aa585805f \ + --hash=sha256:4ce1f21fbe589bc1afd7872dece84fb0e1144f794a288e58a10d2c54a55c43be \ + --hash=sha256:4e8bd98ea9c47ae90b319a087ab28dac493f1ffbc1ecd1f28fcdbf3b7e1108d1 \ + --hash=sha256:4ee278c769a713638cdacd4c0436d72156e75df3ebc0166ab2b9dc43acc386c9 \ + --hash=sha256:557183ddc36babe46b27dd60facbd5adb4492181a5be887587d57cda6e092f21 \ + --hash=sha256:5ba067f4aadae8fda802d91d2124c90c42195ff32d9161d3549e6d05cfe26f96 \ + --hash=sha256:5d63c855d86938d9de93e265c9bd8c705b51ec494de5738340ee93767a686e4b \ + --hash=sha256:5ddd17bd87b2c56ddd60e546a7984a2e64c4e8eab92fb4cf3830a48ad5469d51 \ + --hash=sha256:621db29691044bdeda22e789e482e1b0f3a985d90e3426c9c6d17606416205ea \ + --hash=sha256:624a40c4a4ad7773315c287276cd024509b2c66ff5904f504bfc08d2c70293ab \ + --hash=sha256:65ac3bc20f78aa0ee5ae84baa68917f89fef4af63e941084dd019a0d0e749f0c \ + --hash=sha256:6bd72d903911d995ab666dbd1871f8b1e80925a699af8063fbf50053329fb05f \ + --hash=sha256:6bf14feb84b05ae945277395451998c89c54d0def4070eb5c08de544930b245a \ + --hash=sha256:6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f \ + --hash=sha256:75672f0bc524ede266287d532d7923dbce94c7514ad07627bac3d0c6d92cc4d9 \ + --hash=sha256:7753e57d6e12d019c0d8786f1c09c709f4c3fcc57c3887b24e36e6c06ec938b7 \ + --hash=sha256:78dc31f7fdfe9c9d0eb0e8f42d139db230e826415bbcabd9f0e9faaaee909894 \ + --hash=sha256:78fddc31cd4d3caa897ad5d31f856b1faadc9474021ad6cb182b9018793e254e \ + --hash=sha256:7a80a71e1fda83cc752a9141e87aae7fef279538597564d670e9ce513f286192 \ + --hash=sha256:7aef3cf1d5af86e770ab04bfd993dfc4ae8b8c17f66fb77dd4a7d50de7bbb1a3 \ + --hash=sha256:7c39513d8b7477a2e1ed8c43fc21c524e8d5a0f8d4e8b7b074dbdbe7820a08e2 \ + --hash=sha256:7da327dacd7be8f8ec36547373550744a3cc0e536d54665cd83f8bcd961200e8 \ + --hash=sha256:7e82e642ab0f7608ce2fe53d76ca2280a9ee33a1b06556142c7c6fe80a86fc33 \ + --hash=sha256:83d3e1f72bd42f6c5c0b7daec530c3f829bd02db42c70b8ddf0c2d90a2459930 \ + --hash=sha256:84308fc49423ce6475d1c5d1985cd69a8ca9f0325fc7d5f81bb690a3f3625d4e \ + --hash=sha256:88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 \ + --hash=sha256:8ca8aa88751a775870b764e93bad5135385f563cb8dcee399abf034ea4d3cb47 \ + --hash=sha256:902e546ff044f579ff1c953ff5fce97b636fe9e3943996b2177710c6ef076f73 \ + --hash=sha256:92f7ff819c197fc30473190a12c2856f325ac90aabfccbeb2072d28cc2e234e3 \ + --hash=sha256:936c5995f3514a42111f20099397d8177c79b4d7e70961e396c6f5a0a3566766 \ + --hash=sha256:93d95bd45b7d58343d8b90d904450a545144eec19a002511163426f8ab1fae29 \ + --hash=sha256:94663a21534637f0e787ec2a2a756022df6e5b7b2335a5cdd7d8e33d68a2af89 \ + --hash=sha256:96f044bb325fd9cf1a723015638c219e9143f0dfbc0ca54c565df2b7fc748b44 \ + --hash=sha256:970b09f7044ea2b64c9da42fd3d335666518cfd1c6e8a182c95da73d0214b41e \ + --hash=sha256:993f028be9e96a08d31df3479ac80d99be374d17f3b78e4796b3fd3c913d4e89 \ + --hash=sha256:9bc0ca6ad9381cbe8e4aa6e5726e4c80c78115a6e9723c599ed1d73e092bc49d \ + --hash=sha256:9c028a9442a18e266955d364ce42259136e79a7ba14d773e0d778d5f70cd56f1 \ + --hash=sha256:9d36a51b3d93320b686588e27123f4995804dbf1bce81df78c02fc3c6eea9280 \ + --hash=sha256:9f1692105a02bcf853f355032a5fdc5494358ef83d8fd22d16de375c85cec3f5 \ + --hash=sha256:a9010e2ed5b3a9e158c5fd966b3ab7e834bb3d3aacc8f66c91dd4b57a3799230 \ + --hash=sha256:aa0dd688aab3f7914d3e6e5e3554978e0383312fb8e771d84be008a35b9ee548 \ + --hash=sha256:ab73e8db5e3f564d812c1f5c3a175930a5f9bc96ccb5e3b22a34d7858b401cf7 \ + --hash=sha256:ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 \ + --hash=sha256:aea3caa317752e3a466fa8af45d91ee0ea8c7fdd96e42b0a8dd9b76a7931eba1 \ + --hash=sha256:b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 \ + --hash=sha256:b87504f1690a23b9a2cca841191a04f83895d4fc2dd04df91d82b1a04ca2ad46 \ + --hash=sha256:bc3ce6b33c5828d9e80592011a5c584cb2ce86edbc4088405f70da47dc1d1b3b \ + --hash=sha256:bd43992b4473d42f12ff9e68326079f0696d9d4e6000e8f39a0238d482ba6ee2 \ + --hash=sha256:c1f708d8ae9c56cf38a903c44297243d2ec83fd82b396b977e0144a3e76217e3 \ + --hash=sha256:cae74872be221df4374d10fec61f93ed1513b9546ea84f2c0bf73ab3e9bd0b03 \ + --hash=sha256:cca6644054e78746d8d4ef238681f9c34ff8b584fe6b988ecebb8db3b15e622a \ + --hash=sha256:d00f3ac06a2a8b246327f11e186a53a100a4d5c7ed52346367e5ec751d51586c \ + --hash=sha256:d1b36540d7aaf9b9101b3a6f376c8d8e9f7a9aec93ed05918f2c69d493ffef72 \ + --hash=sha256:d2277a05f6dcb9fd13db9566aac4fabd68c3ea1ea46ee5567d4eef8efa495a2f \ + --hash=sha256:d5b0eea49f5562861ee8d757a32ef7d559c1d35be2aaaa1ec28941d74c9ffc8a \ + --hash=sha256:dc329359321b67d24efdf4bc69012b0597001649544db662c001db5a0184794c \ + --hash=sha256:de3bf945454d032f9e390b85c4072e0a0570bf825421c8be0e71209fa65e1abe \ + --hash=sha256:dec7db73758c2b54953fd8b7fe348c45188fe26b39ee18446196edd08453a5d4 \ + --hash=sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253 \ + --hash=sha256:efbb343ab2ce3540f4ecbe6315d677ed70f37cd9a72b1e58066c918ca83acbaa \ + --hash=sha256:f230cb1cbc9faaa616f9a678f530ebcf186e414b6bcbd88b960e4ba1b92428d5 \ + --hash=sha256:f37aa505b3cf60701562eddb32df74b12a9e380c207fd8b06dd157a943ac7ea0 \ + --hash=sha256:f5fb36b8c6c63fdcbb1d526d94c0d1331610d43f4118cc1beb4efef4f3faacb2 \ + --hash=sha256:f8e3e8056dd674e279741485e2e512d6e9a751c7455809d0114e6ebf8d781085 \ + --hash=sha256:f9743fc99135d5f78d2454435615f6dec0473ca507c26ce9d92b10b562a280d3 \ + --hash=sha256:fa475675db22290c3158e1d42326d0f5a65f04f44a0e68c3630a25b53560fb9c \ + --hash=sha256:ff0fbaf5f44a21beeb0110f2ab64f45135a9536a834b79c0d1ef018f2786bbfa # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -559,51 +592,51 @@ mmh3==5.2.1 \ --hash=sha256:fceef7fe67c81e1585198215e42ad3fdba3a25644beda8fbdaf85f4d7b93175a \ --hash=sha256:fd96476f04db5ceba1cfa0f21228f67c1f7402296f0e73fee3513aa680ad237b # via feast (pyproject.toml) -mypy==1.20.2 \ - --hash=sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb \ - --hash=sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98 \ - --hash=sha256:1e1c12f6d2db3d78b909b5f77513c11eb7f2dd2782b96a3ab6dffc7d44575c99 \ - --hash=sha256:20175a1c0f49863946ec20b7f63255768058ac4f07d2b9ded6a6b46cfb5a9100 \ - --hash=sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744 \ - --hash=sha256:2a4102b03bb7481d9a91a6da8d174740c9c8c4401024684b9ca3b7cc5e49852f \ - --hash=sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609 \ - --hash=sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6 \ - --hash=sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c \ - --hash=sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30 \ - --hash=sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4 \ - --hash=sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b \ - --hash=sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558 \ - --hash=sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2 \ - --hash=sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102 \ - --hash=sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc \ - --hash=sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c \ - --hash=sha256:6e2b469efd811707bc530fd1effef0f5d6eebcb7fe376affae69025da4b979a2 \ - --hash=sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517 \ - --hash=sha256:785b08db19c9f214dc37d65f7c165d19a30fcecb48abfa30f31b01b5acaabb58 \ - --hash=sha256:7b0e817b518bff7facd7f85ea05b643ad8bdcce684cf29784987b0a7c8e1f997 \ - --hash=sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6 \ - --hash=sha256:89dce27e142d25ffbc154c1819383b69f2e9234dc4ed4766f42e0e8cb264ab5c \ - --hash=sha256:913485a03f1bcf5d279409a9d2b9ed565c151f61c09f29991e5faa14033da4c8 \ - --hash=sha256:97d7b9a485b40f8ca425460e89bf1da2814625b2da627c0dcc6aa46c92631d14 \ - --hash=sha256:9bcb8aa397ff0093c824182fd76a935a9ba7ad097fcbef80ae89bf6c1731d8ec \ - --hash=sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee \ - --hash=sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066 \ - --hash=sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563 \ - --hash=sha256:a95a9248b0c6fd933a442c03c3b113c3b61320086b88e2c444676d3fd1ca3330 \ - --hash=sha256:baf593f2765fa3a6b1ef95807dbaa3d25b594f6a52adcc506a6b9cb115e1be67 \ - --hash=sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15 \ - --hash=sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac \ - --hash=sha256:c3bae4f855d965b5453784300c12ffc63a548304ac7f99e55d4dc7c898673aa3 \ - --hash=sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254 \ - --hash=sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3 \ - --hash=sha256:cf5a4db6dca263010e2c7bff081c89383c72d187ba2cf4c44759aac970e2f0c4 \ - --hash=sha256:d52ad8d78522da1d308789df651ee5379088e77c76cb1994858d40a426b343b9 \ - --hash=sha256:e061b58443f1736f8a37c48978d7ab581636d6ab03e3d4f99e3fa90463bb9382 \ - --hash=sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943 \ - --hash=sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924 \ - --hash=sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665 \ - --hash=sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026 \ - --hash=sha256:f376e37f9bf2a946872fc5fd1199c99310748e3c26c7a26683f13f8bdb756cbd +mypy==2.1.0 \ + --hash=sha256:022c771234936ceac541ebaf836fe9e2abeb3f5e09aff21588fe543ff006fe21 \ + --hash=sha256:0b1a5260c95aa443083f9ed3592662941951bca3d4ca224a5dc517c38b7cf666 \ + --hash=sha256:11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc \ + --hash=sha256:1a293c534adb55271fef24a26da04b855540a8c13cc07bc5917b9fd2c394f2ca \ + --hash=sha256:20509760fd791c51579d573153407d226385ec1f8bcce55d730b354f3336bc22 \ + --hash=sha256:244358bf1c0da7722230bce60683d52e8e9fd030554926f15b747a84efb5b3af \ + --hash=sha256:35aac3bb114e03888f535d5eb51b8bafbb3266586b599da1940f9b1be3ec5bd5 \ + --hash=sha256:3712c20deed54e814eaaa825603bada8ea1c390670a397c95b98405347acc563 \ + --hash=sha256:47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 \ + --hash=sha256:498207db725cec88829a6a5c2fc771205fd043719ef98bc49aba8fb9fc4e6d57 \ + --hash=sha256:49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f \ + --hash=sha256:4ec7c57657493c7a75534df2751c8ae2cda383c16ecc55d2106c54476b1b16f6 \ + --hash=sha256:4f910fe825376a7b66ef7ca8c98e5a149e8cd64c19ae71d84047a74ee060d4e6 \ + --hash=sha256:5431d42af987ebd92ba2f71d45c85ed41d8e6ca9f5fd209a69f68f707d2469e5 \ + --hash=sha256:5fdf2941a07434af755837d9880f7d7d25f1dacb1af9dcd4b9b66f2220a3024e \ + --hash=sha256:6753d0c1fdd6b1a23b9e4f283ce80b2153b724adcb2653b20b85a8a28ac6436b \ + --hash=sha256:7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 \ + --hash=sha256:7406f4d048e71e576f5356d317e5b0a9e666dfd966bd99f9d14ca06e1a341538 \ + --hash=sha256:761be68e023ef5d94678772396a8af1220030f80837a3afd8d0aef3b419666f4 \ + --hash=sha256:767fe8c66dc3e01e19e1737d4c38ebefead16125e1b8e58ad421903b376f5c65 \ + --hash=sha256:7d5e5cad0efeba72b93cd17490cc0d69c5ac9ca132994fe3fb0314808aeeb83e \ + --hash=sha256:81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633 \ + --hash=sha256:82208da9e09414d520e912d3e462d454854bed0810b71540bb016dcbca7308fd \ + --hash=sha256:8de55a8c861f2a49331f807be98d90caeceeef520bde13d43a160207f8af613e \ + --hash=sha256:8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 \ + --hash=sha256:98ebb6589bb3b6d0c6f0c459d53ca55b8091fbc13d277c4041c885392e8195e8 \ + --hash=sha256:a663814603a5c563fb87a4f96fb473eeb30d1f5a4885afcf44f9db000a366289 \ + --hash=sha256:a683016b16fe2f572dc04c72be7ee0504ac1605a265d0200f5cea695fb788f41 \ + --hash=sha256:aea7f7a8a55b459c34275fc468ada6ca7c173a5e43a68f5dbe588a563d8a06b8 \ + --hash=sha256:b33b6cd332695bba180d55e717a79d3038e479a2c49cc5eb3d53603409b9a5d7 \ + --hash=sha256:b84802e7b5a6daf1f5e15bc9fcd7ddae77be13981ffab037f1c67bb84d67d135 \ + --hash=sha256:bf03e12003084a67395184d3eb8cbd6a489dc3655b5664b28c210a9e2403ab0b \ + --hash=sha256:c209a90853081ff01d01ee895cafe10f7db1474e0d95beaeef0f6c1db9119bbd \ + --hash=sha256:c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef \ + --hash=sha256:c989640253f0d76843e9c6c1bbf4bd48c5e85ada61bde4beb37cb3eca035685e \ + --hash=sha256:d57a90ae5e872138a425ec328edbc9b235d1934c4377881a33ec05b341acc9a8 \ + --hash=sha256:d8161b6ff4392410023224f0969d17db93e1e154bc3e4ba62598e720723ae211 \ + --hash=sha256:e0210d626fc8b31ccc90233754c7bc90e1f43205e85d96387f7db1285b55c398 \ + --hash=sha256:e195b817c13f02352a9c124301f9f30f078405444679b6753c1b96b6eed37285 \ + --hash=sha256:e583edc957cfb0deb142079162ae826f58449b116c1d442f2d91c69d9fced081 \ + --hash=sha256:e79ebc1b904b84f0310dff7469655a9c36c7a68bddb37bdd42b67a332df61d08 \ + --hash=sha256:ecfe70d43775ab99562ab128ce49854a362044c9f894961f68f898c23cb7429d \ + --hash=sha256:fcaa0e479066e31f7cceb6a3bea39cb22b2ff51a6b2f24f193d19179ba17c389 \ + --hash=sha256:ff715050c127d724fd260a2e666e7747fdd83511c0c47d449d98238970aef780 # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -759,9 +792,9 @@ pathspec==1.1.1 \ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 # via mypy -prometheus-client==0.25.0 \ - --hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \ - --hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1 +prometheus-client==0.24.1 \ + --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ + --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) protobuf==7.34.1 \ --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ @@ -850,133 +883,133 @@ pyarrow==24.0.0 \ # via # feast (pyproject.toml) # dask -pydantic==2.13.3 \ - --hash=sha256:6db14ac8dfc9a1e57f87ea2c0de670c251240f43cb0c30a5130e9720dc612927 \ - --hash=sha256:af09e9d1d09f4e7fe37145c1f577e1d61ceb9a41924bf0094a36506285d0a84d +pydantic==2.13.4 \ + --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ + --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via # feast (pyproject.toml) # fastapi -pydantic-core==2.46.3 \ - --hash=sha256:0087084960f209a9a4af50ecd1fb063d9ad3658c07bb81a7a53f452dacbfb2ba \ - --hash=sha256:031bb17f4885a43773c8c763089499f242aee2ea85cf17154168775dccdecf35 \ - --hash=sha256:06d5d8820cbbdb4147578c1fe7ffcd5b83f34508cb9f9ab76e807be7db6ff0a4 \ - --hash=sha256:07bc6d2a28c3adb4f7c6ae46aa4f2d2929af127f587ed44057af50bf1ce0f505 \ - --hash=sha256:0c9ff69140423eea8ed2d5477df3ba037f671f5e897d206d921bc9fdc39613e7 \ - --hash=sha256:1105677a6df914b1fb71a81b96c8cce7726857e1717d86001f29be06a25ee6f8 \ - --hash=sha256:1108da631e602e5b3c38d6d04fe5bb3bfa54349e6918e3ca6cf570b2e2b2f9d4 \ - --hash=sha256:12bc98de041458b80c86c56b24df1d23832f3e166cbaff011f25d187f5c62c37 \ - --hash=sha256:13afdd885f3d71280cf286b13b310ee0f7ccfefd1dbbb661514a474b726e2f25 \ - --hash=sha256:17eaface65d9fc5abb940003020309c1bf7a211f5f608d7870297c367e6f9022 \ - --hash=sha256:1da3786b8018e60349680720158cc19161cc3b4bdd815beb0a321cd5ce1ad5b1 \ - --hash=sha256:23cbdb3aaa74dfe0837975dbf69b469753bbde8eacace524519ffdb6b6e89eb7 \ - --hash=sha256:2798b6ba041b9d70acfb9071a2ea13c8456dd1e6a5555798e41ba7b0790e329c \ - --hash=sha256:27f9067c3bfadd04c55484b89c0d267981b2f3512850f6f66e1e74204a4e4ce3 \ - --hash=sha256:28b5f2ef03416facccb1c6ef744c69793175fd27e44ef15669201601cf423acb \ - --hash=sha256:28e8cf2f52d72ced402a137145923a762cbb5081e48b34312f7a0c8f55928ec3 \ - --hash=sha256:28ed528c45446062ee66edb1d33df5d88828ae167de76e773a3c7f64bd14e976 \ - --hash=sha256:2b8e4f2bbdf71415c544b4b1138b8060db7b6611bc927e8064c769f64bed651c \ - --hash=sha256:2f40e4246676beb31c5ce77c38a55ca4e465c6b38d11ea1bd935420568e0b1ab \ - --hash=sha256:3481bd1341dc85779ee506bc8e1196a277ace359d89d28588a9468c3ecbe63fa \ - --hash=sha256:3612edf65c8ea67ac13616c4d23af12faef1ae435a8a93e5934c2a0cbbdd1fd6 \ - --hash=sha256:367508faa4973b992b271ba1494acaab36eb7e8739d1e47be5035fb1ea225396 \ - --hash=sha256:3861f1731b90c50a3266316b9044f5c9b405eecb8e299b0a7120596334e4fe9c \ - --hash=sha256:3d08782c4045f90724b44c95d35ebec0d67edb8a957a2ac81d5a8e4b8a200495 \ - --hash=sha256:41c178f65b8c29807239d47e6050262eb6bf84eb695e41101e62e38df4a5bc2c \ - --hash=sha256:4335e87c7afa436a0dfa899e138d57a72f8aad542e2cf19c36fb428461caabd0 \ - --hash=sha256:4b068543bdb707f5d935dab765d99227aa2545ef2820935f2e5dd801795c7dbd \ - --hash=sha256:4de88889d7e88d50d40ee5b39d5dac0bcaef9ba91f7e536ac064e6b2834ecccf \ - --hash=sha256:4e9d76736da5f362fabfeea6a69b13b7f2be405c6d6966f06b2f6bfff7e64531 \ - --hash=sha256:57697d7c056aca4bbb680200f96563e841a6386ac1129370a0102592f4dddff5 \ - --hash=sha256:57a973eae4665352a47cf1a99b4ee864620f2fe663a217d7a8da68a1f3a5bfda \ - --hash=sha256:5ad3c826fe523e4becf4fe39baa44286cff85ef137c729a2c5e269afbfd0905d \ - --hash=sha256:5c024e08c0ba23e6fd68c771a521e9d6a792f2ebb0fa734296b36394dc30390e \ - --hash=sha256:5dcbbcf4d22210ced8f837c96db941bdb078f419543472aca5d9a0bb7cddc7df \ - --hash=sha256:5dfd51cf457482f04ec49491811a2b8fd5b843b64b11eecd2d7a1ee596ea78a6 \ - --hash=sha256:60e5f66e12c4f5212d08522963380eaaeac5ebd795826cfd19b2dfb0c7a52b9c \ - --hash=sha256:610eda2e3838f401105e6326ca304f5da1e15393ae25dacae5c5c63f2c275b13 \ - --hash=sha256:6529d1d128321a58d30afcc97b49e98836542f68dd41b33c2e972bb9e5290536 \ - --hash=sha256:6645ce7eec4928e29a1e3b3d5c946621d105d3e79f0c9cddf07c2a9770949287 \ - --hash=sha256:68cc7866ed863db34351294187f9b729964c371ba33e31c26f478471c52e1ed0 \ - --hash=sha256:68ef2f623dda6d5a9067ac014e406c020c780b2a358930a7e5c1b73702900720 \ - --hash=sha256:69a868ef3ff206343579021c40faf3b1edc64b1cc508ff243a28b0a514ccb050 \ - --hash=sha256:6dff8cc884679df229ebc6d8eb2321ea6f8e091bc7d4886d4dc2e0e71452843c \ - --hash=sha256:6e42d83d1c6b87fa56b521479cff237e626a292f3b31b6345c15a99121b454c1 \ - --hash=sha256:706d9d0ce9cf4593d07270d8e9f53b161f90c57d315aeec4fb4fd7a8b10240d8 \ - --hash=sha256:75a519dab6d63c514f3a81053e5266c549679e4aa88f6ec57f2b7b854aceb1b0 \ - --hash=sha256:77706aeb41df6a76568434701e0917da10692da28cb69d5fb6919ce5fdb07374 \ - --hash=sha256:79f561438481f28681584b89e2effb22855e2179880314bcddbf5968e935e807 \ - --hash=sha256:830d1247d77ad23852314f069e9d7ddafeec5f684baf9d7e7065ed46a049c4e6 \ - --hash=sha256:831eb19aa789a97356979e94c981e5667759301fb708d1c0d5adf1bc0098b873 \ - --hash=sha256:83d002b97072a53ea150d63e0a3adfae5670cef5aa8a6e490240e482d3b22e57 \ - --hash=sha256:85348b8f89d2c3508b65b16c3c33a4da22b8215138d8b996912bb1532868885f \ - --hash=sha256:8690eba565c6d68ffd3a8655525cbdd5246510b44a637ee2c6c03a7ebfe64d3c \ - --hash=sha256:87082cd65669a33adeba5470769e9704c7cf026cc30afb9cc77fd865578ebaad \ - --hash=sha256:8940562319bc621da30714617e6a7eaa6b98c84e8c685bcdc02d7ed5e7c7c44e \ - --hash=sha256:91249bcb7c165c2fb2a2f852dbc5c91636e2e218e75d96dfdd517e4078e173dd \ - --hash=sha256:93fd339f23408a07e98950a89644f92c54d8729719a40b30c0a30bb9ebc55d23 \ - --hash=sha256:9715525891ed524a0a1eb6d053c74d4d4ad5017677fb00af0b7c2644a31bae46 \ - --hash=sha256:975c267cff4f7e7272eacbe50f6cc03ca9a3da4c4fbd66fffd89c94c1e311aa1 \ - --hash=sha256:99421e7684a60f7f3550a1d159ade5fdff1954baedb6bdd407cba6a307c9f27d \ - --hash=sha256:9be3e221bdc6d69abf294dcf7aff6af19c31a5cdcc8f0aa3b14be29df4bd03b1 \ - --hash=sha256:9ce92e58abc722dac1bf835a6798a60b294e48eb0e625ec9fd994b932ac5feee \ - --hash=sha256:9d2e32edcc143bc01e95300671915d9ca052d4f745aa0a49c48d4803f8a85f2c \ - --hash=sha256:9d2f400712a99a013aff420ef1eb9be077f8189a36c1e3ef87660b4e1088a874 \ - --hash=sha256:9f247596366f4221af52beddd65af1218797771d6989bc891a0b86ccaa019168 \ - --hash=sha256:a03e6467f0f5ab796a486146d1b887b2dc5e5f9b3288898c1b1c3ad974e53e4a \ - --hash=sha256:a35cc284c8dd7edae8a31533713b4d2467dfe7c4f1b5587dd4031f28f90d1d13 \ - --hash=sha256:a3b11c812f61b3129c4905781a2601dfdfdea5fe1e6c1cfb696b55d14e9c054f \ - --hash=sha256:a642ac886ecf6402d9882d10c405dcf4b902abeb2972cd5fb4a48c83cd59279a \ - --hash=sha256:a6cd87cb1575b1ad05ba98894c5b5c96411ef678fa2f6ed2576607095b8d9789 \ - --hash=sha256:a712c7118e6c5ea96562f7b488435172abb94a3c53c22c9efc1412264a45cbbe \ - --hash=sha256:a7610b6a5242a6c736d8ad47fd5fff87fcfe8f833b281b1c409c3d6835d9227f \ - --hash=sha256:ab124d49d0459b2373ecf54118a45c28a1e6d4192a533fbc915e70f556feb8e5 \ - --hash=sha256:ac5ec7fb9b87f04ee839af2d53bcadea57ded7d229719f56c0ed895bff987943 \ - --hash=sha256:aed19d0c783886d5bd86d80ae5030006b45e28464218747dcf83dabfdd092c7b \ - --hash=sha256:af8653713055ea18a3abc1537fe2ebc42f5b0bbb768d1eb79fd74eb47c0ac089 \ - --hash=sha256:afa3aa644f74e290cdede48a7b0bee37d1c35e71b05105f6b340d484af536d9b \ - --hash=sha256:b00b76f7142fc60c762ce579bd29c8fa44aaa56592dd3c54fab3928d0d4ca6ff \ - --hash=sha256:b11b59b3eee90a80a36701ddb4576d9ae31f93f05cb9e277ceaa09e6bf074a67 \ - --hash=sha256:b12dd51f1187c2eb489af8e20f880362db98e954b54ab792fa5d92e8bcc6b803 \ - --hash=sha256:b40ddd51e7c44b28cfaef746c9d3c506d658885e0a46f9eeef2ee815cbf8e045 \ - --hash=sha256:b504bda01bafc69b6d3c7a0c7f039dcf60f47fab70e06fe23f57b5c75bdc82b8 \ - --hash=sha256:b5b9c6cf08a8a5e502698f5e153056d12c34b8fb30317e0c5fd06f45162a6346 \ - --hash=sha256:b675ab0a0d5b1c8fdb81195dc5bcefea3f3c240871cdd7ff9a2de8aa50772eb2 \ - --hash=sha256:b6cdf19bf84128d5e7c37e8a73a0c5c10d51103a650ac585d42dd6ae233f2b7f \ - --hash=sha256:bcf2a8b2982a6673693eae7348ef3d8cf3979c1d63b54fca7c397a635cc68687 \ - --hash=sha256:bd2aab0e2e9dc2daf36bd2686c982535d5e7b1d930a1344a7bb6e82baab42a76 \ - --hash=sha256:c3212fda0ee959c1dd04c60b601ec31097aaa893573a3a1abd0a47bcac2968c1 \ - --hash=sha256:cc0988cb29d21bf4a9d5cf2ef970b5c0e38d8d8e107a493278c05dc6c1dda69f \ - --hash=sha256:cc7e8c32db809aa0f6ea1d6869ebc8518a65d5150fdfad8bcae6a49ae32a22e2 \ - --hash=sha256:cca67d52a5c7a16aed2b3999e719c4bcf644074eac304a5d3d62dd70ae7d4b2c \ - --hash=sha256:ced3310e51aa425f7f77da8bbbb5212616655bedbe82c70944320bc1dbe5e018 \ - --hash=sha256:cf489cf8986c543939aeee17a09c04d6ffb43bfef8ca16fcbcc5cfdcbed24dba \ - --hash=sha256:d0793c90c1a3c74966e7975eaef3ed30ebdff3260a0f815a62a22adc17e4c01c \ - --hash=sha256:d0fe3dce1e836e418f912c1ad91c73357d03e556a4d286f441bf34fed2dbeecf \ - --hash=sha256:d11058e3201527d41bc6b545c79187c9e4bf85e15a236a6007f0e991518882b7 \ - --hash=sha256:d2d0aead851b66f5245ec0c4fb2612ef457f8bbafefdf65a2bf9d6bac6140f47 \ - --hash=sha256:d56bdb4af1767cc15b0386b3c581fdfe659bb9ee4a4f776e92c1cd9d074000d6 \ - --hash=sha256:dcda6583921c05a40533f982321532f2d8db29326c7b95c4026941fa5074bd79 \ - --hash=sha256:dd81f6907932ebac3abbe41378dac64b2380db1287e2aa64d8d88f78d170f51a \ - --hash=sha256:de3a5c376f8cd94da9a1b8fd3dd1c16c7a7b216ed31dc8ce9fd7a22bf13b836e \ - --hash=sha256:de885175515bcfa98ae618c1df7a072f13d179f81376c8007112af20567fd08a \ - --hash=sha256:e29908922ce9da1a30b4da490bd1d3d82c01dcfdf864d2a74aacee674d0bfa34 \ - --hash=sha256:e480080975c1ef7f780b8f99ed72337e7cc5efea2e518a20a692e8e7b278eb8b \ - --hash=sha256:e61ea8e9fff9606d09178f577ff8ccdd7206ff73d6552bcec18e1033c4254b85 \ - --hash=sha256:ec638c5d194ef8af27db69f16c954a09797c0dc25015ad6123eb2c73a4d271ca \ - --hash=sha256:ed42e6cc8e1b0e2b9b96e2276bad70ae625d10d6d524aed0c93de974ae029f9f \ - --hash=sha256:f00a0961b125f1a47af7bcc17f00782e12f4cd056f83416006b30111d941dfa3 \ - --hash=sha256:f13936129ce841f2a5ddf6f126fea3c43cd128807b5a59588c37cf10178c2e64 \ - --hash=sha256:f1771ce258afb3e4201e67d154edbbae712a76a6081079fe247c2f53c6322c22 \ - --hash=sha256:f1f8338dd7a7f31761f1f1a3c47503a9a3b34eea3c8b01fa6ee96408affb5e72 \ - --hash=sha256:f64b5537ac62b231572879cd08ec05600308636a5d63bcbdb15063a466977bec \ - --hash=sha256:f80a55484b8d843c8ada81ebf70a682f3f00a3d40e378c06cf17ecb44d280d7d \ - --hash=sha256:f91c0aff3e3ee0928edd1232c57f643a7a003e6edf1860bc3afcdc749cb513f3 \ - --hash=sha256:fa3eb7c2995aa443687a825bc30395c8521b7c6ec201966e55debfd1128bcceb \ - --hash=sha256:fb528e295ed31570ac3dcc9bfdd6e0150bc11ce6168ac87a8082055cf1a67395 \ - --hash=sha256:fc331a5314ffddd5385b9ee9d0d2fee0b13c27e0e02dad71b1ae5d6561f51eeb \ - --hash=sha256:fd35aa21299def8db7ef4fe5c4ff862941a9a158ca7b63d61e66fe67d30416b4 \ - --hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \ - --hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56 +pydantic-core==2.46.4 \ + --hash=sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0 \ + --hash=sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262 \ + --hash=sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda \ + --hash=sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0 \ + --hash=sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e \ + --hash=sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b \ + --hash=sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594 \ + --hash=sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29 \ + --hash=sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2 \ + --hash=sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c \ + --hash=sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d \ + --hash=sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398 \ + --hash=sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d \ + --hash=sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3 \ + --hash=sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f \ + --hash=sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb \ + --hash=sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7 \ + --hash=sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5 \ + --hash=sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9 \ + --hash=sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 \ + --hash=sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4 \ + --hash=sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b \ + --hash=sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d \ + --hash=sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df \ + --hash=sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2 \ + --hash=sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0 \ + --hash=sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519 \ + --hash=sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd \ + --hash=sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7 \ + --hash=sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac \ + --hash=sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6 \ + --hash=sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565 \ + --hash=sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898 \ + --hash=sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb \ + --hash=sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928 \ + --hash=sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6 \ + --hash=sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3 \ + --hash=sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a \ + --hash=sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596 \ + --hash=sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987 \ + --hash=sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e \ + --hash=sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d \ + --hash=sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712 \ + --hash=sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008 \ + --hash=sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd \ + --hash=sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1 \ + --hash=sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be \ + --hash=sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea \ + --hash=sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292 \ + --hash=sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33 \ + --hash=sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3 \ + --hash=sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4 \ + --hash=sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b \ + --hash=sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826 \ + --hash=sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac \ + --hash=sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7 \ + --hash=sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d \ + --hash=sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf \ + --hash=sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4 \ + --hash=sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc \ + --hash=sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15 \ + --hash=sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3 \ + --hash=sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b \ + --hash=sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914 \ + --hash=sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04 \ + --hash=sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c \ + --hash=sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b \ + --hash=sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9 \ + --hash=sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce \ + --hash=sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4 \ + --hash=sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a \ + --hash=sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f \ + --hash=sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424 \ + --hash=sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894 \ + --hash=sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9 \ + --hash=sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76 \ + --hash=sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201 \ + --hash=sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb \ + --hash=sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109 \ + --hash=sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 \ + --hash=sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848 \ + --hash=sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526 \ + --hash=sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0 \ + --hash=sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01 \ + --hash=sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458 \ + --hash=sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e \ + --hash=sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba \ + --hash=sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a \ + --hash=sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39 \ + --hash=sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c \ + --hash=sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000 \ + --hash=sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b \ + --hash=sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf \ + --hash=sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4 \ + --hash=sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd \ + --hash=sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28 \ + --hash=sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 \ + --hash=sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30 \ + --hash=sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983 \ + --hash=sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1 \ + --hash=sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76 \ + --hash=sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 \ + --hash=sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4 \ + --hash=sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7 \ + --hash=sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c \ + --hash=sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066 \ + --hash=sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3 \ + --hash=sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02 \ + --hash=sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89 \ + --hash=sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50 \ + --hash=sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76 \ + --hash=sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49 \ + --hash=sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b \ + --hash=sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d \ + --hash=sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7 \ + --hash=sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4 \ + --hash=sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c \ + --hash=sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e \ + --hash=sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff \ + --hash=sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae # via pydantic pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ @@ -994,9 +1027,9 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via uvicorn -pytz==2026.1.post1 \ - --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ - --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a +pytz==2026.2 \ + --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ + --hash=sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a # via pandas pyyaml==6.0.3 \ --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ @@ -1082,9 +1115,9 @@ referencing==0.37.0 \ # via # jsonschema # jsonschema-specifications -requests==2.33.1 \ - --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ - --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a +requests==2.34.2 \ + --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ + --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via feast (pyproject.toml) rpds-py==0.30.0 \ --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ @@ -1300,9 +1333,9 @@ tqdm==4.67.3 \ --hash=sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb \ --hash=sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf # via feast (pyproject.toml) -typeguard==4.5.1 \ - --hash=sha256:44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 \ - --hash=sha256:f6f8ecbbc819c9bc749983cc67c02391e16a9b43b8b27f15dc70ed7c4a007274 +typeguard==4.5.2 \ + --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ + --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1328,9 +1361,9 @@ tzdata==2026.2 \ --hash=sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10 \ --hash=sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7 # via pandas -urllib3==2.6.3 \ - --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ - --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 +urllib3==2.7.0 \ + --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ + --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ From f77981c3a0dc4637bfc6c51178ad53e8789a07d1 Mon Sep 17 00:00:00 2001 From: Chaitany patel Date: Tue, 21 Apr 2026 17:33:04 +0530 Subject: [PATCH 22/59] feat: Expose registry endpoints on feature server for MCP access MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mount the existing REST registry routers under /registry on the feature server so that fastapi_mcp automatically exposes registry introspection (list/get for entities, feature views, data sources, feature services, permissions, projects, saved datasets, lineage, search) as MCP tools. The RegistryServer is created in-process from store.registry — no external registry server is required. Auth is enforced via inject_user_details on every mounted router. Made-with: Cursor Signed-off-by: Chaitany patel Made-with: Cursor --- .secrets.baseline | 6 +- .../03-serving-and-observability.md | 28 +++++ .../feast-operator/04-registry-topology.md | 27 +++++ docs/reference/feature-store-yaml.md | 23 ++++ .../api/v1/featurestore_types.go | 6 + .../api/v1/zz_generated.deepcopy.go | 5 + .../feast-operator.clusterserviceversion.yaml | 2 +- .../manifests/feast.dev_featurestores.yaml | 50 +++++++++ .../crd/bases/feast.dev_featurestores.yaml | 56 ++++++++++ .../config/samples/v1_featurestore_mcp.yaml | 7 ++ infra/feast-operator/dist/install.yaml | 56 ++++++++++ infra/feast-operator/docs/api/markdown/ref.md | 3 + .../featurestore_controller_test.go | 103 ++++++++++++++++++ .../controller/services/repo_config.go | 9 ++ .../controller/services/repo_config_test.go | 60 ++++++++++ .../controller/services/services_types.go | 6 + .../api/registry/rest/rest_registry_server.py | 15 +++ sdk/python/feast/repo_config.py | 10 ++ .../infra/feature_servers/test_mcp_server.py | 65 +++++++++++ 19 files changed, 533 insertions(+), 4 deletions(-) diff --git a/.secrets.baseline b/.secrets.baseline index 3d012df0987..e0030466f1f 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -934,7 +934,7 @@ "filename": "infra/feast-operator/api/v1/featurestore_types.go", "hashed_secret": "44e17306b837162269a410204daaa5ecee4ec22c", "is_verified": false, - "line_number": 879 + "line_number": 885 } ], "infra/feast-operator/api/v1/zz_generated.deepcopy.go": [ @@ -957,7 +957,7 @@ "filename": "infra/feast-operator/api/v1/zz_generated.deepcopy.go", "hashed_secret": "c2028031c154bbe86fd69bef740855c74b927dcf", "is_verified": false, - "line_number": 1491 + "line_number": 1496 } ], "infra/feast-operator/api/v1alpha1/featurestore_types.go": [ @@ -1539,5 +1539,5 @@ } ] }, - "generated_at": "2026-05-01T07:12:24Z" + "generated_at": "2026-05-14T10:20:01Z" } diff --git a/docs/how-to-guides/feast-operator/03-serving-and-observability.md b/docs/how-to-guides/feast-operator/03-serving-and-observability.md index efd7b5e5300..7ecb7ef68bc 100644 --- a/docs/how-to-guides/feast-operator/03-serving-and-observability.md +++ b/docs/how-to-guides/feast-operator/03-serving-and-observability.md @@ -279,6 +279,34 @@ MCP is mounted at `/mcp` on port 6566 — no additional Kubernetes Service is cr > **Dependency**: the feature server image must include `feast[mcp]` (`fastapi-mcp`). > Without it the server starts normally but MCP routes are not registered. +### Registry MCP + +MCP can also be enabled on the **registry REST server**, exposing registry metadata +(entities, feature views, feature services) as MCP tool endpoints. This is configured +under `registry.local.server.mcp` and requires `restAPI: true`. + +```yaml +services: + registry: + local: + server: + restAPI: true + mcp: + enabled: true + persistence: + store: + type: sql + secretRef: + name: feast-data-stores +``` + +The operator writes `registry.mcp.enabled: true` into `feature_store.yaml` when +this field is set. A CEL validation rule enforces that `restAPI` must be `true` +when MCP is enabled. + +> **Note**: Registry MCP uses only the `enabled` field — `serverName`, `serverVersion`, +> and `transport` are not applicable to the registry server. + --- ## `serving` vs `server` — summary diff --git a/docs/how-to-guides/feast-operator/04-registry-topology.md b/docs/how-to-guides/feast-operator/04-registry-topology.md index 32741cd68ee..a74f8432fe4 100644 --- a/docs/how-to-guides/feast-operator/04-registry-topology.md +++ b/docs/how-to-guides/feast-operator/04-registry-topology.md @@ -75,6 +75,32 @@ registry: grpc: true # enable gRPC (default: true when server is set) ``` +### MCP on the registry server + +When the REST API is enabled, you can additionally expose registry metadata as +MCP (Model Context Protocol) tool endpoints for LLM agents: + +```yaml +services: + registry: + local: + server: + restAPI: true + mcp: + enabled: true + persistence: + store: + type: sql + secretRef: + name: feast-data-stores +``` + +The operator writes `registry.mcp.enabled: true` into `feature_store.yaml`. +A validation rule enforces that `restAPI` must be `true` when `mcp.enabled` is `true`. + +See [Guide 3 — Serving & Observability](03-serving-and-observability.md#registry-mcp) +for more details and the full MCP configuration reference. + --- ## Remote registry @@ -188,4 +214,5 @@ spec: - [API reference — `RemoteRegistryConfig`](https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/docs/api/markdown/ref.md#remoteregistryconfig) - [Sample: all remote servers](https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/config/samples/v1_featurestore_all_remote_servers.yaml) - [Sample: DB persistence](https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/config/samples/v1_featurestore_db_persistence.yaml) +- [Sample: MCP](https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/config/samples/v1_featurestore_mcp.yaml) - [Feast SDK — Registries](../reference/registries/) diff --git a/docs/reference/feature-store-yaml.md b/docs/reference/feature-store-yaml.md index c287ddbc73a..9c8975eb335 100644 --- a/docs/reference/feature-store-yaml.md +++ b/docs/reference/feature-store-yaml.md @@ -49,6 +49,29 @@ feature_server: offline_push_batching_batch_interval_seconds: 5 # Maximum time rows may remain buffered before a forced flush. ``` +### registry + +The `registry` field can be a simple path string or an object with additional +configuration. When using the REST registry server, MCP support can be enabled: + +```yaml +registry: + registry_type: sql + path: postgresql+psycopg://feast:feast@localhost:5432/feast #pragma: allowlist secret + mcp: + enabled: true +``` + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `registry_type` | string | `file` | Registry backend (`file`, `sql`, etc.) | +| `path` | string | — | Connection string or file path | +| `mcp.enabled` | bool | `false` | Enable MCP (Model Context Protocol) on the REST registry server | + +When `registry.mcp.enabled` is `true`, the REST registry server exposes registry +metadata (entities, feature views, feature services) as MCP tool endpoints for +LLM agents. Requires `feast[mcp]` to be installed. + ## Providers The `provider` field defines the environment in which Feast will execute data flows. As a result, it also determines the default values for other fields. diff --git a/infra/feast-operator/api/v1/featurestore_types.go b/infra/feast-operator/api/v1/featurestore_types.go index 55da3f5118e..81e1dfa14c1 100644 --- a/infra/feast-operator/api/v1/featurestore_types.go +++ b/infra/feast-operator/api/v1/featurestore_types.go @@ -770,6 +770,7 @@ type WorkerConfigs struct { // RegistryServerConfigs creates a registry server for the feast service, with specified container configurations. // +kubebuilder:validation:XValidation:rule="self.restAPI == true || self.grpc == true || !has(self.grpc)", message="At least one of restAPI or grpc must be true" +// +kubebuilder:validation:XValidation:rule="!has(self.mcp) || !self.mcp.enabled || (has(self.restAPI) && self.restAPI == true)", message="MCP requires restAPI to be true" type RegistryServerConfigs struct { ServerConfigs `json:",inline"` @@ -778,6 +779,11 @@ type RegistryServerConfigs struct { // Enable gRPC registry server. Defaults to true if unset. GRPC *bool `json:"grpc,omitempty"` + + // Mcp enables MCP (Model Context Protocol) on the REST registry server. + // Requires restAPI to be true. Reuses the same McpConfig struct as the online store. + // +optional + Mcp *McpConfig `json:"mcp,omitempty"` } // CronJobContainerConfigs k8s container settings for the CronJob diff --git a/infra/feast-operator/api/v1/zz_generated.deepcopy.go b/infra/feast-operator/api/v1/zz_generated.deepcopy.go index c94dc5a5c71..6d31e31a9de 100644 --- a/infra/feast-operator/api/v1/zz_generated.deepcopy.go +++ b/infra/feast-operator/api/v1/zz_generated.deepcopy.go @@ -1278,6 +1278,11 @@ func (in *RegistryServerConfigs) DeepCopyInto(out *RegistryServerConfigs) { *out = new(bool) **out = **in } + if in.Mcp != nil { + in, out := &in.Mcp, &out.Mcp + *out = new(McpConfig) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryServerConfigs. diff --git a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml index 6a99755a2c3..faa9840ac43 100644 --- a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml +++ b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml @@ -135,7 +135,7 @@ metadata: } ] capabilities: Basic Install - createdAt: "2026-05-04T03:44:24Z" + createdAt: "2026-05-12T07:35:41Z" operators.operatorframework.io/builder: operator-sdk-v1.41.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 name: feast-operator.v0.63.0 diff --git a/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml b/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml index 0625be63cf3..2241b4c5f2e 100644 --- a/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml +++ b/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml @@ -3061,6 +3061,31 @@ spec: - error - critical type: string + mcp: + description: |- + Mcp enables MCP (Model Context Protocol) on the REST registry server. + Requires restAPI to be true. + properties: + enabled: + description: Enable the MCP server. + type: boolean + serverName: + description: MCP server name for identification. + Defaults to "feast-mcp-server". + type: string + serverVersion: + description: MCP server version string. Defaults + to "1.0.0". + type: string + transport: + description: MCP transport protocol. + enum: + - sse + - http + type: string + required: + - enabled + type: object metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. @@ -9031,6 +9056,31 @@ spec: - error - critical type: string + mcp: + description: |- + Mcp enables MCP (Model Context Protocol) on the REST registry server. + Requires restAPI to be true. + properties: + enabled: + description: Enable the MCP server. + type: boolean + serverName: + description: MCP server name for identification. + Defaults to "feast-mcp-server". + type: string + serverVersion: + description: MCP server version string. Defaults + to "1.0.0". + type: string + transport: + description: MCP transport protocol. + enum: + - sse + - http + type: string + required: + - enabled + type: object metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. diff --git a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml index 183fbf3be53..e1a1adfabe8 100644 --- a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml +++ b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml @@ -3061,6 +3061,31 @@ spec: - error - critical type: string + mcp: + description: |- + Mcp enables MCP (Model Context Protocol) on the REST registry server. + Requires restAPI to be true. + properties: + enabled: + description: Enable the MCP server. + type: boolean + serverName: + description: MCP server name for identification. + Defaults to "feast-mcp-server". + type: string + serverVersion: + description: MCP server version string. Defaults + to "1.0.0". + type: string + transport: + description: MCP transport protocol. + enum: + - sse + - http + type: string + required: + - enabled + type: object metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. @@ -3255,6 +3280,9 @@ spec: x-kubernetes-validations: - message: At least one of restAPI or grpc must be true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) + - message: MCP requires restAPI to be true + rule: '!has(self.mcp) || !self.mcp.enabled || (has(self.restAPI) + && self.restAPI == true)' type: object remote: description: RemoteRegistryConfig points to a remote feast @@ -9031,6 +9059,31 @@ spec: - error - critical type: string + mcp: + description: |- + Mcp enables MCP (Model Context Protocol) on the REST registry server. + Requires restAPI to be true. + properties: + enabled: + description: Enable the MCP server. + type: boolean + serverName: + description: MCP server name for identification. + Defaults to "feast-mcp-server". + type: string + serverVersion: + description: MCP server version string. Defaults + to "1.0.0". + type: string + transport: + description: MCP transport protocol. + enum: + - sse + - http + type: string + required: + - enabled + type: object metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. @@ -9231,6 +9284,9 @@ spec: true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) + - message: MCP requires restAPI to be true + rule: '!has(self.mcp) || !self.mcp.enabled || (has(self.restAPI) + && self.restAPI == true)' type: object remote: description: RemoteRegistryConfig points to a remote feast diff --git a/infra/feast-operator/config/samples/v1_featurestore_mcp.yaml b/infra/feast-operator/config/samples/v1_featurestore_mcp.yaml index 4ad45cdffa3..67dd1c6947d 100644 --- a/infra/feast-operator/config/samples/v1_featurestore_mcp.yaml +++ b/infra/feast-operator/config/samples/v1_featurestore_mcp.yaml @@ -17,3 +17,10 @@ spec: serverVersion: "1.0.0" # transport can be "sse" (default) or "http" transport: sse + registry: + local: + server: + # MCP on the registry requires REST API to be enabled. + restAPI: true + mcp: + enabled: true diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml index 6feb187cce3..c466442b8e8 100644 --- a/infra/feast-operator/dist/install.yaml +++ b/infra/feast-operator/dist/install.yaml @@ -3069,6 +3069,31 @@ spec: - error - critical type: string + mcp: + description: |- + Mcp enables MCP (Model Context Protocol) on the REST registry server. + Requires restAPI to be true. + properties: + enabled: + description: Enable the MCP server. + type: boolean + serverName: + description: MCP server name for identification. + Defaults to "feast-mcp-server". + type: string + serverVersion: + description: MCP server version string. Defaults + to "1.0.0". + type: string + transport: + description: MCP transport protocol. + enum: + - sse + - http + type: string + required: + - enabled + type: object metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. @@ -3263,6 +3288,9 @@ spec: x-kubernetes-validations: - message: At least one of restAPI or grpc must be true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) + - message: MCP requires restAPI to be true + rule: '!has(self.mcp) || !self.mcp.enabled || (has(self.restAPI) + && self.restAPI == true)' type: object remote: description: RemoteRegistryConfig points to a remote feast @@ -9039,6 +9067,31 @@ spec: - error - critical type: string + mcp: + description: |- + Mcp enables MCP (Model Context Protocol) on the REST registry server. + Requires restAPI to be true. + properties: + enabled: + description: Enable the MCP server. + type: boolean + serverName: + description: MCP server name for identification. + Defaults to "feast-mcp-server". + type: string + serverVersion: + description: MCP server version string. Defaults + to "1.0.0". + type: string + transport: + description: MCP transport protocol. + enum: + - sse + - http + type: string + required: + - enabled + type: object metrics: description: Metrics exposes Prometheus-compatible metrics for the Feast server when enabled. @@ -9239,6 +9292,9 @@ spec: true rule: self.restAPI == true || self.grpc == true || !has(self.grpc) + - message: MCP requires restAPI to be true + rule: '!has(self.mcp) || !self.mcp.enabled || (has(self.restAPI) + && self.restAPI == true)' type: object remote: description: RemoteRegistryConfig points to a remote feast diff --git a/infra/feast-operator/docs/api/markdown/ref.md b/infra/feast-operator/docs/api/markdown/ref.md index fc95a3b9eb4..4f57ff865f5 100644 --- a/infra/feast-operator/docs/api/markdown/ref.md +++ b/infra/feast-operator/docs/api/markdown/ref.md @@ -496,6 +496,7 @@ McpConfig enables MCP (Model Context Protocol) server support in the feature ser When this field is set on ServingConfig, the feature server type is switched to "mcp". _Appears in:_ +- [RegistryServerConfigs](#registryserverconfigs) - [ServingConfig](#servingconfig) | Field | Description | @@ -883,6 +884,8 @@ volume definition in the Volumes field. | These options are primarily used for production deployments to optimize performance. | | `restAPI` _boolean_ | Enable REST API registry server. | | `grpc` _boolean_ | Enable gRPC registry server. Defaults to true if unset. | +| `mcp` _[McpConfig](#mcpconfig)_ | Mcp enables MCP (Model Context Protocol) on the REST registry server. +Requires restAPI to be true. Reuses the same McpConfig struct as the online store. | #### RemoteRegistryConfig diff --git a/infra/feast-operator/internal/controller/featurestore_controller_test.go b/infra/feast-operator/internal/controller/featurestore_controller_test.go index 4d2663fd47a..a9ac5235eda 100644 --- a/infra/feast-operator/internal/controller/featurestore_controller_test.go +++ b/infra/feast-operator/internal/controller/featurestore_controller_test.go @@ -1491,6 +1491,109 @@ var _ = Describe("FeatureStore Controller", func() { Expect(err.Error()).To(ContainSubstring("At least one of restAPI or grpc must be true")) }) + It("should generate correct feature_store.yaml when registry MCP is enabled", func() { + const mcpName = "mcp-registry" + mcpNsName := types.NamespacedName{ + Name: mcpName, + Namespace: "default", + } + + resource := &feastdevv1.FeatureStore{ + ObjectMeta: metav1.ObjectMeta{ + Name: mcpName, + Namespace: "default", + }, + Spec: feastdevv1.FeatureStoreSpec{ + FeastProject: feastProject, + Services: &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{ + Server: &feastdevv1.RegistryServerConfigs{ + RestAPI: ptr(true), + Mcp: &feastdevv1.McpConfig{ + Enabled: true, + }, + }, + }, + }, + }, + }, + } + resource.SetGroupVersionKind(feastdevv1.GroupVersion.WithKind("FeatureStore")) + Expect(k8sClient.Create(ctx, resource)).To(Succeed()) + + controllerReconciler := &FeatureStoreReconciler{ + Client: k8sClient, + Scheme: k8sClient.Scheme(), + } + _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{NamespacedName: mcpNsName}) + Expect(err).NotTo(HaveOccurred()) + + err = k8sClient.Get(ctx, mcpNsName, resource) + Expect(err).NotTo(HaveOccurred()) + + feast := services.FeastServices{ + Handler: handler.FeastHandler{ + Client: controllerReconciler.Client, + Context: ctx, + Scheme: controllerReconciler.Scheme, + FeatureStore: resource, + }, + } + + deploy := &appsv1.Deployment{} + objMeta := feast.GetObjectMeta() + err = k8sClient.Get(ctx, types.NamespacedName{ + Name: objMeta.Name, + Namespace: objMeta.Namespace, + }, deploy) + Expect(err).NotTo(HaveOccurred()) + + registryContainer := services.GetRegistryContainer(*deploy) + Expect(registryContainer).NotTo(BeNil()) + + env := getFeatureStoreYamlEnvVar(registryContainer.Env) + Expect(env).NotTo(BeNil()) + + envByte, err := base64.StdEncoding.DecodeString(env.Value) + Expect(err).NotTo(HaveOccurred()) + repoConfig := &services.RepoConfig{} + err = yaml.Unmarshal(envByte, repoConfig) + Expect(err).NotTo(HaveOccurred()) + Expect(repoConfig.Registry.Mcp).NotTo(BeNil()) + Expect(repoConfig.Registry.Mcp.Enabled).To(BeTrue()) + }) + + It("should reject registry MCP without restAPI enabled", func() { + mcpNoRestResource := &feastdevv1.FeatureStore{ + ObjectMeta: metav1.ObjectMeta{ + Name: "mcp-no-rest", + Namespace: "default", + }, + Spec: feastdevv1.FeatureStoreSpec{ + FeastProject: feastProject, + Services: &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{ + Server: &feastdevv1.RegistryServerConfigs{ + RestAPI: ptr(false), + GRPC: ptr(true), + Mcp: &feastdevv1.McpConfig{ + Enabled: true, + }, + }, + }, + }, + }, + }, + } + mcpNoRestResource.SetGroupVersionKind(feastdevv1.GroupVersion.WithKind("FeatureStore")) + + err := k8sClient.Create(ctx, mcpNoRestResource) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("MCP requires restAPI to be true")) + }) + It("should error on reconcile", func() { By("Trying to set the controller OwnerRef of a Deployment that already has a controller") controllerReconciler := &FeatureStoreReconciler{ diff --git a/infra/feast-operator/internal/controller/services/repo_config.go b/infra/feast-operator/internal/controller/services/repo_config.go index 42ca5373fd9..aa33819c2b4 100644 --- a/infra/feast-operator/internal/controller/services/repo_config.go +++ b/infra/feast-operator/internal/controller/services/repo_config.go @@ -259,6 +259,15 @@ func setRepoConfigRegistry(services *feastdevv1.FeatureStoreServices, secretExtr repoConfig.Registry.DBParameters = parametersMap } } + + if services.Registry.Local.Server != nil && + services.Registry.Local.Server.Mcp != nil && + services.Registry.Local.Server.Mcp.Enabled { + repoConfig.Registry.Mcp = &RegistryMcpYamlConfig{ + Enabled: true, + } + } + return nil } diff --git a/infra/feast-operator/internal/controller/services/repo_config_test.go b/infra/feast-operator/internal/controller/services/repo_config_test.go index 8e1ae1d60bf..9550068d251 100644 --- a/infra/feast-operator/internal/controller/services/repo_config_test.go +++ b/infra/feast-operator/internal/controller/services/repo_config_test.go @@ -417,6 +417,66 @@ var _ = Describe("Repo Config", func() { Expect(repoConfig.FeatureServer.McpEnabled).To(BeNil()) }) + It("should set registry mcp when enabled", func() { + featureStore := minimalFeatureStore() + + featureStore.Spec.Services = &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{ + Server: &feastdevv1.RegistryServerConfigs{ + Mcp: &feastdevv1.McpConfig{ + Enabled: true, + }, + }, + }, + }, + } + ApplyDefaultsToStatus(featureStore) + + repoConfig, err := getServiceRepoConfig(featureStore, emptyMockExtractConfigFromSecret, emptyMockExtractConfigFromConfigMap, false) + Expect(err).NotTo(HaveOccurred()) + Expect(repoConfig.Registry.Mcp).NotTo(BeNil()) + Expect(repoConfig.Registry.Mcp.Enabled).To(BeTrue()) + }) + + It("should not set registry mcp when disabled", func() { + featureStore := minimalFeatureStore() + + featureStore.Spec.Services = &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{ + Server: &feastdevv1.RegistryServerConfigs{ + Mcp: &feastdevv1.McpConfig{ + Enabled: false, + }, + }, + }, + }, + } + ApplyDefaultsToStatus(featureStore) + + repoConfig, err := getServiceRepoConfig(featureStore, emptyMockExtractConfigFromSecret, emptyMockExtractConfigFromConfigMap, false) + Expect(err).NotTo(HaveOccurred()) + Expect(repoConfig.Registry.Mcp).To(BeNil()) + }) + + It("should not set registry mcp when server has no mcp config", func() { + featureStore := minimalFeatureStore() + + featureStore.Spec.Services = &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{ + Server: &feastdevv1.RegistryServerConfigs{}, + }, + }, + } + ApplyDefaultsToStatus(featureStore) + + repoConfig, err := getServiceRepoConfig(featureStore, emptyMockExtractConfigFromSecret, emptyMockExtractConfigFromConfigMap, false) + Expect(err).NotTo(HaveOccurred()) + Expect(repoConfig.Registry.Mcp).To(BeNil()) + }) + It("should set materialization block", func() { featureStore := minimalFeatureStore() batchSize := int32(10000) diff --git a/infra/feast-operator/internal/controller/services/services_types.go b/infra/feast-operator/internal/controller/services/services_types.go index aa67f529c44..a68772806c5 100644 --- a/infra/feast-operator/internal/controller/services/services_types.go +++ b/infra/feast-operator/internal/controller/services/services_types.go @@ -345,9 +345,15 @@ type RegistryConfig struct { S3AdditionalKwargs *map[string]string `yaml:"s3_additional_kwargs,omitempty"` CacheTTLSeconds *int32 `yaml:"cache_ttl_seconds,omitempty"` CacheMode *string `yaml:"cache_mode,omitempty"` + Mcp *RegistryMcpYamlConfig `yaml:"mcp,omitempty"` DBParameters map[string]interface{} `yaml:",inline,omitempty"` } +// RegistryMcpYamlConfig maps to the registry.mcp section of feature_store.yaml. +type RegistryMcpYamlConfig struct { + Enabled bool `yaml:"enabled"` +} + // AuthzConfig is the RBAC authorization configuration. type AuthzConfig struct { Type AuthzType `yaml:"type,omitempty"` diff --git a/sdk/python/feast/api/registry/rest/rest_registry_server.py b/sdk/python/feast/api/registry/rest/rest_registry_server.py index d67321abc48..0238776dbc0 100644 --- a/sdk/python/feast/api/registry/rest/rest_registry_server.py +++ b/sdk/python/feast/api/registry/rest/rest_registry_server.py @@ -76,6 +76,21 @@ def __init__(self, store: FeatureStore): self._init_auth() self._register_routes() + registry_cfg = getattr(store.config, "registry", None) + mcp_cfg = getattr(registry_cfg, "mcp", None) + if mcp_cfg and getattr(mcp_cfg, "enabled", False): + try: + from fastapi_mcp import FastApiMCP + + mcp = FastApiMCP(self.app, name="feast-registry-mcp") + mcp.mount() + logger.info("MCP support enabled on REST registry server") + except ImportError: + logger.warning( + "MCP support requested but fastapi_mcp is not installed. " + "Install it with: pip install feast[mcp]" + ) + def _add_exception_handlers(self): """Add custom exception handlers to include HTTP status codes in JSON responses.""" diff --git a/sdk/python/feast/repo_config.py b/sdk/python/feast/repo_config.py index eb2898a962d..3fbcb9ec498 100644 --- a/sdk/python/feast/repo_config.py +++ b/sdk/python/feast/repo_config.py @@ -151,6 +151,13 @@ class FeastConfigBaseModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") +class McpRegistryConfig(FeastBaseModel): + """MCP (Model Context Protocol) configuration for the registry REST server.""" + + enabled: StrictBool = False + """ bool: Enable MCP support on the REST registry server. """ + + class RegistryConfig(FeastBaseModel): """Metadata Store Configuration. Configuration that relates to reading from and writing to the Feast registry.""" @@ -191,6 +198,9 @@ class RegistryConfig(FeastBaseModel): online store table and can be queried independently. Version history tracking in the registry is always active regardless of this setting. """ + mcp: Optional[McpRegistryConfig] = None + """ McpRegistryConfig: MCP (Model Context Protocol) configuration for the registry REST server. """ + @field_validator("path") def validate_path(cls, path: str, values: ValidationInfo) -> str: if values.data.get("registry_type") == "sql": diff --git a/sdk/python/tests/unit/infra/feature_servers/test_mcp_server.py b/sdk/python/tests/unit/infra/feature_servers/test_mcp_server.py index b23372d9eab..7fe0fa3d99a 100644 --- a/sdk/python/tests/unit/infra/feature_servers/test_mcp_server.py +++ b/sdk/python/tests/unit/infra/feature_servers/test_mcp_server.py @@ -258,3 +258,68 @@ def test_add_mcp_support_if_enabled_transport_not_supported_fails(self, mock_add with self.assertRaises(McpTransportNotSupportedError): _add_mcp_support_if_enabled(mock_app, mock_store) + + +class TestRestRegistryServerMCP(unittest.TestCase): + """Test MCP integration in RestRegistryServer.""" + + @patch("fastapi_mcp.FastApiMCP") + @patch("feast.api.registry.rest.rest_registry_server.RestRegistryServer._init_auth") + @patch( + "feast.api.registry.rest.rest_registry_server.RestRegistryServer._register_routes" + ) + def test_mcp_mounted_when_enabled( + self, mock_register, mock_auth, mock_fast_api_mcp + ): + """Test that MCP is mounted on RestRegistryServer when registry.mcp.enabled is True.""" + from feast.api.registry.rest.rest_registry_server import RestRegistryServer + + mock_store = Mock() + mock_store.config.registry.mcp = SimpleNamespace(enabled=True) + mock_store.config.auth_config.type = "no_auth" + mock_store.registry = Mock() + mock_store.project = "test_project" + + mock_mcp_instance = Mock() + mock_fast_api_mcp.return_value = mock_mcp_instance + + server = RestRegistryServer(mock_store) + + mock_fast_api_mcp.assert_called_once_with(server.app, name="feast-registry-mcp") + mock_mcp_instance.mount.assert_called_once() + + @patch("feast.api.registry.rest.rest_registry_server.RestRegistryServer._init_auth") + @patch( + "feast.api.registry.rest.rest_registry_server.RestRegistryServer._register_routes" + ) + def test_mcp_not_mounted_when_disabled(self, mock_register, mock_auth): + """Test that MCP is not mounted when registry.mcp.enabled is False.""" + from feast.api.registry.rest.rest_registry_server import RestRegistryServer + + mock_store = Mock() + mock_store.config.registry.mcp = SimpleNamespace(enabled=False) + mock_store.config.auth_config.type = "no_auth" + mock_store.registry = Mock() + mock_store.project = "test_project" + + with patch("fastapi_mcp.FastApiMCP") as mock_fast_api_mcp: + RestRegistryServer(mock_store) + mock_fast_api_mcp.assert_not_called() + + @patch("feast.api.registry.rest.rest_registry_server.RestRegistryServer._init_auth") + @patch( + "feast.api.registry.rest.rest_registry_server.RestRegistryServer._register_routes" + ) + def test_mcp_not_mounted_when_mcp_config_absent(self, mock_register, mock_auth): + """Test that MCP is not mounted when registry.mcp is None.""" + from feast.api.registry.rest.rest_registry_server import RestRegistryServer + + mock_store = Mock() + mock_store.config.registry.mcp = None + mock_store.config.auth_config.type = "no_auth" + mock_store.registry = Mock() + mock_store.project = "test_project" + + with patch("fastapi_mcp.FastApiMCP") as mock_fast_api_mcp: + RestRegistryServer(mock_store) + mock_fast_api_mcp.assert_not_called() From f77bd1dc1a1d9a0920c900e0e40a37c2a33ce39e Mon Sep 17 00:00:00 2001 From: Rohit Bharmal <79892089+rohit-bharmal@users.noreply.github.com> Date: Tue, 19 May 2026 13:20:12 +0530 Subject: [PATCH 23/59] feat: Adds registry REST API endpoints for managing entities, data sources, and feature views (#6413) * feat: Implement REST API for entity management with apply and delete endpoints Co-authored-by: Cursor Signed-off-by: Rohit Bharmal * feat: removed proto and added REST endpoints Co-authored-by: Cursor Signed-off-by: Rohit Bharmal * chore: fix pre-commit lint issues in REST API files Signed-off-by: Rohit Bharmal Co-authored-by: Cursor * fix: handle default data source type in apply_data_source function Signed-off-by: Rohit Bharmal * feat: Add REST API tests for entity, data source, and feature view management Signed-off-by: Rohit Bharmal * refactor: fixed lint issues Signed-off-by: Rohit Bharmal * fix: update default values for ApplyDataSourceRequestBody and ApplyFeatureViewRequestBody Signed-off-by: Rohit Bharmal --------- Signed-off-by: Rohit Bharmal Co-authored-by: Cursor --- .../feast/api/registry/rest/data_sources.py | 118 ++++++++++++++++- .../feast/api/registry/rest/entities.py | 55 ++++++++ .../feast/api/registry/rest/feature_views.py | 90 ++++++++++++- .../tests/unit/api/test_api_rest_registry.py | 121 ++++++++++++++++++ 4 files changed, 382 insertions(+), 2 deletions(-) diff --git a/sdk/python/feast/api/registry/rest/data_sources.py b/sdk/python/feast/api/registry/rest/data_sources.py index bbc120707fc..4e522644ed3 100644 --- a/sdk/python/feast/api/registry/rest/data_sources.py +++ b/sdk/python/feast/api/registry/rest/data_sources.py @@ -1,7 +1,9 @@ import logging -from typing import Dict +from typing import Dict, Optional from fastapi import APIRouter, Depends, Query +from fastapi.responses import JSONResponse +from pydantic import BaseModel from feast.api.registry.rest.codegen_utils import ( render_data_source_code, @@ -19,6 +21,7 @@ grpc_call, parse_tags, ) +from feast.protos.feast.core.DataSource_pb2 import DataSource as DataSourceProto from feast.protos.feast.registry import RegistryServer_pb2 from feast.type_map import _convert_value_type_str_to_value_type from feast.types import from_value_type @@ -26,6 +29,54 @@ logger = logging.getLogger(__name__) +class FileOptionsModel(BaseModel): + uri: str = "" + + +class BigQueryOptionsModel(BaseModel): + table: str = "" + query: str = "" + + +class SnowflakeOptionsModel(BaseModel): + table: str = "" + database: str = "" + schema_: str = "" + + +class RedshiftOptionsModel(BaseModel): + table: str = "" + database: str = "" + schema_: str = "" + + +class KafkaOptionsModel(BaseModel): + kafka_bootstrap_servers: str = "" + topic: str = "" + + +class SparkOptionsModel(BaseModel): + table: str = "" + path: str = "" + + +class ApplyDataSourceRequestBody(BaseModel): + name: str + project: str + type: Optional[int] = None + timestamp_field: Optional[str] = "" + created_timestamp_column: Optional[str] = "" + description: Optional[str] = "" + tags: Optional[Dict[str, str]] = {} + owner: Optional[str] = "" + file_options: Optional[FileOptionsModel] = None + bigquery_options: Optional[BigQueryOptionsModel] = None + snowflake_options: Optional[SnowflakeOptionsModel] = None + redshift_options: Optional[RedshiftOptionsModel] = None + kafka_options: Optional[KafkaOptionsModel] = None + spark_options: Optional[SparkOptionsModel] = None + + def get_data_source_router(grpc_handler) -> APIRouter: router = APIRouter() @@ -157,4 +208,69 @@ def get_data_source( result["featureDefinition"] = render_data_source_code(context) return result + @router.post("/data_sources", status_code=201) + def apply_data_source(body: ApplyDataSourceRequestBody): + ds_proto = DataSourceProto( + name=body.name, + timestamp_field=body.timestamp_field or "", + created_timestamp_column=body.created_timestamp_column or "", + description=body.description or "", + tags=body.tags or {}, + owner=body.owner or "", + ) + if body.type is not None: + ds_proto.type = body.type # type: ignore[assignment] + + if body.file_options: + ds_proto.file_options.uri = body.file_options.uri + elif body.bigquery_options: + ds_proto.bigquery_options.table = body.bigquery_options.table + ds_proto.bigquery_options.query = body.bigquery_options.query + elif body.snowflake_options: + ds_proto.snowflake_options.table = body.snowflake_options.table + ds_proto.snowflake_options.database = body.snowflake_options.database + ds_proto.snowflake_options.schema = body.snowflake_options.schema_ + elif body.redshift_options: + ds_proto.redshift_options.table = body.redshift_options.table + ds_proto.redshift_options.database = body.redshift_options.database + ds_proto.redshift_options.schema = body.redshift_options.schema_ + elif body.kafka_options: + ds_proto.kafka_options.kafka_bootstrap_servers = ( + body.kafka_options.kafka_bootstrap_servers + ) + ds_proto.kafka_options.topic = body.kafka_options.topic + elif body.spark_options: + ds_proto.spark_options.table = body.spark_options.table + ds_proto.spark_options.path = body.spark_options.path + + req = RegistryServer_pb2.ApplyDataSourceRequest( + data_source=ds_proto, + project=body.project, + commit=True, + ) + grpc_call(grpc_handler.ApplyDataSource, req) + + return JSONResponse( + status_code=201, + content={ + "name": body.name, + "project": body.project, + "status": "applied", + }, + ) + + @router.delete("/data_sources/{name}") + def delete_data_source( + name: str, + project: str = Query(...), + ): + req = RegistryServer_pb2.DeleteDataSourceRequest( + name=name, + project=project, + commit=True, + ) + grpc_call(grpc_handler.DeleteDataSource, req) + + return {"name": name, "project": project, "status": "deleted"} + return router diff --git a/sdk/python/feast/api/registry/rest/entities.py b/sdk/python/feast/api/registry/rest/entities.py index d2943ea74c4..5326433c0aa 100644 --- a/sdk/python/feast/api/registry/rest/entities.py +++ b/sdk/python/feast/api/registry/rest/entities.py @@ -1,6 +1,9 @@ import logging +from typing import Dict, Optional from fastapi import APIRouter, Depends, Query +from fastapi.responses import JSONResponse +from pydantic import BaseModel from feast.api.registry.rest.codegen_utils import render_entity_code from feast.api.registry.rest.rest_utils import ( @@ -13,11 +16,23 @@ get_sorting_params, grpc_call, ) +from feast.protos.feast.core.Entity_pb2 import Entity as EntityProto +from feast.protos.feast.core.Entity_pb2 import EntitySpecV2 as EntitySpecProto from feast.protos.feast.registry import RegistryServer_pb2 logger = logging.getLogger(__name__) +class ApplyEntityRequestBody(BaseModel): + name: str + project: str + join_key: Optional[str] = None + value_type: Optional[int] = 2 + description: Optional[str] = "" + tags: Optional[Dict[str, str]] = {} + owner: Optional[str] = "" + + def get_entity_router(grpc_handler) -> APIRouter: router = APIRouter() @@ -136,4 +151,44 @@ def get_entity( result["featureDefinition"] = render_entity_code(context) return result + @router.post("/entities", status_code=201) + def apply_entity(body: ApplyEntityRequestBody): + join_key = body.join_key if body.join_key else body.name + + spec = EntitySpecProto( + name=body.name, + value_type=body.value_type, + join_key=join_key, + description=body.description or "", + tags=body.tags or {}, + owner=body.owner or "", + ) + entity_proto = EntityProto(spec=spec) + + req = RegistryServer_pb2.ApplyEntityRequest( + entity=entity_proto, + project=body.project, + commit=True, + ) + grpc_call(grpc_handler.ApplyEntity, req) + + return JSONResponse( + status_code=201, + content={"name": body.name, "project": body.project, "status": "applied"}, + ) + + @router.delete("/entities/{name}") + def delete_entity( + name: str, + project: str = Query(...), + ): + req = RegistryServer_pb2.DeleteEntityRequest( + name=name, + project=project, + commit=True, + ) + grpc_call(grpc_handler.DeleteEntity, req) + + return {"name": name, "project": project, "status": "deleted"} + return router diff --git a/sdk/python/feast/api/registry/rest/feature_views.py b/sdk/python/feast/api/registry/rest/feature_views.py index 0c921a20870..04c1f42cefa 100644 --- a/sdk/python/feast/api/registry/rest/feature_views.py +++ b/sdk/python/feast/api/registry/rest/feature_views.py @@ -1,6 +1,10 @@ -from typing import Dict +import logging +from typing import Dict, List, Optional from fastapi import APIRouter, Depends, Query +from fastapi.responses import JSONResponse +from google.protobuf.duration_pb2 import Duration +from pydantic import BaseModel from feast.api.registry.rest.codegen_utils import render_feature_view_code from feast.api.registry.rest.rest_utils import ( @@ -14,10 +18,34 @@ paginate_and_sort, parse_tags, ) +from feast.protos.feast.core.DataSource_pb2 import DataSource as DataSourceProto +from feast.protos.feast.core.Feature_pb2 import FeatureSpecV2 +from feast.protos.feast.core.FeatureView_pb2 import FeatureView as FeatureViewProto +from feast.protos.feast.core.FeatureView_pb2 import FeatureViewSpec from feast.registry_server import RegistryServer_pb2 from feast.type_map import _convert_value_type_str_to_value_type from feast.types import from_value_type +logger = logging.getLogger(__name__) + + +class FeatureModel(BaseModel): + name: str + value_type: int = 2 + + +class ApplyFeatureViewRequestBody(BaseModel): + name: str + project: str + entities: Optional[List[str]] = [] + features: Optional[List[FeatureModel]] = [] + batch_source: Optional[str] = "" + ttl_seconds: Optional[int] = None + online: Optional[bool] = True + description: Optional[str] = "" + tags: Optional[Dict[str, str]] = {} + owner: Optional[str] = "" + def _extract_feature_view_from_any(any_feature_view: dict) -> dict: """Extract the specific feature view type and data from an AnyFeatureView object. @@ -275,4 +303,64 @@ def list_all_feature_views( return result + @router.post("/feature_views", status_code=201) + def apply_feature_view(body: ApplyFeatureViewRequestBody): + feature_specs = [] + for f in body.features or []: + feature_specs.append(FeatureSpecV2(name=f.name, value_type=f.value_type)) + + batch_source_proto = ( + DataSourceProto(name=body.batch_source) if body.batch_source else None + ) + + ttl = ( + Duration(seconds=body.ttl_seconds) if body.ttl_seconds is not None else None + ) + + spec = FeatureViewSpec( + name=body.name, + entities=body.entities or [], + features=feature_specs, + tags=body.tags or {}, + online=body.online if body.online is not None else True, + description=body.description or "", + owner=body.owner or "", + ) + if ttl is not None: + spec.ttl.CopyFrom(ttl) + if batch_source_proto: + spec.batch_source.CopyFrom(batch_source_proto) + + fv_proto = FeatureViewProto(spec=spec) + + req = RegistryServer_pb2.ApplyFeatureViewRequest( + feature_view=fv_proto, + project=body.project, + commit=True, + ) + grpc_call(grpc_handler.ApplyFeatureView, req) + + return JSONResponse( + status_code=201, + content={ + "name": body.name, + "project": body.project, + "status": "applied", + }, + ) + + @router.delete("/feature_views/{name}") + def delete_feature_view( + name: str, + project: str = Query(...), + ): + req = RegistryServer_pb2.DeleteFeatureViewRequest( + name=name, + project=project, + commit=True, + ) + grpc_call(grpc_handler.DeleteFeatureView, req) + + return {"name": name, "project": project, "status": "deleted"} + return router diff --git a/sdk/python/tests/unit/api/test_api_rest_registry.py b/sdk/python/tests/unit/api/test_api_rest_registry.py index 3e6cb5e7e3d..04eacb6cb9b 100644 --- a/sdk/python/tests/unit/api/test_api_rest_registry.py +++ b/sdk/python/tests/unit/api/test_api_rest_registry.py @@ -2002,6 +2002,127 @@ def test_all_endpoints_return_404_for_invalid_objects(fastapi_test_app): assert data["error_type"] == "FeastObjectNotFoundException" +def test_apply_and_delete_entity_via_rest(fastapi_test_app): + """Test POST /entities and DELETE /entities/{name} endpoints.""" + # Apply a new entity + response = fastapi_test_app.post( + "/entities", + json={ + "name": "driver_id", + "project": "demo_project", + "join_key": "driver_id", + "value_type": 2, + "description": "Driver entity", + "owner": "ml-team", + }, + ) + assert response.status_code == 201 + data = response.json() + assert data["name"] == "driver_id" + assert data["status"] == "applied" + + # Verify it exists + response = fastapi_test_app.get("/entities/driver_id?project=demo_project") + assert response.status_code == 200 + assert response.json()["spec"]["name"] == "driver_id" + + # Delete it + response = fastapi_test_app.delete("/entities/driver_id?project=demo_project") + assert response.status_code == 200 + data = response.json() + assert data["name"] == "driver_id" + assert data["status"] == "deleted" + + # Verify it's gone + response = fastapi_test_app.get("/entities/driver_id?project=demo_project") + assert response.status_code == 404 + + +def test_apply_and_delete_data_source_via_rest(fastapi_test_app): + """Test POST /data_sources and DELETE /data_sources/{name} endpoints.""" + # Apply a new file data source + response = fastapi_test_app.post( + "/data_sources", + json={ + "name": "test_file_source", + "project": "demo_project", + "type": 1, + "timestamp_field": "event_timestamp", + "description": "Test file source", + "file_options": {"uri": "s3://bucket/path/data.parquet"}, + }, + ) + assert response.status_code == 201 + data = response.json() + assert data["name"] == "test_file_source" + assert data["status"] == "applied" + + # Verify it exists + response = fastapi_test_app.get( + "/data_sources/test_file_source?project=demo_project" + ) + assert response.status_code == 200 + assert response.json()["name"] == "test_file_source" + + # Delete it + response = fastapi_test_app.delete( + "/data_sources/test_file_source?project=demo_project" + ) + assert response.status_code == 200 + data = response.json() + assert data["name"] == "test_file_source" + assert data["status"] == "deleted" + + # Verify it's gone + response = fastapi_test_app.get( + "/data_sources/test_file_source?project=demo_project" + ) + assert response.status_code == 404 + + +def test_apply_and_delete_feature_view_via_rest(fastapi_test_app): + """Test POST /feature_views and DELETE /feature_views/{name} endpoints.""" + # Apply a new feature view (no batch_source: a bare DataSourceProto with only a + # name but no type is rejected by the registry's source-type validation) + response = fastapi_test_app.post( + "/feature_views", + json={ + "name": "driver_stats", + "project": "demo_project", + "entities": ["user_id"], + "features": [ + {"name": "trip_count", "value_type": 2}, + {"name": "avg_rating", "value_type": 4}, + ], + "ttl_seconds": 86400, + "online": True, + "description": "Driver statistics feature view", + }, + ) + assert response.status_code == 201 + data = response.json() + assert data["name"] == "driver_stats" + assert data["status"] == "applied" + + # Verify it exists + response = fastapi_test_app.get("/feature_views/driver_stats?project=demo_project") + assert response.status_code == 200 + assert response.json()["spec"]["name"] == "driver_stats" + + # Delete it + response = fastapi_test_app.delete( + "/feature_views/driver_stats?project=demo_project" + ) + assert response.status_code == 200 + data = response.json() + assert data["name"] == "driver_stats" + assert data["status"] == "deleted" + + # Verify it's gone + response = fastapi_test_app.get("/feature_views/driver_stats?project=demo_project") + assert response.status_code == 404 + + def test_metrics_resource_counts_nonexistent_project(fastapi_test_app): """Test /metrics/resource_counts with a non-existent project returns empty data.""" response = fastapi_test_app.get( From 00dea5010ae9b6cb6c88a145e16502818420d2b2 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Fri, 15 May 2026 17:31:44 +0530 Subject: [PATCH 24/59] fix: Replace selector label strip patch with migration Job for upgrade-safe selector uniqueness Signed-off-by: ntkathole --- .../config/overlays/odh/kustomization.yaml | 19 ++++--- .../odh/remove_selector_label_patch.yaml | 2 - .../overlays/odh/selector_migration_job.yaml | 56 +++++++++++++++++++ .../config/overlays/rhoai/kustomization.yaml | 19 ++++--- .../rhoai/remove_selector_label_patch.yaml | 2 - .../rhoai/selector_migration_job.yaml | 56 +++++++++++++++++++ 6 files changed, 134 insertions(+), 20 deletions(-) delete mode 100644 infra/feast-operator/config/overlays/odh/remove_selector_label_patch.yaml create mode 100644 infra/feast-operator/config/overlays/odh/selector_migration_job.yaml delete mode 100644 infra/feast-operator/config/overlays/rhoai/remove_selector_label_patch.yaml create mode 100644 infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml diff --git a/infra/feast-operator/config/overlays/odh/kustomization.yaml b/infra/feast-operator/config/overlays/odh/kustomization.yaml index cc9d0e4dfd3..89059a56c5a 100644 --- a/infra/feast-operator/config/overlays/odh/kustomization.yaml +++ b/infra/feast-operator/config/overlays/odh/kustomization.yaml @@ -6,19 +6,12 @@ namespace: opendatahub resources: - ../../default + - selector_migration_job.yaml patches: # patch to remove default `system` namespace in ../../manager/manager.yaml - path: delete-namespace.yaml - # Remove app.kubernetes.io/name from the Deployment selector to avoid - # immutable spec.selector errors on upgrade. The label remains in the - # pod template so the metrics Service selector still targets only - # feast-operator pods. - - path: remove_selector_label_patch.yaml - target: - kind: Deployment - name: controller-manager configMapGenerator: - name: feast-operator-parameters @@ -70,3 +63,13 @@ replacements: name: controller-manager fieldPaths: - spec.template.spec.containers.[name=manager].env.[name=OIDC_ISSUER_URL].value + - source: + kind: ConfigMap + name: feast-operator-parameters + fieldPath: data.RELATED_IMAGE_CRON_JOB + targets: + - select: + kind: Job + name: selector-migration + fieldPaths: + - spec.template.spec.containers.[name=migrate].image diff --git a/infra/feast-operator/config/overlays/odh/remove_selector_label_patch.yaml b/infra/feast-operator/config/overlays/odh/remove_selector_label_patch.yaml deleted file mode 100644 index e842c1f7a58..00000000000 --- a/infra/feast-operator/config/overlays/odh/remove_selector_label_patch.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- op: remove - path: /spec/selector/matchLabels/app.kubernetes.io~1name diff --git a/infra/feast-operator/config/overlays/odh/selector_migration_job.yaml b/infra/feast-operator/config/overlays/odh/selector_migration_job.yaml new file mode 100644 index 00000000000..1646e23afe9 --- /dev/null +++ b/infra/feast-operator/config/overlays/odh/selector_migration_job.yaml @@ -0,0 +1,56 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: selector-migration + namespace: system + labels: + app.kubernetes.io/name: feast-operator + app.kubernetes.io/managed-by: kustomize +spec: + ttlSecondsAfterFinished: 300 + backoffLimit: 3 + template: + metadata: + labels: + app.kubernetes.io/name: feast-operator + spec: + serviceAccountName: controller-manager + restartPolicy: Never + securityContext: + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + containers: + - name: migrate + image: origin-cli:latest + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + resources: + requests: + memory: "64Mi" + cpu: "100m" + limits: + memory: "128Mi" + cpu: "200m" + command: + - /bin/sh + - -c + - | + set -e + DEPLOY="feast-operator-controller-manager" + NS="$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)" + + HAS_LABEL=$(oc get deployment "$DEPLOY" -n "$NS" \ + -o jsonpath='{.spec.selector.matchLabels.app\.kubernetes\.io/name}' 2>/dev/null || true) + + if [ -z "$HAS_LABEL" ]; then + echo "Deployment $DEPLOY has old or missing selector." + echo "Deleting so it can be recreated with the correct selector..." + oc delete deployment "$DEPLOY" -n "$NS" --ignore-not-found=true + echo "Done. The operator will recreate the Deployment." + else + echo "Deployment selector is already correct, no migration needed." + fi diff --git a/infra/feast-operator/config/overlays/rhoai/kustomization.yaml b/infra/feast-operator/config/overlays/rhoai/kustomization.yaml index 5708b1f0c37..0e305e2c5dd 100644 --- a/infra/feast-operator/config/overlays/rhoai/kustomization.yaml +++ b/infra/feast-operator/config/overlays/rhoai/kustomization.yaml @@ -6,19 +6,12 @@ namespace: redhat-ods-applications resources: - ../../default + - selector_migration_job.yaml patches: # patch to remove default `system` namespace in ../../manager/manager.yaml - path: delete-namespace.yaml - # Remove app.kubernetes.io/name from the Deployment selector to avoid - # immutable spec.selector errors on upgrade. The label remains in the - # pod template so the metrics Service selector still targets only - # feast-operator pods. - - path: remove_selector_label_patch.yaml - target: - kind: Deployment - name: controller-manager configMapGenerator: - name: feast-operator-parameters @@ -70,3 +63,13 @@ replacements: name: controller-manager fieldPaths: - spec.template.spec.containers.[name=manager].env.[name=OIDC_ISSUER_URL].value + - source: + kind: ConfigMap + name: feast-operator-parameters + fieldPath: data.RELATED_IMAGE_CRON_JOB + targets: + - select: + kind: Job + name: selector-migration + fieldPaths: + - spec.template.spec.containers.[name=migrate].image diff --git a/infra/feast-operator/config/overlays/rhoai/remove_selector_label_patch.yaml b/infra/feast-operator/config/overlays/rhoai/remove_selector_label_patch.yaml deleted file mode 100644 index e842c1f7a58..00000000000 --- a/infra/feast-operator/config/overlays/rhoai/remove_selector_label_patch.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- op: remove - path: /spec/selector/matchLabels/app.kubernetes.io~1name diff --git a/infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml b/infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml new file mode 100644 index 00000000000..1646e23afe9 --- /dev/null +++ b/infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml @@ -0,0 +1,56 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: selector-migration + namespace: system + labels: + app.kubernetes.io/name: feast-operator + app.kubernetes.io/managed-by: kustomize +spec: + ttlSecondsAfterFinished: 300 + backoffLimit: 3 + template: + metadata: + labels: + app.kubernetes.io/name: feast-operator + spec: + serviceAccountName: controller-manager + restartPolicy: Never + securityContext: + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + containers: + - name: migrate + image: origin-cli:latest + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + resources: + requests: + memory: "64Mi" + cpu: "100m" + limits: + memory: "128Mi" + cpu: "200m" + command: + - /bin/sh + - -c + - | + set -e + DEPLOY="feast-operator-controller-manager" + NS="$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)" + + HAS_LABEL=$(oc get deployment "$DEPLOY" -n "$NS" \ + -o jsonpath='{.spec.selector.matchLabels.app\.kubernetes\.io/name}' 2>/dev/null || true) + + if [ -z "$HAS_LABEL" ]; then + echo "Deployment $DEPLOY has old or missing selector." + echo "Deleting so it can be recreated with the correct selector..." + oc delete deployment "$DEPLOY" -n "$NS" --ignore-not-found=true + echo "Done. The operator will recreate the Deployment." + else + echo "Deployment selector is already correct, no migration needed." + fi From 6ae80af1ba542ebe12e78c9a05ad2624ffd1a127 Mon Sep 17 00:00:00 2001 From: Nikhil Kathole Date: Wed, 20 May 2026 13:35:55 +0530 Subject: [PATCH 25/59] feat: REST API-backed UI for RBAC compatibility and per-page lazy loading (#6414) * feat: Phase 1 - Added different data modes to UI server Signed-off-by: ntkathole * feat: Phase 2 - REST Data Fetching in UI Signed-off-by: ntkathole * feat: Phase 3 - Per-Page Lazy UI Loading when using rest mode Signed-off-by: ntkathole * feat: Phase 4 - Default rest mode Signed-off-by: ntkathole --------- Signed-off-by: ntkathole --- sdk/python/feast/cli/ui.py | 1 - sdk/python/feast/ui_server.py | 151 ++++--- sdk/python/tests/unit/test_ui_server.py | 167 ++++--- ui/.prettierignore | 1 + ui/src/FeastUISansProviders.test.tsx | 30 +- ui/src/FeastUISansProviders.tsx | 183 ++++---- ui/src/components/ObjectsCountStats.tsx | 79 ++-- ui/src/components/ProjectSelector.test.tsx | 18 +- ui/src/contexts/DataModeContext.tsx | 20 + ui/src/contexts/ProjectListContext.ts | 1 + ui/src/hooks/useTagsAggregation.ts | 52 ++- ui/src/mocks/handlers.ts | 270 ++++++++++- ui/src/pages/ProjectOverviewPage.tsx | 201 ++++----- ui/src/pages/Sidebar.tsx | 105 +++-- .../data-sources/DataSourceOverviewTab.tsx | 4 +- ui/src/pages/data-sources/Index.tsx | 25 +- .../pages/data-sources/useLoadDataSource.ts | 46 +- .../pages/entities/EntitiesListingTable.tsx | 5 +- ui/src/pages/entities/Index.tsx | 25 +- ui/src/pages/entities/useLoadEntity.ts | 26 +- .../FeatureServiceListingTable.tsx | 5 +- .../FeatureServiceOverviewTab.tsx | 4 +- ui/src/pages/feature-services/Index.tsx | 25 +- .../feature-services/useLoadFeatureService.ts | 69 ++- .../feature-views/FeatureViewListingTable.tsx | 13 +- .../feature-views/FeatureViewVersionsTab.tsx | 2 +- ui/src/pages/feature-views/Index.tsx | 26 +- .../pages/feature-views/useLoadFeatureView.ts | 99 ++--- ui/src/pages/features/FeatureListPage.tsx | 61 +-- ui/src/pages/features/useLoadFeature.ts | 37 +- .../saved-data-sets/DatasetOverviewTab.tsx | 2 +- ui/src/pages/saved-data-sets/Index.tsx | 27 +- .../pages/saved-data-sets/useLoadDataset.ts | 32 +- ui/src/queries/restApiClient.ts | 40 ++ ui/src/queries/useLoadRegistry.ts | 420 ++++++++---------- ui/src/queries/useResourceQuery.ts | 193 ++++++++ 36 files changed, 1454 insertions(+), 1011 deletions(-) create mode 100644 ui/src/contexts/DataModeContext.tsx create mode 100644 ui/src/queries/restApiClient.ts create mode 100644 ui/src/queries/useResourceQuery.ts diff --git a/sdk/python/feast/cli/ui.py b/sdk/python/feast/cli/ui.py index 9fd7b24b7cd..ac4a8b3e220 100644 --- a/sdk/python/feast/cli/ui.py +++ b/sdk/python/feast/cli/ui.py @@ -70,7 +70,6 @@ def ui( "Please configure --key and --cert args to start the feature server in SSL mode." ) store = create_feature_store(ctx) - # Pass in the registry_dump method to get around a circular dependency store.serve_ui( host=host, port=port, diff --git a/sdk/python/feast/ui_server.py b/sdk/python/feast/ui_server.py index 99a4abc9c81..22044ed3196 100644 --- a/sdk/python/feast/ui_server.py +++ b/sdk/python/feast/ui_server.py @@ -1,4 +1,5 @@ import json +import logging import threading from importlib import resources as importlib_resources from typing import Callable, Optional @@ -10,24 +11,59 @@ import feast +logger = logging.getLogger(__name__) -def get_app( + +def _build_projects_list( store: "feast.FeatureStore", project_id: str, - registry_ttl_secs: int, - root_path: str = "", + root_path: str, ): - app = FastAPI() + """Build the projects list for the UI.""" + discovered_projects = [] + registry = store.registry.proto() - app.add_middleware( - CORSMiddleware, - allow_origins=["*"], - allow_credentials=True, - allow_methods=["*"], - allow_headers=["*"], - ) + registry_path_template = f"{root_path}/api/v1" + + if registry and registry.projects and len(registry.projects) > 0: + for proj in registry.projects: + if proj.spec and proj.spec.name: + discovered_projects.append( + { + "name": proj.spec.name.replace("_", " ").title(), + "description": proj.spec.description + or f"Project: {proj.spec.name}", + "id": proj.spec.name, + "registryPath": registry_path_template, + } + ) + else: + discovered_projects.append( + { + "name": "Project", + "description": "Test project", + "id": project_id, + "registryPath": registry_path_template, + } + ) + + if len(discovered_projects) > 1: + all_projects_entry = { + "name": "All Projects", + "description": "View data across all projects", + "id": "all", + "registryPath": registry_path_template, + } + discovered_projects.insert(0, all_projects_entry) + + return {"projects": discovered_projects} + + +def _setup_rest_mode(app: FastAPI, store: "feast.FeatureStore", registry_ttl_secs: int): + """Mount the REST registry API routes on the UI server under /api/v1.""" + from feast.api.registry.rest import register_all_routes + from feast.registry_server import RegistryServer - # Asynchronously refresh registry, notifying shutdown and canceling the active timer if the app is shutting down registry_proto = None shutting_down = False active_timer: Optional[threading.Timer] = None @@ -51,61 +87,11 @@ def shutdown_event(): async_refresh() - ui_dir_ref = importlib_resources.files(__spec__.parent) / "ui/build/" # type: ignore[name-defined, arg-type] - with importlib_resources.as_file(ui_dir_ref) as ui_dir: - # Initialize with the projects-list.json file - with ui_dir.joinpath("projects-list.json").open(mode="w") as f: - # Get all projects from the registry - discovered_projects = [] - registry = store.registry.proto() - - # Use the projects list from the registry - if registry and registry.projects and len(registry.projects) > 0: - for proj in registry.projects: - if proj.spec and proj.spec.name: - discovered_projects.append( - { - "name": proj.spec.name.replace("_", " ").title(), - "description": proj.spec.description - or f"Project: {proj.spec.name}", - "id": proj.spec.name, - "registryPath": f"{root_path}/registry", - } - ) - else: - # If no projects in registry, use the current project from feature_store.yaml - discovered_projects.append( - { - "name": "Project", - "description": "Test project", - "id": project_id, - "registryPath": f"{root_path}/registry", - } - ) + grpc_handler = RegistryServer(store.registry) - # Add "All Projects" option at the beginning if there are multiple projects - if len(discovered_projects) > 1: - all_projects_entry = { - "name": "All Projects", - "description": "View data across all projects", - "id": "all", - "registryPath": f"{root_path}/registry", - } - discovered_projects.insert(0, all_projects_entry) - - projects_dict = {"projects": discovered_projects} - f.write(json.dumps(projects_dict)) - - @app.get("/registry") - def read_registry(): - if registry_proto is None: - return Response( - status_code=status.HTTP_503_SERVICE_UNAVAILABLE - ) # Service Unavailable - return Response( - content=registry_proto.SerializeToString(), - media_type="application/octet-stream", - ) + rest_app = FastAPI(root_path="/api/v1") + register_all_routes(rest_app, grpc_handler) + app.mount("/api/v1", rest_app) @app.get("/health") def health(): @@ -115,14 +101,38 @@ def health(): else Response(status_code=status.HTTP_503_SERVICE_UNAVAILABLE) ) - # For all other paths (such as paths that would otherwise be handled by react router), pass to React + logger.info("REST registry API mounted at /api/v1") + + +def get_app( + store: "feast.FeatureStore", + project_id: str, + registry_ttl_secs: int, + root_path: str = "", +): + app = FastAPI() + + app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], + ) + + _setup_rest_mode(app, store, registry_ttl_secs) + + ui_dir_ref = importlib_resources.files(__spec__.parent) / "ui/build/" # type: ignore[name-defined, arg-type] + with importlib_resources.as_file(ui_dir_ref) as ui_dir: + projects_dict = _build_projects_list(store, project_id, root_path) + with ui_dir.joinpath("projects-list.json").open(mode="w") as f: + f.write(json.dumps(projects_dict)) + @app.api_route("/p/{path_name:path}", methods=["GET"]) def catch_all(): filename = ui_dir.joinpath("index.html") - with open(filename) as f: content = f.read() - return Response(content, media_type="text/html") app.mount( @@ -151,6 +161,9 @@ def start_server( registry_ttl_sec, root_path, ) + + logger.info(f"Starting Feast UI server on {host}:{port}") + if tls_key_path and tls_cert_path: uvicorn.run( app, diff --git a/sdk/python/tests/unit/test_ui_server.py b/sdk/python/tests/unit/test_ui_server.py index 36389f7b860..92689fffa3c 100644 --- a/sdk/python/tests/unit/test_ui_server.py +++ b/sdk/python/tests/unit/test_ui_server.py @@ -23,12 +23,10 @@ def _create_mock_ui_files(temp_dir): ui_dir = os.path.join(temp_dir, "ui", "build") os.makedirs(ui_dir, exist_ok=True) - # Create projects-list.json file projects_file = os.path.join(ui_dir, "projects-list.json") with open(projects_file, "w") as f: json.dump({"projects": []}, f) - # Create index.html file index_file = os.path.join(ui_dir, "index.html") with open(index_file, "w") as f: f.write("Test UI") @@ -36,20 +34,13 @@ def _create_mock_ui_files(temp_dir): @contextlib.contextmanager def _setup_importlib_mocks(temp_dir): - """Helper function to setup importlib resource mocks. - - This function mocks the importlib_resources functionality used by the UI server - to serve static files. It creates a proper context manager that returns the - temporary directory path when used with importlib_resources.as_file(). - """ + """Helper function to setup importlib resource mocks.""" mock_path = Path(temp_dir) - # Create a proper context manager mock mock_context_manager = MagicMock() mock_context_manager.__enter__.return_value = mock_path mock_context_manager.__exit__.return_value = None - # Mock the files() method to return a mock that supports division mock_file_ref = MagicMock() mock_file_ref.__truediv__.return_value = MagicMock() @@ -73,15 +64,11 @@ def mock_feature_store(): @pytest.fixture def ui_app_with_registry(mock_feature_store): - """Fixture for UI app with valid registry data. - - Creates a UI app instance with a properly configured feature store - that has valid registry data available for testing endpoints that - require registry access. - """ + """Fixture for UI app with valid registry data.""" mock_registry = MagicMock() mock_proto = MagicMock() mock_proto.SerializeToString.return_value = b"mock_proto_data" + mock_proto.projects = [] mock_registry.proto.return_value = mock_proto mock_feature_store.registry = mock_registry @@ -95,12 +82,7 @@ def ui_app_with_registry(mock_feature_store): @pytest.fixture def ui_app_without_registry(mock_feature_store): - """Fixture for UI app with None registry data. - - Creates a UI app instance with a feature store that has no registry - data available, used for testing error conditions and service - unavailable responses. - """ + """Fixture for UI app with None registry data.""" mock_registry = MagicMock() mock_registry.proto.return_value = None mock_feature_store.registry = mock_registry @@ -114,53 +96,19 @@ def ui_app_without_registry(mock_feature_store): def test_ui_server_health_endpoint(ui_app_with_registry): - """Test the UI server health endpoint returns 200 when registry is available. - - This test verifies that the /health endpoint correctly returns HTTP 200 - when the feature store registry is properly initialized and contains data. - """ + """Health endpoint returns 200 when registry is available.""" client = TestClient(ui_app_with_registry) response = client.get("/health") assertpy.assert_that(response.status_code).is_equal_to(EXPECTED_SUCCESS_STATUS) def test_ui_server_health_endpoint_with_none_registry(ui_app_without_registry): - """Test the UI server health endpoint returns 503 when registry is None. - - This test verifies that the /health endpoint correctly returns HTTP 503 - (Service Unavailable) when the feature store registry is not available - or contains no data. - """ + """Health endpoint returns 503 when registry is None.""" client = TestClient(ui_app_without_registry) response = client.get("/health") assertpy.assert_that(response.status_code).is_equal_to(EXPECTED_ERROR_STATUS) -def test_registry_endpoint_with_valid_data(ui_app_with_registry): - """Test the registry endpoint returns valid data with correct content type. - - This test verifies that the /registry endpoint correctly returns HTTP 200 - with the proper content-type header when registry data is available. - """ - client = TestClient(ui_app_with_registry) - response = client.get("/registry") - assertpy.assert_that(response.status_code).is_equal_to(EXPECTED_SUCCESS_STATUS) - assertpy.assert_that(response.headers["content-type"]).is_equal_to( - "application/octet-stream" - ) - - -def test_registry_endpoint_with_none_data(ui_app_without_registry): - """Test the registry endpoint returns 503 when registry data is None. - - This test verifies that the /registry endpoint correctly returns HTTP 503 - (Service Unavailable) when no registry data is available. - """ - client = TestClient(ui_app_without_registry) - response = client.get("/registry") - assertpy.assert_that(response.status_code).is_equal_to(EXPECTED_ERROR_STATUS) - - @pytest.mark.parametrize( "registry_available,expected_status", [(True, EXPECTED_SUCCESS_STATUS), (False, EXPECTED_ERROR_STATUS)], @@ -168,15 +116,12 @@ def test_registry_endpoint_with_none_data(ui_app_without_registry): def test_health_endpoint_status( registry_available, expected_status, mock_feature_store ): - """Test the health endpoint returns correct status based on registry availability. - - This parametrized test verifies that the /health endpoint returns the - appropriate HTTP status code based on whether registry data is available. - """ + """Health endpoint returns correct status based on registry availability.""" if registry_available: mock_registry = MagicMock() mock_proto = MagicMock() mock_proto.SerializeToString.return_value = b"mock_proto_data" + mock_proto.projects = [] mock_registry.proto.return_value = mock_proto mock_feature_store.registry = mock_registry else: @@ -195,15 +140,93 @@ def test_health_endpoint_status( def test_catch_all_route(ui_app_with_registry): - """Test the catch-all route for React router paths. - - This test reveals a bug in the original UI server code where ui_dir - is not in scope for the catch_all function. The ui_dir variable is defined - inside the importlib_resources context manager but used outside of it. - This causes a NameError when the route is accessed. - """ + """Test the catch-all route for React router paths.""" client = TestClient(ui_app_with_registry) - # The route will fail due to the scope issue with ui_dir - with pytest.raises(Exception): # Expecting NameError or FileNotFoundError + with pytest.raises(Exception): client.get("/p/some/react/path") + + +# ---------- projects-list.json tests ---------- + + +def _read_projects_list(temp_dir): + """Read the projects-list.json written by get_app via the mock (ui_dir = temp_dir).""" + projects_file = os.path.join(temp_dir, "projects-list.json") + with open(projects_file) as f: + return json.load(f) + + +def test_projects_list_registry_path(mock_feature_store): + """projects-list.json uses /api/v1 as registryPath.""" + mock_registry = MagicMock() + mock_proto = MagicMock() + mock_proto.SerializeToString.return_value = b"data" + mock_proto.projects = [] + mock_registry.proto.return_value = mock_proto + mock_feature_store.registry = mock_registry + + with tempfile.TemporaryDirectory() as temp_dir: + _create_mock_ui_files(temp_dir) + + with _setup_importlib_mocks(temp_dir): + get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + + data = _read_projects_list(temp_dir) + assertpy.assert_that(data["projects"][0]["registryPath"]).is_equal_to("/api/v1") + + +def test_projects_list_with_root_path(mock_feature_store): + """root_path prefix is included in registryPath.""" + mock_registry = MagicMock() + mock_proto = MagicMock() + mock_proto.SerializeToString.return_value = b"data" + mock_proto.projects = [] + mock_registry.proto.return_value = mock_proto + mock_feature_store.registry = mock_registry + + with tempfile.TemporaryDirectory() as temp_dir: + _create_mock_ui_files(temp_dir) + + with _setup_importlib_mocks(temp_dir): + get_app( + mock_feature_store, + TEST_PROJECT_NAME, + REGISTRY_TTL_SECS, + root_path="/feast", + ) + + data = _read_projects_list(temp_dir) + assertpy.assert_that(data["projects"][0]["registryPath"]).is_equal_to( + "/feast/api/v1" + ) + + +def test_projects_list_multiple_projects(mock_feature_store): + """Multiple projects get an 'All Projects' entry prepended.""" + mock_registry = MagicMock() + mock_proto = MagicMock() + mock_proto.SerializeToString.return_value = b"data" + + proj1 = MagicMock() + proj1.spec.name = "project_alpha" + proj1.spec.description = "Alpha project" + proj2 = MagicMock() + proj2.spec.name = "project_beta" + proj2.spec.description = "Beta project" + mock_proto.projects = [proj1, proj2] + + mock_registry.proto.return_value = mock_proto + mock_feature_store.registry = mock_registry + + with tempfile.TemporaryDirectory() as temp_dir: + _create_mock_ui_files(temp_dir) + + with _setup_importlib_mocks(temp_dir): + get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + + data = _read_projects_list(temp_dir) + assertpy.assert_that(len(data["projects"])).is_equal_to(3) + assertpy.assert_that(data["projects"][0]["id"]).is_equal_to("all") + assertpy.assert_that(data["projects"][1]["id"]).is_equal_to("project_alpha") + assertpy.assert_that(data["projects"][2]["id"]).is_equal_to("project_beta") diff --git a/ui/.prettierignore b/ui/.prettierignore index d2fa6a8b18e..14a40bc5836 100644 --- a/ui/.prettierignore +++ b/ui/.prettierignore @@ -1,3 +1,4 @@ *.css *.md dist/ +build/ diff --git a/ui/src/FeastUISansProviders.test.tsx b/ui/src/FeastUISansProviders.test.tsx index cf4a01621de..f0a940e44b3 100644 --- a/ui/src/FeastUISansProviders.test.tsx +++ b/ui/src/FeastUISansProviders.test.tsx @@ -10,33 +10,17 @@ import { import userEvent from "@testing-library/user-event"; import FeastUISansProviders from "./FeastUISansProviders"; -import { - projectsListWithDefaultProject, - creditHistoryRegistry, - creditHistoryRegistryDB, -} from "./mocks/handlers"; +import { allRestHandlers } from "./mocks/handlers"; import { readFileSync } from "fs"; import { feast } from "./protos"; import path from "path"; // declare which API requests to mock -const server = setupServer( - projectsListWithDefaultProject, - creditHistoryRegistry, - creditHistoryRegistryDB, -); +const server = setupServer(...allRestHandlers); const registry = readFileSync(path.resolve(__dirname, "../public/registry.db")); const parsedRegistry = feast.core.Registry.decode(registry); -console.log("Registry Feature Views:", parsedRegistry.featureViews?.length); -if (parsedRegistry.featureViews && parsedRegistry.featureViews.length > 0) { - console.log( - "First Feature View Name:", - parsedRegistry.featureViews[0].spec?.name, - ); -} - // establish API mocking before all tests beforeAll(() => server.listen()); // reset any request handlers that are declared as a part of our tests @@ -64,14 +48,12 @@ test("full app rendering", async () => { // Explore Panel Should Appear expect(screen.getByText(/Explore this Project/i)).toBeInTheDocument(); - const projectNameRegExp = new RegExp( - parsedRegistry.projects[0].spec?.name!, - "i", - ); - // It should load the default project, which is credit_scoring_aws + // The heading shows the display name from projects-list.json await waitFor(() => { - expect(screen.getByText(projectNameRegExp)).toBeInTheDocument(); + expect( + screen.getByRole("heading", { name: /Credit Score Project/i }), + ).toBeInTheDocument(); }); }); diff --git a/ui/src/FeastUISansProviders.tsx b/ui/src/FeastUISansProviders.tsx index 9a2207e22dd..50de27b5944 100644 --- a/ui/src/FeastUISansProviders.tsx +++ b/ui/src/FeastUISansProviders.tsx @@ -38,11 +38,14 @@ import { ProjectListContext, ProjectsListContextInterface, } from "./contexts/ProjectListContext"; +import DataModeContext from "./contexts/DataModeContext"; +import type { DataModeConfig, FetchOptions } from "./contexts/DataModeContext"; interface FeastUIConfigs { tabsRegistry?: FeastTabsRegistryInterface; featureFlags?: FeatureFlags; projectListPromise?: Promise; + fetchOptions?: FetchOptions; } const defaultProjectListPromise = (basename: string) => { @@ -95,95 +98,111 @@ const FeastUISansProvidersInner = ({ }) => { const { colorMode } = useTheme(); + const dataModeConfig: DataModeConfig = { + fetchOptions: feastUIConfigs?.fetchOptions, + }; + return ( - - + - - - }> - } /> - }> - } /> - } /> - } - /> - } /> - } - /> - } - > - } - /> + + + + }> + } /> } - /> - } - /> - } /> - } - /> + path="/p/:projectName/*" + element={} + > + } /> + } + /> + } + /> + } /> + } + /> + } + > + } + /> + } + /> + } + /> + } /> + } + /> - } /> - } - /> - } - /> - } /> - } /> + } /> + } + /> + } + /> + } + /> + } /> + - - } /> - - - - + } /> + + + + + ); diff --git a/ui/src/components/ObjectsCountStats.tsx b/ui/src/components/ObjectsCountStats.tsx index bf1dd2dc9dd..6fc6d2d22dc 100644 --- a/ui/src/components/ObjectsCountStats.tsx +++ b/ui/src/components/ObjectsCountStats.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from "react"; +import React from "react"; import { EuiFlexGroup, EuiFlexItem, @@ -7,45 +7,60 @@ import { EuiTitle, EuiSpacer, } from "@elastic/eui"; -import useLoadRegistry from "../queries/useLoadRegistry"; import { useNavigate, useParams } from "react-router-dom"; -import RegistryPathContext from "../contexts/RegistryPathContext"; - -const useLoadObjectStats = () => { - const registryUrl = useContext(RegistryPathContext); - const query = useLoadRegistry(registryUrl); - - const data = - query.isSuccess && query.data - ? { - featureServices: query.data.objects.featureServices?.length || 0, - featureViews: query.data.mergedFVList.length, - entities: query.data.objects.entities?.length || 0, - dataSources: query.data.objects.dataSources?.length || 0, - } - : undefined; - - return { - ...query, - data, - }; -}; +import useResourceQuery, { + entityListPath, + featureViewListPath, + featureServiceListPath, + dataSourceListPath, + restFeatureViewsToMergedList, +} from "../queries/useResourceQuery"; +import type { genericFVType } from "../parsers/mergedFVTypes"; const statStyle = { cursor: "pointer" }; const ObjectsCountStats = () => { - const { isLoading, isSuccess, isError, data } = useLoadObjectStats(); const { projectName } = useParams(); - const navigate = useNavigate(); + const { data: featureServices, isSuccess: fsOk } = useResourceQuery({ + resourceType: "stats-fs", + project: projectName, + restPath: featureServiceListPath(projectName), + restSelect: (d) => d.featureServices, + }); + + const { data: featureViews, isSuccess: fvOk } = useResourceQuery< + genericFVType[] + >({ + resourceType: "stats-fvs", + project: projectName, + restPath: featureViewListPath(projectName), + restSelect: restFeatureViewsToMergedList, + }); + + const { data: entities, isSuccess: entOk } = useResourceQuery({ + resourceType: "stats-ent", + project: projectName, + restPath: entityListPath(projectName), + restSelect: (d) => d.entities, + }); + + const { data: dataSources, isSuccess: dsOk } = useResourceQuery({ + resourceType: "stats-ds", + project: projectName, + restPath: dataSourceListPath(projectName), + restSelect: (d) => d.dataSources, + }); + + const allOk = fsOk && fvOk && entOk && dsOk; + return ( - {isLoading &&

Loading

} - {isError &&

There was an error in loading registry information.

} - {isSuccess && data && ( + {!allOk &&

Loading

} + {allOk && (

Registered in this Feast project are …

@@ -57,7 +72,7 @@ const ObjectsCountStats = () => { style={statStyle} onClick={() => navigate(`/p/${projectName}/feature-service`)} description="Feature Services→" - title={data.featureServices} + title={featureServices?.length || 0} reverse /> @@ -66,7 +81,7 @@ const ObjectsCountStats = () => { style={statStyle} description="Feature Views→" onClick={() => navigate(`/p/${projectName}/feature-view`)} - title={data.featureViews} + title={featureViews?.length || 0} reverse /> @@ -75,7 +90,7 @@ const ObjectsCountStats = () => { style={statStyle} description="Entities→" onClick={() => navigate(`/p/${projectName}/entity`)} - title={data.entities} + title={entities?.length || 0} reverse /> @@ -84,7 +99,7 @@ const ObjectsCountStats = () => { style={statStyle} description="Data Sources→" onClick={() => navigate(`/p/${projectName}/data-source`)} - title={data.dataSources} + title={dataSources?.length || 0} reverse /> diff --git a/ui/src/components/ProjectSelector.test.tsx b/ui/src/components/ProjectSelector.test.tsx index 40d89cde93c..d311e7ef980 100644 --- a/ui/src/components/ProjectSelector.test.tsx +++ b/ui/src/components/ProjectSelector.test.tsx @@ -5,18 +5,10 @@ import userEvent from "@testing-library/user-event"; import FeastUISansProviders from "../FeastUISansProviders"; -import { - projectsListWithDefaultProject, - creditHistoryRegistry, - creditHistoryRegistryDB, -} from "../mocks/handlers"; +import { allRestHandlers } from "../mocks/handlers"; // declare which API requests to mock -const server = setupServer( - projectsListWithDefaultProject, - creditHistoryRegistry, - creditHistoryRegistryDB, -); +const server = setupServer(...allRestHandlers); // establish API mocking before all tests beforeAll(() => server.listen()); @@ -48,12 +40,12 @@ test("in a full App render, it shows the right initial project", async () => { // Wait for Project Data from Registry to Load await screen.findAllByRole("heading", { - name: /Project: credit_scoring_aws/i, + name: /Project: Credit Score Project/i, }); // Before User Event: Heading is the credit scoring project screen.getByRole("heading", { - name: /credit_scoring_aws/i, + name: /Credit Score Project/i, }); // Do the select option user event @@ -78,6 +70,6 @@ test("in a full App render, it shows the right initial project", async () => { // ... and the new heading should appear // meaning we successfully navigated await screen.findByRole("heading", { - name: /Project: credit_scoring_aws/i, + name: /Project: Credit Score Project/i, }); }); diff --git a/ui/src/contexts/DataModeContext.tsx b/ui/src/contexts/DataModeContext.tsx new file mode 100644 index 00000000000..c8ef4ea0bab --- /dev/null +++ b/ui/src/contexts/DataModeContext.tsx @@ -0,0 +1,20 @@ +import React, { useContext } from "react"; + +interface FetchOptions { + headers?: Record; + credentials?: RequestCredentials; +} + +interface DataModeConfig { + fetchOptions?: FetchOptions; +} + +const defaultConfig: DataModeConfig = {}; + +const DataModeContext = React.createContext(defaultConfig); + +const useDataMode = () => useContext(DataModeContext); + +export default DataModeContext; +export { useDataMode }; +export type { DataModeConfig, FetchOptions }; diff --git a/ui/src/contexts/ProjectListContext.ts b/ui/src/contexts/ProjectListContext.ts index c42b22f6611..a230300be3b 100644 --- a/ui/src/contexts/ProjectListContext.ts +++ b/ui/src/contexts/ProjectListContext.ts @@ -13,6 +13,7 @@ const ProjectEntrySchema = z.object({ const ProjectsListSchema = z.object({ default: z.string().optional(), projects: z.array(ProjectEntrySchema), + mode: z.string().optional(), }); type ProjectsListType = z.infer; diff --git a/ui/src/hooks/useTagsAggregation.ts b/ui/src/hooks/useTagsAggregation.ts index 5d36fd54285..9ad0d78d6f5 100644 --- a/ui/src/hooks/useTagsAggregation.ts +++ b/ui/src/hooks/useTagsAggregation.ts @@ -1,13 +1,13 @@ -import { useContext, useMemo } from "react"; -import RegistryPathContext from "../contexts/RegistryPathContext"; -import useLoadRegistry from "../queries/useLoadRegistry"; -import { feast } from "../protos"; +import { useMemo } from "react"; +import { useParams } from "react-router-dom"; +import useResourceQuery, { + featureViewListPath, + featureServiceListPath, +} from "../queries/useResourceQuery"; -// Usage of generic type parameter T -// https://stackoverflow.com/questions/53203409/how-to-tell-typescript-that-im-returning-an-array-of-arrays-of-the-input-type const buildTagCollection = ( array: T[], - recordExtractor: (unknownFCO: T) => Record | undefined, // Assumes that tags are always a Record + recordExtractor: (unknownFCO: T) => Record | undefined, ): Record> => { const tagCollection = array.reduce( (memo: Record>, fco: T) => { @@ -38,17 +38,17 @@ const buildTagCollection = ( }; const useFeatureViewTagsAggregation = () => { - const registryUrl = useContext(RegistryPathContext); - const query = useLoadRegistry(registryUrl); + const { projectName } = useParams(); + const query = useResourceQuery({ + resourceType: "tags-fvs", + project: projectName, + restPath: featureViewListPath(projectName), + restSelect: (d) => d.featureViews, + }); const data = useMemo(() => { - return query.data && query.data.objects && query.data.objects.featureViews - ? buildTagCollection( - query.data.objects.featureViews!, - (fv) => { - return fv.spec?.tags!; - }, - ) + return query.data + ? buildTagCollection(query.data, (fv) => fv.spec?.tags) : undefined; }, [query.data]); @@ -59,19 +59,17 @@ const useFeatureViewTagsAggregation = () => { }; const useFeatureServiceTagsAggregation = () => { - const registryUrl = useContext(RegistryPathContext); - const query = useLoadRegistry(registryUrl); + const { projectName } = useParams(); + const query = useResourceQuery({ + resourceType: "tags-fss", + project: projectName, + restPath: featureServiceListPath(projectName), + restSelect: (d) => d.featureServices, + }); const data = useMemo(() => { - return query.data && - query.data.objects && - query.data.objects.featureServices - ? buildTagCollection( - query.data.objects.featureServices, - (fs) => { - return fs.spec?.tags!; - }, - ) + return query.data + ? buildTagCollection(query.data, (fs) => fs.spec?.tags) : undefined; }, [query.data]); diff --git a/ui/src/mocks/handlers.ts b/ui/src/mocks/handlers.ts index 1c32bb2cf87..d36c81db846 100644 --- a/ui/src/mocks/handlers.ts +++ b/ui/src/mocks/handlers.ts @@ -1,10 +1,48 @@ import { http, HttpResponse } from "msw"; import { readFileSync } from "fs"; import path from "path"; +import { feast } from "../protos"; -const registry = readFileSync( +const registryBuf = readFileSync( path.resolve(__dirname, "../../public/registry.db"), ); +const parsedRegistry = feast.core.Registry.decode(registryBuf); + +const toJSON = (obj: any) => (obj && obj.toJSON ? obj.toJSON() : obj); + +const entitiesJSON = (parsedRegistry.entities || []).map(toJSON); +const featureViewsJSON = (parsedRegistry.featureViews || []).map((fv) => ({ + ...toJSON(fv), + type: "featureView", +})); +const onDemandFVsJSON = (parsedRegistry.onDemandFeatureViews || []).map( + (fv) => ({ + ...toJSON(fv), + type: "onDemandFeatureView", + }), +); +const streamFVsJSON = (parsedRegistry.streamFeatureViews || []).map((fv) => ({ + ...toJSON(fv), + type: "streamFeatureView", +})); +const allFeatureViewsJSON = [ + ...featureViewsJSON, + ...onDemandFVsJSON, + ...streamFVsJSON, +]; +const featureServicesJSON = (parsedRegistry.featureServices || []).map(toJSON); +const dataSourcesJSON = (parsedRegistry.dataSources || []).map(toJSON); +const savedDatasetsJSON = (parsedRegistry.savedDatasets || []).map(toJSON); +const projectsJSON = (parsedRegistry.projects || []).map(toJSON); + +const allFeatures = featureViewsJSON.flatMap((fv: any) => + (fv?.spec?.features || []).map((f: any) => ({ + name: f.name, + featureViewName: fv.spec?.name, + valueType: f.valueType, + project: fv.spec?.project, + })), +); const projectsListWithDefaultProject = http.get("/projects-list.json", () => HttpResponse.json({ @@ -14,22 +52,232 @@ const projectsListWithDefaultProject = http.get("/projects-list.json", () => name: "Credit Score Project", description: "Project for credit scoring team and associated models.", id: "credit_scoring_aws", - registryPath: "/registry.db", // Changed to match what the test expects + registryPath: "/api/v1", }, ], }), ); -const creditHistoryRegistryPB = http.get("/registry.pb", () => { - return HttpResponse.arrayBuffer(registry.buffer); -}); +// REST API list endpoints +const restEntities = http.get("/api/v1/entities", () => + HttpResponse.json({ + entities: entitiesJSON, + pagination: {}, + relationships: {}, + }), +); + +const restFeatureViews = http.get("/api/v1/feature_views", () => + HttpResponse.json({ + featureViews: allFeatureViewsJSON, + pagination: {}, + relationships: {}, + }), +); + +const restFeatureServices = http.get("/api/v1/feature_services", () => + HttpResponse.json({ + featureServices: featureServicesJSON, + pagination: {}, + relationships: {}, + }), +); + +const restDataSources = http.get("/api/v1/data_sources", () => + HttpResponse.json({ + dataSources: dataSourcesJSON, + pagination: {}, + relationships: {}, + }), +); + +const restSavedDatasets = http.get("/api/v1/saved_datasets", () => + HttpResponse.json({ + savedDatasets: savedDatasetsJSON, + pagination: {}, + }), +); + +const restProjects = http.get("/api/v1/projects", () => + HttpResponse.json({ + projects: projectsJSON, + pagination: {}, + }), +); + +const restFeatures = http.get("/api/v1/features", () => + HttpResponse.json({ + features: allFeatures, + pagination: {}, + }), +); + +const restPermissions = http.get("/api/v1/permissions", () => + HttpResponse.json({ + permissions: [], + pagination: {}, + }), +); -const creditHistoryRegistryDB = http.get("/registry.db", () => { - return HttpResponse.arrayBuffer(registry.buffer); +// Detail endpoints +const restFeatureViewDetail = http.get( + "/api/v1/feature_views/:name", + ({ params }) => { + const name = params.name as string; + const fv = allFeatureViewsJSON.find((f: any) => f.spec?.name === name); + if (!fv) return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + return HttpResponse.json(fv); + }, +); + +const restEntityDetail = http.get("/api/v1/entities/:name", ({ params }) => { + const name = params.name as string; + const entity = entitiesJSON.find((e: any) => e.spec?.name === name); + if (!entity) + return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + return HttpResponse.json(entity); }); -export { +const restFeatureServiceDetail = http.get( + "/api/v1/feature_services/:name", + ({ params }) => { + const name = params.name as string; + const fs = featureServicesJSON.find((f: any) => f.spec?.name === name); + if (!fs) return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + return HttpResponse.json(fs); + }, +); + +const restDataSourceDetail = http.get( + "/api/v1/data_sources/:name", + ({ params }) => { + const name = params.name as string; + const ds = dataSourcesJSON.find((d: any) => d.name === name); + if (!ds) return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + return HttpResponse.json(ds); + }, +); + +const restFeatureDetail = http.get( + "/api/v1/features/:fvName/:featureName", + ({ params }) => { + const fvName = params.fvName as string; + const featureName = params.featureName as string; + const fv = allFeatureViewsJSON.find((f: any) => f.spec?.name === fvName); + if (!fv) return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + const feature = (fv as any).spec?.features?.find( + (f: any) => f.name === featureName, + ); + if (!feature) + return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + return HttpResponse.json({ + featureViewName: fvName, + featureName, + feature, + featureView: fv, + }); + }, +); + +// "all" endpoints (for global search / all-projects view) +const restEntitiesAll = http.get("/api/v1/entities/all", () => + HttpResponse.json({ + entities: entitiesJSON.map((e: any) => ({ + ...e, + project: e.spec?.project, + })), + pagination: {}, + relationships: {}, + }), +); + +const restFeatureViewsAll = http.get("/api/v1/feature_views/all", () => + HttpResponse.json({ + featureViews: allFeatureViewsJSON.map((fv: any) => ({ + ...fv, + project: fv.spec?.project, + })), + pagination: {}, + relationships: {}, + }), +); + +const restFeatureServicesAll = http.get("/api/v1/feature_services/all", () => + HttpResponse.json({ + featureServices: featureServicesJSON.map((fs: any) => ({ + ...fs, + project: fs.spec?.project, + })), + pagination: {}, + relationships: {}, + }), +); + +const restDataSourcesAll = http.get("/api/v1/data_sources/all", () => + HttpResponse.json({ + dataSources: dataSourcesJSON.map((ds: any) => ({ + ...ds, + project: ds.project, + })), + pagination: {}, + relationships: {}, + }), +); + +const restSavedDatasetsAll = http.get("/api/v1/saved_datasets/all", () => + HttpResponse.json({ + savedDatasets: savedDatasetsJSON, + pagination: {}, + }), +); + +const restFeaturesAll = http.get("/api/v1/features/all", () => + HttpResponse.json({ + features: allFeatures, + pagination: {}, + }), +); + +const restSavedDatasetDetail = http.get( + "/api/v1/saved_datasets/:name", + ({ params }) => { + const name = params.name as string; + const sd = savedDatasetsJSON.find((d: any) => d.spec?.name === name); + if (!sd) return HttpResponse.json({ detail: "Not found" }, { status: 404 }); + return HttpResponse.json(sd); + }, +); + +const restMetrics = http.get("/api/v1/metrics/:type", () => + HttpResponse.json({}), +); + +const allRestHandlers = [ projectsListWithDefaultProject, - creditHistoryRegistryPB as creditHistoryRegistry, - creditHistoryRegistryDB, -}; + // "all" endpoints must come before parameterized detail routes + restEntitiesAll, + restFeatureViewsAll, + restFeatureServicesAll, + restDataSourcesAll, + restSavedDatasetsAll, + restFeaturesAll, + // List endpoints + restEntities, + restFeatureViews, + restFeatureServices, + restDataSources, + restSavedDatasets, + restProjects, + restFeatures, + restPermissions, + // Detail endpoints + restFeatureViewDetail, + restEntityDetail, + restFeatureServiceDetail, + restDataSourceDetail, + restSavedDatasetDetail, + restFeatureDetail, + restMetrics, +]; + +export { projectsListWithDefaultProject, allRestHandlers }; diff --git a/ui/src/pages/ProjectOverviewPage.tsx b/ui/src/pages/ProjectOverviewPage.tsx index 839fbcc5d89..9d6c9fb65c1 100644 --- a/ui/src/pages/ProjectOverviewPage.tsx +++ b/ui/src/pages/ProjectOverviewPage.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from "react"; +import React from "react"; import { EuiPageTemplate, EuiText, @@ -7,8 +7,6 @@ import { EuiTitle, EuiSpacer, EuiSkeletonText, - EuiEmptyPrompt, - EuiFieldSearch, EuiPanel, EuiStat, EuiCard, @@ -17,54 +15,76 @@ import { import { useDocumentTitle } from "../hooks/useDocumentTitle"; import ObjectsCountStats from "../components/ObjectsCountStats"; import ExplorePanel from "../components/ExplorePanel"; -import useLoadRegistry from "../queries/useLoadRegistry"; -import RegistryPathContext from "../contexts/RegistryPathContext"; -import RegistryVisualizationTab from "../components/RegistryVisualizationTab"; -import RegistrySearch from "../components/RegistrySearch"; +import useResourceQuery, { + restFeatureViewsToMergedList, +} from "../queries/useResourceQuery"; import { useParams, useNavigate } from "react-router-dom"; import { useLoadProjectsList } from "../contexts/ProjectListContext"; +import type { genericFVType } from "../parsers/mergedFVTypes"; + +const getItemProject = (item: any): string => + item?.project || item?.spec?.project || ""; // Component for "All Projects" view const AllProjectsDashboard = () => { - const registryUrl = useContext(RegistryPathContext); const navigate = useNavigate(); const { data: projectsData } = useLoadProjectsList(); - const { data: registryData } = useLoadRegistry(registryUrl); - if (!registryData) { + const { data: allFVs } = useResourceQuery({ + resourceType: "all-proj-fvs", + restPath: "/feature_views/all?limit=100&include_relationships=true", + restSelect: restFeatureViewsToMergedList, + }); + + const { data: allEntities } = useResourceQuery({ + resourceType: "all-proj-entities", + restPath: "/entities/all?limit=100", + restSelect: (d) => d.entities, + }); + + const { data: allDS } = useResourceQuery({ + resourceType: "all-proj-ds", + restPath: "/data_sources/all?limit=100", + restSelect: (d) => d.dataSources, + }); + + const { data: allFS } = useResourceQuery({ + resourceType: "all-proj-fs", + restPath: "/feature_services/all?limit=100", + restSelect: (d) => d.featureServices, + }); + + const { data: allFeatures } = useResourceQuery({ + resourceType: "all-proj-features", + restPath: "/features/all?limit=100", + restSelect: (d) => d.features, + }); + + const loaded = allFVs && allEntities && allDS && allFS && allFeatures; + + if (!loaded) { return ; } - // Calculate total counts across all projects const totalCounts = { - featureViews: registryData.objects.featureViews?.length || 0, - entities: registryData.objects.entities?.length || 0, - dataSources: registryData.objects.dataSources?.length || 0, - featureServices: registryData.objects.featureServices?.length || 0, - features: registryData.allFeatures?.length || 0, + featureViews: allFVs.length, + entities: allEntities.length, + dataSources: allDS.length, + featureServices: allFS.length, + features: allFeatures.length, }; - // Get projects from registry and count their objects const projects = projectsData?.projects.filter((p) => p.id !== "all") || []; const projectStats = projects.map((project) => { - const projectFVs = - registryData.objects.featureViews?.filter( - (fv: any) => fv?.spec?.project === project.id, - ) || []; - const projectEntities = - registryData.objects.entities?.filter( - (e: any) => e?.spec?.project === project.id, - ) || []; - const projectFeatures = - registryData.allFeatures?.filter((f: any) => f?.project === project.id) || - []; + const matchesProject = (item: any) => getItemProject(item) === project.id; return { ...project, counts: { - featureViews: projectFVs.length, - entities: projectEntities.length, - features: projectFeatures.length, + featureViews: allFVs.filter((fv) => matchesProject(fv.object || fv)) + .length, + entities: allEntities.filter(matchesProject).length, + features: allFeatures.filter(matchesProject).length, }, }; }); @@ -195,112 +215,59 @@ const AllProjectsDashboard = () => { const ProjectOverviewPage = () => { useDocumentTitle("Feast Home"); - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams<{ projectName: string }>(); - const { isLoading, isSuccess, isError, data } = useLoadRegistry( - registryUrl, - projectName, - ); + const { data: projectsData } = useLoadProjectsList(); // Show aggregated dashboard for "All Projects" view if (projectName === "all") { return ; } - const categories = [ - { - name: "Data Sources", - data: data?.objects.dataSources || [], - getLink: (item: any) => `/p/${projectName}/data-source/${item.name}`, - }, - { - name: "Entities", - data: data?.objects.entities || [], - getLink: (item: any) => `/p/${projectName}/entity/${item.name}`, - }, - { - name: "Features", - data: data?.allFeatures || [], - getLink: (item: any) => { - const featureView = item?.featureView; - return featureView - ? `/p/${projectName}/feature-view/${featureView}/feature/${item.name}` - : "#"; - }, - }, - { - name: "Feature Views", - data: data?.mergedFVList || [], - getLink: (item: any) => `/p/${projectName}/feature-view/${item.name}`, - }, - { - name: "Feature Services", - data: data?.objects.featureServices || [], - getLink: (item: any) => { - const serviceName = item?.name || item?.spec?.name; - return serviceName - ? `/p/${projectName}/feature-service/${serviceName}` - : "#"; - }, - }, - ]; + const currentProject = projectsData?.projects.find( + (p) => p.id === projectName, + ); return (

- {isLoading && } - {isSuccess && data?.project && `Project: ${data.project}`} + {currentProject + ? `Project: ${currentProject.name}` + : projectName + ? `Project: ${projectName}` + : ""}

- {isLoading && } - {isError && ( - Error Loading Project Configs} - body={ -

- There was an error loading the Project Configurations. - Please check that feature_store.yaml file is - available and well-formed. -

- } - /> + {currentProject?.description ? ( + +
{currentProject.description}
+
+ ) : ( + +

+ Welcome to your new Feast project. In this UI, you can see + Data Sources, Entities, Features, Feature Views, and Feature + Services registered in Feast. +

+

+ It looks like this project already has some objects + registered. If you are new to this project, we suggest + starting by exploring the Feature Services, as they represent + the collection of Feature Views serving a particular model. +

+

+ Note: We encourage you to replace this + welcome message with more suitable content for your team. You + can do so by specifying a project_description in + your feature_store.yaml file. +

+
)} - {isSuccess && - (data?.description ? ( - -
{data.description}
-
- ) : ( - -

- Welcome to your new Feast project. In this UI, you can see - Data Sources, Entities, Features, Feature Views, and Feature - Services registered in Feast. -

-

- It looks like this project already has some objects - registered. If you are new to this project, we suggest - starting by exploring the Feature Services, as they - represent the collection of Feature Views serving a - particular model. -

-

- Note: We encourage you to replace this - welcome message with more suitable content for your team. - You can do so by specifying a{" "} - project_description in your{" "} - feature_store.yaml file. -

-
- ))}
diff --git a/ui/src/pages/Sidebar.tsx b/ui/src/pages/Sidebar.tsx index 55c8ec805c9..cf3d64a6816 100644 --- a/ui/src/pages/Sidebar.tsx +++ b/ui/src/pages/Sidebar.tsx @@ -1,10 +1,17 @@ -import React, { useContext, useState } from "react"; +import React, { useState } from "react"; import { EuiIcon, EuiSideNav, htmlIdGenerator } from "@elastic/eui"; import { Link, useParams } from "react-router-dom"; import { useMatchSubpath } from "../hooks/useMatchSubpath"; -import useLoadRegistry from "../queries/useLoadRegistry"; -import RegistryPathContext from "../contexts/RegistryPathContext"; +import useResourceQuery, { + entityListPath, + featureViewListPath, + featureServiceListPath, + dataSourceListPath, + savedDatasetListPath, + featuresListPath, + restFeatureViewsToMergedList, +} from "../queries/useResourceQuery"; import { DataSourceIcon } from "../graphics/DataSourceIcon"; import { EntityIcon } from "../graphics/EntityIcon"; @@ -14,11 +21,58 @@ import { DatasetIcon } from "../graphics/DatasetIcon"; import { FeatureIcon } from "../graphics/FeatureIcon"; import { HomeIcon } from "../graphics/HomeIcon"; import { PermissionsIcon } from "../graphics/PermissionsIcon"; +import type { genericFVType } from "../parsers/mergedFVTypes"; const SideNav = () => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const { isSuccess, data } = useLoadRegistry(registryUrl, projectName); + + const { isSuccess: dsSuccess, data: dataSources } = useResourceQuery({ + resourceType: "sidebar-ds", + project: projectName, + restPath: dataSourceListPath(projectName), + restSelect: (d) => d.dataSources, + }); + + const { isSuccess: entSuccess, data: entities } = useResourceQuery({ + resourceType: "sidebar-entities", + project: projectName, + restPath: entityListPath(projectName), + restSelect: (d) => d.entities, + }); + + const { isSuccess: fvSuccess, data: featureViews } = useResourceQuery< + genericFVType[] + >({ + resourceType: "sidebar-fvs", + project: projectName, + restPath: featureViewListPath(projectName), + restSelect: restFeatureViewsToMergedList, + }); + + const { isSuccess: featSuccess, data: features } = useResourceQuery({ + resourceType: "sidebar-features", + project: projectName, + restPath: featuresListPath(projectName), + restSelect: (d) => d.features, + }); + + const { isSuccess: fsSuccess, data: featureServices } = useResourceQuery< + any[] + >({ + resourceType: "sidebar-fs", + project: projectName, + restPath: featureServiceListPath(projectName), + restSelect: (d) => d.featureServices, + }); + + const { isSuccess: sdSuccess, data: savedDatasets } = useResourceQuery( + { + resourceType: "sidebar-sd", + project: projectName, + restPath: savedDatasetListPath(projectName), + restSelect: (d) => d.savedDatasets, + }, + ); const [isSideNavOpenOnMobile, setisSideNavOpenOnMobile] = useState(false); @@ -26,41 +80,12 @@ const SideNav = () => { setisSideNavOpenOnMobile(!isSideNavOpenOnMobile); }; - const dataSourcesLabel = `Data Sources ${ - isSuccess && data?.objects.dataSources - ? `(${data?.objects.dataSources?.length})` - : "" - }`; - - const entitiesLabel = `Entities ${ - isSuccess && data?.objects.entities - ? `(${data?.objects.entities?.length})` - : "" - }`; - - const featureViewsLabel = `Feature Views ${ - isSuccess && data?.mergedFVList && data?.mergedFVList.length > 0 - ? `(${data?.mergedFVList.length})` - : "" - }`; - - const featureListLabel = `Features ${ - isSuccess && data?.allFeatures && data?.allFeatures.length > 0 - ? `(${data?.allFeatures.length})` - : "" - }`; - - const featureServicesLabel = `Feature Services ${ - isSuccess && data?.objects.featureServices - ? `(${data?.objects.featureServices?.length})` - : "" - }`; - - const savedDatasetsLabel = `Datasets ${ - isSuccess && data?.objects.savedDatasets - ? `(${data?.objects.savedDatasets?.length})` - : "" - }`; + const dataSourcesLabel = `Data Sources ${dsSuccess && dataSources ? `(${dataSources.length})` : ""}`; + const entitiesLabel = `Entities ${entSuccess && entities ? `(${entities.length})` : ""}`; + const featureViewsLabel = `Feature Views ${fvSuccess && featureViews && featureViews.length > 0 ? `(${featureViews.length})` : ""}`; + const featureListLabel = `Features ${featSuccess && features && features.length > 0 ? `(${features.length})` : ""}`; + const featureServicesLabel = `Feature Services ${fsSuccess && featureServices ? `(${featureServices.length})` : ""}`; + const savedDatasetsLabel = `Datasets ${sdSuccess && savedDatasets ? `(${savedDatasets.length})` : ""}`; const baseUrl = `/p/${projectName}`; diff --git a/ui/src/pages/data-sources/DataSourceOverviewTab.tsx b/ui/src/pages/data-sources/DataSourceOverviewTab.tsx index d702034a558..8d570f3f26d 100644 --- a/ui/src/pages/data-sources/DataSourceOverviewTab.tsx +++ b/ui/src/pages/data-sources/DataSourceOverviewTab.tsx @@ -86,7 +86,7 @@ const DataSourceOverviewTab = () => { { + data?.requestDataOptions?.schema!.map((obj: any) => { return { fieldName: obj.name!, valueType: obj.valueType!, @@ -109,7 +109,7 @@ const DataSourceOverviewTab = () => { {consumingFeatureViews && consumingFeatureViews.length > 0 ? ( { + fvNames={consumingFeatureViews.map((f: any) => { return f.target.name; })} /> diff --git a/ui/src/pages/data-sources/Index.tsx b/ui/src/pages/data-sources/Index.tsx index 96aef712aec..84309775e0b 100644 --- a/ui/src/pages/data-sources/Index.tsx +++ b/ui/src/pages/data-sources/Index.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from "react"; +import React from "react"; import { useParams } from "react-router-dom"; import { @@ -11,30 +11,25 @@ import { EuiSpacer, } from "@elastic/eui"; -import useLoadRegistry from "../../queries/useLoadRegistry"; import DatasourcesListingTable from "./DataSourcesListingTable"; import { useDocumentTitle } from "../../hooks/useDocumentTitle"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; import DataSourceIndexEmptyState from "./DataSourceIndexEmptyState"; import { DataSourceIcon } from "../../graphics/DataSourceIcon"; import { useSearchQuery } from "../../hooks/useSearchInputWithTags"; import { feast } from "../../protos"; import ExportButton from "../../components/ExportButton"; +import useResourceQuery, { + dataSourceListPath, +} from "../../queries/useResourceQuery"; const useLoadDatasources = () => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.dataSources; - - return { - ...registryQuery, - data, - }; + return useResourceQuery({ + resourceType: "data-sources-list", + project: projectName, + restPath: dataSourceListPath(projectName), + restSelect: (d) => d.dataSources, + }); }; const filterFn = (data: feast.core.IDataSource[], searchTokens: string[]) => { diff --git a/ui/src/pages/data-sources/useLoadDataSource.ts b/ui/src/pages/data-sources/useLoadDataSource.ts index 43f697fca03..bc0a409b9c8 100644 --- a/ui/src/pages/data-sources/useLoadDataSource.ts +++ b/ui/src/pages/data-sources/useLoadDataSource.ts @@ -1,35 +1,33 @@ -import { useContext } from "react"; import { useParams } from "react-router-dom"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; -import { FEAST_FCO_TYPES } from "../../parsers/types"; -import useLoadRegistry from "../../queries/useLoadRegistry"; +import useResourceQuery, { + dataSourceDetailPath, +} from "../../queries/useResourceQuery"; const useLoadDataSource = (dataSourceName: string) => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.dataSources?.find( - (ds) => ds.name === dataSourceName, - ); + const dsQuery = useResourceQuery({ + resourceType: `data-source:${dataSourceName}`, + project: projectName, + restPath: dataSourceDetailPath(dataSourceName, projectName || ""), + restSelect: (d) => ({ + dataSource: d, + relationships: d?.relationships || [], + }), + enabled: !!dataSourceName, + }); - const consumingFeatureViews = - registryQuery.data === undefined - ? undefined - : registryQuery.data.relationships.filter((relationship) => { - return ( - relationship.source.type === FEAST_FCO_TYPES.dataSource && - relationship.source.name === data?.name && - relationship.target.type === FEAST_FCO_TYPES.featureView - ); - }); + const dataSource = dsQuery.data?.dataSource; + const relationships = dsQuery.data?.relationships || []; + + const consumingFeatureViews = relationships.filter( + (rel: any) => + rel?.source?.type === "dataSource" && rel?.target?.type === "featureView", + ); return { - ...registryQuery, - data, + ...dsQuery, + data: dataSource, consumingFeatureViews, }; }; diff --git a/ui/src/pages/entities/EntitiesListingTable.tsx b/ui/src/pages/entities/EntitiesListingTable.tsx index 51ffb7c8609..d5c28b0ea33 100644 --- a/ui/src/pages/entities/EntitiesListingTable.tsx +++ b/ui/src/pages/entities/EntitiesListingTable.tsx @@ -20,7 +20,8 @@ const EntitiesListingTable = ({ entities }: EntitiesListingTableProps) => { sortable: true, render: (name: string, item: feast.core.IEntity) => { // For "All Projects" view, link to the specific project - const itemProject = item?.spec?.project || projectName; + const itemProject = + item?.spec?.project || (item as any)?.project || projectName; return ( {name} @@ -52,7 +53,7 @@ const EntitiesListingTable = ({ entities }: EntitiesListingTableProps) => { if (projectName === "all") { columns.splice(1, 0, { name: "Project", - field: "spec.project", + field: "project", sortable: true, render: (project: string) => { return {project || "Unknown"}; diff --git a/ui/src/pages/entities/Index.tsx b/ui/src/pages/entities/Index.tsx index 070c53d38fa..216e713f382 100644 --- a/ui/src/pages/entities/Index.tsx +++ b/ui/src/pages/entities/Index.tsx @@ -1,31 +1,26 @@ -import React, { useContext } from "react"; +import React from "react"; import { useParams } from "react-router-dom"; import { EuiPageTemplate, EuiLoadingSpinner } from "@elastic/eui"; import { EntityIcon } from "../../graphics/EntityIcon"; -import useLoadRegistry from "../../queries/useLoadRegistry"; import EntitiesListingTable from "./EntitiesListingTable"; import { useDocumentTitle } from "../../hooks/useDocumentTitle"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; import EntityIndexEmptyState from "./EntityIndexEmptyState"; import ExportButton from "../../components/ExportButton"; +import useResourceQuery, { + entityListPath, +} from "../../queries/useResourceQuery"; const useLoadEntities = () => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.entities; - - return { - ...registryQuery, - data, - }; + return useResourceQuery({ + resourceType: "entities-list", + project: projectName, + restPath: entityListPath(projectName), + restSelect: (d) => d.entities, + }); }; const Index = () => { diff --git a/ui/src/pages/entities/useLoadEntity.ts b/ui/src/pages/entities/useLoadEntity.ts index fdb4a7968f1..cf20c33bd8f 100644 --- a/ui/src/pages/entities/useLoadEntity.ts +++ b/ui/src/pages/entities/useLoadEntity.ts @@ -1,24 +1,18 @@ -import { useContext } from "react"; import { useParams } from "react-router-dom"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; -import useLoadRegistry from "../../queries/useLoadRegistry"; +import useResourceQuery, { + entityDetailPath, +} from "../../queries/useResourceQuery"; const useLoadEntity = (entityName: string) => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.entities?.find( - (fv) => fv?.spec?.name === entityName, - ); - - return { - ...registryQuery, - data, - }; + return useResourceQuery({ + resourceType: `entity:${entityName}`, + project: projectName, + restPath: entityDetailPath(entityName, projectName || ""), + restSelect: (d) => d, + enabled: !!entityName, + }); }; export default useLoadEntity; diff --git a/ui/src/pages/feature-services/FeatureServiceListingTable.tsx b/ui/src/pages/feature-services/FeatureServiceListingTable.tsx index acc68b6e619..8dd8b299d74 100644 --- a/ui/src/pages/feature-services/FeatureServiceListingTable.tsx +++ b/ui/src/pages/feature-services/FeatureServiceListingTable.tsx @@ -30,7 +30,8 @@ const FeatureServiceListingTable = ({ field: "spec.name", render: (name: string, item: feast.core.IFeatureService) => { // For "All Projects" view, link to the specific project - const itemProject = item?.spec?.project || projectName; + const itemProject = + item?.spec?.project || (item as any)?.project || projectName; return ( {name} @@ -62,7 +63,7 @@ const FeatureServiceListingTable = ({ if (projectName === "all") { columns.splice(1, 0, { name: "Project", - field: "spec.project", + field: "project", sortable: true, render: (project: string) => { return project || "Unknown"; diff --git a/ui/src/pages/feature-services/FeatureServiceOverviewTab.tsx b/ui/src/pages/feature-services/FeatureServiceOverviewTab.tsx index be922e41261..c439d48fc96 100644 --- a/ui/src/pages/feature-services/FeatureServiceOverviewTab.tsx +++ b/ui/src/pages/feature-services/FeatureServiceOverviewTab.tsx @@ -36,7 +36,7 @@ const FeatureServiceOverviewTab = () => { let numFeatures = 0; let numFeatureViews = 0; if (data) { - data?.spec?.features?.forEach((featureView) => { + data?.spec?.features?.forEach((featureView: any) => { numFeatureViews += 1; numFeatures += featureView?.featureColumns!.length; }); @@ -159,7 +159,7 @@ const FeatureServiceOverviewTab = () => { {data?.spec?.features?.length! > 0 ? ( { + data?.spec?.features?.map((f: any) => { return f.featureViewName!; })! } diff --git a/ui/src/pages/feature-services/Index.tsx b/ui/src/pages/feature-services/Index.tsx index 260a9b821dc..b68bb9697e3 100644 --- a/ui/src/pages/feature-services/Index.tsx +++ b/ui/src/pages/feature-services/Index.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from "react"; +import React from "react"; import { useParams } from "react-router-dom"; import { @@ -13,7 +13,6 @@ import { import { FeatureServiceIcon } from "../../graphics/FeatureServiceIcon"; -import useLoadRegistry from "../../queries/useLoadRegistry"; import FeatureServiceListingTable from "./FeatureServiceListingTable"; import { useSearchQuery, @@ -22,27 +21,23 @@ import { tagTokenGroupsType, } from "../../hooks/useSearchInputWithTags"; import { useDocumentTitle } from "../../hooks/useDocumentTitle"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; import FeatureServiceIndexEmptyState from "./FeatureServiceIndexEmptyState"; import TagSearch from "../../components/TagSearch"; import ExportButton from "../../components/ExportButton"; import { useFeatureServiceTagsAggregation } from "../../hooks/useTagsAggregation"; import { feast } from "../../protos"; +import useResourceQuery, { + featureServiceListPath, +} from "../../queries/useResourceQuery"; const useLoadFeatureServices = () => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.featureServices; - - return { - ...registryQuery, - data, - }; + return useResourceQuery({ + resourceType: "feature-services-list", + project: projectName, + restPath: featureServiceListPath(projectName), + restSelect: (d) => d.featureServices, + }); }; const shouldIncludeFSsGivenTokenGroups = ( diff --git a/ui/src/pages/feature-services/useLoadFeatureService.ts b/ui/src/pages/feature-services/useLoadFeatureService.ts index 004ab35b927..81fff2e931d 100644 --- a/ui/src/pages/feature-services/useLoadFeatureService.ts +++ b/ui/src/pages/feature-services/useLoadFeatureService.ts @@ -1,53 +1,50 @@ -import { FEAST_FCO_TYPES } from "../../parsers/types"; -import { useContext } from "react"; import { useParams } from "react-router-dom"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; - -import useLoadRegistry from "../../queries/useLoadRegistry"; import { EntityReference } from "../../parsers/parseEntityRelationships"; +import useResourceQuery, { + featureServiceDetailPath, +} from "../../queries/useResourceQuery"; const useLoadFeatureService = (featureServiceName: string) => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.featureServices?.find( - (fs) => fs?.spec?.name === featureServiceName, - ); + const fsQuery = useResourceQuery({ + resourceType: `feature-service:${featureServiceName}`, + project: projectName, + restPath: featureServiceDetailPath(featureServiceName, projectName || ""), + restSelect: (d) => ({ + featureService: d, + indirectRelationships: d?.relationships || [], + permissions: d?.permissions || [], + }), + enabled: !!featureServiceName, + }); + + const featureService = fsQuery.data?.featureService; + const indirectRelationships = fsQuery.data?.indirectRelationships || []; + const permissions = fsQuery.data?.permissions || []; - let entities = - data === undefined + let entities: EntityReference[] | undefined = + featureService === undefined ? undefined - : registryQuery.data?.indirectRelationships - .filter((relationship) => { - return ( - relationship.target.type === FEAST_FCO_TYPES.featureService && - relationship.target.name === data?.spec?.name && - relationship.source.type === FEAST_FCO_TYPES.entity - ); - }) - .map((relationship) => { - return relationship.source; - }); - // Deduplicate on name of entity + : indirectRelationships + .filter( + (rel: any) => + rel?.target?.type === "featureService" && + rel?.source?.type === "entity", + ) + .map((rel: any) => rel.source); + if (entities) { - let entityToName: { [key: string]: EntityReference } = {}; - for (let entity of entities) { + const entityToName: { [key: string]: EntityReference } = {}; + for (const entity of entities) { entityToName[entity.name] = entity; } entities = Object.values(entityToName); } + return { - ...registryQuery, - data: data - ? { - ...data, - permissions: registryQuery.data?.permissions, - } - : undefined, + ...fsQuery, + data: featureService ? { ...featureService, permissions } : undefined, entities, }; }; diff --git a/ui/src/pages/feature-views/FeatureViewListingTable.tsx b/ui/src/pages/feature-views/FeatureViewListingTable.tsx index 7537f8122c9..9fd6f8f8fd7 100644 --- a/ui/src/pages/feature-views/FeatureViewListingTable.tsx +++ b/ui/src/pages/feature-views/FeatureViewListingTable.tsx @@ -31,7 +31,10 @@ const FeatureViewListingTable = ({ sortable: true, render: (name: string, item: genericFVType) => { // For "All Projects" view, link to the specific project - const itemProject = item.object?.spec?.project || projectName; + const itemProject = + item.object?.spec?.project || + (item.object as any)?.project || + projectName; return ( {name}{" "} @@ -63,7 +66,13 @@ const FeatureViewListingTable = ({ columns.splice(1, 0, { name: "Project", render: (item: genericFVType) => { - return {item.object?.spec?.project || "Unknown"}; + return ( + + {item.object?.spec?.project || + (item.object as any)?.project || + "Unknown"} + + ); }, }); } diff --git a/ui/src/pages/feature-views/FeatureViewVersionsTab.tsx b/ui/src/pages/feature-views/FeatureViewVersionsTab.tsx index 1e5e44d6804..08ee8880f92 100644 --- a/ui/src/pages/feature-views/FeatureViewVersionsTab.tsx +++ b/ui/src/pages/feature-views/FeatureViewVersionsTab.tsx @@ -160,7 +160,7 @@ const FeatureViewVersionsTab = ({ r.featureViewName === featureViewName, ) || []; - const decodedVersions = useMemo( + const decodedVersions: DecodedVersion[] = useMemo( () => records.map(decodeVersionProto), [records], ); diff --git a/ui/src/pages/feature-views/Index.tsx b/ui/src/pages/feature-views/Index.tsx index b1c28895370..849d1899a3e 100644 --- a/ui/src/pages/feature-views/Index.tsx +++ b/ui/src/pages/feature-views/Index.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from "react"; +import React from "react"; import { useParams } from "react-router-dom"; import { @@ -13,7 +13,6 @@ import { import { FeatureViewIcon } from "../../graphics/FeatureViewIcon"; -import useLoadRegistry from "../../queries/useLoadRegistry"; import FeatureViewListingTable from "./FeatureViewListingTable"; import { filterInputInterface, @@ -22,26 +21,23 @@ import { } from "../../hooks/useSearchInputWithTags"; import { genericFVType, regularFVInterface } from "../../parsers/mergedFVTypes"; import { useDocumentTitle } from "../../hooks/useDocumentTitle"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; import FeatureViewIndexEmptyState from "./FeatureViewIndexEmptyState"; import { useFeatureViewTagsAggregation } from "../../hooks/useTagsAggregation"; import TagSearch from "../../components/TagSearch"; import ExportButton from "../../components/ExportButton"; +import useResourceQuery, { + featureViewListPath, + restFeatureViewsToMergedList, +} from "../../queries/useResourceQuery"; const useLoadFeatureViews = () => { - const registryUrl = useContext(RegistryPathContext); const { projectName } = useParams(); - const registryQuery = useLoadRegistry(registryUrl, projectName); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.mergedFVList; - - return { - ...registryQuery, - data, - }; + return useResourceQuery({ + resourceType: "feature-views-list", + project: projectName, + restPath: featureViewListPath(projectName), + restSelect: restFeatureViewsToMergedList, + }); }; const shouldIncludeFVsGivenTokenGroups = ( diff --git a/ui/src/pages/feature-views/useLoadFeatureView.ts b/ui/src/pages/feature-views/useLoadFeatureView.ts index 08e8646f60f..5f88aab0a7d 100644 --- a/ui/src/pages/feature-views/useLoadFeatureView.ts +++ b/ui/src/pages/feature-views/useLoadFeatureView.ts @@ -1,71 +1,56 @@ -import { useContext } from "react"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; -import useLoadRegistry from "../../queries/useLoadRegistry"; +import { useParams } from "react-router-dom"; +import useResourceQuery, { + featureViewDetailPath, + restFeatureViewDetailToGeneric, +} from "../../queries/useResourceQuery"; +import type { genericFVType } from "../../parsers/mergedFVTypes"; const useLoadFeatureView = (featureViewName: string) => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.mergedFVMap[featureViewName]; - - return { - ...registryQuery, - data, - }; + const { projectName } = useParams(); + + return useResourceQuery({ + resourceType: `feature-view:${featureViewName}`, + project: projectName, + restPath: featureViewDetailPath(featureViewName, projectName || ""), + restSelect: restFeatureViewDetailToGeneric, + enabled: !!featureViewName, + }); }; const useLoadRegularFeatureView = (featureViewName: string) => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.featureViews?.find((fv) => { - return fv?.spec?.name === featureViewName; - }); - - return { - ...registryQuery, - data, - }; + const { projectName } = useParams(); + + return useResourceQuery({ + resourceType: `regular-fv:${featureViewName}`, + project: projectName, + restPath: featureViewDetailPath(featureViewName, projectName || ""), + restSelect: (d) => (d?.type === "featureView" ? d : undefined), + enabled: !!featureViewName, + }); }; const useLoadOnDemandFeatureView = (featureViewName: string) => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.onDemandFeatureViews?.find((fv) => { - return fv?.spec?.name === featureViewName; - }); - - return { - ...registryQuery, - data, - }; + const { projectName } = useParams(); + + return useResourceQuery({ + resourceType: `odfv:${featureViewName}`, + project: projectName, + restPath: featureViewDetailPath(featureViewName, projectName || ""), + restSelect: (d) => (d?.type === "onDemandFeatureView" ? d : undefined), + enabled: !!featureViewName, + }); }; const useLoadStreamFeatureView = (featureViewName: string) => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.streamFeatureViews?.find((fv) => { - return fv.spec?.name === featureViewName; - }); - - return { - ...registryQuery, - data, - }; + const { projectName } = useParams(); + + return useResourceQuery({ + resourceType: `sfv:${featureViewName}`, + project: projectName, + restPath: featureViewDetailPath(featureViewName, projectName || ""), + restSelect: (d) => (d?.type === "streamFeatureView" ? d : undefined), + enabled: !!featureViewName, + }); }; export default useLoadFeatureView; diff --git a/ui/src/pages/features/FeatureListPage.tsx b/ui/src/pages/features/FeatureListPage.tsx index 36087f98bc0..3edc6df8a40 100644 --- a/ui/src/pages/features/FeatureListPage.tsx +++ b/ui/src/pages/features/FeatureListPage.tsx @@ -1,4 +1,4 @@ -import React, { useState, useContext } from "react"; +import React, { useState } from "react"; import { EuiBasicTable, EuiTableFieldDataColumnType, @@ -19,9 +19,10 @@ import { import EuiCustomLink from "../../components/EuiCustomLink"; import ExportButton from "../../components/ExportButton"; import { useParams } from "react-router-dom"; -import useLoadRegistry from "../../queries/useLoadRegistry"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; import { FeatureIcon } from "../../graphics/FeatureIcon"; +import useResourceQuery, { + featuresListPath, +} from "../../queries/useResourceQuery"; import { FEAST_FCO_TYPES } from "../../parsers/types"; import { getEntityPermissions, @@ -43,11 +44,22 @@ type FeatureColumn = const FeatureListPage = () => { const { projectName } = useParams(); - const registryUrl = useContext(RegistryPathContext); - const { data, isLoading, isError } = useLoadRegistry( - registryUrl, - projectName, - ); + const { + data: features, + isLoading, + isError, + } = useResourceQuery({ + resourceType: "features-list", + project: projectName, + restPath: featuresListPath(projectName), + restSelect: (d) => d.features, + }); + const { data: permissions } = useResourceQuery({ + resourceType: "permissions", + project: projectName, + restPath: `/permissions?project=${encodeURIComponent(projectName || "")}`, + restSelect: (d) => d.permissions, + }); const [searchText, setSearchText] = useState(""); const [selectedPermissionAction, setSelectedPermissionAction] = useState(""); @@ -57,27 +69,22 @@ const FeatureListPage = () => { const [pageIndex, setPageIndex] = useState(0); const [pageSize, setPageSize] = useState(100); - const featuresWithPermissions: Feature[] = (data?.allFeatures || []).map( - (feature) => { - return { - ...feature, - permissions: getEntityPermissions( - selectedPermissionAction - ? filterPermissionsByAction( - data?.permissions, - selectedPermissionAction, - ) - : data?.permissions, - FEAST_FCO_TYPES.featureView, - feature.featureView, - ), - }; - }, - ); + const featuresWithPermissions: Feature[] = (features || []).map((feature) => { + return { + ...feature, + permissions: getEntityPermissions( + selectedPermissionAction + ? filterPermissionsByAction(permissions, selectedPermissionAction) + : permissions, + FEAST_FCO_TYPES.featureView, + feature.featureView, + ), + }; + }); - const features: Feature[] = featuresWithPermissions; + const enrichedFeatures: Feature[] = featuresWithPermissions; - const filteredFeatures = features.filter((feature) => + const filteredFeatures = enrichedFeatures.filter((feature) => feature.name.toLowerCase().includes(searchText.toLowerCase()), ); diff --git a/ui/src/pages/features/useLoadFeature.ts b/ui/src/pages/features/useLoadFeature.ts index 54bf31e996f..be322a9c8aa 100644 --- a/ui/src/pages/features/useLoadFeature.ts +++ b/ui/src/pages/features/useLoadFeature.ts @@ -1,27 +1,32 @@ -import { useContext } from "react"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; -import useLoadRegistry from "../../queries/useLoadRegistry"; +import { useParams } from "react-router-dom"; +import useResourceQuery, { + featureDetailPath, +} from "../../queries/useResourceQuery"; const useLoadFeature = (featureViewName: string, featureName: string) => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); + const { projectName } = useParams(); - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.featureViews?.find((fv) => { - return fv?.spec?.name === featureViewName; - }); + const fvQuery = useResourceQuery({ + resourceType: `feature:${featureViewName}:${featureName}`, + project: projectName, + restPath: featureDetailPath( + featureViewName, + featureName, + projectName || "", + ), + restSelect: (d) => d, + enabled: !!featureViewName && !!featureName, + }); const featureData = - data === undefined + fvQuery.data === undefined ? undefined - : data?.spec?.features?.find((f) => { - return f.name === featureName; - }); + : fvQuery.data?.spec?.features?.find( + (f: any) => f.name === featureName, + ) || fvQuery.data; return { - ...registryQuery, + ...fvQuery, featureData, }; }; diff --git a/ui/src/pages/saved-data-sets/DatasetOverviewTab.tsx b/ui/src/pages/saved-data-sets/DatasetOverviewTab.tsx index 9ee7dd1aa42..d9a0ab43af9 100644 --- a/ui/src/pages/saved-data-sets/DatasetOverviewTab.tsx +++ b/ui/src/pages/saved-data-sets/DatasetOverviewTab.tsx @@ -69,7 +69,7 @@ const EntityOverviewTab = () => { { + data?.spec?.joinKeys!.map((joinKey: any) => { return { name: joinKey }; })! } diff --git a/ui/src/pages/saved-data-sets/Index.tsx b/ui/src/pages/saved-data-sets/Index.tsx index c6cc81f4146..f78ee572ae6 100644 --- a/ui/src/pages/saved-data-sets/Index.tsx +++ b/ui/src/pages/saved-data-sets/Index.tsx @@ -1,28 +1,25 @@ -import React, { useContext } from "react"; +import React from "react"; +import { useParams } from "react-router-dom"; import { EuiPageTemplate, EuiLoadingSpinner } from "@elastic/eui"; import { DatasetIcon } from "../../graphics/DatasetIcon"; -import useLoadRegistry from "../../queries/useLoadRegistry"; import { useDocumentTitle } from "../../hooks/useDocumentTitle"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; import DatasetsListingTable from "./DatasetsListingTable"; import DatasetsIndexEmptyState from "./DatasetsIndexEmptyState"; +import useResourceQuery, { + savedDatasetListPath, +} from "../../queries/useResourceQuery"; const useLoadSavedDataSets = () => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); - - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.savedDatasets; - - return { - ...registryQuery, - data, - }; + const { projectName } = useParams(); + return useResourceQuery({ + resourceType: "saved-datasets-list", + project: projectName, + restPath: savedDatasetListPath(projectName), + restSelect: (d) => d.savedDatasets, + }); }; const Index = () => { diff --git a/ui/src/pages/saved-data-sets/useLoadDataset.ts b/ui/src/pages/saved-data-sets/useLoadDataset.ts index 40f8a8ebd48..c560f7f9eb6 100644 --- a/ui/src/pages/saved-data-sets/useLoadDataset.ts +++ b/ui/src/pages/saved-data-sets/useLoadDataset.ts @@ -1,22 +1,18 @@ -import { useContext } from "react"; -import RegistryPathContext from "../../contexts/RegistryPathContext"; -import useLoadRegistry from "../../queries/useLoadRegistry"; +import { useParams } from "react-router-dom"; +import useResourceQuery, { + savedDatasetDetailPath, +} from "../../queries/useResourceQuery"; -const useLoadEntity = (entityName: string) => { - const registryUrl = useContext(RegistryPathContext); - const registryQuery = useLoadRegistry(registryUrl); +const useLoadDataset = (datasetName: string) => { + const { projectName } = useParams(); - const data = - registryQuery.data === undefined - ? undefined - : registryQuery.data.objects.savedDatasets?.find( - (fv) => fv.spec?.name === entityName, - ); - - return { - ...registryQuery, - data, - }; + return useResourceQuery({ + resourceType: `saved-dataset:${datasetName}`, + project: projectName, + restPath: savedDatasetDetailPath(datasetName, projectName || ""), + restSelect: (d) => d, + enabled: !!datasetName, + }); }; -export default useLoadEntity; +export default useLoadDataset; diff --git a/ui/src/queries/restApiClient.ts b/ui/src/queries/restApiClient.ts new file mode 100644 index 00000000000..4cf2cb64bdd --- /dev/null +++ b/ui/src/queries/restApiClient.ts @@ -0,0 +1,40 @@ +import type { FetchOptions } from "../contexts/DataModeContext"; + +class RestApiError extends Error { + status: number; + constructor(message: string, status: number) { + super(message); + this.name = "RestApiError"; + this.status = status; + } +} + +const restFetch = async ( + baseUrl: string, + path: string, + fetchOptions?: FetchOptions, +): Promise => { + const url = `${baseUrl}${path}`; + const headers: Record = { + Accept: "application/json", + ...fetchOptions?.headers, + }; + + const res = await fetch(url, { + method: "GET", + headers, + credentials: fetchOptions?.credentials, + }); + + if (!res.ok) { + throw new RestApiError( + `REST API error: ${res.status} ${res.statusText}`, + res.status, + ); + } + + return res.json(); +}; + +export default restFetch; +export { RestApiError }; diff --git a/ui/src/queries/useLoadRegistry.ts b/ui/src/queries/useLoadRegistry.ts index e3f5ac87a1d..abd490dab38 100644 --- a/ui/src/queries/useLoadRegistry.ts +++ b/ui/src/queries/useLoadRegistry.ts @@ -4,18 +4,20 @@ import parseEntityRelationships, { EntityRelation, } from "../parsers/parseEntityRelationships"; import parseIndirectRelationships from "../parsers/parseIndirectRelationships"; -import { feast } from "../protos"; +import { useDataMode } from "../contexts/DataModeContext"; +import restFetch from "./restApiClient"; +import type { FetchOptions } from "../contexts/DataModeContext"; interface FeatureStoreAllData { project: string; description?: string; - objects: feast.core.Registry; + objects: any; relationships: EntityRelation[]; mergedFVMap: Record; mergedFVList: genericFVType[]; indirectRelationships: EntityRelation[]; allFeatures: Feature[]; - permissions?: any[]; // Add permissions field + permissions?: any[]; } interface Feature { @@ -25,251 +27,185 @@ interface Feature { project?: string; } -const useLoadRegistry = (url: string, projectName?: string) => { - return useQuery( - `registry:${url}:${projectName || "all"}`, - () => { - return fetch(url, { - headers: { - "Content-Type": "application/json", - }, - }) - .then((res) => { - const contentType = res.headers.get("content-type"); - if (contentType && contentType.includes("application/json")) { - return res.json(); - } else { - return res.arrayBuffer(); - } - }) - .then((data) => { - let objects; - - if (data instanceof ArrayBuffer) { - objects = feast.core.Registry.decode(new Uint8Array(data)); - } else { - objects = data; - } - // const objects = FeastRegistrySchema.parse(json); - - if (!objects.featureViews) { - objects.featureViews = []; - } - - // Filter objects by project if projectName is provided - // Skip filtering if projectName is "all" (All Projects view) - // Only filter if we detect that the registry contains multiple projects - if (projectName && projectName !== "all") { - // Check if the registry actually has multiple projects - const projectsInRegistry = new Set(); - objects.featureViews?.forEach((fv: any) => { - if (fv?.spec?.project) projectsInRegistry.add(fv.spec.project); - }); - objects.entities?.forEach((entity: any) => { - if (entity?.spec?.project) - projectsInRegistry.add(entity.spec.project); - }); - - // Only apply filtering if there are actually multiple projects in the registry - // OR if the projectName matches one of the projects in the registry - const shouldFilter = - projectsInRegistry.size > 1 || - projectsInRegistry.has(projectName); - - if (shouldFilter && projectsInRegistry.has(projectName)) { - if (objects.featureViews) { - objects.featureViews = objects.featureViews.filter( - (fv: any) => fv?.spec?.project === projectName, - ); - } - if (objects.entities) { - objects.entities = objects.entities.filter( - (entity: any) => entity?.spec?.project === projectName, - ); - } - if (objects.dataSources) { - objects.dataSources = objects.dataSources.filter( - (ds: any) => ds?.project === projectName, - ); - } - if (objects.featureServices) { - objects.featureServices = objects.featureServices.filter( - (fs: any) => fs?.spec?.project === projectName, - ); - } - if (objects.onDemandFeatureViews) { - objects.onDemandFeatureViews = - objects.onDemandFeatureViews.filter( - (odfv: any) => odfv?.spec?.project === projectName, - ); - } - if (objects.streamFeatureViews) { - objects.streamFeatureViews = objects.streamFeatureViews.filter( - (sfv: any) => sfv?.spec?.project === projectName, - ); - } - if (objects.savedDatasets) { - objects.savedDatasets = objects.savedDatasets.filter( - (sd: any) => sd?.spec?.project === projectName, - ); - } - if (objects.validationReferences) { - objects.validationReferences = - objects.validationReferences.filter( - (vr: any) => vr?.project === projectName, - ); - } - if (objects.permissions) { - objects.permissions = objects.permissions.filter( - (perm: any) => - perm?.spec?.project === projectName || !perm?.spec?.project, - ); - } - } - } - - if ( - process.env.NODE_ENV === "test" && - objects.featureViews.length === 0 - ) { - try { - const fs = require("fs"); - const path = require("path"); - const { feast } = require("../protos"); - - const registry = fs.readFileSync( - path.resolve(__dirname, "../../public/registry.db"), - ); - const parsedRegistry = feast.core.Registry.decode(registry); - - if ( - parsedRegistry.featureViews && - parsedRegistry.featureViews.length > 0 - ) { - objects.featureViews = parsedRegistry.featureViews; - } - } catch (e) { - console.error("Error loading test registry:", e); - } - } - - const { mergedFVMap, mergedFVList } = mergedFVTypes(objects); - - const relationships = parseEntityRelationships(objects); - - // Only contains Entity -> FS or DS -> FS relationships - const indirectRelationships = parseIndirectRelationships( - relationships, - objects, - ); +// --------------------------------------------------------------------------- +// Shared post-processing (used by the bulk REST fetch) +// --------------------------------------------------------------------------- + +const assembleFeatureStoreData = ( + objects: any, + projectName?: string, +): FeatureStoreAllData => { + const { mergedFVMap, mergedFVList } = mergedFVTypes(objects); + const relationships = parseEntityRelationships(objects); + const indirectRelationships = parseIndirectRelationships( + relationships, + objects, + ); - // console.log({ - // objects, - // mergedFVMap, - // mergedFVList, - // relationships, - // indirectRelationships, - // }); - const allFeatures: Feature[] = - objects.featureViews?.flatMap( - (fv: any) => - fv?.spec?.features?.map((feature: any) => ({ - name: feature.name ?? "Unknown", - featureView: fv?.spec?.name || "Unknown FeatureView", - type: - feature.valueType != null - ? feast.types.ValueType.Enum[feature.valueType] - : "Unknown Type", - project: fv?.spec?.project, // Include project from parent feature view - })) || [], - ) || []; + const allFeatures: Feature[] = + objects.featureViews?.flatMap( + (fv: any) => + fv?.spec?.features?.map((feature: any) => ({ + name: feature.name ?? "Unknown", + featureView: fv?.spec?.name || "Unknown FeatureView", + type: + feature.valueType != null + ? typeof feature.valueType === "number" + ? String(feature.valueType) + : feature.valueType + : "Unknown Type", + project: fv?.spec?.project || fv?.project, + })) || [], + ) || []; + + let resolvedProjectName: string = + projectName === "all" + ? "All Projects" + : projectName || + (objects.projects && + objects.projects.length > 0 && + objects.projects[0].spec && + objects.projects[0].spec.name + ? objects.projects[0].spec.name + : objects.project + ? objects.project + : "default"); + + let projectDescription: string | undefined; + if (projectName === "all") { + projectDescription = "View data across all projects"; + } else if (objects.projects && objects.projects.length > 0) { + const currentProject = objects.projects.find( + (p: any) => p?.spec?.name === resolvedProjectName, + ); + if (currentProject?.spec) { + projectDescription = currentProject.spec.description; + } + } + + return { + project: resolvedProjectName, + description: projectDescription, + objects, + mergedFVMap, + mergedFVList, + relationships, + indirectRelationships, + allFeatures, + permissions: objects.permissions || [], + }; +}; - // Use the provided projectName parameter if available, otherwise try to determine from registry - let resolvedProjectName: string = - projectName === "all" - ? "All Projects" - : projectName || - (process.env.NODE_ENV === "test" - ? "credit_scoring_aws" - : objects.projects && - objects.projects.length > 0 && - objects.projects[0].spec && - objects.projects[0].spec.name - ? objects.projects[0].spec.name - : objects.project - ? objects.project - : "credit_scoring_aws"); +// --------------------------------------------------------------------------- +// REST fetch strategy +// --------------------------------------------------------------------------- + +const fetchREST = async ( + apiBaseUrl: string, + projectName?: string, + fetchOptions?: FetchOptions, +): Promise => { + const projectParam = + projectName && projectName !== "all" + ? `?project=${encodeURIComponent(projectName)}` + : ""; + const useAllEndpoint = !projectParam; + + const [ + entitiesResp, + featureViewsResp, + featureServicesResp, + dataSourcesResp, + savedDatasetsResp, + projectsResp, + ] = await Promise.all([ + restFetch( + apiBaseUrl, + useAllEndpoint + ? "/entities/all?include_relationships=true" + : `/entities${projectParam}&include_relationships=true`, + fetchOptions, + ), + restFetch( + apiBaseUrl, + useAllEndpoint + ? "/feature_views/all?include_relationships=true" + : `/feature_views${projectParam}&include_relationships=true`, + fetchOptions, + ), + restFetch( + apiBaseUrl, + useAllEndpoint + ? "/feature_services/all?include_relationships=true" + : `/feature_services${projectParam}&include_relationships=true`, + fetchOptions, + ), + restFetch( + apiBaseUrl, + useAllEndpoint + ? "/data_sources/all?include_relationships=true" + : `/data_sources${projectParam}&include_relationships=true`, + fetchOptions, + ), + restFetch( + apiBaseUrl, + useAllEndpoint + ? "/saved_datasets/all?include_relationships=true" + : `/saved_datasets${projectParam}&include_relationships=true`, + fetchOptions, + ), + restFetch(apiBaseUrl, "/projects", fetchOptions), + ]); + + const entities = entitiesResp.entities || []; + const allFeatureViews = featureViewsResp.featureViews || []; + const featureServices = featureServicesResp.featureServices || []; + const dataSources = dataSourcesResp.dataSources || []; + const savedDatasets = savedDatasetsResp.savedDatasets || []; + const projects = projectsResp.projects || []; + + const featureViews: any[] = []; + const onDemandFeatureViews: any[] = []; + const streamFeatureViews: any[] = []; + + for (const fv of allFeatureViews) { + const fvType = fv.type; + if (fvType === "onDemandFeatureView") { + onDemandFeatureViews.push(fv); + } else if (fvType === "streamFeatureView") { + streamFeatureViews.push(fv); + } else { + featureViews.push(fv); + } + } + + const objects: any = { + entities, + featureViews, + onDemandFeatureViews, + streamFeatureViews, + featureServices, + dataSources, + savedDatasets, + projects, + }; + + return assembleFeatureStoreData(objects, projectName); +}; - let projectDescription = undefined; +// --------------------------------------------------------------------------- +// Public hook +// --------------------------------------------------------------------------- - // Find project description from the projects array - if (projectName === "all") { - projectDescription = "View data across all projects"; - } else if (objects.projects && objects.projects.length > 0) { - const currentProject = objects.projects.find( - (p: any) => p?.spec?.name === resolvedProjectName, - ); - if (currentProject?.spec) { - projectDescription = currentProject.spec.description; - } - } +const useLoadRegistry = (url: string, projectName?: string) => { + const { fetchOptions } = useDataMode(); - return { - project: resolvedProjectName, - description: projectDescription, - objects, - mergedFVMap, - mergedFVList, - relationships, - indirectRelationships, - allFeatures, - permissions: - objects.permissions && objects.permissions.length > 0 - ? objects.permissions - : [ - { - spec: { - name: "zipcode-features-reader", - types: [2], // FeatureView - name_patterns: ["zipcode_features"], - policy: { roles: ["analyst", "data_scientist"] }, - actions: [1, 4, 5], // DESCRIBE, READ_ONLINE, READ_OFFLINE - }, - }, - { - spec: { - name: "zipcode-source-writer", - types: [7], // FileSource - name_patterns: ["zipcode"], - policy: { roles: ["admin", "data_engineer"] }, - actions: [0, 2, 7], // CREATE, UPDATE, WRITE_OFFLINE - }, - }, - { - spec: { - name: "credit-score-v1-reader", - types: [6], // FeatureService - name_patterns: ["credit_score_v1"], - policy: { roles: ["model_user", "data_scientist"] }, - actions: [1, 4], // DESCRIBE, READ_ONLINE - }, - }, - { - spec: { - name: "risky-features-reader", - types: [2, 6], // FeatureView, FeatureService - name_patterns: [], - required_tags: { stage: "prod" }, - policy: { roles: ["trusted_analyst"] }, - actions: [5], // READ_OFFLINE - }, - }, - ], - }; - }); - }, + return useQuery( + ["registry-rest-bulk", url, projectName || "all"], + () => fetchREST(url, projectName, fetchOptions), { - staleTime: Infinity, // Given that we are reading from a registry dump, this seems reasonable for now. + staleTime: 30_000, + enabled: !!url, }, ); }; diff --git a/ui/src/queries/useResourceQuery.ts b/ui/src/queries/useResourceQuery.ts new file mode 100644 index 00000000000..3047f50af46 --- /dev/null +++ b/ui/src/queries/useResourceQuery.ts @@ -0,0 +1,193 @@ +import { useContext } from "react"; +import { useQuery, UseQueryResult } from "react-query"; +import RegistryPathContext from "../contexts/RegistryPathContext"; +import { useDataMode } from "../contexts/DataModeContext"; +import restFetch from "./restApiClient"; +import { FEAST_FV_TYPES, genericFVType } from "../parsers/mergedFVTypes"; + +interface ResourceQueryOptions { + resourceType: string; + project?: string; + restPath: string; + restSelect?: (data: any) => T | undefined; + enabled?: boolean; +} + +/** + * Generic hook for fetching a specific resource slice via REST API. + * + * Each caller fires its own lightweight endpoint request, and react-query + * deduplicates identical keys automatically. + */ +function useResourceQuery({ + resourceType, + project, + restPath, + restSelect, + enabled = true, +}: ResourceQueryOptions): UseQueryResult { + const registryUrl = useContext(RegistryPathContext); + const { fetchOptions } = useDataMode(); + + return useQuery( + ["rest", resourceType, registryUrl, project || "all"], + () => restFetch(registryUrl, restPath, fetchOptions), + { + enabled: !!registryUrl && enabled, + staleTime: 30_000, + select: restSelect, + }, + ); +} + +// --------------------------------------------------------------------------- +// REST endpoint path builders +// --------------------------------------------------------------------------- + +function entityListPath(project?: string): string { + if (project && project !== "all") { + return `/entities?project=${encodeURIComponent(project)}&include_relationships=true`; + } + return "/entities/all?limit=100&include_relationships=true"; +} + +function entityDetailPath(name: string, project: string): string { + return `/entities/${encodeURIComponent(name)}?project=${encodeURIComponent(project)}&include_relationships=true`; +} + +function featureViewListPath(project?: string): string { + if (project && project !== "all") { + return `/feature_views?project=${encodeURIComponent(project)}&include_relationships=true`; + } + return "/feature_views/all?limit=100&include_relationships=true"; +} + +function featureViewDetailPath(name: string, project: string): string { + return `/feature_views/${encodeURIComponent(name)}?project=${encodeURIComponent(project)}&include_relationships=true`; +} + +function featureServiceListPath(project?: string): string { + if (project && project !== "all") { + return `/feature_services?project=${encodeURIComponent(project)}&include_relationships=true`; + } + return "/feature_services/all?limit=100&include_relationships=true"; +} + +function featureServiceDetailPath(name: string, project: string): string { + return `/feature_services/${encodeURIComponent(name)}?project=${encodeURIComponent(project)}&include_relationships=true`; +} + +function dataSourceListPath(project?: string): string { + if (project && project !== "all") { + return `/data_sources?project=${encodeURIComponent(project)}&include_relationships=true`; + } + return "/data_sources/all?limit=100&include_relationships=true"; +} + +function dataSourceDetailPath(name: string, project: string): string { + return `/data_sources/${encodeURIComponent(name)}?project=${encodeURIComponent(project)}&include_relationships=true`; +} + +function savedDatasetListPath(project?: string): string { + if (project && project !== "all") { + return `/saved_datasets?project=${encodeURIComponent(project)}`; + } + return "/saved_datasets/all?limit=100"; +} + +function savedDatasetDetailPath(name: string, project: string): string { + return `/saved_datasets/${encodeURIComponent(name)}?project=${encodeURIComponent(project)}`; +} + +function featuresListPath(project?: string): string { + if (project && project !== "all") { + return `/features?project=${encodeURIComponent(project)}`; + } + return "/features/all?limit=100"; +} + +function featureDetailPath( + featureViewName: string, + featureName: string, + project: string, +): string { + return `/features/${encodeURIComponent(featureViewName)}/${encodeURIComponent(featureName)}?project=${encodeURIComponent(project)}`; +} + +// --------------------------------------------------------------------------- +// REST response → mergedFVList converter +// --------------------------------------------------------------------------- + +function restFeatureViewsToMergedList(resp: any): genericFVType[] { + const featureViews = resp?.featureViews || []; + return featureViews.map((fv: any) => { + const fvType = fv.type; + if (fvType === "onDemandFeatureView") { + return { + name: fv.spec?.name, + type: FEAST_FV_TYPES.ondemand, + features: fv.spec?.features || [], + object: fv, + }; + } + if (fvType === "streamFeatureView") { + return { + name: fv.spec?.name, + type: FEAST_FV_TYPES.stream, + features: fv.spec?.features || [], + object: fv, + }; + } + return { + name: fv.spec?.name, + type: FEAST_FV_TYPES.regular, + features: fv.spec?.features || [], + object: fv, + }; + }); +} + +function restFeatureViewDetailToGeneric(resp: any): genericFVType | undefined { + if (!resp || !resp.spec) return undefined; + const fvType = resp.type; + if (fvType === "onDemandFeatureView") { + return { + name: resp.spec.name, + type: FEAST_FV_TYPES.ondemand, + features: resp.spec.features || [], + object: resp, + }; + } + if (fvType === "streamFeatureView") { + return { + name: resp.spec.name, + type: FEAST_FV_TYPES.stream, + features: resp.spec.features || [], + object: resp, + }; + } + return { + name: resp.spec.name, + type: FEAST_FV_TYPES.regular, + features: resp.spec.features || [], + object: resp, + }; +} + +export default useResourceQuery; +export { + entityListPath, + entityDetailPath, + featureViewListPath, + featureViewDetailPath, + featureServiceListPath, + featureServiceDetailPath, + dataSourceListPath, + dataSourceDetailPath, + savedDatasetListPath, + savedDatasetDetailPath, + featuresListPath, + featureDetailPath, + restFeatureViewsToMergedList, + restFeatureViewDetailToGeneric, +}; From 328431ffe083f744d5dad1ce1243ed88d921db64 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Wed, 20 May 2026 14:58:06 +0530 Subject: [PATCH 26/59] fix: Remove registry proto dump to enforce RBAC and add permission checks to Commit/Refresh RPCs Signed-off-by: ntkathole --- infra/scripts/feature_server_docker_smoke.py | 3 + sdk/python/feast/api/registry/rest/metrics.py | 16 ++- sdk/python/feast/cli/ui.py | 13 +-- sdk/python/feast/feature_server.py | 13 +-- sdk/python/feast/feature_store.py | 5 - .../feature_servers/multicloud/Dockerfile | 2 +- .../feature_servers/multicloud/Dockerfile.dev | 2 +- sdk/python/feast/registry_server.py | 9 +- sdk/python/feast/ui_server.py | 73 ++++-------- sdk/python/tests/unit/test_ui_server.py | 107 ++++++++++-------- 10 files changed, 113 insertions(+), 130 deletions(-) diff --git a/infra/scripts/feature_server_docker_smoke.py b/infra/scripts/feature_server_docker_smoke.py index 5eac394bccd..c8b3b440b7f 100644 --- a/infra/scripts/feature_server_docker_smoke.py +++ b/infra/scripts/feature_server_docker_smoke.py @@ -9,6 +9,9 @@ class _FakeRegistry: def proto(self): return object() + def list_projects(self, allow_cache=True, tags=None): + return [] + class _FakeStore: def __init__(self): diff --git a/sdk/python/feast/api/registry/rest/metrics.py b/sdk/python/feast/api/registry/rest/metrics.py index 3be43b5e4b4..87cb30ee4e2 100644 --- a/sdk/python/feast/api/registry/rest/metrics.py +++ b/sdk/python/feast/api/registry/rest/metrics.py @@ -75,11 +75,19 @@ async def resource_counts( """ def get_registry_last_updated() -> Optional[str]: + """Read registry last_updated from in-process registry (not the Proto gRPC RPC).""" try: - from google.protobuf.empty_pb2 import Empty as EmptyProto - - registry_proto = grpc_call(grpc_handler.Proto, EmptyProto()) - return registry_proto.get("lastUpdated", None) + from google.protobuf.json_format import MessageToDict + + registry = getattr(grpc_handler, "proxied_registry", None) + if registry is None: + return None + registry_proto = registry.proto() + if registry_proto is None or not registry_proto.HasField( + "last_updated" + ): + return None + return MessageToDict(registry_proto).get("lastUpdated") except Exception: return None diff --git a/sdk/python/feast/cli/ui.py b/sdk/python/feast/cli/ui.py index ac4a8b3e220..6962eea1e51 100644 --- a/sdk/python/feast/cli/ui.py +++ b/sdk/python/feast/cli/ui.py @@ -1,6 +1,6 @@ import click -from feast.repo_operations import create_feature_store, registry_dump +from feast.repo_operations import create_feature_store @click.command() @@ -20,14 +20,6 @@ show_default=True, help="Specify a port for the server", ) -@click.option( - "--registry_ttl_sec", - "-r", - help="Number of seconds after which the registry is refreshed", - type=click.INT, - default=5, - show_default=True, -) @click.option( "--root_path", help="Provide root path to make the UI working behind proxy", @@ -57,7 +49,6 @@ def ui( ctx: click.Context, host: str, port: int, - registry_ttl_sec: int, root_path: str = "", tls_key_path: str = "", tls_cert_path: str = "", @@ -73,8 +64,6 @@ def ui( store.serve_ui( host=host, port=port, - get_registry_dump=registry_dump, - registry_ttl_sec=registry_ttl_sec, root_path=root_path, tls_key_path=tls_key_path, tls_cert_path=tls_cert_path, diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index f60eeb9d87d..43fb8485316 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -288,7 +288,6 @@ def get_app( """ proto_json.patch() # Asynchronously refresh registry, notifying shutdown and canceling the active timer if the app is shutting down - registry_proto = None shutting_down = False active_timer: Optional[threading.Timer] = None # --- Offline write batching config and batcher --- @@ -338,8 +337,6 @@ def async_refresh(): return store.refresh_registry() - nonlocal registry_proto - registry_proto = store.registry.proto() if registry_ttl_sec: nonlocal active_timer @@ -569,11 +566,11 @@ async def write_to_online_store(request: WriteToFeatureStoreRequest) -> None: @app.get("/health") async def health(): - return ( - Response(status_code=status.HTTP_200_OK) - if registry_proto - else Response(status_code=status.HTTP_503_SERVICE_UNAVAILABLE) - ) + try: + store.registry.list_projects(allow_cache=True) + return Response(status_code=status.HTTP_200_OK) + except Exception: + return Response(status_code=status.HTTP_503_SERVICE_UNAVAILABLE) @app.post("/chat") async def chat(request: ChatRequest): diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index bfc71db875e..27009a08ff7 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -22,7 +22,6 @@ from typing import ( TYPE_CHECKING, Any, - Callable, Dict, Iterable, List, @@ -3148,8 +3147,6 @@ def serve_ui( self, host: str, port: int, - get_registry_dump: Callable, - registry_ttl_sec: int, root_path: str = "", tls_key_path: str = "", tls_cert_path: str = "", @@ -3165,9 +3162,7 @@ def serve_ui( self, host=host, port=port, - get_registry_dump=get_registry_dump, project_id=self.config.project, - registry_ttl_sec=registry_ttl_sec, root_path=root_path, tls_key_path=tls_key_path, tls_cert_path=tls_cert_path, diff --git a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile index 010447371a8..6eb4cc96418 100644 --- a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile +++ b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/python-312-minimal:1 +FROM registry.access.redhat.com/ubi9/python-312-minimal:latest USER 0 RUN microdnf install -y git gcc libpq-devel python3.12-devel && microdnf clean all diff --git a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev index 4d85b621192..faf49c20903 100644 --- a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev +++ b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/python-312-minimal:1 +FROM registry.access.redhat.com/ubi9/python-312-minimal:latest USER 0 RUN microdnf install -y npm git gcc libpq-devel python3.12-devel && microdnf clean all diff --git a/sdk/python/feast/registry_server.py b/sdk/python/feast/registry_server.py index 344453ad61e..061e9c29c4f 100644 --- a/sdk/python/feast/registry_server.py +++ b/sdk/python/feast/registry_server.py @@ -1117,16 +1117,19 @@ def GetObjectRelationships( ) def Commit(self, request, context): + for project in self.proxied_registry.list_projects(allow_cache=True): + assert_permissions(resource=project, actions=[AuthzedAction.UPDATE]) self.proxied_registry.commit() return Empty() def Refresh(self, request, context): + project = self.proxied_registry.get_project( + name=request.project, allow_cache=True + ) + assert_permissions(resource=project, actions=[AuthzedAction.UPDATE]) self.proxied_registry.refresh(request.project) return Empty() - def Proto(self, request, context): - return self.proxied_registry.proto() - def ListFeatures(self, request: RegistryServer_pb2.ListFeaturesRequest, context): """ List all features in the registry, optionally filtered by project, feature_view, or name. diff --git a/sdk/python/feast/ui_server.py b/sdk/python/feast/ui_server.py index 22044ed3196..b4cec9fc7cc 100644 --- a/sdk/python/feast/ui_server.py +++ b/sdk/python/feast/ui_server.py @@ -1,8 +1,6 @@ import json import logging -import threading from importlib import resources as importlib_resources -from typing import Callable, Optional import uvicorn from fastapi import FastAPI, Response, status @@ -21,23 +19,23 @@ def _build_projects_list( ): """Build the projects list for the UI.""" discovered_projects = [] - registry = store.registry.proto() - registry_path_template = f"{root_path}/api/v1" - if registry and registry.projects and len(registry.projects) > 0: - for proj in registry.projects: - if proj.spec and proj.spec.name: - discovered_projects.append( - { - "name": proj.spec.name.replace("_", " ").title(), - "description": proj.spec.description - or f"Project: {proj.spec.name}", - "id": proj.spec.name, - "registryPath": registry_path_template, - } - ) - else: + try: + projects = store.registry.list_projects(allow_cache=True) + for proj in projects: + discovered_projects.append( + { + "name": proj.name.replace("_", " ").title(), + "description": proj.description or f"Project: {proj.name}", + "id": proj.name, + "registryPath": registry_path_template, + } + ) + except Exception: + pass + + if not discovered_projects: discovered_projects.append( { "name": "Project", @@ -59,34 +57,11 @@ def _build_projects_list( return {"projects": discovered_projects} -def _setup_rest_mode(app: FastAPI, store: "feast.FeatureStore", registry_ttl_secs: int): +def _setup_rest_mode(app: FastAPI, store: "feast.FeatureStore"): """Mount the REST registry API routes on the UI server under /api/v1.""" from feast.api.registry.rest import register_all_routes from feast.registry_server import RegistryServer - registry_proto = None - shutting_down = False - active_timer: Optional[threading.Timer] = None - - def async_refresh(): - store.refresh_registry() - nonlocal registry_proto - registry_proto = store.registry.proto() - if shutting_down: - return - nonlocal active_timer - active_timer = threading.Timer(registry_ttl_secs, async_refresh) - active_timer.start() - - @app.on_event("shutdown") - def shutdown_event(): - nonlocal shutting_down - shutting_down = True - if active_timer: - active_timer.cancel() - - async_refresh() - grpc_handler = RegistryServer(store.registry) rest_app = FastAPI(root_path="/api/v1") @@ -95,11 +70,11 @@ def shutdown_event(): @app.get("/health") def health(): - return ( - Response(status_code=status.HTTP_200_OK) - if registry_proto - else Response(status_code=status.HTTP_503_SERVICE_UNAVAILABLE) - ) + try: + store.registry.list_projects(allow_cache=True) + return Response(status_code=status.HTTP_200_OK) + except Exception: + return Response(status_code=status.HTTP_503_SERVICE_UNAVAILABLE) logger.info("REST registry API mounted at /api/v1") @@ -107,7 +82,6 @@ def health(): def get_app( store: "feast.FeatureStore", project_id: str, - registry_ttl_secs: int, root_path: str = "", ): app = FastAPI() @@ -120,7 +94,7 @@ def get_app( allow_headers=["*"], ) - _setup_rest_mode(app, store, registry_ttl_secs) + _setup_rest_mode(app, store) ui_dir_ref = importlib_resources.files(__spec__.parent) / "ui/build/" # type: ignore[name-defined, arg-type] with importlib_resources.as_file(ui_dir_ref) as ui_dir: @@ -148,9 +122,7 @@ def start_server( store: "feast.FeatureStore", host: str, port: int, - get_registry_dump: Callable, project_id: str, - registry_ttl_sec: int, root_path: str = "", tls_key_path: str = "", tls_cert_path: str = "", @@ -158,7 +130,6 @@ def start_server( app = get_app( store, project_id, - registry_ttl_sec, root_path, ) diff --git a/sdk/python/tests/unit/test_ui_server.py b/sdk/python/tests/unit/test_ui_server.py index 92689fffa3c..d878a3f1a20 100644 --- a/sdk/python/tests/unit/test_ui_server.py +++ b/sdk/python/tests/unit/test_ui_server.py @@ -15,7 +15,6 @@ EXPECTED_SUCCESS_STATUS = 200 EXPECTED_ERROR_STATUS = 503 TEST_PROJECT_NAME = "test_project" -REGISTRY_TTL_SECS = 60 def _create_mock_ui_files(temp_dir): @@ -54,11 +53,18 @@ def _setup_importlib_mocks(temp_dir): yield mock_files, mock_as_file +def _make_project_mock(name, description=""): + """Create a mock project object with the given name and description.""" + proj = MagicMock() + proj.name = name + proj.description = description + return proj + + @pytest.fixture def mock_feature_store(): """Fixture for creating a mock feature store""" mock_store = MagicMock() - mock_store.refresh_registry = MagicMock() return mock_store @@ -66,32 +72,29 @@ def mock_feature_store(): def ui_app_with_registry(mock_feature_store): """Fixture for UI app with valid registry data.""" mock_registry = MagicMock() - mock_proto = MagicMock() - mock_proto.SerializeToString.return_value = b"mock_proto_data" - mock_proto.projects = [] - mock_registry.proto.return_value = mock_proto + mock_registry.list_projects.return_value = [] mock_feature_store.registry = mock_registry with tempfile.TemporaryDirectory() as temp_dir: _create_mock_ui_files(temp_dir) with _setup_importlib_mocks(temp_dir): - app = get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + app = get_app(mock_feature_store, TEST_PROJECT_NAME) yield app @pytest.fixture def ui_app_without_registry(mock_feature_store): - """Fixture for UI app with None registry data.""" + """Fixture for UI app where registry raises on list_projects.""" mock_registry = MagicMock() - mock_registry.proto.return_value = None + mock_registry.list_projects.side_effect = Exception("registry unavailable") mock_feature_store.registry = mock_registry with tempfile.TemporaryDirectory() as temp_dir: _create_mock_ui_files(temp_dir) with _setup_importlib_mocks(temp_dir): - app = get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + app = get_app(mock_feature_store, TEST_PROJECT_NAME) yield app @@ -102,8 +105,8 @@ def test_ui_server_health_endpoint(ui_app_with_registry): assertpy.assert_that(response.status_code).is_equal_to(EXPECTED_SUCCESS_STATUS) -def test_ui_server_health_endpoint_with_none_registry(ui_app_without_registry): - """Health endpoint returns 503 when registry is None.""" +def test_ui_server_health_endpoint_with_unavailable_registry(ui_app_without_registry): + """Health endpoint returns 503 when registry is unavailable.""" client = TestClient(ui_app_without_registry) response = client.get("/health") assertpy.assert_that(response.status_code).is_equal_to(EXPECTED_ERROR_STATUS) @@ -117,23 +120,18 @@ def test_health_endpoint_status( registry_available, expected_status, mock_feature_store ): """Health endpoint returns correct status based on registry availability.""" + mock_registry = MagicMock() if registry_available: - mock_registry = MagicMock() - mock_proto = MagicMock() - mock_proto.SerializeToString.return_value = b"mock_proto_data" - mock_proto.projects = [] - mock_registry.proto.return_value = mock_proto - mock_feature_store.registry = mock_registry + mock_registry.list_projects.return_value = [] else: - mock_registry = MagicMock() - mock_registry.proto.return_value = None - mock_feature_store.registry = mock_registry + mock_registry.list_projects.side_effect = Exception("unavailable") + mock_feature_store.registry = mock_registry with tempfile.TemporaryDirectory() as temp_dir: _create_mock_ui_files(temp_dir) with _setup_importlib_mocks(temp_dir): - app = get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + app = get_app(mock_feature_store, TEST_PROJECT_NAME) client = TestClient(app) response = client.get("/health") assertpy.assert_that(response.status_code).is_equal_to(expected_status) @@ -160,17 +158,14 @@ def _read_projects_list(temp_dir): def test_projects_list_registry_path(mock_feature_store): """projects-list.json uses /api/v1 as registryPath.""" mock_registry = MagicMock() - mock_proto = MagicMock() - mock_proto.SerializeToString.return_value = b"data" - mock_proto.projects = [] - mock_registry.proto.return_value = mock_proto + mock_registry.list_projects.return_value = [] mock_feature_store.registry = mock_registry with tempfile.TemporaryDirectory() as temp_dir: _create_mock_ui_files(temp_dir) with _setup_importlib_mocks(temp_dir): - get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + get_app(mock_feature_store, TEST_PROJECT_NAME) data = _read_projects_list(temp_dir) assertpy.assert_that(data["projects"][0]["registryPath"]).is_equal_to("/api/v1") @@ -179,10 +174,7 @@ def test_projects_list_registry_path(mock_feature_store): def test_projects_list_with_root_path(mock_feature_store): """root_path prefix is included in registryPath.""" mock_registry = MagicMock() - mock_proto = MagicMock() - mock_proto.SerializeToString.return_value = b"data" - mock_proto.projects = [] - mock_registry.proto.return_value = mock_proto + mock_registry.list_projects.return_value = [] mock_feature_store.registry = mock_registry with tempfile.TemporaryDirectory() as temp_dir: @@ -192,7 +184,6 @@ def test_projects_list_with_root_path(mock_feature_store): get_app( mock_feature_store, TEST_PROJECT_NAME, - REGISTRY_TTL_SECS, root_path="/feast", ) @@ -205,28 +196,54 @@ def test_projects_list_with_root_path(mock_feature_store): def test_projects_list_multiple_projects(mock_feature_store): """Multiple projects get an 'All Projects' entry prepended.""" mock_registry = MagicMock() - mock_proto = MagicMock() - mock_proto.SerializeToString.return_value = b"data" - - proj1 = MagicMock() - proj1.spec.name = "project_alpha" - proj1.spec.description = "Alpha project" - proj2 = MagicMock() - proj2.spec.name = "project_beta" - proj2.spec.description = "Beta project" - mock_proto.projects = [proj1, proj2] - - mock_registry.proto.return_value = mock_proto + mock_registry.list_projects.return_value = [ + _make_project_mock("project_alpha", "Alpha project"), + _make_project_mock("project_beta", "Beta project"), + ] mock_feature_store.registry = mock_registry with tempfile.TemporaryDirectory() as temp_dir: _create_mock_ui_files(temp_dir) with _setup_importlib_mocks(temp_dir): - get_app(mock_feature_store, TEST_PROJECT_NAME, REGISTRY_TTL_SECS) + get_app(mock_feature_store, TEST_PROJECT_NAME) data = _read_projects_list(temp_dir) assertpy.assert_that(len(data["projects"])).is_equal_to(3) assertpy.assert_that(data["projects"][0]["id"]).is_equal_to("all") assertpy.assert_that(data["projects"][1]["id"]).is_equal_to("project_alpha") assertpy.assert_that(data["projects"][2]["id"]).is_equal_to("project_beta") + + +def test_projects_list_fallback_on_empty(mock_feature_store): + """When list_projects returns empty, fallback project is used.""" + mock_registry = MagicMock() + mock_registry.list_projects.return_value = [] + mock_feature_store.registry = mock_registry + + with tempfile.TemporaryDirectory() as temp_dir: + _create_mock_ui_files(temp_dir) + + with _setup_importlib_mocks(temp_dir): + get_app(mock_feature_store, TEST_PROJECT_NAME) + + data = _read_projects_list(temp_dir) + assertpy.assert_that(len(data["projects"])).is_equal_to(1) + assertpy.assert_that(data["projects"][0]["id"]).is_equal_to(TEST_PROJECT_NAME) + + +def test_projects_list_fallback_on_exception(mock_feature_store): + """When list_projects raises, fallback project is used.""" + mock_registry = MagicMock() + mock_registry.list_projects.side_effect = Exception("not implemented") + mock_feature_store.registry = mock_registry + + with tempfile.TemporaryDirectory() as temp_dir: + _create_mock_ui_files(temp_dir) + + with _setup_importlib_mocks(temp_dir): + get_app(mock_feature_store, TEST_PROJECT_NAME) + + data = _read_projects_list(temp_dir) + assertpy.assert_that(len(data["projects"])).is_equal_to(1) + assertpy.assert_that(data["projects"][0]["id"]).is_equal_to(TEST_PROJECT_NAME) From 7ab3502260b61b1b79b4e923d47d96cd1060d61b Mon Sep 17 00:00:00 2001 From: Chaitany patel Date: Wed, 20 May 2026 15:05:35 +0530 Subject: [PATCH 27/59] chore(deps): Bump go 1.25.0 and google.golang.org/grpc >= 1.79.3 to fix CVE-2026-33186 Upgrade Go version from 1.24.12 to 1.25.0 and bump google.golang.org/grpc from v1.68.1 to v1.79.3 in the feast-operator to address CVE-2026-33186 (gRPC-Go authorization bypass due to improper HTTP/2 path validation). Updated: - infra/feast-operator/go.mod (go directive and grpc dep) - infra/feast-operator/Dockerfile (go-toolset:1.24 -> 1.25) - All CI workflow files (go-version: 1.25.0) Ref: RHOAIENG-55304 Signed-off-by: Chaitany patel Co-authored-by: Cursor --- .../operator-e2e-integration-tests.yml | 2 +- .github/workflows/operator_pr.yml | 2 +- .../workflows/pr_local_integration_tests.yml | 2 +- .github/workflows/registry-rest-api-tests.yml | 2 +- .github/workflows/release.yml | 4 +- infra/feast-operator/Dockerfile | 2 +- infra/feast-operator/go.mod | 40 ++++----- infra/feast-operator/go.sum | 84 ++++++++++--------- 8 files changed, 71 insertions(+), 67 deletions(-) diff --git a/.github/workflows/operator-e2e-integration-tests.yml b/.github/workflows/operator-e2e-integration-tests.yml index a0e5e75398f..788d6f1cac5 100644 --- a/.github/workflows/operator-e2e-integration-tests.yml +++ b/.github/workflows/operator-e2e-integration-tests.yml @@ -52,7 +52,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.24.12 + go-version: 1.25.0 - name: Create KIND cluster run: | diff --git a/.github/workflows/operator_pr.yml b/.github/workflows/operator_pr.yml index 39066286e53..ff423e65965 100644 --- a/.github/workflows/operator_pr.yml +++ b/.github/workflows/operator_pr.yml @@ -14,7 +14,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.24.12 + go-version: 1.25.0 - name: Operator tests run: make -C infra/feast-operator test - name: After code formatting, check for uncommitted differences diff --git a/.github/workflows/pr_local_integration_tests.yml b/.github/workflows/pr_local_integration_tests.yml index 4926d9970d2..115be2298cd 100644 --- a/.github/workflows/pr_local_integration_tests.yml +++ b/.github/workflows/pr_local_integration_tests.yml @@ -59,7 +59,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.24.12 + go-version: 1.25.0 - name: Operator Data Source types test run: make -C infra/feast-operator test-datasources - name: Minimize uv cache diff --git a/.github/workflows/registry-rest-api-tests.yml b/.github/workflows/registry-rest-api-tests.yml index 68be4e9b91d..7862a396458 100644 --- a/.github/workflows/registry-rest-api-tests.yml +++ b/.github/workflows/registry-rest-api-tests.yml @@ -50,7 +50,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.24.12 + go-version: 1.25.0 - name: Create KIND cluster run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b2e8f39fbef..627dfd589a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -111,7 +111,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.24.12 + go-version: 1.25.0 - name: Build & version operator-specific release files run: make -C infra/feast-operator build-installer bundle @@ -144,7 +144,7 @@ jobs: - name: Install Go uses: actions/setup-go@v5 with: - go-version: 1.24.12 + go-version: 1.25.0 - name: Compile Go Test Binaries run: | cd infra/feast-operator diff --git a/infra/feast-operator/Dockerfile b/infra/feast-operator/Dockerfile index 9d27bbcaf3f..65e2bd83cd5 100644 --- a/infra/feast-operator/Dockerfile +++ b/infra/feast-operator/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM registry.access.redhat.com/ubi9/go-toolset:1.24 AS builder +FROM registry.access.redhat.com/ubi9/go-toolset:1.25 AS builder ARG TARGETOS ARG TARGETARCH ENV GOTOOLCHAIN=auto diff --git a/infra/feast-operator/go.mod b/infra/feast-operator/go.mod index a7dca2e3bc7..538d09888be 100644 --- a/infra/feast-operator/go.mod +++ b/infra/feast-operator/go.mod @@ -1,6 +1,6 @@ module github.com/feast-dev/feast/infra/feast-operator -go 1.24.12 +go 1.25.0 require ( github.com/onsi/ginkgo/v2 v2.22.2 @@ -16,11 +16,12 @@ require ( require ( github.com/prometheus-operator/prometheus-operator/pkg/client v0.83.0 github.com/prometheus/client_golang v1.22.0 + github.com/prometheus/client_model v0.6.1 k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979 ) require ( - cel.dev/expr v0.19.1 // indirect + cel.dev/expr v0.25.1 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect @@ -32,7 +33,7 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.21.1 // indirect @@ -56,38 +57,37 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.83.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/x448/float16 v0.8.4 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.33.0 // indirect + go.opentelemetry.io/otel v1.39.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect - go.opentelemetry.io/otel/metric v1.33.0 // indirect - go.opentelemetry.io/otel/sdk v1.33.0 // indirect - go.opentelemetry.io/otel/trace v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.39.0 // indirect + go.opentelemetry.io/otel/sdk v1.39.0 // indirect + go.opentelemetry.io/otel/trace v1.39.0 // indirect go.opentelemetry.io/proto/otlp v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.14.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.25.0 // indirect + golang.org/x/net v0.48.0 // indirect + golang.org/x/oauth2 v0.34.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.39.0 // indirect + golang.org/x/term v0.38.0 // indirect + golang.org/x/text v0.32.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.28.0 // indirect + golang.org/x/tools v0.39.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect - google.golang.org/grpc v1.68.1 // indirect - google.golang.org/protobuf v1.36.6 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect + google.golang.org/grpc v1.79.3 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect k8s.io/apiextensions-apiserver v0.33.1 // indirect diff --git a/infra/feast-operator/go.sum b/infra/feast-operator/go.sum index e2454886924..00b7343b222 100644 --- a/infra/feast-operator/go.sum +++ b/infra/feast-operator/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4= -cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4= +cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -28,8 +28,8 @@ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyT github.com/fxamacker/cbor/v2 v2.8.0 h1:fFtUGXUzXPHTIUdne5+zzMPTfffl3RD5qYnkY40vtxU= github.com/fxamacker/cbor/v2 v2.8.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= @@ -111,8 +111,8 @@ github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -129,28 +129,30 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= -go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= +go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= -go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= -go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= -go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= -go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= -go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= -go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= +go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= +go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= +go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= +go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= +go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= +go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= +go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -170,48 +172,50 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= +golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= +golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= +golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= +golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= -golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= +golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= +golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= -google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= +google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 7279c75fb5681565cfa27914ca5ad17818e11089 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Thu, 21 May 2026 14:33:22 +0530 Subject: [PATCH 28/59] feat: Feast-MLflow Integration (#6235) * mlflow-feast integration Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED refine MLflow integration, UI runs endpoint, and lockfiles Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fix issues Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED handle fallback Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED added model to features table Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED address CI Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED add docs Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fix-lint Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update docs Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update-logic Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED add-integration-test Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED mlflowclient wrapper Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED address-reviews Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update docs Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fix-lint Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fix-auto-log Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update feastMlflowClient Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED changing init Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fixing docs Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED remove doc Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update format Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fix-test Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update docs Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED addressed reviews Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED fix: update .secrets.baseline to remove pragma-allowlisted entry Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED ui-fallback Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED update requirements Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED * fix-CI Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED * fix-lint Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED * fix: remove unused imports in ui_server.py Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .secrets.baseline | 2 +- docs/reference/mlflow.md | 347 +++ pixi.lock | 2743 ++++++++--------- pyproject.toml | 3 +- sdk/python/feast/feature_store.py | 341 +- sdk/python/feast/mlflow.py | 139 + .../feast/mlflow_integration/__init__.py | 39 + sdk/python/feast/mlflow_integration/client.py | 313 ++ sdk/python/feast/mlflow_integration/config.py | 65 + .../mlflow_integration/entity_df_builder.py | 116 + sdk/python/feast/mlflow_integration/logger.py | 375 +++ .../mlflow_integration/model_resolver.py | 138 + sdk/python/feast/repo_config.py | 20 + sdk/python/feast/ui_server.py | 270 ++ .../requirements/py3.10-ci-requirements.txt | 994 ++++-- .../py3.10-minimal-requirements.txt | 314 +- ...y3.10-minimal-sdist-requirements-build.txt | 78 +- .../py3.10-minimal-sdist-requirements.txt | 314 +- .../requirements/py3.10-requirements.txt | 296 +- .../requirements/py3.11-ci-requirements.txt | 1032 +++++-- .../py3.11-minimal-requirements.txt | 460 +-- ...y3.11-minimal-sdist-requirements-build.txt | 224 +- .../py3.11-minimal-sdist-requirements.txt | 460 +-- .../requirements/py3.11-requirements.txt | 442 +-- .../requirements/py3.12-ci-requirements.txt | 1041 +++++-- .../py3.12-minimal-requirements.txt | 454 +-- ...y3.12-minimal-sdist-requirements-build.txt | 224 +- .../py3.12-minimal-sdist-requirements.txt | 454 +-- .../requirements/py3.12-requirements.txt | 436 +-- .../integration/test_mlflow_integration.py | 1116 +++++++ ui/src/components/RegistryVisualization.tsx | 136 +- .../components/RegistryVisualizationTab.tsx | 6 + ui/src/hooks/useFCOExploreSuggestions.ts | 2 + .../feature-views/FeatureViewUsagePanel.tsx | 130 + .../RegularFeatureViewOverviewTab.tsx | 39 + ui/src/pages/features/FeatureListPage.tsx | 49 + ui/src/parsers/types.ts | 2 + ui/src/queries/useLoadFeatureModels.ts | 37 + ui/src/queries/useLoadFeatureUsage.ts | 35 + ui/src/queries/useLoadMlflowRuns.ts | 52 + 40 files changed, 9372 insertions(+), 4366 deletions(-) create mode 100644 docs/reference/mlflow.md create mode 100644 sdk/python/feast/mlflow.py create mode 100644 sdk/python/feast/mlflow_integration/__init__.py create mode 100644 sdk/python/feast/mlflow_integration/client.py create mode 100644 sdk/python/feast/mlflow_integration/config.py create mode 100644 sdk/python/feast/mlflow_integration/entity_df_builder.py create mode 100644 sdk/python/feast/mlflow_integration/logger.py create mode 100644 sdk/python/feast/mlflow_integration/model_resolver.py create mode 100644 sdk/python/tests/integration/test_mlflow_integration.py create mode 100644 ui/src/pages/feature-views/FeatureViewUsagePanel.tsx create mode 100644 ui/src/queries/useLoadFeatureModels.ts create mode 100644 ui/src/queries/useLoadFeatureUsage.ts create mode 100644 ui/src/queries/useLoadMlflowRuns.ts diff --git a/.secrets.baseline b/.secrets.baseline index e0030466f1f..0197e0a1f3d 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -1539,5 +1539,5 @@ } ] }, - "generated_at": "2026-05-14T10:20:01Z" + "generated_at": "2026-05-20T07:55:48Z" } diff --git a/docs/reference/mlflow.md b/docs/reference/mlflow.md new file mode 100644 index 00000000000..6522478409c --- /dev/null +++ b/docs/reference/mlflow.md @@ -0,0 +1,347 @@ +# MLflow Integration + +Feast provides **native integration** with [MLflow](https://mlflow.org/) for automatic feature lineage tracking alongside ML experiments. When enabled, every feature retrieval is logged to the active MLflow run. + +## Overview + +- **Which features did this model use?** -- auto-logged on every `get_historical_features()` / `get_online_features()` call +- **Which feature service should I use to serve this model?** -- resolved from model URI via `store.mlflow.resolve_features()` +- **Can I reproduce the exact training data?** -- entity DataFrame saved as an MLflow artifact +- **Which models break if I change a feature view?** -- reverse index via the Feast UI `/api/mlflow-feature-usage` endpoint +- **When was the feature store last updated?** -- `feast apply` and `feast materialize` logged to a separate ops experiment + +### Capabilities + +| Capability | How | +|---|---| +| Auto-log feature metadata | Tags on every retrieval inside an active MLflow run | +| Entity DataFrame archival | `entity_df.parquet` artifact for full reproducibility | +| Model registration with lineage | `feast.feature_service` tag propagated to model versions | +| Training-to-prediction linkage | `store.mlflow.load_model()` links prediction runs back to training runs | +| Model-to-feature resolution | Map any model URI back to its Feast feature service | +| Operation audit trail | `feast apply` / `feast materialize` logged to `{project}-feast-ops` | +| `store.mlflow` API | Single entry point — zero `import mlflow`, zero client objects | +| Feast UI integration | Per-feature-view usage stats and registered model associations | + +## Installation + +MLflow is an optional dependency: + +```bash +pip install feast[mlflow] +``` + +## Configuration + +Add the `mlflow` section to your `feature_store.yaml`: + +```yaml +project: my_project +registry: data/registry.db +provider: local +online_store: + type: sqlite + path: data/online_store.db + +mlflow: + enabled: true + tracking_uri: http://127.0.0.1:5000 # optional, falls back to MLFLOW_TRACKING_URI env var + auto_log: true # default + auto_log_entity_df: false # default + entity_df_max_rows: 100000 # default + log_operations: false # default + ops_experiment_suffix: "-feast-ops" # default +``` + +### Configuration options + +| Option | Type | Default | Description | +|--------|------|---------|-------------| +| `enabled` | bool | `false` | Master switch for the entire integration | +| `tracking_uri` | string | *(none)* | MLflow tracking server URI. Falls back to `MLFLOW_TRACKING_URI` env var, then MLflow default (`./mlruns`) | +| `auto_log` | bool | `true` | Automatically log feature metadata on every retrieval when an active MLflow run exists | +| `auto_log_entity_df` | bool | `false` | Save the entity DataFrame as `entity_df.parquet` artifact on historical retrieval | +| `entity_df_max_rows` | int | `100000` | Skip entity DataFrame artifact upload for DataFrames exceeding this limit | +| `log_operations` | bool | `false` | Log `feast apply` and `feast materialize` to a separate MLflow experiment | +| `ops_experiment_suffix` | string | `"-feast-ops"` | Suffix appended to project name for the operations experiment | + +### Tracking URI resolution + +The tracking URI is resolved in this order: + +1. `tracking_uri` field in `feature_store.yaml` +2. `MLFLOW_TRACKING_URI` environment variable +3. MLflow's default (`./mlruns` local directory) + +This means you can omit `tracking_uri` from the YAML and set `MLFLOW_TRACKING_URI` in your environment instead, or it would be pulled from `./mlruns` automatically when both are not set. + +## What gets logged + +### Tags on retrieval runs + +When `auto_log: true` and an active MLflow run exists, each `get_historical_features()` or `get_online_features()` call records: + +| Tag | Example | Description | +|-----|---------|-------------| +| `feast.project` | `my_project` | Feast project name | +| `feast.retrieval_type` | `historical` / `online` | Type of feature retrieval | +| `feast.feature_service` | `driver_activity_v1` | Auto-resolved feature service name (if matched) | +| `feast.feature_views` | `driver_hourly_stats` | Comma-separated feature view names | +| `feast.feature_refs` | `driver_hourly_stats:conv_rate,...` | All feature references | +| `feast.entity_count` | `200` | Number of entities in the request | +| `feast.feature_count` | `5` | Number of features retrieved | + +### Metrics + +| Metric | Example | Description | +|--------|---------|-------------| +| `feast.job_submission_sec` | `0.4321` | Feature retrieval duration in seconds | + +### Artifacts + +When `auto_log_entity_df: true` and the entity DataFrame has fewer than `entity_df_max_rows` rows: + +| Artifact | Description | +|----------|-------------| +| `entity_df.parquet` | Full entity DataFrame used in the retrieval | + +When a model is logged via `store.mlflow.log_model()`: + +| Artifact | Description | +|----------|-------------| +| `feast_features.json` | JSON list of feature references the model was trained on | + +### Entity DataFrame metadata + +Regardless of `auto_log_entity_df`, the following metadata is logged when present: + +| Tag / Param | When | Description | +|-------------|------|-------------| +| `feast.entity_df_type` | Always | `dataframe`, `sql`, or `range` | +| `feast.entity_df_rows` | DataFrame input | Row count | +| `feast.entity_df_columns` | DataFrame input | Column names | +| `feast.entity_df_query` | SQL input | The SQL query string | +| `feast.start_date` / `feast.end_date` | Range-based input | Date range | + +### Operation logs + +When `log_operations: true`, `feast apply` and `feast materialize` create self-contained runs in the `{project}{ops_experiment_suffix}` experiment (default: `my_project-feast-ops`): + +**Apply runs:** + +| Tag / Metric | Example | +|--------------|---------| +| `feast.operation` | `apply` | +| `feast.project` | `my_project` | +| `feast.feature_views_changed` | `driver_hourly_stats,order_stats` | +| `feast.feature_services_changed` | `driver_activity_v1` | +| `feast.entities_changed` | `driver,restaurant` | +| `feast.apply.feature_views_count` | `2` | +| `feast.apply.feature_services_count` | `1` | +| `feast.apply.entities_count` | `2` | + +**Materialize runs:** + +| Tag / Metric | Example | +|--------------|---------| +| `feast.operation` | `materialize` / `materialize_incremental` | +| `feast.project` | `my_project` | +| `feast.materialize.feature_views` | `driver_hourly_stats` | +| `feast.materialize.start_date` | `2024-01-01T00:00:00` | +| `feast.materialize.end_date` | `2024-01-02T00:00:00` | +| `feast.materialize.duration_sec` | `12.3456` | + +## Usage + +### Automatic logging (zero code) + +With the configuration above, feature metadata is logged automatically whenever there is an active MLflow run. No explicit `import mlflow` is needed — just use `store.mlflow`: + +```python +from feast import FeatureStore + +store = FeatureStore(".") + +with store.mlflow.start_run(run_name="my_training"): + training_df = store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + # The run is now tagged with feast.feature_refs, feast.feature_views, etc. + + model = train(training_df) + store.mlflow.log_model(model, "model") +``` + +No extra code needed — the tags are written automatically. + +### `store.mlflow` API (recommended) + +`store.mlflow` is the primary way to interact with the Feast–MLflow integration. It provides Feast-enhanced versions of common MLflow operations, and delegates everything else to the raw `mlflow` module: + +```python +from feast import FeatureStore +from sklearn.linear_model import LogisticRegression + +store = FeatureStore(".") + +# Training +with store.mlflow.start_run(run_name="v1_training"): + df = store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + model = LogisticRegression().fit(X, y) + store.mlflow.log_model(model, "model") # Feast-enhanced: saves feast_features.json + train_run_id = store.mlflow.active_run_id + +# Register model (auto-tags version with feast.feature_service) +store.mlflow.register_model(f"runs:/{train_run_id}/model", "driver_model") + +# Prediction (auto-links to training run) +with store.mlflow.start_run(run_name="prediction"): + model = store.mlflow.load_model("models:/driver_model/1") + online_features = store.get_online_features( + features=store.get_feature_service("driver_activity_v1"), + entity_rows=[{"driver_id": 1001}], + ) + predictions = model.predict(...) +``` + +### `feast.mlflow` module API (alternative) + +For users who prefer a module-level import, `feast.mlflow` is a **drop-in replacement for `import mlflow`** that delegates to the same `store.mlflow` client under the hood: + +```python +import feast.mlflow +from feast import FeatureStore + +store = FeatureStore(".") # auto-registers with feast.mlflow + +with feast.mlflow.start_run(run_name="training"): + df = store.get_historical_features(...).to_df() + feast.mlflow.log_params({"lr": "0.01"}) # plain passthrough + feast.mlflow.log_metrics({"f1": 0.85}) # plain passthrough + feast.mlflow.log_model(model, "model") # Feast-enhanced +``` + +#### Store resolution + +`feast.mlflow` resolves its `FeatureStore` in this order: + +1. **Explicit `feast.mlflow.init(store)`** — if called, overrides everything +2. **Auto-registered** — the most recently created `FeatureStore` with `mlflow.enabled=true` registers itself automatically +3. **Auto-discovery** — falls back to `FeatureStore(".")` from the current directory + +In most cases, simply creating a `FeatureStore(...)` is enough — no `init()` needed. + +#### Error handling + +`feast.mlflow` raises clear errors on first use if something is misconfigured: + +| Condition | Error | +|-----------|-------| +| No `feature_store.yaml` in cwd and no store created | `RuntimeError` with guidance to call `feast.mlflow.init(store)` | +| `mlflow.enabled` is not set to `true` | `RuntimeError` with guidance to set `mlflow.enabled=true` | +| `mlflow` pip package not installed | `ImportError` with guidance to run `pip install feast[mlflow]` | + +When `mlflow.enabled` is `false` (or omitted), `store.mlflow` returns `None`, allowing callers to guard with `if store.mlflow:`. The `feast.mlflow` module raises `RuntimeError` only when you attempt to use it without an enabled store. + +### Feast-enhanced functions + +These functions add automatic Feast tagging and lineage on top of their MLflow counterparts: + +| Function | Enhancement | +|----------|-------------| +| `store.mlflow.start_run(run_name, tags)` | Auto-tags run with `feast.project` | +| `store.mlflow.log_model(model, path, flavor)` | Auto-attaches `feast_features.json` artifact | +| `store.mlflow.register_model(model_uri, name)` | Auto-tags model version with `feast.feature_service` | +| `store.mlflow.load_model(model_uri)` | Auto-tags prediction run with training lineage | + +**Supported model flavors for `log_model()`:** `sklearn`, `pytorch`, `xgboost`, `lightgbm`, `tensorflow`, `keras`, `pyfunc`. + +### Feast-only functions + +These are unique to the Feast integration and have no `mlflow` equivalent: + +| Function | Description | +|----------|-------------| +| `store.mlflow.resolve_features(model_uri)` | Resolve model URI to Feast feature service name | +| `store.mlflow.get_training_entity_df(run_id, ...)` | Recover entity DataFrame from a past MLflow run | +| `store.mlflow.log_training_dataset(df, dataset_name)` | Log a training DataFrame as an MLflow dataset input | +| `store.mlflow.active_run_id` | Current active MLflow run ID (or `None`) | +| `store.mlflow.client` | The underlying `MlflowClient` instance for advanced queries | +| `feast.mlflow.init(store)` | Explicitly bind `feast.mlflow` module to a `FeatureStore` (optional) | + +### Passthrough behavior + +The `feast.mlflow` module delegates any attribute not listed above to the raw `mlflow` module. This means you can use `feast.mlflow` as a drop-in replacement for `import mlflow`: + +```python +feast.mlflow.log_params(params) # passes through to mlflow.log_params +feast.mlflow.log_metrics(metrics) +feast.mlflow.set_tag("env", "staging") +feast.mlflow.MlflowClient() +``` + +`store.mlflow` does **not** have this passthrough — it only exposes the Feast-enhanced and Feast-only methods listed above. To access raw `mlflow` functions from `store.mlflow`, use the escape hatches: + +```python +store.mlflow.client.log_param(run_id, "lr", "0.01") # via MlflowClient instance +store.mlflow.mlflow.log_params(params) # via raw mlflow module +``` + +### Resolve a model back to its feature service + +```python +from feast import FeatureStore + +store = FeatureStore(".") +fs_name = store.mlflow.resolve_features("models:/driver_model/1") +# Returns: "driver_activity_v1" +``` + +Resolution order: +1. Model version tag `feast.feature_service` (set by `register_model()`) +2. Training run tag `feast.feature_service` (set by auto-logging) + +### Reproduce training from a past run + +```python +from feast import FeatureStore + +store = FeatureStore(".") + +entity_df = store.mlflow.get_training_entity_df(run_id="abc123") + +with store.mlflow.start_run(run_name="retrain_v2"): + new_df = store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + model = train(new_df) + store.mlflow.log_model(model, "model") +``` + +This requires `auto_log_entity_df: true` to have been enabled when the original run was recorded. + +## Feast UI integration + +The Feast UI server exposes three API endpoints that aggregate data from MLflow: + +| Endpoint | Description | +|----------|-------------| +| `/api/mlflow-runs` | All Feast-tagged MLflow runs with linked registered models | +| `/api/mlflow-feature-usage` | Per-feature-view usage stats (run count, last used, associated models) | +| `/api/mlflow-feature-models` | Reverse index of feature refs to registered models | + +The feature view detail page in the Feast UI displays: +- **MLflow Training Runs** count and **Last Used** date in the header stats +- An **MLflow Usage** panel showing training run count, relative last-used time, and a table of registered models that depend on the feature view + +Start the Feast UI with: + +```bash +feast ui --host 127.0.0.1 --port 8888 +``` diff --git a/pixi.lock b/pixi.lock index 4b5c54e8e26..e68b50d3b6d 100644 --- a/pixi.lock +++ b/pixi.lock @@ -11,22 +11,20 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.1-h0c1763c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.5-habeac84_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda @@ -35,81 +33,83 @@ environments: - pypi: https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b2/71/4d1d479aa56d0101c40e17720c3d6ac2af7269ea0487a80b18e7bfd1a5b7/ast_serialize-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d2/d8/09bfa816572a4d83bccd6750df1926f79158b1c36c5f73786e26dbe4ee38/greenlet-3.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/59/1bd6d7428d6ed9106efbb8c52310c60fd04f6672490f452aeaa3829aa436/greenlet-3.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/0a/7e/f5d92af8486b8272c23b3e686b46ff72d89c8169585eb61eef01a2ac7147/librt-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b6/71/c1a60c1652b8813ef9de6d289784847355417ee0f2980bca002fe87f4ae5/mmh3-5.2.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/6b/8d/93491ff7b79419edc7eabf95cb3b3f7490e2e574b2855c7c7e7394ff933f/mypy-1.20.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/51/4d/b6d34db183133b83761b9199a82d31557cdbb70a380d8c3b3438e11882a3/mypy-2.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/98/7c/21252050676612625449b4807d6b695b9ce8a7c9e1c197ee6216c8a65c7c/numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/53/1b/3b431694a4dc6d37b9f653f0c64b0a0d9ec074ee810710c0c3da21d67ba7/protobuf-7.34.1-cp310-abi3-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/70/5b/6baf9008817964454055ff3fe65f1de0b5f1e26c80c82f7fb108b7cd4ea3/protobuf-7.35.0-cp310-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/36/2e/c0f017c405fcdc252dbccafbe05e36b0d0eb1ea9a958f081e01c6972927f/pyarrow-23.0.1-cp314-cp314-manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8e/3a/28ba9c1c1ebdbb5f1b94dfebb46f207e52e6a554b7fe4132540fde29a3a0/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f2/5e/327428a034407651a048f5e624361adf3f9fbac9d0fa98e981e9c6ff2f5e/sqlalchemy-2.0.48-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/2e/84/efc7c0bf3a1c5eef81d397f6fddac855becdbb11cb38ff957888603014a7/sqlalchemy-2.0.49-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/35/60249e9fd07b32c665192cec7af29e06c7cd96fa1d08b84f012a56a0b38e/uvloop-0.22.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.5-hcc62823_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.3-h25d91c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.8.0-hcc62823_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.3-hbb4bfdb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-hf3981d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.53.1-h8f8c405_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.2-hbb4bfdb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.3-h4f44bb5_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.2-hc881268_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.5-h7c6738f_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda @@ -118,82 +118,82 @@ environments: - pypi: https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e0/9e/dc2530acb3a60dc6e46d65abf27d1d9f86721694757906a148d90a6860de/ast_serialize-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3f/ae/8bffcbd373b57a5992cd077cbe8858fff39110480a9d50697091faea6f39/greenlet-3.3.2-cp314-cp314-macosx_11_0_universal2.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/94/5e/a70f31e3e8d961c4ce589c15b28e4225d63704e431a23932a3808cbcc867/greenlet-3.5.0-cp314-cp314-macosx_11_0_universal2.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/29/eb/dbce197da4e227779e56b5735f2decc3eb36e55a1cdbf1bd65d6639d76c1/librt-0.11.0-cp314-cp314-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6f/75/2c24517d4b2ce9e4917362d24f274d3d541346af764430249ddcc4cb3a08/mmh3-5.2.1-cp314-cp314-macosx_10_15_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/4e/0e/6ca4a84cbed9e62384bc0b2974c90395ece5ed672393e553996501625fc5/mypy-1.20.0-cp314-cp314-macosx_10_15_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b0/ca/b279a672e874aedd5498ae25f722dacc8aa86bbffb939b3f97cbb1cf6686/mypy-2.1.0-cp314-cp314-macosx_10_15_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6e/06/c54062f85f673dd5c04cbe2f14c3acb8c8b95e3384869bb8cc9bff8cb9df/numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ae/b5/d58a241fbe324dbaeb8df07be6af8752c846192d78d2272e551098f74e88/pyarrow-23.0.1-cp314-cp314-macosx_12_0_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1a/ff/f01485fda6f4e5d441afb8dd5e7681e4db18826c1e271852f5d3957d6a80/pyarrow-24.0.0-cp314-cp314-macosx_12_0_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0d/f8/a132124dfda0777e489ca86732e85e69afcd1ff7686647000050ba670689/uvloop-0.22.1-cp314-cp314-macosx_10_13_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-hef89b57_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.5-hf6b4638_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.0-hf6b4638_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.53.1-h1b79a29_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.2-hd24854e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.5-h4c637c5_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda @@ -202,67 +202,68 @@ environments: - pypi: https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/26/0a/bd3d18a582f273d6c843d16bb9e22e9e16365ff7991e92f18f798e9f1224/ast_serialize-0.5.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/76/a3/254bebd0c11c8ba684018efb8006ff22e466abce445215cca6c778e7d9de/librt-0.11.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/bf/b9/e4a360164365ac9f07a25f0f7928e3a66eb9ecc989384060747aa170e6aa/mmh3-5.2.1-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/7d/c5/5fe9d8a729dd9605064691816243ae6c49fde0bd28f6e5e17f6a24203c43/mypy-1.20.0-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/27/e6/3efe56c631d959b9b4454e208b0ac4b7f4f58b404c89f8bec7b49efdfc21/mypy-2.1.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4c/39/8a320264a84404c74cc7e79715de85d6130fa07a0898f67fb5cd5bd79908/numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/8d/1b/6da9a89583ce7b23ac611f183ae4843cd3a6cf54f079549b0e8c14031e73/pyarrow-23.0.1-cp314-cp314-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/ad/80/d022a34ff05d2cbedd8ccf841fc1f532ecfa9eb5ed1711b56d0e0ea71fc9/pyarrow-24.0.0-cp314-cp314-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f7/b3/f437eaa1cf028bb3c927172c7272366393e73ccd104dcf5b6963f4ab5318/sqlalchemy-2.0.48-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/55/33/bf28f618c0a9597d14e0b9ee7d1e0622faff738d44fe986ee287cdf1b8d0/sqlalchemy-2.0.49-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/cd/b62bdeaa429758aee8de8b00ac0dd26593a9de93d302bff3d21439e9791d/uvloop-0.22.1-cp314-cp314-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl duckdb-tests: channels: @@ -275,23 +276,21 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.1-h0c1763c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.20-h3c07f61_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda @@ -302,71 +301,72 @@ environments: - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b2/71/4d1d479aa56d0101c40e17720c3d6ac2af7269ea0487a80b18e7bfd1a5b7/ast_serialize-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/c0/271f3e1e3502a8decb8ee5c680dbed2d8dc2cd504f5e20f7ed491d5f37e1/atpublic-7.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/20/e7/bed0024a0f4ab0c8a9c64d4445f39b30c99bd1acd228291959e3de664247/charset_normalizer-3.4.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/02/e1/50edc7a50334807cc4791fc4a0ce7468b4a1416d9138eab358bfc9a3d70b/cryptography-48.0.0-cp39-abi3-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6e/24/e6b7a8fe8b9e336d684779a88027b261374417f2be7c5a0fcdb40f0c8cc5/deltalake-0.25.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3a/09/4c4dd94f521d016e0fb83cca2c203d10ce1e3f8bcc679691b5271fc98b83/duckdb-1.5.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/3c/cc/10a542561634408cbae951a836e645dda784ddc48eaa2ee72701a2992a8e/duckdb-1.5.2-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ad/55/9f1ebb5a825215fadcc0f7d5073f6e79e3007e3282b14b22d6aba7ca6cb8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ed/ac/0b509b6fb93551ce5a01612ee1acda7f7dda4bbb66c99aeb2ab403d205dc/greenlet-3.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/58/2f/f3fc773270cf17e7ca076c1f6435278f58641d475a25cdeea5b2d8d4845b/grpcio-1.62.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/b3/11d406849715b47c9d69bb22f50874f80caee96bd1cbe7b61abbebbf5a05/ibis_framework-12.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/50/5ec949d7f9ce1a07af903aa3e13abb98b717923bdead6e719b2f824ccc07/librt-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/b1/e20d5f0d19c4c0f3df213fa7dcfa0942c4fb127d38e11f398ae8ddf6cccc/mmh3-5.2.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/41/5a/93093f0b29a9e982deafde698f740a2eb2e05886e79ccf0594c7fd5413a3/mypy-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/77/fc/8cb9073bb1bee54eb49a1ae501a36402d01763812962ac811cdc1c81a9d7/parsy-2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/53/1b/3b431694a4dc6d37b9f653f0c64b0a0d9ec074ee810710c0c3da21d67ba7/protobuf-7.34.1-cp310-abi3-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/70/5b/6baf9008817964454055ff3fe65f1de0b5f1e26c80c82f7fb108b7cd4ea3/protobuf-7.35.0-cp310-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f8/82/c40b68001dbec8a3faa4c08cd8c200798ac732d2854537c5449dc859f55a/pyarrow-23.0.1-cp310-cp310-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/67/33/f75e91b9a64c3f33c787e263c93b871ad91b8a4a68c1d5cebddd9840e835/pyarrow-24.0.0-cp310-cp310-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2e/c3/94ade4906a2f88bc935772f59c934013b4205e773bcb4239db114a6da136/pyarrow_hotfix-0.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl @@ -381,16 +381,16 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5c/ad/6c4395649a212a6c603a72c5b9ab5dce3135a1546cfdffa3c427e71fd535/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/69/13/f8c5dd59b119feee28cce53f23361d955cd46d0612697d49db0070f41ea9/sqlglot-30.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl @@ -399,29 +399,30 @@ environments: - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/02/c8/79eee650c62d2c186598489814468e389b5def0ebe755399ff645b35b1b2/watchfiles-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c2/7a/32758ca2853b07a887a4574b74e28843919103194bb47001a304e24af62f/wrapt-2.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.5-hcc62823_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.3-h25d91c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.8.0-hcc62823_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.3-hbb4bfdb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.53.1-h8f8c405_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.2-hbb4bfdb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.2-hc881268_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.20-hea035f4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda @@ -431,71 +432,72 @@ environments: - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e0/9e/dc2530acb3a60dc6e46d65abf27d1d9f86721694757906a148d90a6860de/ast_serialize-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/c0/271f3e1e3502a8decb8ee5c680dbed2d8dc2cd504f5e20f7ed491d5f37e1/atpublic-7.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/26/08/0f303cb0b529e456bb116f2d50565a482694fbb94340bf56d44677e7ed03/charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/0e/f372bb290cef68c67331cd649b94d62220183ddc1b5bf3a9351ea6e9c8ec/deltalake-0.25.5-cp39-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/b8/22e6c605d9281df7a83653f4a60168eec0f650b23f1d4648aca940d79d00/duckdb-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/01/f4/2f4af0233489fc92822ff6021a2a4e05f7cd75fa1a352a163967fbeeab22/duckdb-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/38/3f/9859f655d11901e7b2996c6e3d33e0caa9a1d4572c3bc61ed0faa64b2f4c/greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b0/03/84359833f7e1d49a883e92777637c592306030e30cee5e2b1e6476f95c88/greenlet-3.5.0-cp310-cp310-macosx_11_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/b3/11d406849715b47c9d69bb22f50874f80caee96bd1cbe7b61abbebbf5a05/ibis_framework-12.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/83/10/37fd9e9ba96cb0bd742dfb20fc3d082e54bdbec759d7300df927f360ef07/librt-0.11.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/bf/5404c2fd6ac84819e8ff1b7e34437b37cf55a2b11318894909e7bb88de3f/mmh3-5.2.1-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/a4/71/d351dca3e9b30da2328ee9d445c88b8388072808ebfbc49eb69d30b67749/mypy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/77/fc/8cb9073bb1bee54eb49a1ae501a36402d01763812962ac811cdc1c81a9d7/parsy-2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/8e/4be5617b4aaae0287f621ad31c6036e5f63118cfca0dc57d42121ff49b51/pyarrow-23.0.1-cp310-cp310-macosx_12_0_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1d/41/64180033d7027afce12dc96d0fe1f504c6fa112190582b458acea2399530/pyarrow-24.0.0-cp310-cp310-macosx_12_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2e/c3/94ade4906a2f88bc935772f59c934013b4205e773bcb4239db114a6da136/pyarrow_hotfix-0.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl @@ -510,16 +512,16 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/69/13/f8c5dd59b119feee28cce53f23361d955cd46d0612697d49db0070f41ea9/sqlglot-30.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl @@ -528,30 +530,29 @@ environments: - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/0d/5a/2bf22ecb24916983bf1cc0095e7dea2741d14d6553b0d6a2ac8bc96eca93/watchfiles-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/da/d2/387594fb592d027366645f3d7cc9b4d7ca7be93845fbaba6d835a912ef3c/wrapt-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-hef89b57_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.5-hf6b4638_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.0-hf6b4638_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.53.1-h1b79a29_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.2-hd24854e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.20-h1b19095_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda @@ -561,70 +562,71 @@ environments: - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/26/0a/bd3d18a582f273d6c843d16bb9e22e9e16365ff7991e92f18f798e9f1224/ast_serialize-0.5.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/c0/271f3e1e3502a8decb8ee5c680dbed2d8dc2cd504f5e20f7ed491d5f37e1/atpublic-7.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/26/08/0f303cb0b529e456bb116f2d50565a482694fbb94340bf56d44677e7ed03/charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/7a/ec22ff9d5c891b4f9ae834ef70524c92bd59d1408e9944e2652c87bc3f02/deltalake-0.25.5-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/85/b1/88a457cd3105525cba0d4c155f847c5c32fa4f543d3ba4ee38b4fd75f82e/duckdb-1.5.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/34/0a/d41ee8cdeb63cf12f2ee9e6c8e17cc8bacff6468013be703e44fd2a22efa/duckdb-1.5.2-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/b3/11d406849715b47c9d69bb22f50874f80caee96bd1cbe7b61abbebbf5a05/ibis_framework-12.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cf/72/1b1466f358e4a0b728051f69bc27e67b432c6eaa2e05b88db49d3785ae0d/librt-0.11.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/0b/52bffad0b52ae4ea53e222b594bd38c08ecac1fc410323220a7202e43da5/mmh3-5.2.1-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/2f/45/7d51594b644c17c0bcf74ed8cd5fc33b324276d708e8506f220b70dab9d9/mypy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/77/fc/8cb9073bb1bee54eb49a1ae501a36402d01763812962ac811cdc1c81a9d7/parsy-2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/a8/24e5dc6855f50a62936ceb004e6e9645e4219a8065f304145d7fb8a79d5d/pyarrow-23.0.1-cp310-cp310-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/a5/bf/a34fee1d624152124fa8355c42f34195ad5fe5233ce5bb87946432047d52/pyarrow-24.0.0-cp310-cp310-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2e/c3/94ade4906a2f88bc935772f59c934013b4205e773bcb4239db114a6da136/pyarrow_hotfix-0.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl @@ -639,16 +641,16 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/67/1235676e93dd3b742a4a8eddfae49eea46c85e3eed29f0da446a8dd57500/sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/69/13/f8c5dd59b119feee28cce53f23361d955cd46d0612697d49db0070f41ea9/sqlglot-30.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl @@ -657,18 +659,18 @@ environments: - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/55/70/dea1f6a0e76607841a60fb51af150e70124864673f61704abb62b90cdcc7/watchfiles-1.2.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c9/18/3f373935bc5509e7ac444c8026a56762e50c1183e7061797437ca96c12ce/wrapt-2.1.2-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ ray-tests: channels: @@ -681,23 +683,21 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.1-h0c1763c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.20-h3c07f61_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda @@ -711,17 +711,18 @@ environments: - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b2/71/4d1d479aa56d0101c40e17720c3d6ac2af7269ea0487a80b18e7bfd1a5b7/ast_serialize-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/20/e7/bed0024a0f4ab0c8a9c64d4445f39b30c99bd1acd228291959e3de664247/charset_normalizer-3.4.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/02/e1/50edc7a50334807cc4791fc4a0ce7468b4a1416d9138eab358bfc9a3d70b/cryptography-48.0.0-cp39-abi3-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl @@ -729,29 +730,29 @@ environments: - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ad/55/9f1ebb5a825215fadcc0f7d5073f6e79e3007e3282b14b22d6aba7ca6cb8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ed/ac/0b509b6fb93551ce5a01612ee1acda7f7dda4bbb66c99aeb2ab403d205dc/greenlet-3.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/58/2f/f3fc773270cf17e7ca076c1f6435278f58641d475a25cdeea5b2d8d4845b/grpcio-1.62.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/49/4d/103f76b04310e5e57656696cc184690d20c466af0bca3ca88f8c8ea5d4f3/hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/11/0b64cc9024329b76d7547c19a67604a61d21d3ba678a69d1b220c29d5112/huggingface_hub-1.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/50/5ec949d7f9ce1a07af903aa3e13abb98b717923bdead6e719b2f824ccc07/librt-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl @@ -761,25 +762,25 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/09/2a06956383c0fdebaef5aa9246e2356776f12ea6f2a44bd1368abf0e46c4/msgpack-1.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/41/5a/93093f0b29a9e982deafde698f740a2eb2e05886e79ccf0594c7fd5413a3/mypy-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/39/6e/899fed76dc1942b8a64193a4f059d7f1a2c7ef65085e8a9366ed8ec0d199/propcache-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/53/1b/3b431694a4dc6d37b9f653f0c64b0a0d9ec074ee810710c0c3da21d67ba7/protobuf-7.34.1-cp310-abi3-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/70/5b/6baf9008817964454055ff3fe65f1de0b5f1e26c80c82f7fb108b7cd4ea3/protobuf-7.35.0-cp310-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f8/82/c40b68001dbec8a3faa4c08cd8c200798ac732d2854537c5449dc859f55a/pyarrow-23.0.1-cp310-cp310-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/67/33/f75e91b9a64c3f33c787e263c93b871ad91b8a4a68c1d5cebddd9840e835/pyarrow-24.0.0-cp310-cp310-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl @@ -794,17 +795,17 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/55/96/7911234a14b891320e652b5ae258050f98584f22a8e33afba9ad43ab27c9/ray-2.54.1-cp310-cp310-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b4/64/640f5525bac171282c6f76f3ecc9c4cfef60149ac0d00231afb22018ebe5/ray-2.55.1-cp310-cp310-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5c/ad/6c4395649a212a6c603a72c5b9ab5dce3135a1546cfdffa3c427e71fd535/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl @@ -813,32 +814,33 @@ environments: - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/02/c8/79eee650c62d2c186598489814468e389b5def0ebe755399ff645b35b1b2/watchfiles-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c2/7a/32758ca2853b07a887a4574b74e28843919103194bb47001a304e24af62f/wrapt-2.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/a4/db/268012153eb7f6bf2c8a0491fdcde11e093f166990821a2ab754fe95537d/xxhash-3.7.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/50/12/95a1d33f04a79c402664070d43b8b9f72dc18914e135b345b611b0b1f8cc/yarl-1.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/ad/0b9cc9f38a7324a7eb1d80f834eaa5283d17e9271bbda3186e598dddaeac/yarl-1.24.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.5-hcc62823_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.3-h25d91c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.8.0-hcc62823_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.3-hbb4bfdb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.53.1-h8f8c405_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.2-hbb4bfdb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.2-hc881268_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.20-hea035f4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda @@ -851,17 +853,18 @@ environments: - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e0/9e/dc2530acb3a60dc6e46d65abf27d1d9f86721694757906a148d90a6860de/ast_serialize-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/26/08/0f303cb0b529e456bb116f2d50565a482694fbb94340bf56d44677e7ed03/charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl @@ -869,29 +872,29 @@ environments: - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/38/3f/9859f655d11901e7b2996c6e3d33e0caa9a1d4572c3bc61ed0faa64b2f4c/greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl + - pypi: https://files.pythonhosted.org/packages/b0/03/84359833f7e1d49a883e92777637c592306030e30cee5e2b1e6476f95c88/greenlet-3.5.0-cp310-cp310-macosx_11_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3d/fb/69ff198a82cae7eb1a69fb84d93b3a3e4816564d76817fe541ddc96874eb/hf_xet-1.5.0-cp37-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/11/0b64cc9024329b76d7547c19a67604a61d21d3ba678a69d1b220c29d5112/huggingface_hub-1.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/83/10/37fd9e9ba96cb0bd742dfb20fc3d082e54bdbec759d7300df927f360ef07/librt-0.11.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl @@ -901,25 +904,25 @@ environments: - pypi: https://files.pythonhosted.org/packages/f5/a2/3b68a9e769db68668b25c6108444a35f9bd163bb848c0650d516761a59c0/msgpack-1.1.2-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/a4/71/d351dca3e9b30da2328ee9d445c88b8388072808ebfbc49eb69d30b67749/mypy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/55/1140a8e067b8ec093a18a4ae7bb0045d9db65da38a08618ddc5e2f1994aa/propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/8e/4be5617b4aaae0287f621ad31c6036e5f63118cfca0dc57d42121ff49b51/pyarrow-23.0.1-cp310-cp310-macosx_12_0_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1d/41/64180033d7027afce12dc96d0fe1f504c6fa112190582b458acea2399530/pyarrow-24.0.0-cp310-cp310-macosx_12_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl @@ -934,17 +937,17 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/61/c5/c2ceba832fe3f47cfd7e11cd7cc7a1bbc2c028424c5bca70435aa4ca1dec/ray-2.49.2-cp310-cp310-macosx_12_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl @@ -953,33 +956,32 @@ environments: - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/0d/5a/2bf22ecb24916983bf1cc0095e7dea2741d14d6553b0d6a2ac8bc96eca93/watchfiles-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/da/d2/387594fb592d027366645f3d7cc9b4d7ca7be93845fbaba6d835a912ef3c/wrapt-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/92/49/e4b575b4ed170a7f640c8bd69cfadfa81c7b700191fde5e72228762b9f73/xxhash-3.7.0-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/7a/35/5a553687c5793df5429cd1db45909d4f3af7eee90014888c208d086a44f0/yarl-1.23.0-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/48/41/7daafb32dd7562bf45b1ce56562e7e1a9146f6479b6456873eb8a3413c40/yarl-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-hef89b57_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.5-hf6b4638_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.0-hf6b4638_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.53.1-h1b79a29_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.2-hd24854e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.20-h1b19095_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda @@ -992,17 +994,18 @@ environments: - pypi: https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/26/0a/bd3d18a582f273d6c843d16bb9e22e9e16365ff7991e92f18f798e9f1224/ast_serialize-0.5.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/26/08/0f303cb0b529e456bb116f2d50565a482694fbb94340bf56d44677e7ed03/charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl @@ -1010,28 +1013,28 @@ environments: - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/11/0b64cc9024329b76d7547c19a67604a61d21d3ba678a69d1b220c29d5112/huggingface_hub-1.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cf/72/1b1466f358e4a0b728051f69bc27e67b432c6eaa2e05b88db49d3785ae0d/librt-0.11.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl @@ -1041,25 +1044,25 @@ environments: - pypi: https://files.pythonhosted.org/packages/5b/e1/2b720cc341325c00be44e1ed59e7cfeae2678329fbf5aa68f5bda57fe728/msgpack-1.1.2-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e7/a9/39cf856d03690af6fd570cf40331f1f79acdbb3132a9c35d2c5002f7f30b/multiprocess-0.70.17-py310-none-any.whl - - pypi: https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/2f/45/7d51594b644c17c0bcf74ed8cd5fc33b324276d708e8506f220b70dab9d9/mypy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/20/42/0e7443c90310498561addf346e7d57fe3c6ba1914e1ba938b5464c7bbfd2/propcache-0.5.2-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/a8/24e5dc6855f50a62936ceb004e6e9645e4219a8065f304145d7fb8a79d5d/pyarrow-23.0.1-cp310-cp310-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/a5/bf/a34fee1d624152124fa8355c42f34195ad5fe5233ce5bb87946432047d52/pyarrow-24.0.0-cp310-cp310-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl @@ -1074,17 +1077,17 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/af/cf/9a6e33b59e1a12428b4fbd6cc38f7e32d116ccde4c72e15c3f76a22bf36d/ray-2.54.1-cp310-cp310-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/7e/d0/a85097dd53aaca1a44acc4dd0b3d2c0e9233179433e2ee326e4018ab3cf7/ray-2.55.1-cp310-cp310-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/67/1235676e93dd3b742a4a8eddfae49eea46c85e3eed29f0da446a8dd57500/sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl @@ -1093,21 +1096,21 @@ environments: - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/55/70/dea1f6a0e76607841a60fb51af150e70124864673f61704abb62b90cdcc7/watchfiles-1.2.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c9/18/3f373935bc5509e7ac444c8026a56762e50c1183e7061797437ca96c12ce/wrapt-2.1.2-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/07/61/40f0155b0b09988eb6cdbfc52652f2f371810b0c58163208cb05667757bd/xxhash-3.7.0-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/68/2e/c5a2234238f8ce37a8312b52801ee74117f576b1539eec8404a480434acc/yarl-1.23.0-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a8/8f/7b3ec212f1ea0683f55f978e3246bc313c38818664edfc97a9f349a4901e/yarl-1.24.2-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ registration-tests: channels: @@ -1120,23 +1123,21 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.1-h0c1763c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.20-h3c07f61_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda @@ -1153,103 +1154,104 @@ environments: - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b2/71/4d1d479aa56d0101c40e17720c3d6ac2af7269ea0487a80b18e7bfd1a5b7/ast_serialize-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/8b/b2361188bd1e293eede1bc165e2461d390394f71ec0c8c21211c8dabf62c/boto3-1.38.27-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/00/dd90b7a0255587ba1c9754d32a221adb4a9022f181df3eef401b0b9fadfc/botocore-1.38.46-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/20/e7/bed0024a0f4ab0c8a9c64d4445f39b30c99bd1acd228291959e3de664247/charset_normalizer-3.4.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/02/e1/50edc7a50334807cc4791fc4a0ce7468b4a1416d9138eab358bfc9a3d70b/cryptography-48.0.0-cp39-abi3-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/76/09/22793699ce02e5e58836f98cff1d2b872c94608446f772bd3a50065aa9fb/db_dtypes-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c4/02/56cf9e3f231ee6bfab73ead0f08077661c0decaa8e6b7414137b7c3a5d27/db_dtypes-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/1d/a0/6aaea0c2fbea2f89bfd5db25fb1e3481896a423002ebe4e55288907a97a3/fsspec-2024.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/e1/ebd5100cbb202e561c0c8b59e485ef3bd63fa9beb610f3fdcaea443f0288/google_api_core-2.30.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e9/eb/c6c2478d8a8d633460be40e2a8a6f8f429171997a35a96f81d3b680dec83/google_auth-2.49.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e0/cb454a95f460903e39f101e950038ec24a072ca69d0a294a6df625cc1627/google_auth_oauthlib-1.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/03/15/e56f351cf6ef1cfea58e6ac226a7318ed1deb2218c4b3cc9bd9e4b786c5a/google_api_core-2.30.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/c9/db44165ba7c581268c6d46017ef63339110378305062830104fc7fa144cb/google_auth-2.53.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/d3/d7dff0d58a9e9244b48044bfb6a898bfcc8ecc42e0031d1bebc695344725/google_auth_oauthlib-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/33/1d3902efadef9194566d499d61507e1f038454e0b55499d2d7f8ab2a4fee/google_cloud_bigquery-3.41.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/74/0e/2950d4d0160300f51c7397a080b1685d3e25b40badb2c96f03d58d0ee868/google_cloud_bigquery_storage-2.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/19/1cc695fa8489ef446a70ee9e983c12f4b47e0649005758035530eaec4b1c/google_cloud_bigtable-2.36.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/d9/5bb050cb32826466aa9b25f79e2ca2879fe66cb76782d4ed798dd7506151/google_cloud_core-2.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/d1/382d6b1ec5fe91d79499390712875918bb7709a20726eccfadb8f835d422/google_cloud_bigquery_storage-2.38.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/46/9d/9c0a81aa9cf6c058b02d3be194d70bcd7e4bd82f631c8110560c3908dbc4/google_cloud_bigtable-2.38.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/84/4a/98da8930ab109c73d9a5d13782a9ebb81ea8c111f6d534a567b71d23e52b/google_cloud_core-2.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/88/357efc6b331fd29155dcb92a5dfb0030a8a6feddb7bbf8a6215defbed6c7/google_cloud_datastore-2.24.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d5/94/6db383d8ee1adf45dc6c73477152b82731fa4c4a46d9c1932cc8757e0fd4/google_cloud_storage-2.19.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3d/63/bec827e70b7a0d4094e7476f863c0dbd6b5f0f1f91d9c9b32b76dcdfeb4e/google_crc32c-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5e/f8/50bfaf4658431ff9de45c5c3935af7ab01157a4903c603cd0eee6e78e087/google_resumable_media-2.8.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b6/b0/be5d3329badb9230b765de6eea66b73abd5944bdeb5afb3562ddcd80ae84/googleapis_common_protos-1.74.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ad/55/9f1ebb5a825215fadcc0f7d5073f6e79e3007e3282b14b22d6aba7ca6cb8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/07/73/3518e63deb1667c5409a4579e28daf5e84479a87a72c547e0487f7883dcd/google_resumable_media-2.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ed/ac/0b509b6fb93551ce5a01612ee1acda7f7dda4bbb66c99aeb2ab403d205dc/greenlet-3.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/89/22/c2dd50c09bf679bd38173656cd4402d2511e563b33bc88f90009cf50613c/grpc_google_iam_v1-0.14.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/58/2f/f3fc773270cf17e7ca076c1f6435278f58641d475a25cdeea5b2d8d4845b/grpcio-1.62.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/40/972271de05f9315c0d69f9f7ebbcadd83bc85322f538637d11bb8c67803d/grpcio_status-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/23/55d40e1bf54c141f541ab31b4b4b0f58610440c8837b1406f3467c2b4853/grpcio_testing-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/c6/b54c15a80c6192c0f7b518b2cbdc0c0b713c02428ba3099cba5dc2023e40/hiredis-3.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/50/5ec949d7f9ce1a07af903aa3e13abb98b717923bdead6e719b2f824ccc07/librt-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/b1/e20d5f0d19c4c0f3df213fa7dcfa0942c4fb127d38e11f398ae8ddf6cccc/mmh3-5.2.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/41/5a/93093f0b29a9e982deafde698f740a2eb2e05886e79ccf0594c7fd5413a3/mypy-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/c2/51/72b7c3b25ecfc6810b29ae9bffe76e26a407adb20de5b90ed984b3d483ca/pandas_gbq-0.34.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/3d/2f0e9c5cbc456d34f48215645d876f7885a15e09a72a07d1de3ddb181c38/pandas_gbq-0.35.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/84/f3/1fba73eeffafc998a25d59703b63f8be4fe8a5cb12eaff7386a0ba0f7125/proto_plus-1.27.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/16/92/d1e32e3e0d894fe00b15ce28ad4944ab692713f2e7f0a99787405e43533a/protobuf-6.33.6-cp39-abi3-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/39/6e/899fed76dc1942b8a64193a4f059d7f1a2c7ef65085e8a9366ed8ec0d199/propcache-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7c/20/b122d4626976acb81132036d2ad1bb35a1a8775fceb837ec30964622516a/proto_plus-1.28.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/5b/6baf9008817964454055ff3fe65f1de0b5f1e26c80c82f7fb108b7cd4ea3/protobuf-7.35.0-cp310-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/18/f3/14a1370b1449ca875d5e353ef02cb9db6b70bd46ec361c236176837c0be1/psycopg-3.2.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a5/90/9f2c41b3b42d8cd8b9866f0bbd27a5796a1ca8042a1a019b39a6645df523/psycopg_binary-3.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/e7/c3/26b8a0908a9db249de3b4169692e1c7c19048a9bc41a4d3209cee7dbb758/psycopg_pool-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/ed/89c2c620af0e1660354cd8aabf9f5b21f911597ce22acb37c805d6c86bc8/psycopg_pool-3.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/db/ea0203e495be491c85af87b66e37acfd3bf756fd985f87e46fc5e3bf022c/py4j-0.10.9.9-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f8/82/c40b68001dbec8a3faa4c08cd8c200798ac732d2854537c5449dc859f55a/pyarrow-23.0.1-cp310-cp310-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/67/33/f75e91b9a64c3f33c787e263c93b871ad91b8a4a68c1d5cebddd9840e835/pyarrow-24.0.0-cp310-cp310-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ca/cb/cdeaba62aa3c48f0d8834afb82b4a21463cd83df34fe01f9daa89a08ec6c/pydata_google_auth-1.9.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7c/4c/ad33b92b9864cbde84f259d5df035a6447f91891f5be77788e2a3892bce3/pymysql-1.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c4/bd/2534e130295c8cfd4f0a2e31623baab7502278f1e97bcfe61db75656a77f/pymysql-1.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/bf/58ee13add151469c25825b7125bbf62c3bdcec05eec4d458fcb5c5516066/pyspark-4.1.1.tar.gz - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ee/82/62e2d63639ecb0fbe8a7ee59ef0bc69a4669ec50f6d3459f74ad4e4189a2/pytest_asyncio-0.23.8-py3-none-any.whl @@ -1263,54 +1265,55 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/74/3a/95deec7db1eb53979973ebd156f3369a72732208d1391cd2e5d127062a32/redis-7.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6d/4f/d073e09df851cfa251ef7840007d04db3293a0482ce607d2b993926089be/s3transfer-0.13.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ab/2f/4e1d2c1f93fa0009a4f34ba5168060e719cb1d9fef319fb0970f1e0bd8d6/snowflake_connector_python-4.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/19/e9/3a21c4c86abebc81d378c2b688bd8ca4a39d4ba69057b98c0ce746360d09/snowflake_connector_python-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5c/ad/6c4395649a212a6c603a72c5b9ab5dce3135a1546cfdffa3c427e71fd535/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8b/fa/4f4d3bfca9ef6dd17d69ed18b96564c53b32d3ce774132308d0bee849f10/types_pymysql-1.1.0.20251220-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b1/5a/db02b5e6633fbe49eaf4e3194bc64ec031e6436a0cfcc610cbda4f1b6a24/types_pymysql-1.1.0.20260518-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/02/c8/79eee650c62d2c186598489814468e389b5def0ebe755399ff645b35b1b2/watchfiles-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/de/17/9f8f86755c191d6779d7ddead1a53c7a8aa18bccb7cea8e7e72dfa6a8a09/wrapt-1.17.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/50/12/95a1d33f04a79c402664070d43b8b9f72dc18914e135b345b611b0b1f8cc/yarl-1.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/ad/0b9cc9f38a7324a7eb1d80f834eaa5283d17e9271bbda3186e598dddaeac/yarl-1.24.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.5-hcc62823_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.3-h25d91c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.8.0-hcc62823_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.3-hbb4bfdb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.53.1-h8f8c405_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.2-hbb4bfdb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.2-hc881268_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.20-hea035f4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda @@ -1326,103 +1329,104 @@ environments: - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e0/9e/dc2530acb3a60dc6e46d65abf27d1d9f86721694757906a148d90a6860de/ast_serialize-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/8b/b2361188bd1e293eede1bc165e2461d390394f71ec0c8c21211c8dabf62c/boto3-1.38.27-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/00/dd90b7a0255587ba1c9754d32a221adb4a9022f181df3eef401b0b9fadfc/botocore-1.38.46-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/26/08/0f303cb0b529e456bb116f2d50565a482694fbb94340bf56d44677e7ed03/charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/76/09/22793699ce02e5e58836f98cff1d2b872c94608446f772bd3a50065aa9fb/db_dtypes-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c4/02/56cf9e3f231ee6bfab73ead0f08077661c0decaa8e6b7414137b7c3a5d27/db_dtypes-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/1d/a0/6aaea0c2fbea2f89bfd5db25fb1e3481896a423002ebe4e55288907a97a3/fsspec-2024.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/e1/ebd5100cbb202e561c0c8b59e485ef3bd63fa9beb610f3fdcaea443f0288/google_api_core-2.30.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e9/eb/c6c2478d8a8d633460be40e2a8a6f8f429171997a35a96f81d3b680dec83/google_auth-2.49.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e0/cb454a95f460903e39f101e950038ec24a072ca69d0a294a6df625cc1627/google_auth_oauthlib-1.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/03/15/e56f351cf6ef1cfea58e6ac226a7318ed1deb2218c4b3cc9bd9e4b786c5a/google_api_core-2.30.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/c9/db44165ba7c581268c6d46017ef63339110378305062830104fc7fa144cb/google_auth-2.53.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/d3/d7dff0d58a9e9244b48044bfb6a898bfcc8ecc42e0031d1bebc695344725/google_auth_oauthlib-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/33/1d3902efadef9194566d499d61507e1f038454e0b55499d2d7f8ab2a4fee/google_cloud_bigquery-3.41.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/74/0e/2950d4d0160300f51c7397a080b1685d3e25b40badb2c96f03d58d0ee868/google_cloud_bigquery_storage-2.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/19/1cc695fa8489ef446a70ee9e983c12f4b47e0649005758035530eaec4b1c/google_cloud_bigtable-2.36.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/d9/5bb050cb32826466aa9b25f79e2ca2879fe66cb76782d4ed798dd7506151/google_cloud_core-2.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/d1/382d6b1ec5fe91d79499390712875918bb7709a20726eccfadb8f835d422/google_cloud_bigquery_storage-2.38.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/46/9d/9c0a81aa9cf6c058b02d3be194d70bcd7e4bd82f631c8110560c3908dbc4/google_cloud_bigtable-2.38.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/84/4a/98da8930ab109c73d9a5d13782a9ebb81ea8c111f6d534a567b71d23e52b/google_cloud_core-2.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/88/357efc6b331fd29155dcb92a5dfb0030a8a6feddb7bbf8a6215defbed6c7/google_cloud_datastore-2.24.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d5/94/6db383d8ee1adf45dc6c73477152b82731fa4c4a46d9c1932cc8757e0fd4/google_cloud_storage-2.19.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/97/a5accde175dee985311d949cfcb1249dcbb290f5ec83c994ea733311948f/google_crc32c-1.8.0-cp310-cp310-macosx_12_0_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5e/f8/50bfaf4658431ff9de45c5c3935af7ab01157a4903c603cd0eee6e78e087/google_resumable_media-2.8.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b6/b0/be5d3329badb9230b765de6eea66b73abd5944bdeb5afb3562ddcd80ae84/googleapis_common_protos-1.74.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/38/3f/9859f655d11901e7b2996c6e3d33e0caa9a1d4572c3bc61ed0faa64b2f4c/greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl + - pypi: https://files.pythonhosted.org/packages/07/73/3518e63deb1667c5409a4579e28daf5e84479a87a72c547e0487f7883dcd/google_resumable_media-2.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b0/03/84359833f7e1d49a883e92777637c592306030e30cee5e2b1e6476f95c88/greenlet-3.5.0-cp310-cp310-macosx_11_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/89/22/c2dd50c09bf679bd38173656cd4402d2511e563b33bc88f90009cf50613c/grpc_google_iam_v1-0.14.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/40/972271de05f9315c0d69f9f7ebbcadd83bc85322f538637d11bb8c67803d/grpcio_status-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/23/55d40e1bf54c141f541ab31b4b4b0f58610440c8837b1406f3467c2b4853/grpcio_testing-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/80/76/88edf234200e9592c19f0de7d7af37092151524553b9c29a029f81fe7c9f/hiredis-3.3.1-cp310-cp310-macosx_10_15_x86_64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/83/10/37fd9e9ba96cb0bd742dfb20fc3d082e54bdbec759d7300df927f360ef07/librt-0.11.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/bf/5404c2fd6ac84819e8ff1b7e34437b37cf55a2b11318894909e7bb88de3f/mmh3-5.2.1-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/a4/71/d351dca3e9b30da2328ee9d445c88b8388072808ebfbc49eb69d30b67749/mypy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/c2/51/72b7c3b25ecfc6810b29ae9bffe76e26a407adb20de5b90ed984b3d483ca/pandas_gbq-0.34.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/3d/2f0e9c5cbc456d34f48215645d876f7885a15e09a72a07d1de3ddb181c38/pandas_gbq-0.35.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/84/f3/1fba73eeffafc998a25d59703b63f8be4fe8a5cb12eaff7386a0ba0f7125/proto_plus-1.27.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5c/01/a3c3ed5cd186f39e7880f8303cc51385a198a81469d53d0fdecf1f64d929/protobuf-6.33.6-cp39-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/1a/55/1140a8e067b8ec093a18a4ae7bb0045d9db65da38a08618ddc5e2f1994aa/propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7c/20/b122d4626976acb81132036d2ad1bb35a1a8775fceb837ec30964622516a/proto_plus-1.28.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/18/f3/14a1370b1449ca875d5e353ef02cb9db6b70bd46ec361c236176837c0be1/psycopg-3.2.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d6/30/af3806081adc75b5a8addde839d4c6b171a8c5d0d07dd92de20ca4dd6717/psycopg_binary-3.2.5-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/e7/c3/26b8a0908a9db249de3b4169692e1c7c19048a9bc41a4d3209cee7dbb758/psycopg_pool-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/ed/89c2c620af0e1660354cd8aabf9f5b21f911597ce22acb37c805d6c86bc8/psycopg_pool-3.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/db/ea0203e495be491c85af87b66e37acfd3bf756fd985f87e46fc5e3bf022c/py4j-0.10.9.9-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/8e/4be5617b4aaae0287f621ad31c6036e5f63118cfca0dc57d42121ff49b51/pyarrow-23.0.1-cp310-cp310-macosx_12_0_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1d/41/64180033d7027afce12dc96d0fe1f504c6fa112190582b458acea2399530/pyarrow-24.0.0-cp310-cp310-macosx_12_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ca/cb/cdeaba62aa3c48f0d8834afb82b4a21463cd83df34fe01f9daa89a08ec6c/pydata_google_auth-1.9.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7c/4c/ad33b92b9864cbde84f259d5df035a6447f91891f5be77788e2a3892bce3/pymysql-1.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c4/bd/2534e130295c8cfd4f0a2e31623baab7502278f1e97bcfe61db75656a77f/pymysql-1.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/bf/58ee13add151469c25825b7125bbf62c3bdcec05eec4d458fcb5c5516066/pyspark-4.1.1.tar.gz - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ee/82/62e2d63639ecb0fbe8a7ee59ef0bc69a4669ec50f6d3459f74ad4e4189a2/pytest_asyncio-0.23.8-py3-none-any.whl @@ -1436,55 +1440,54 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/74/3a/95deec7db1eb53979973ebd156f3369a72732208d1391cd2e5d127062a32/redis-7.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6d/4f/d073e09df851cfa251ef7840007d04db3293a0482ce607d2b993926089be/s3transfer-0.13.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/b1/11c03e05bd2a2da590c1b77c8455f40eb505888a2683c4e41b487d79568c/snowflake_connector_python-4.4.0.tar.gz + - pypi: https://files.pythonhosted.org/packages/99/e7/f0ab30895256c4d8e0b6e33857150d10d465bdfaef3f0ed471ba83b1444f/snowflake_connector_python-4.5.0.tar.gz - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8b/fa/4f4d3bfca9ef6dd17d69ed18b96564c53b32d3ce774132308d0bee849f10/types_pymysql-1.1.0.20251220-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b1/5a/db02b5e6633fbe49eaf4e3194bc64ec031e6436a0cfcc610cbda4f1b6a24/types_pymysql-1.1.0.20260518-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/0d/5a/2bf22ecb24916983bf1cc0095e7dea2741d14d6553b0d6a2ac8bc96eca93/watchfiles-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/45/69/f3c47642b79485a30a59c63f6d739ed779fb4cc8323205d047d741d55220/wrapt-1.17.3-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/7a/35/5a553687c5793df5429cd1db45909d4f3af7eee90014888c208d086a44f0/yarl-1.23.0-cp310-cp310-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/48/41/7daafb32dd7562bf45b1ce56562e7e1a9146f6479b6456873eb8a3413c40/yarl-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-hef89b57_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.5-hf6b4638_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.0-hf6b4638_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.53.1-h1b79a29_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.2-hd24854e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.20-h1b19095_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda @@ -1500,102 +1503,103 @@ environments: - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/26/0a/bd3d18a582f273d6c843d16bb9e22e9e16365ff7991e92f18f798e9f1224/ast_serialize-0.5.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/8b/b2361188bd1e293eede1bc165e2461d390394f71ec0c8c21211c8dabf62c/boto3-1.38.27-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/00/dd90b7a0255587ba1c9754d32a221adb4a9022f181df3eef401b0b9fadfc/botocore-1.38.46-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/26/08/0f303cb0b529e456bb116f2d50565a482694fbb94340bf56d44677e7ed03/charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/76/09/22793699ce02e5e58836f98cff1d2b872c94608446f772bd3a50065aa9fb/db_dtypes-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c4/02/56cf9e3f231ee6bfab73ead0f08077661c0decaa8e6b7414137b7c3a5d27/db_dtypes-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/46/d1/e73b6ad76f0b1fb7f23c35c6d95dbc506a9c8804f43dda8cb5b0fa6331fd/dill-0.3.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/1d/a0/6aaea0c2fbea2f89bfd5db25fb1e3481896a423002ebe4e55288907a97a3/fsspec-2024.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/84/e1/ebd5100cbb202e561c0c8b59e485ef3bd63fa9beb610f3fdcaea443f0288/google_api_core-2.30.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e9/eb/c6c2478d8a8d633460be40e2a8a6f8f429171997a35a96f81d3b680dec83/google_auth-2.49.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e0/cb454a95f460903e39f101e950038ec24a072ca69d0a294a6df625cc1627/google_auth_oauthlib-1.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/03/15/e56f351cf6ef1cfea58e6ac226a7318ed1deb2218c4b3cc9bd9e4b786c5a/google_api_core-2.30.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/c9/db44165ba7c581268c6d46017ef63339110378305062830104fc7fa144cb/google_auth-2.53.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/d3/d7dff0d58a9e9244b48044bfb6a898bfcc8ecc42e0031d1bebc695344725/google_auth_oauthlib-1.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/33/1d3902efadef9194566d499d61507e1f038454e0b55499d2d7f8ab2a4fee/google_cloud_bigquery-3.41.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/74/0e/2950d4d0160300f51c7397a080b1685d3e25b40badb2c96f03d58d0ee868/google_cloud_bigquery_storage-2.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/19/1cc695fa8489ef446a70ee9e983c12f4b47e0649005758035530eaec4b1c/google_cloud_bigtable-2.36.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/d9/5bb050cb32826466aa9b25f79e2ca2879fe66cb76782d4ed798dd7506151/google_cloud_core-2.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e5/d1/382d6b1ec5fe91d79499390712875918bb7709a20726eccfadb8f835d422/google_cloud_bigquery_storage-2.38.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/46/9d/9c0a81aa9cf6c058b02d3be194d70bcd7e4bd82f631c8110560c3908dbc4/google_cloud_bigtable-2.38.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/84/4a/98da8930ab109c73d9a5d13782a9ebb81ea8c111f6d534a567b71d23e52b/google_cloud_core-2.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/88/357efc6b331fd29155dcb92a5dfb0030a8a6feddb7bbf8a6215defbed6c7/google_cloud_datastore-2.24.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d5/94/6db383d8ee1adf45dc6c73477152b82731fa4c4a46d9c1932cc8757e0fd4/google_cloud_storage-2.19.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/95/ac/6f7bc93886a823ab545948c2dd48143027b2355ad1944c7cf852b338dc91/google_crc32c-1.8.0-cp310-cp310-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/5e/f8/50bfaf4658431ff9de45c5c3935af7ab01157a4903c603cd0eee6e78e087/google_resumable_media-2.8.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b6/b0/be5d3329badb9230b765de6eea66b73abd5944bdeb5afb3562ddcd80ae84/googleapis_common_protos-1.74.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/73/3518e63deb1667c5409a4579e28daf5e84479a87a72c547e0487f7883dcd/google_resumable_media-2.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/22/c2dd50c09bf679bd38173656cd4402d2511e563b33bc88f90009cf50613c/grpc_google_iam_v1-0.14.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c5/63/ee244c4b64f0e71cef5314f9fa1d120c072e33c2e4c545dc75bd1af2a5c5/grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl - pypi: https://files.pythonhosted.org/packages/40/4c/ee3173906196b741ac6ba55a9788ba9ebf2cd05f91715a49b6c3bfbb9d73/grpcio_health_checking-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/54/acc6a6e684827b0f6bb4e2c27f3d7e25b71322c4078ef5b455c07c43260e/grpcio_reflection-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/40/972271de05f9315c0d69f9f7ebbcadd83bc85322f538637d11bb8c67803d/grpcio_status-1.62.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/23/55d40e1bf54c141f541ab31b4b4b0f58610440c8837b1406f3467c2b4853/grpcio_testing-1.62.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/10/13/433c4dada704c7f1b1b8261e713483b4cdfa462b1fced1a910ca173c1832/hiredis-3.3.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cf/72/1b1466f358e4a0b728051f69bc27e67b432c6eaa2e05b88db49d3785ae0d/librt-0.11.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b6/9e/8d9f6b9746f8ede78b0a4e4b8908e4d80bd609fca0b3e3195a07dda29534/minio-7.2.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/0b/52bffad0b52ae4ea53e222b594bd38c08ecac1fc410323220a7202e43da5/mmh3-5.2.1-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/2f/45/7d51594b644c17c0bcf74ed8cd5fc33b324276d708e8506f220b70dab9d9/mypy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/c2/51/72b7c3b25ecfc6810b29ae9bffe76e26a407adb20de5b90ed984b3d483ca/pandas_gbq-0.34.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/3d/2f0e9c5cbc456d34f48215645d876f7885a15e09a72a07d1de3ddb181c38/pandas_gbq-0.35.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/84/f3/1fba73eeffafc998a25d59703b63f8be4fe8a5cb12eaff7386a0ba0f7125/proto_plus-1.27.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5c/01/a3c3ed5cd186f39e7880f8303cc51385a198a81469d53d0fdecf1f64d929/protobuf-6.33.6-cp39-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/20/42/0e7443c90310498561addf346e7d57fe3c6ba1914e1ba938b5464c7bbfd2/propcache-0.5.2-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/7c/20/b122d4626976acb81132036d2ad1bb35a1a8775fceb837ec30964622516a/proto_plus-1.28.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/18/f3/14a1370b1449ca875d5e353ef02cb9db6b70bd46ec361c236176837c0be1/psycopg-3.2.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/31/77/31968655db2efe83c519e6296ff3a85a0c9e50432e0c11c8ffae1b404870/psycopg_binary-3.2.5-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/e7/c3/26b8a0908a9db249de3b4169692e1c7c19048a9bc41a4d3209cee7dbb758/psycopg_pool-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/ed/89c2c620af0e1660354cd8aabf9f5b21f911597ce22acb37c805d6c86bc8/psycopg_pool-3.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/db/ea0203e495be491c85af87b66e37acfd3bf756fd985f87e46fc5e3bf022c/py4j-0.10.9.9-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/a8/24e5dc6855f50a62936ceb004e6e9645e4219a8065f304145d7fb8a79d5d/pyarrow-23.0.1-cp310-cp310-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/a5/bf/a34fee1d624152124fa8355c42f34195ad5fe5233ce5bb87946432047d52/pyarrow-24.0.0-cp310-cp310-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/ca/cb/cdeaba62aa3c48f0d8834afb82b4a21463cd83df34fe01f9daa89a08ec6c/pydata_google_auth-1.9.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7c/4c/ad33b92b9864cbde84f259d5df035a6447f91891f5be77788e2a3892bce3/pymysql-1.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c4/bd/2534e130295c8cfd4f0a2e31623baab7502278f1e97bcfe61db75656a77f/pymysql-1.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/bf/58ee13add151469c25825b7125bbf62c3bdcec05eec4d458fcb5c5516066/pyspark-4.1.1.tar.gz - pypi: https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ee/82/62e2d63639ecb0fbe8a7ee59ef0bc69a4669ec50f6d3459f74ad4e4189a2/pytest_asyncio-0.23.8-py3-none-any.whl @@ -1609,43 +1613,43 @@ environments: - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/2e/dfbd2c9b3edf6a5a8cd9e66090221046839b488ea27824970426bf06b242/python_keycloak-4.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/74/3a/95deec7db1eb53979973ebd156f3369a72732208d1391cd2e5d127062a32/redis-7.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/6d/4f/d073e09df851cfa251ef7840007d04db3293a0482ce607d2b993926089be/s3transfer-0.13.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a7/31/0d6a1da486dc13263f43cdad0bbacdd041616c32220b9bcbff79160bdcc1/snowflake_connector_python-4.4.0-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/99/e7/f0ab30895256c4d8e0b6e33857150d10d465bdfaef3f0ed471ba83b1444f/snowflake_connector_python-4.5.0.tar.gz - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9a/67/1235676e93dd3b742a4a8eddfae49eea46c85e3eed29f0da446a8dd57500/sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8b/fa/4f4d3bfca9ef6dd17d69ed18b96564c53b32d3ce774132308d0bee849f10/types_pymysql-1.1.0.20251220-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b1/5a/db02b5e6633fbe49eaf4e3194bc64ec031e6436a0cfcc610cbda4f1b6a24/types_pymysql-1.1.0.20260518-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1f/4e5f8770c2cf4faa2c3ed3c19f9d4485ac9db0a6b029a7866921709bdc6c/uvicorn_worker-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/55/70/dea1f6a0e76607841a60fb51af150e70124864673f61704abb62b90cdcc7/watchfiles-1.2.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/d1/71/e7e7f5670c1eafd9e990438e69d8fb46fa91a50785332e06b560c869454f/wrapt-1.17.3-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/68/2e/c5a2234238f8ce37a8312b52801ee74117f576b1539eec8404a480434acc/yarl-1.23.0-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a8/8f/7b3ec212f1ea0683f55f978e3246bc313c38818664edfc97a9f349a4901e/yarl-1.24.2-cp310-cp310-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl - pypi: ./ packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda @@ -1809,6 +1813,21 @@ packages: name: asn1crypto version: 1.5.1 sha256: db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 +- pypi: https://files.pythonhosted.org/packages/26/0a/bd3d18a582f273d6c843d16bb9e22e9e16365ff7991e92f18f798e9f1224/ast_serialize-0.5.0-cp39-abi3-macosx_11_0_arm64.whl + name: ast-serialize + version: 0.5.0 + sha256: bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a + requires_python: '>=3.7' +- pypi: https://files.pythonhosted.org/packages/b2/71/4d1d479aa56d0101c40e17720c3d6ac2af7269ea0487a80b18e7bfd1a5b7/ast_serialize-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + name: ast-serialize + version: 0.5.0 + sha256: b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 + requires_python: '>=3.7' +- pypi: https://files.pythonhosted.org/packages/e0/9e/dc2530acb3a60dc6e46d65abf27d1d9f86721694757906a148d90a6860de/ast_serialize-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl + name: ast-serialize + version: 0.5.0 + sha256: 0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 + requires_python: '>=3.7' - pypi: https://files.pythonhosted.org/packages/c7/80/9f608d13b4b3afcebd1dd13baf9551c95fc424d6390e4b1cfd7b1810cd06/async_property-0.2.2-py2.py3-none-any.whl name: async-property version: 0.2.2 @@ -1828,10 +1847,10 @@ packages: version: 26.1.0 sha256: c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/43/e9/ed9f202cdf6bfa89ff09241a15a2b44a2d4a61cbe24119c2e391128562b1/bigtree-1.4.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/66/a2/31e6f5248053956b32093f0596b1d90dc0130db126d788c83eb37d51734e/bigtree-1.4.1-py3-none-any.whl name: bigtree - version: 1.4.0 - sha256: d0d99550ae64ce4529f132602ab875c2ab472c96c942f5704f8c72a17450d3ea + version: 1.4.1 + sha256: 78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 requires_dist: - lark ; extra == 'all' - matplotlib ; extra == 'all' @@ -1902,19 +1921,19 @@ packages: purls: [] size: 124834 timestamp: 1771350416561 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc - md5: 4492fd26db29495f0ba23f146cd5638d +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda + sha256: c9dbcc8039a52023660d6d1bbf87594a93dd69c6ac5a2a44323af2c92976728d + md5: e18ad67cf881dcadee8b8d9e2f8e5f73 depends: - __unix license: ISC purls: [] - size: 147413 - timestamp: 1772006283803 -- pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl + size: 131039 + timestamp: 1776865545798 +- pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl name: certifi - version: 2026.2.25 - sha256: 027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa + version: 2026.4.22 + sha256: 3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a requires_python: '>=3.7' - pypi: https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl name: cffi @@ -1957,10 +1976,10 @@ packages: version: 3.4.7 sha256: c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0 requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl name: click - version: 8.3.1 - sha256: 981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6 + version: 8.4.0 + sha256: 40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 requires_dist: - colorama ; sys_platform == 'win32' requires_python: '>=3.10' @@ -1974,66 +1993,24 @@ packages: version: 0.4.6 sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*' -- pypi: https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl +- pypi: https://files.pythonhosted.org/packages/02/e1/50edc7a50334807cc4791fc4a0ce7468b4a1416d9138eab358bfc9a3d70b/cryptography-48.0.0-cp39-abi3-manylinux_2_28_x86_64.whl name: cryptography - version: 46.0.6 - sha256: 12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a + version: 48.0.0 + sha256: 2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c requires_dist: - - cffi>=1.14 ; python_full_version == '3.8.*' and platform_python_implementation != 'PyPy' - - cffi>=2.0.0 ; python_full_version >= '3.9' and platform_python_implementation != 'PyPy' + - cffi>=2.0.0 ; platform_python_implementation != 'PyPy' - typing-extensions>=4.13.2 ; python_full_version < '3.11' - bcrypt>=3.1.5 ; extra == 'ssh' - - nox[uv]>=2024.4.15 ; extra == 'nox' - - cryptography-vectors==46.0.6 ; extra == 'test' - - pytest>=7.4.0 ; extra == 'test' - - pytest-benchmark>=4.0 ; extra == 'test' - - pytest-cov>=2.10.1 ; extra == 'test' - - pytest-xdist>=3.5.0 ; extra == 'test' - - pretend>=0.7 ; extra == 'test' - - certifi>=2024 ; extra == 'test' - - pytest-randomly ; extra == 'test-randomorder' - - sphinx>=5.3.0 ; extra == 'docs' - - sphinx-rtd-theme>=3.0.0 ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - pyenchant>=3 ; extra == 'docstest' - - readme-renderer>=30.0 ; extra == 'docstest' - - sphinxcontrib-spelling>=7.3.1 ; extra == 'docstest' - - build>=1.0.0 ; extra == 'sdist' - - ruff>=0.11.11 ; extra == 'pep8test' - - mypy>=1.14 ; extra == 'pep8test' - - check-sdist ; extra == 'pep8test' - - click>=8.0.1 ; extra == 'pep8test' - requires_python: '>=3.8,!=3.9.0,!=3.9.1' -- pypi: https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl + requires_python: '>=3.9,!=3.9.0,!=3.9.1' +- pypi: https://files.pythonhosted.org/packages/f2/63/61d4a4e1c6b6bab6ce1e213cd36a24c415d90e76d78c5eb8577c5541d2e8/cryptography-48.0.0-cp39-abi3-macosx_10_9_universal2.whl name: cryptography - version: 46.0.6 - sha256: 063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d + version: 48.0.0 + sha256: 58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 requires_dist: - - cffi>=1.14 ; python_full_version == '3.8.*' and platform_python_implementation != 'PyPy' - - cffi>=2.0.0 ; python_full_version >= '3.9' and platform_python_implementation != 'PyPy' + - cffi>=2.0.0 ; platform_python_implementation != 'PyPy' - typing-extensions>=4.13.2 ; python_full_version < '3.11' - bcrypt>=3.1.5 ; extra == 'ssh' - - nox[uv]>=2024.4.15 ; extra == 'nox' - - cryptography-vectors==46.0.6 ; extra == 'test' - - pytest>=7.4.0 ; extra == 'test' - - pytest-benchmark>=4.0 ; extra == 'test' - - pytest-cov>=2.10.1 ; extra == 'test' - - pytest-xdist>=3.5.0 ; extra == 'test' - - pretend>=0.7 ; extra == 'test' - - certifi>=2024 ; extra == 'test' - - pytest-randomly ; extra == 'test-randomorder' - - sphinx>=5.3.0 ; extra == 'docs' - - sphinx-rtd-theme>=3.0.0 ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - pyenchant>=3 ; extra == 'docstest' - - readme-renderer>=30.0 ; extra == 'docstest' - - sphinxcontrib-spelling>=7.3.1 ; extra == 'docstest' - - build>=1.0.0 ; extra == 'sdist' - - ruff>=0.11.11 ; extra == 'pep8test' - - mypy>=1.14 ; extra == 'pep8test' - - check-sdist ; extra == 'pep8test' - - click>=8.0.1 ; extra == 'pep8test' - requires_python: '>=3.8,!=3.9.0,!=3.9.1' + requires_python: '>=3.9,!=3.9.0,!=3.9.1' - pypi: https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl name: dask version: 2026.3.0 @@ -2204,10 +2181,10 @@ packages: - nibabel>=5.3.2 ; extra == 'nibabel' - ipyniivue==2.4.2 ; extra == 'nibabel' requires_python: '>=3.10.0' -- pypi: https://files.pythonhosted.org/packages/76/09/22793699ce02e5e58836f98cff1d2b872c94608446f772bd3a50065aa9fb/db_dtypes-1.5.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/c4/02/56cf9e3f231ee6bfab73ead0f08077661c0decaa8e6b7414137b7c3a5d27/db_dtypes-1.6.0-py3-none-any.whl name: db-dtypes - version: 1.5.1 - sha256: ad71a6645e3c1f06d4d32023940576648f43119822f825f0d22587c6ef8afe15 + version: 1.6.0 + sha256: 03f0ff5798fa5e407f07e84de2d619cbc363b8dcc40104825a85519793ffee8d requires_dist: - numpy>=1.24.0,<=2.2.6 ; python_full_version == '3.10.*' - numpy>=1.24.0 ; python_full_version != '3.10.*' @@ -2328,10 +2305,10 @@ packages: - paramiko>=2.4.3 ; extra == 'ssh' - websocket-client>=1.3.0 ; extra == 'websockets' requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/3a/09/4c4dd94f521d016e0fb83cca2c203d10ce1e3f8bcc679691b5271fc98b83/duckdb-1.5.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/01/f4/2f4af0233489fc92822ff6021a2a4e05f7cd75fa1a352a163967fbeeab22/duckdb-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl name: duckdb - version: 1.5.1 - sha256: 715f05ea198d20d7f8b407b9b84e0023d17f2b9096c194cea702b7840e74f1f7 + version: 1.5.2 + sha256: 84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db requires_dist: - ipython ; extra == 'all' - fsspec ; extra == 'all' @@ -2340,10 +2317,10 @@ packages: - pyarrow ; extra == 'all' - adbc-driver-manager ; extra == 'all' requires_python: '>=3.10.0' -- pypi: https://files.pythonhosted.org/packages/85/b1/88a457cd3105525cba0d4c155f847c5c32fa4f543d3ba4ee38b4fd75f82e/duckdb-1.5.1-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/34/0a/d41ee8cdeb63cf12f2ee9e6c8e17cc8bacff6468013be703e44fd2a22efa/duckdb-1.5.2-cp310-cp310-macosx_11_0_arm64.whl name: duckdb - version: 1.5.1 - sha256: 8c0088765747ae5d6c9f89987bb36f9fb83564f07090d721344ce8e1abedffea + version: 1.5.2 + sha256: 5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 requires_dist: - ipython ; extra == 'all' - fsspec ; extra == 'all' @@ -2352,10 +2329,10 @@ packages: - pyarrow ; extra == 'all' - adbc-driver-manager ; extra == 'all' requires_python: '>=3.10.0' -- pypi: https://files.pythonhosted.org/packages/ba/b8/22e6c605d9281df7a83653f4a60168eec0f650b23f1d4648aca940d79d00/duckdb-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/3c/cc/10a542561634408cbae951a836e645dda784ddc48eaa2ee72701a2992a8e/duckdb-1.5.2-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl name: duckdb - version: 1.5.1 - sha256: caa65e1f5bf007430bf657c37cab7ab81a4ddf8d337e3062bcc5085d17ef038b + version: 1.5.2 + sha256: a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 requires_dist: - ipython ; extra == 'all' - fsspec ; extra == 'all' @@ -2382,10 +2359,10 @@ packages: - pytest ; extra == 'testing' - tox ; extra == 'testing' requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/5a/ff/2e4eca3ade2c22fe1dea7043b8ee9dabe47753349eb1b56a202de8af6349/fastapi-0.136.1-py3-none-any.whl name: fastapi - version: 0.135.3 - sha256: 9b0f590c813acd13d0ab43dd8494138eb58e484bfac405db1f3187cfc5810d98 + version: 0.136.1 + sha256: a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f requires_dist: - starlette>=0.46.0 - pydantic>=2.9.0 @@ -2393,6 +2370,7 @@ packages: - typing-inspection>=0.4.2 - annotated-doc>=0.0.2 - fastapi-cli[standard]>=0.0.8 ; extra == 'standard' + - fastar>=0.9.0 ; extra == 'standard' - httpx>=0.23.0,<1.0.0 ; extra == 'standard' - jinja2>=3.1.5 ; extra == 'standard' - python-multipart>=0.0.18 ; extra == 'standard' @@ -2421,8 +2399,8 @@ packages: requires_python: '>=3.10' - pypi: ./ name: feast - version: 0.63.1.dev21+g5787c969f - sha256: 3bb1cc098f773cf73d4d1c981dc1ec90c3fcac7e7053baa4c88cc0e7471570d3 + version: 0.63.1.dev27+g05f6b7744.d20260520 + sha256: 3a305db9c20cf3c601182794290d19de440e728ba4706c24238ff9d8244c6a98 requires_dist: - click>=7.0.0,<9.0.0 - colorama>=0.3.9,<1 @@ -2523,6 +2501,7 @@ packages: - snowflake-connector-python[pandas]>=3.7,<5 ; extra == 'snowflake' - sqlite-vec==0.1.6 ; extra == 'sqlite-vec' - fastapi-mcp ; extra == 'mcp' + - mlflow>=2.10.0 ; extra == 'mlflow' - dbt-artifacts-parser ; extra == 'dbt' - pytest>=6.0.0,<8 ; extra == 'test' - pytest-xdist>=3.8.0 ; extra == 'test' @@ -2538,7 +2517,7 @@ packages: - minio==7.2.11 ; extra == 'test' - python-keycloak==4.2.2 ; extra == 'test' - cryptography>=43.0 ; extra == 'test' - - feast[aws,azure,cassandra,clickhouse,couchbase,delta,docling,duckdb,elasticsearch,faiss,gcp,ge,go,grpcio,hazelcast,hbase,ibis,image,k8s,mcp,milvus,mongodb,mssql,mysql,openlineage,opentelemetry,oracle,postgres,pytorch,qdrant,rag,ray,redis,singlestore,snowflake,spark,sqlite-vec,test,trino] ; extra == 'ci' + - feast[aws,azure,cassandra,clickhouse,couchbase,delta,docling,duckdb,elasticsearch,faiss,gcp,ge,go,grpcio,hazelcast,hbase,ibis,image,k8s,mcp,milvus,mlflow,mongodb,mssql,mysql,openlineage,opentelemetry,oracle,postgres,pytorch,qdrant,rag,ray,redis,singlestore,snowflake,spark,sqlite-vec,test,trino] ; extra == 'ci' - build ; extra == 'ci' - virtualenv==20.23.0 ; extra == 'ci' - dbt-artifacts-parser ; extra == 'ci' @@ -2590,10 +2569,10 @@ packages: - calver<2025.4.1 ; extra == 'minimal-sdist-build' - setuptools>=60,<81 ; extra == 'setuptools' requires_python: '>=3.10.0' -- pypi: https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl name: filelock - version: 3.25.2 - sha256: ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70 + version: 3.29.0 + sha256: 96f5f6344709aa1572bbf631c640e4ebeeb519e08da902c39a001882f30ac258 requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl name: frozenlist @@ -2826,10 +2805,10 @@ packages: - zstandard ; python_full_version < '3.14' and extra == 'test-full' - tqdm ; extra == 'tqdm' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl name: fsspec - version: 2026.3.0 - sha256: d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4 + version: 2026.4.0 + sha256: 11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 requires_dist: - adlfs ; extra == 'abfs' - adlfs ; extra == 'adl' @@ -2934,10 +2913,10 @@ packages: - zstandard ; python_full_version < '3.14' and extra == 'test-full' - tqdm ; extra == 'tqdm' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/84/e1/ebd5100cbb202e561c0c8b59e485ef3bd63fa9beb610f3fdcaea443f0288/google_api_core-2.30.2-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/03/15/e56f351cf6ef1cfea58e6ac226a7318ed1deb2218c4b3cc9bd9e4b786c5a/google_api_core-2.30.3-py3-none-any.whl name: google-api-core - version: 2.30.2 - sha256: a4c226766d6af2580577db1f1a51bf53cd262f722b49731ce7414c43068a9594 + version: 2.30.3 + sha256: a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8 requires_dist: - googleapis-common-protos>=1.63.2,<2.0.0 - protobuf>=4.25.8,<8.0.0 @@ -2953,15 +2932,15 @@ packages: - grpcio-status>=1.49.1,<2.0.0 ; python_full_version >= '3.11' and extra == 'grpc' - grpcio-status>=1.75.1,<2.0.0 ; python_full_version >= '3.14' and extra == 'grpc' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/e9/eb/c6c2478d8a8d633460be40e2a8a6f8f429171997a35a96f81d3b680dec83/google_auth-2.49.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/4a/c9/db44165ba7c581268c6d46017ef63339110378305062830104fc7fa144cb/google_auth-2.53.0-py3-none-any.whl name: google-auth - version: 2.49.1 - sha256: 195ebe3dca18eddd1b3db5edc5189b76c13e96f29e73043b923ebcf3f1a860f7 + version: 2.53.0 + sha256: 6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 requires_dist: - pyasn1-modules>=0.2.1 - cryptography>=38.0.3 - cryptography>=38.0.3 ; extra == 'cryptography' - - aiohttp>=3.6.2,<4.0.0 ; extra == 'aiohttp' + - aiohttp>=3.8.0,<4.0.0 ; extra == 'aiohttp' - requests>=2.20.0,<3.0.0 ; extra == 'aiohttp' - pyopenssl ; extra == 'enterprise-cert' - pyopenssl>=20.0.0 ; extra == 'pyopenssl' @@ -2980,7 +2959,7 @@ packages: - responses ; extra == 'testing' - urllib3 ; extra == 'testing' - packaging ; extra == 'testing' - - aiohttp>=3.6.2,<4.0.0 ; extra == 'testing' + - aiohttp>=3.8.0,<4.0.0 ; extra == 'testing' - requests>=2.20.0,<3.0.0 ; extra == 'testing' - aioresponses ; extra == 'testing' - pytest-asyncio ; extra == 'testing' @@ -2989,16 +2968,16 @@ packages: - urllib3 ; extra == 'urllib3' - packaging ; extra == 'urllib3' - rsa>=3.1.4,<5 ; extra == 'rsa' - requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/2a/e0/cb454a95f460903e39f101e950038ec24a072ca69d0a294a6df625cc1627/google_auth_oauthlib-1.3.1-py3-none-any.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/37/d3/d7dff0d58a9e9244b48044bfb6a898bfcc8ecc42e0031d1bebc695344725/google_auth_oauthlib-1.4.0-py3-none-any.whl name: google-auth-oauthlib - version: 1.3.1 - sha256: 1a139ef23f1318756805b0e95f655c238bffd29655329a2978218248da4ee7f8 + version: 1.4.0 + sha256: 251314f213a9ee46a5ae73988e84fd7cca8bb68e7ecf4bfd45940f9e7f51d070 requires_dist: - google-auth>=2.15.0,!=2.43.0,!=2.44.0,!=2.45.0,<3.0.0 - requests-oauthlib>=0.7.0 - click>=6.0.0 ; extra == 'tool' - requires_python: '>=3.9' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/40/33/1d3902efadef9194566d499d61507e1f038454e0b55499d2d7f8ab2a4fee/google_cloud_bigquery-3.41.0-py3-none-any.whl name: google-cloud-bigquery version: 3.41.0 @@ -3039,10 +3018,10 @@ packages: - protobuf>=3.20.2,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0 ; extra == 'bigquery-v2' - google-cloud-bigquery[bigquery-v2,bqstorage,geopandas,ipython,ipywidgets,matplotlib,opentelemetry,pandas,tqdm] ; extra == 'all' requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/74/0e/2950d4d0160300f51c7397a080b1685d3e25b40badb2c96f03d58d0ee868/google_cloud_bigquery_storage-2.37.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/e5/d1/382d6b1ec5fe91d79499390712875918bb7709a20726eccfadb8f835d422/google_cloud_bigquery_storage-2.38.0-py3-none-any.whl name: google-cloud-bigquery-storage - version: 2.37.0 - sha256: 1e319c27ef60fc31030f6e0b52e5e891e1cdd50551effe8c6f673a4c3c56fcb6 + version: 2.38.0 + sha256: 313e605c51e6c36046cbeccff4a98aa0f728add8f757962bab2266838136d538 requires_dist: - google-api-core[grpc]>=2.11.0,<3.0.0 - google-auth>=2.14.1,!=2.24.0,!=2.25.0,<3.0.0 @@ -3055,32 +3034,34 @@ packages: - fastavro>=1.1.0 ; extra == 'fastavro' - pyarrow>=3.0.0 ; extra == 'pyarrow' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/d1/19/1cc695fa8489ef446a70ee9e983c12f4b47e0649005758035530eaec4b1c/google_cloud_bigtable-2.36.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/46/9d/9c0a81aa9cf6c058b02d3be194d70bcd7e4bd82f631c8110560c3908dbc4/google_cloud_bigtable-2.38.0-py3-none-any.whl name: google-cloud-bigtable - version: 2.36.0 - sha256: 21b2f41231b7368a550b44d5b493b811b3507fcb23eb26d00005cd3f205f2207 + version: 2.38.0 + sha256: 9f6a4bdbefb34d0420f41c574d9805d8a63d080d10be5a176205e3b322c122a1 requires_dist: - - google-api-core[grpc]>=2.17.0,<3.0.0 - - google-cloud-core>=1.4.4,<3.0.0 - - google-auth>=2.23.0,!=2.24.0,!=2.25.0,<3.0.0 - - grpc-google-iam-v1>=0.12.4,<1.0.0 + - google-api-core[grpc]>=2.11.0,<3.0.0 + - google-auth>=2.14.1,!=2.24.0,!=2.25.0,<3.0.0 + - grpcio>=1.33.2,<2.0.0 + - grpcio>=1.75.1,<2.0.0 ; python_full_version >= '3.14' - proto-plus>=1.22.3,<2.0.0 - proto-plus>=1.25.0,<2.0.0 ; python_full_version >= '3.13' - - protobuf>=3.20.2,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0 + - protobuf>=4.25.8,<8.0.0 + - google-cloud-core>=1.4.4,<3.0.0 + - grpc-google-iam-v1>=0.12.4,<1.0.0 - google-crc32c>=1.5.0,<2.0.0.dev0 - libcst>=0.2.5 ; extra == 'libcst' - requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/73/d9/5bb050cb32826466aa9b25f79e2ca2879fe66cb76782d4ed798dd7506151/google_cloud_core-2.5.1-py3-none-any.whl + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/84/4a/98da8930ab109c73d9a5d13782a9ebb81ea8c111f6d534a567b71d23e52b/google_cloud_core-2.6.0-py3-none-any.whl name: google-cloud-core - version: 2.5.1 - sha256: ea62cdf502c20e3e14be8a32c05ed02113d7bef454e40ff3fab6fe1ec9f1f4e7 + version: 2.6.0 + sha256: 6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e requires_dist: - google-api-core>=2.11.0,<3.0.0 - google-auth>=2.14.1,!=2.24.0,!=2.25.0,<3.0.0 - - grpcio>=1.38.0,<2.0.0 ; python_full_version < '3.14' and extra == 'grpc' + - grpcio>=1.47.0,<2.0.0 ; python_full_version < '3.14' and extra == 'grpc' - grpcio>=1.75.1,<2.0.0 ; python_full_version >= '3.14' and extra == 'grpc' - - grpcio-status>=1.38.0,<2.0.0 ; extra == 'grpc' - requires_python: '>=3.9' + - grpcio-status>=1.47.0,<2.0.0 ; extra == 'grpc' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/5b/88/357efc6b331fd29155dcb92a5dfb0030a8a6feddb7bbf8a6215defbed6c7/google_cloud_datastore-2.24.0-py3-none-any.whl name: google-cloud-datastore version: 2.24.0 @@ -3124,28 +3105,28 @@ packages: version: 1.8.0 sha256: 119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/5e/f8/50bfaf4658431ff9de45c5c3935af7ab01157a4903c603cd0eee6e78e087/google_resumable_media-2.8.2-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/07/73/3518e63deb1667c5409a4579e28daf5e84479a87a72c547e0487f7883dcd/google_resumable_media-2.9.0-py3-none-any.whl name: google-resumable-media - version: 2.8.2 - sha256: 82b6d8ccd11765268cdd2a2123f417ec806b8eef3000a9a38dfe3033da5fb220 + version: 2.9.0 + sha256: c8901e88e389af8bed64d9696c74d8bad961865eb2236e13e0bfca9bb0a65ca3 requires_dist: - google-crc32c>=1.0.0,<2.0.0 - requests>=2.18.0,<3.0.0 ; extra == 'requests' - aiohttp>=3.6.2,<4.0.0 ; extra == 'aiohttp' - google-auth>=1.22.0,<2.0.0 ; extra == 'aiohttp' - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/b6/b0/be5d3329badb9230b765de6eea66b73abd5944bdeb5afb3562ddcd80ae84/googleapis_common_protos-1.74.0-py3-none-any.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl name: googleapis-common-protos - version: 1.74.0 - sha256: 702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5 + version: 1.75.0 + sha256: 961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed requires_dist: - protobuf>=4.25.8,<8.0.0 - grpcio>=1.44.0,<2.0.0 ; extra == 'grpc' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/38/3f/9859f655d11901e7b2996c6e3d33e0caa9a1d4572c3bc61ed0faa64b2f4c/greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl +- pypi: https://files.pythonhosted.org/packages/94/5e/a70f31e3e8d961c4ce589c15b28e4225d63704e431a23932a3808cbcc867/greenlet-3.5.0-cp314-cp314-macosx_11_0_universal2.whl name: greenlet - version: 3.3.2 - sha256: 9bc885b89709d901859cf95179ec9f6bb67a3d2bb1f0e88456461bd4b7f8fd0d + version: 3.5.0 + sha256: f35807464c4c58c55f0d31dfa83c541a5615d825c2fe3d2b95360cf7c4e3c0a8 requires_dist: - sphinx ; extra == 'docs' - furo ; extra == 'docs' @@ -3153,10 +3134,10 @@ packages: - psutil ; extra == 'test' - setuptools ; extra == 'test' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/3f/ae/8bffcbd373b57a5992cd077cbe8858fff39110480a9d50697091faea6f39/greenlet-3.3.2-cp314-cp314-macosx_11_0_universal2.whl +- pypi: https://files.pythonhosted.org/packages/a3/59/1bd6d7428d6ed9106efbb8c52310c60fd04f6672490f452aeaa3829aa436/greenlet-3.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl name: greenlet - version: 3.3.2 - sha256: 8d1658d7291f9859beed69a776c10822a0a799bc4bfe1bd4272bb60e62507dab + version: 3.5.0 + sha256: 8f52a464e4ed91780bdfbbdd2b97197f3accaa629b98c200f4dffada759f3ae7 requires_dist: - sphinx ; extra == 'docs' - furo ; extra == 'docs' @@ -3164,10 +3145,10 @@ packages: - psutil ; extra == 'test' - setuptools ; extra == 'test' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/ad/55/9f1ebb5a825215fadcc0f7d5073f6e79e3007e3282b14b22d6aba7ca6cb8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/b0/03/84359833f7e1d49a883e92777637c592306030e30cee5e2b1e6476f95c88/greenlet-3.5.0-cp310-cp310-macosx_11_0_universal2.whl name: greenlet - version: 3.3.2 - sha256: ad0c8917dd42a819fe77e6bdfcb84e3379c0de956469301d9fd36427a1ca501f + version: 3.5.0 + sha256: 29ea813b2e1f45fa9649a17853b2b5465c4072fbcb072e5af6cd3a288216574a requires_dist: - sphinx ; extra == 'docs' - furo ; extra == 'docs' @@ -3175,10 +3156,10 @@ packages: - psutil ; extra == 'test' - setuptools ; extra == 'test' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/d2/d8/09bfa816572a4d83bccd6750df1926f79158b1c36c5f73786e26dbe4ee38/greenlet-3.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/ed/ac/0b509b6fb93551ce5a01612ee1acda7f7dda4bbb66c99aeb2ab403d205dc/greenlet-3.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl name: greenlet - version: 3.3.2 - sha256: 63d10328839d1973e5ba35e98cccbca71b232b14051fd957b6f8b6e8e80d0506 + version: 3.5.0 + sha256: 4b28037cb07768933c54d81bfe47a85f9f402f57d7d69743b991a713b63954eb requires_dist: - sphinx ; extra == 'docs' - furo ; extra == 'docs' @@ -3241,20 +3222,18 @@ packages: requires_dist: - protobuf>=4.21.6 - grpcio>=1.62.3 -- pypi: https://files.pythonhosted.org/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/e6/40/9c2384fc2be4ad25dd4a49decd5ad9ea5a3639814c11bd40ab77cb9f0a14/gunicorn-26.0.0-py3-none-any.whl name: gunicorn - version: 25.3.0 - sha256: cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 + version: 26.0.0 + sha256: 40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc requires_dist: - packaging - gevent>=24.10.1 ; extra == 'gevent' - - eventlet>=0.40.3 ; extra == 'eventlet' - tornado>=6.5.0 ; extra == 'tornado' - setproctitle ; extra == 'setproctitle' - h2>=4.1.0 ; extra == 'http2' - - gunicorn-h1c>=0.6.3 ; extra == 'fast' + - gunicorn-h1c>=0.6.5 ; extra == 'fast' - gevent>=24.10.1 ; extra == 'testing' - - eventlet>=0.40.3 ; extra == 'testing' - h2>=4.1.0 ; extra == 'testing' - coverage ; extra == 'testing' - pytest ; extra == 'testing' @@ -3364,10 +3343,10 @@ packages: - socksio==1.* ; extra == 'socks' - zstandard>=0.18.0 ; extra == 'zstd' requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/89/a5/33b49ba7bea7c41bb37f74ec0f8beea0831e052330196633fe2c77516ea6/huggingface_hub-1.14.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/6e/11/0b64cc9024329b76d7547c19a67604a61d21d3ba678a69d1b220c29d5112/huggingface_hub-1.15.0-py3-none-any.whl name: huggingface-hub - version: 1.14.0 - sha256: efe075535c62e130b30e836b138e13785f6f043d1f0539e0a39aa411a99e90b8 + version: 1.15.0 + sha256: a4a59af04cbc41a3fe3fec429b171ef994ef8c971eda10136746f408dd4e3744 requires_dist: - filelock>=3.10.0 - fsspec>=2023.5.0 @@ -3644,37 +3623,24 @@ packages: - trino>=0.321 ; extra == 'trino' - graphviz>=0.16 ; extra == 'visualization' requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda - sha256: fbf86c4a59c2ed05bbffb2ba25c7ed94f6185ec30ecb691615d42342baa1a16a - md5: c80d8a3b84358cb967fa81e7075fbc8a - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - license: MIT - license_family: MIT - purls: [] - size: 12723451 - timestamp: 1773822285671 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-hef89b57_0.conda - sha256: 3a7907a17e9937d3a46dfd41cffaf815abad59a569440d1e25177c15fd0684e5 - md5: f1182c91c0de31a7abd40cedf6a5ebef +- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.3-h25d91c4_0.conda + sha256: 1294117122d55246bb83ad5b589e2a031aacdf2d0b1f99fd338aa4394f881735 + md5: 627eca44e62e2b665eeec57a984a7f00 depends: - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 12361647 - timestamp: 1773822915649 -- pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl + size: 12273764 + timestamp: 1773822733780 +- pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl name: idna - version: '3.11' - sha256: 771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea + version: '3.15' + sha256: 048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 requires_dist: - ruff>=0.6.2 ; extra == 'all' - mypy>=1.11.2 ; extra == 'all' - pytest>=8.3.2 ; extra == 'all' - - flake8>=7.1.1 ; extra == 'all' requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl name: importlib-metadata @@ -3751,10 +3717,10 @@ packages: requires_dist: - referencing>=0.31.0 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/cd/58/4a1880ea64032185e9ae9f63940c9327c6952d5584ea544a8f66972f2fda/jwcrypto-1.5.6-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/72/24/fb7da4d6613de7001feaf540d4b5969c6b5a1c42839043b0196cb13aa057/jwcrypto-1.5.7-py3-none-any.whl name: jwcrypto - version: 1.5.6 - sha256: 150d2b0ebbdb8f40b77f543fb44ffd2baeff48788be71f67f03566692fd55789 + version: 1.5.7 + sha256: 729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0 requires_dist: - cryptography>=3.4 - typing-extensions>=4.5.0 @@ -3772,43 +3738,43 @@ packages: purls: [] size: 728002 timestamp: 1774197446916 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda - sha256: e8c2b57f6aacabdf2f1b0924bd4831ce5071ba080baa4a9e8c0d720588b6794c - md5: 49f570f3bc4c874a06ea69b7225753af +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.0-hecca717_0.conda + sha256: ea33c40977ea7a2c3658c522230058395bc2ee0d89d99f0711390b6a1ee80d12 + md5: a3b390520c563d78cc58974de95a03e5 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 constrains: - - expat 2.7.5.* + - expat 2.8.0.* license: MIT license_family: MIT purls: [] - size: 76624 - timestamp: 1774719175983 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.5-hcc62823_0.conda - sha256: 341d8a457a8342c396a8ac788da2639cbc8b62568f6ba2a3d322d1ace5aa9e16 - md5: 1d6e71b8c73711e28ffe207acdc4e2f8 + size: 77241 + timestamp: 1777846112704 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.8.0-hcc62823_0.conda + sha256: 5ebcc413d0a75da926a8b9b681d7d12c9562993991ba49c90a9881c4a59bdc11 + md5: d2e01f78c1daaeb4d2aa870125ebcd7e depends: - __osx >=11.0 constrains: - - expat 2.7.5.* + - expat 2.8.0.* license: MIT license_family: MIT purls: [] - size: 74797 - timestamp: 1774719557730 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.5-hf6b4638_0.conda - sha256: 06780dec91dd25770c8cf01e158e1062fbf7c576b1406427475ce69a8af75b7e - md5: a32123f93e168eaa4080d87b0fb5da8a + size: 75242 + timestamp: 1777846416221 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.0-hf6b4638_0.conda + sha256: f4b1cafc59afaede8fa0a2d9cf376840f1c553001acd72f6ead18bbc8ac8c49c + md5: 65466e82c09e888ca7560c11a97d5450 depends: - __osx >=11.0 constrains: - - expat 2.7.5.* + - expat 2.8.0.* license: MIT license_family: MIT purls: [] - size: 68192 - timestamp: 1774719211725 + size: 68789 + timestamp: 1777846180142 - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 md5: a360c33a5abe61c07959e449fa1453eb @@ -3840,74 +3806,74 @@ packages: purls: [] size: 40979 timestamp: 1769456747661 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - sha256: faf7d2017b4d718951e3a59d081eb09759152f93038479b768e3d612688f83f5 - md5: 0aa00f03f9e39fb9876085dee11a85d4 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + sha256: 8e0a3b5e41272e5678499b5dfc4cddb673f9e935de01eb0767ce857001229f46 + md5: 57736f29cc2b0ec0b6c2952d3f101b6a depends: - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 constrains: - - libgcc-ng ==15.2.0=*_18 - - libgomp 15.2.0 he0feb66_18 + - libgcc-ng ==15.2.0=*_19 + - libgomp 15.2.0 he0feb66_19 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 1041788 - timestamp: 1771378212382 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda - sha256: e318a711400f536c81123e753d4c797a821021fb38970cebfb3f454126016893 - md5: d5e96b1ed75ca01906b3d2469b4ce493 + size: 1041084 + timestamp: 1778269013026 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda + sha256: 9dcf54adfaa5e861123c2da4f2f0451a685464ea7e5a41ad91cf67b31d658d98 + md5: 331ee9b72b9dff570d56b1302c5ab37d depends: - - libgcc 15.2.0 he0feb66_18 + - libgcc 15.2.0 he0feb66_19 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 27526 - timestamp: 1771378224552 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 - md5: 239c5e9546c38a1e884d69effcf4c882 + size: 27694 + timestamp: 1778269016987 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + sha256: 5abe4ab9d93f6c9757d654f1969ae2267d4505315c1f2f8fe705fd60af084f1b + md5: faac990cb7aedc7f3a2224f2c9b0c26c depends: - __glibc >=2.17,<3.0.a0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 603262 - timestamp: 1771378117851 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb - md5: c7c83eecbb72d88b940c249af56c8b17 + size: 603817 + timestamp: 1778268942614 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda + sha256: ec30e52a3c1bf7d0425380a189d209a52baa03f22fb66dd3eb587acaa765bd6d + md5: b88d90cad08e6bc8ad540cb310a761fb depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 constrains: - - xz 5.8.2.* + - xz 5.8.3.* license: 0BSD purls: [] - size: 113207 - timestamp: 1768752626120 -- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - sha256: 7ab3c98abd3b5d5ec72faa8d9f5d4b50dcee4970ed05339bc381861199dabb41 - md5: 688a0c3d57fa118b9c97bf7e471ab46c + size: 113478 + timestamp: 1775825492909 +- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.3-hbb4bfdb_0.conda + sha256: d9e2006051529aec5578c6efeb13bb6a7200a014b2d5a77a579e83a8049d5f3c + md5: becdfbfe7049fa248e52aa37a9df09e2 depends: - - __osx >=10.13 + - __osx >=11.0 constrains: - - xz 5.8.2.* + - xz 5.8.3.* license: 0BSD purls: [] - size: 105482 - timestamp: 1768753411348 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - sha256: 7bfc7ffb2d6a9629357a70d4eadeadb6f88fa26ebc28f606b1c1e5e5ed99dc7e - md5: 009f0d956d7bfb00de86901d16e486c7 + size: 105724 + timestamp: 1775826029494 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda + sha256: 34878d87275c298f1a732c6806349125cebbf340d24c6c23727268184bba051e + md5: b1fd823b5ae54fbec272cea0811bd8a9 depends: - __osx >=11.0 constrains: - - xz 5.8.2.* + - xz 5.8.3.* license: 0BSD purls: [] - size: 92242 - timestamp: 1768752982486 + size: 92472 + timestamp: 1775825802659 - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 md5: 2c21e66f50753a083cbe6b80f38268fa @@ -3950,93 +3916,79 @@ packages: purls: [] size: 33731 timestamp: 1750274110928 -- pypi: https://files.pythonhosted.org/packages/01/99/f85130582f05dcf0c8902f3d629270231d2f4afdfc567f8305a952ac7f14/librt-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/0a/7e/f5d92af8486b8272c23b3e686b46ff72d89c8169585eb61eef01a2ac7147/librt-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: librt - version: 0.8.1 - sha256: 97c2b54ff6717a7a563b72627990bec60d8029df17df423f0ed37d56a17a176b + version: 0.11.0 + sha256: 05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/29/eb/dbce197da4e227779e56b5735f2decc3eb36e55a1cdbf1bd65d6639d76c1/librt-0.11.0-cp314-cp314-macosx_10_13_x86_64.whl name: librt - version: 0.8.1 - sha256: 228c2409c079f8c11fb2e5d7b277077f694cb93443eb760e00b3b83cb8b3176c + version: 0.11.0 + sha256: 4a017a95e5837dc15a8c5661d60e05daa96b90908b1aa6b7acdf443cd25c8ebd requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/7c/5f/63f5fa395c7a8a93558c0904ba8f1c8d1b997ca6a3de61bc7659970d66bf/librt-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/6f/50/5ec949d7f9ce1a07af903aa3e13abb98b717923bdead6e719b2f824ccc07/librt-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: librt - version: 0.8.1 - sha256: 81fd938344fecb9373ba1b155968c8a329491d2ce38e7ddb76f30ffb938f12dc + version: 0.11.0 + sha256: 88145c15c67731d54283d135b03244028c750cc9edc334a96a4f5950ebdb2884 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/76/a3/254bebd0c11c8ba684018efb8006ff22e466abce445215cca6c778e7d9de/librt-0.11.0-cp314-cp314-macosx_11_0_arm64.whl name: librt - version: 0.8.1 - sha256: 6cfa7fe54fd4d1f47130017351a959fe5804bda7a0bc7e07a2cdbc3fdd28d34f + version: 0.11.0 + sha256: b1ecbd9819deccc39b7542bf4d2a740d8a620694d39989e58661d3763458f8d4 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/83/10/37fd9e9ba96cb0bd742dfb20fc3d082e54bdbec759d7300df927f360ef07/librt-0.11.0-cp310-cp310-macosx_10_9_x86_64.whl name: librt - version: 0.8.1 - sha256: 6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3 + version: 0.11.0 + sha256: 6e94ebfcfa2d5e9926d6c3b9aa4617ffc42a845b4321fb84021b872358c82a0f requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/ff/e0/0472cf37267b5920eff2f292ccfaede1886288ce35b7f3203d8de00abfe6/librt-0.8.1-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/cf/72/1b1466f358e4a0b728051f69bc27e67b432c6eaa2e05b88db49d3785ae0d/librt-0.11.0-cp310-cp310-macosx_11_0_arm64.whl name: librt - version: 0.8.1 - sha256: 5db05697c82b3a2ec53f6e72b2ed373132b0c2e05135f0696784e97d7f5d48e7 + version: 0.11.0 + sha256: ae627397a2f351560440d872d6f7c8dbb4072e57868e7b2fc5b8b430fe489d45 requires_python: '>=3.9' -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - sha256: d716847b7deca293d2e49ed1c8ab9e4b9e04b9d780aea49a97c26925b28a7993 - md5: fd893f6a3002a635b5e50ceb9dd2c0f4 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.1-h0c1763c_0.conda + sha256: 54cdcd3214313b62c2a8ee277e6f42150d9b748264c1b70d958bf735e420ef8d + md5: 7dc38adcbf71e6b38748e919e16e0dce depends: - __glibc >=2.17,<3.0.a0 - - icu >=78.2,<79.0a0 - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 license: blessing purls: [] - size: 951405 - timestamp: 1772818874251 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda - sha256: f500d1cd50cfcd288d02b8fc3c3b7ecf8de6fec7b86e57ea058def02908e4231 - md5: d553eb96758e038b04027b30fe314b2d + size: 954962 + timestamp: 1777986471789 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.53.1-h8f8c405_0.conda + sha256: 5e964e07a14180ce20decfd4897e8f81d48ec78c1cbf4af85c5520f535d9510c + md5: 9273c877f78b7486b0dfdd9268327a79 depends: - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 + - icu >=78.3,<79.0a0 + - libzlib >=1.3.2,<2.0a0 license: blessing purls: [] - size: 996526 - timestamp: 1772819669038 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_0.conda - sha256: beb0fd5594d6d7c7cd42c992b6bb4d66cbb39d6c94a8234f15956da99a04306c - md5: f6233a3fddc35a2ec9f617f79d6f3d71 + size: 1007171 + timestamp: 1777987093870 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.53.1-h1b79a29_0.conda + sha256: 49daec7c83e70d4efc17b813547824bc2bcf2f7256d84061d24fbfe537da9f74 + md5: 6681822ea9d362953206352371b6a904 depends: - __osx >=11.0 - - icu >=78.2,<79.0a0 - - libzlib >=1.3.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 license: blessing purls: [] - size: 918420 - timestamp: 1772819478684 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e - md5: 1b08cd684f34175e4514474793d44bcb - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc 15.2.0 he0feb66_18 - constrains: - - libstdcxx-ng ==15.2.0=*_18 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 5852330 - timestamp: 1771378262446 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda - sha256: bc1b08c92626c91500fd9f26f2c797f3eb153b627d53e9c13cd167f1e12b2829 - md5: 38ffe67b78c9d4de527be8315e5ada2c + size: 920047 + timestamp: 1777987051643 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda + sha256: 3f0edf1280e2f6684a986f821eaa3e123d2694a00b31b96ca0d4a4c12c129231 + md5: 7d0a66598195ef00b6efc55aefc7453b depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 license: BSD-3-Clause license_family: BSD purls: [] - size: 40297 - timestamp: 1775052476770 + size: 40163 + timestamp: 1779118517630 - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c md5: 5aa797f8787fe7a17d1b0821485b5adc @@ -4087,39 +4039,6 @@ packages: version: 1.0.0 sha256: b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' -- pypi: https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl - name: markdown-it-py - version: 4.0.0 - sha256: 87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 - requires_dist: - - mdurl~=0.1 - - psutil ; extra == 'benchmarking' - - pytest ; extra == 'benchmarking' - - pytest-benchmark ; extra == 'benchmarking' - - commonmark~=0.9 ; extra == 'compare' - - markdown~=3.4 ; extra == 'compare' - - mistletoe~=1.0 ; extra == 'compare' - - mistune~=3.0 ; extra == 'compare' - - panflute~=2.3 ; extra == 'compare' - - markdown-it-pyrs ; extra == 'compare' - - linkify-it-py>=1,<3 ; extra == 'linkify' - - mdit-py-plugins>=0.5.0 ; extra == 'plugins' - - gprof2dot ; extra == 'profiling' - - mdit-py-plugins>=0.5.0 ; extra == 'rtd' - - myst-parser ; extra == 'rtd' - - pyyaml ; extra == 'rtd' - - sphinx ; extra == 'rtd' - - sphinx-copybutton ; extra == 'rtd' - - sphinx-design ; extra == 'rtd' - - sphinx-book-theme~=1.0 ; extra == 'rtd' - - jupyter-sphinx ; extra == 'rtd' - - ipykernel ; extra == 'rtd' - - coverage ; extra == 'testing' - - pytest ; extra == 'testing' - - pytest-cov ; extra == 'testing' - - pytest-regressions ; extra == 'testing' - - requests ; extra == 'testing' - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl name: markdown-it-py version: 4.2.0 @@ -4381,141 +4300,147 @@ packages: requires_dist: - dill>=0.3.9 requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/4d/a2/a965c8c3fcd4fa8b84ba0d46606181b0d0a1d50f274c67877f3e9ed4882c/mypy-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/27/e6/3efe56c631d959b9b4454e208b0ac4b7f4f58b404c89f8bec7b49efdfc21/mypy-2.1.0-cp314-cp314-macosx_11_0_arm64.whl name: mypy - version: 1.20.0 - sha256: d99f515f95fd03a90875fdb2cca12ff074aa04490db4d190905851bdf8a549a8 + version: 2.1.0 + sha256: 49890d4f76ac9e06ec117f9e09f3174da70a620a0c300953d8595c926e80947f requires_dist: - - typing-extensions>=4.6.0 + - typing-extensions>=4.6.0 ; python_full_version < '3.15' + - typing-extensions>=4.14.0 ; python_full_version >= '3.15' - mypy-extensions>=1.0.0 - pathspec>=1.0.0 - tomli>=1.1.0 ; python_full_version < '3.11' - - librt>=0.8.0 ; platform_python_implementation != 'PyPy' + - librt>=0.11.0 ; platform_python_implementation != 'PyPy' + - ast-serialize>=0.3.0,<1.0.0 - psutil>=4.0 ; extra == 'dmypy' - setuptools>=50 ; extra == 'mypyc' - lxml ; extra == 'reports' - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' - - ast-serialize>=0.1.1,<1.0.0 ; extra == 'native-parser' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/4e/0e/6ca4a84cbed9e62384bc0b2974c90395ece5ed672393e553996501625fc5/mypy-1.20.0-cp314-cp314-macosx_10_15_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/2f/45/7d51594b644c17c0bcf74ed8cd5fc33b324276d708e8506f220b70dab9d9/mypy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl name: mypy - version: 1.20.0 - sha256: 0f42dfaab7ec1baff3b383ad7af562ab0de573c5f6edb44b2dab016082b89948 + version: 2.1.0 + sha256: 8ef78c1d306bbf9a8a12f526c44902c9c28dffd6c52c52bf6a72641ce18d3849 requires_dist: - - typing-extensions>=4.6.0 + - typing-extensions>=4.6.0 ; python_full_version < '3.15' + - typing-extensions>=4.14.0 ; python_full_version >= '3.15' - mypy-extensions>=1.0.0 - pathspec>=1.0.0 - tomli>=1.1.0 ; python_full_version < '3.11' - - librt>=0.8.0 ; platform_python_implementation != 'PyPy' + - librt>=0.11.0 ; platform_python_implementation != 'PyPy' + - ast-serialize>=0.3.0,<1.0.0 - psutil>=4.0 ; extra == 'dmypy' - setuptools>=50 ; extra == 'mypyc' - lxml ; extra == 'reports' - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' - - ast-serialize>=0.1.1,<1.0.0 ; extra == 'native-parser' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/53/6e/043477501deeb8eabbab7f1a2f6cac62cfb631806dc1d6862a04a7f5011b/mypy-1.20.0-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/41/5a/93093f0b29a9e982deafde698f740a2eb2e05886e79ccf0594c7fd5413a3/mypy-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: mypy - version: 1.20.0 - sha256: bd0212976dc57a5bfeede7c219e7cd66568a32c05c9129686dd487c059c1b88a + version: 2.1.0 + sha256: 47cebf61abde7c088a4e27718a8b13a81655686b2e9c251f5c0915a802248166 requires_dist: - - typing-extensions>=4.6.0 + - typing-extensions>=4.6.0 ; python_full_version < '3.15' + - typing-extensions>=4.14.0 ; python_full_version >= '3.15' - mypy-extensions>=1.0.0 - pathspec>=1.0.0 - tomli>=1.1.0 ; python_full_version < '3.11' - - librt>=0.8.0 ; platform_python_implementation != 'PyPy' + - librt>=0.11.0 ; platform_python_implementation != 'PyPy' + - ast-serialize>=0.3.0,<1.0.0 - psutil>=4.0 ; extra == 'dmypy' - setuptools>=50 ; extra == 'mypyc' - lxml ; extra == 'reports' - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' - - ast-serialize>=0.1.1,<1.0.0 ; extra == 'native-parser' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/6b/8d/93491ff7b79419edc7eabf95cb3b3f7490e2e574b2855c7c7e7394ff933f/mypy-1.20.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/51/4d/b6d34db183133b83761b9199a82d31557cdbb70a380d8c3b3438e11882a3/mypy-2.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: mypy - version: 1.20.0 - sha256: 7d3243c406773185144527f83be0e0aefc7bf4601b0b2b956665608bf7c98a83 + version: 2.1.0 + sha256: c90345fc182dc363b891350457ec69c35140858538f38b4540845afcc32b1aef requires_dist: - - typing-extensions>=4.6.0 + - typing-extensions>=4.6.0 ; python_full_version < '3.15' + - typing-extensions>=4.14.0 ; python_full_version >= '3.15' - mypy-extensions>=1.0.0 - pathspec>=1.0.0 - tomli>=1.1.0 ; python_full_version < '3.11' - - librt>=0.8.0 ; platform_python_implementation != 'PyPy' + - librt>=0.11.0 ; platform_python_implementation != 'PyPy' + - ast-serialize>=0.3.0,<1.0.0 - psutil>=4.0 ; extra == 'dmypy' - setuptools>=50 ; extra == 'mypyc' - lxml ; extra == 'reports' - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' - - ast-serialize>=0.1.1,<1.0.0 ; extra == 'native-parser' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/7d/c5/5fe9d8a729dd9605064691816243ae6c49fde0bd28f6e5e17f6a24203c43/mypy-1.20.0-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/a4/71/d351dca3e9b30da2328ee9d445c88b8388072808ebfbc49eb69d30b67749/mypy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl name: mypy - version: 1.20.0 - sha256: 31b5dbb55293c1bd27c0fc813a0d2bb5ceef9d65ac5afa2e58f829dab7921fd5 + version: 2.1.0 + sha256: 11a6beb180257a805961aea9ec591bbd0bd17f1e18d35b8456d57aee5bedfedc requires_dist: - - typing-extensions>=4.6.0 + - typing-extensions>=4.6.0 ; python_full_version < '3.15' + - typing-extensions>=4.14.0 ; python_full_version >= '3.15' - mypy-extensions>=1.0.0 - pathspec>=1.0.0 - tomli>=1.1.0 ; python_full_version < '3.11' - - librt>=0.8.0 ; platform_python_implementation != 'PyPy' + - librt>=0.11.0 ; platform_python_implementation != 'PyPy' + - ast-serialize>=0.3.0,<1.0.0 - psutil>=4.0 ; extra == 'dmypy' - setuptools>=50 ; extra == 'mypyc' - lxml ; extra == 'reports' - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' - - ast-serialize>=0.1.1,<1.0.0 ; extra == 'native-parser' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/fa/9d/2860be7355c45247ccc0be1501c91176318964c2a137bd4743f58ce6200e/mypy-1.20.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/b0/ca/b279a672e874aedd5498ae25f722dacc8aa86bbffb939b3f97cbb1cf6686/mypy-2.1.0-cp314-cp314-macosx_10_15_x86_64.whl name: mypy - version: 1.20.0 - sha256: 02cca0761c75b42a20a2757ae58713276605eb29a08dd8a6e092aa347c4115ca + version: 2.1.0 + sha256: 7354c5a7f69d9345c3d6e69921d57088eea3ddeeb6b20d34c1b3855b02c36ec2 requires_dist: - - typing-extensions>=4.6.0 + - typing-extensions>=4.6.0 ; python_full_version < '3.15' + - typing-extensions>=4.14.0 ; python_full_version >= '3.15' - mypy-extensions>=1.0.0 - pathspec>=1.0.0 - tomli>=1.1.0 ; python_full_version < '3.11' - - librt>=0.8.0 ; platform_python_implementation != 'PyPy' + - librt>=0.11.0 ; platform_python_implementation != 'PyPy' + - ast-serialize>=0.3.0,<1.0.0 - psutil>=4.0 ; extra == 'dmypy' - setuptools>=50 ; extra == 'mypyc' - lxml ; extra == 'reports' - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' - - ast-serialize>=0.1.1,<1.0.0 ; extra == 'native-parser' requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl name: mypy-extensions version: 1.1.0 sha256: 1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 requires_python: '>=3.8' -- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 - md5: 47e340acb35de30501a76c7c799c41d7 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + sha256: fc89f74bbe362fb29fa3c037697a89bec140b346a2469a90f7936d1d7ea4d8a3 + md5: fc21868a1a5aacc937e7a18747acb8a5 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 license: X11 AND BSD-3-Clause purls: [] - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - sha256: ea4a5d27ded18443749aefa49dc79f6356da8506d508b5296f60b8d51e0c4bd9 - md5: ced34dd9929f491ca6dab6a2927aff25 + size: 918956 + timestamp: 1777422145199 +- conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_0.conda + sha256: f5f7e006ff4271305ab4cc08eedd855c67a571793c3d18aff73f645f088a8cae + md5: 31b8740cf1b2588d4e61c81191004061 depends: - - __osx >=10.13 + - __osx >=11.0 license: X11 AND BSD-3-Clause purls: [] - size: 822259 - timestamp: 1738196181298 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 - md5: 068d497125e4bf8a66bf707254fff5ae + size: 831711 + timestamp: 1777423052277 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda + sha256: 4ea6c620b87bd1d42bb2ccc2c87cd2483fa2d7f9e905b14c223f11ff3f4c455d + md5: 343d10ed5b44030a2f67193905aea159 depends: - __osx >=11.0 license: X11 AND BSD-3-Clause purls: [] - size: 797030 - timestamp: 1738196177597 + size: 805509 + timestamp: 1777423252320 - pypi: https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl name: numpy version: 2.2.6 @@ -4531,20 +4456,20 @@ packages: version: 2.2.6 sha256: fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/4c/39/8a320264a84404c74cc7e79715de85d6130fa07a0898f67fb5cd5bd79908/numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl name: numpy - version: 2.4.4 - sha256: 2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a + version: 2.4.6 + sha256: 38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/6e/06/c54062f85f673dd5c04cbe2f14c3acb8c8b95e3384869bb8cc9bff8cb9df/numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: numpy - version: 2.4.4 - sha256: f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 + version: 2.4.6 + sha256: a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/98/7c/21252050676612625449b4807d6b695b9ce8a7c9e1c197ee6216c8a65c7c/numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl name: numpy - version: 2.4.4 - sha256: 27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d + version: 2.4.6 + sha256: 06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl name: oauthlib @@ -4556,9 +4481,9 @@ packages: - pyjwt>=2.0.0,<3 ; extra == 'signedtoken' - blinker>=1.4.0 ; extra == 'signals' requires_python: '>=3.8' -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - sha256: 44c877f8af015332a5d12f5ff0fb20ca32f896526a7d0cdb30c769df1144fb5c - md5: f61eb8cd60ff9057122a3d338b99c00f +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda + sha256: c0ef482280e38c71a08ad6d71448194b719630345b0c9c60744a2010e8a8e0cb + md5: da1b85b6a87e141f5140bb9924cecab0 depends: - __glibc >=2.17,<3.0.a0 - ca-certificates @@ -4566,34 +4491,34 @@ packages: license: Apache-2.0 license_family: Apache purls: [] - size: 3164551 - timestamp: 1769555830639 -- conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda - sha256: e02e5639b0e4d6d4fcf0f3b082642844fb5a37316f5b0a1126c6271347462e90 - md5: 30bb8d08b99b9a7600d39efb3559fff0 + size: 3167099 + timestamp: 1775587756857 +- conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.2-hc881268_0.conda + sha256: 334fd49ea31b99114f5afb1ec44555dc8c90640648302a4f8f838ee345d1ec50 + md5: 5cf0ece4375c73d7a5765e83565a69c7 depends: - - __osx >=10.13 + - __osx >=11.0 - ca-certificates license: Apache-2.0 license_family: Apache purls: [] - size: 2777136 - timestamp: 1769557662405 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda - sha256: 361f5c5e60052abc12bdd1b50d7a1a43e6a6653aab99a2263bf2288d709dcf67 - md5: f4f6ad63f98f64191c3e77c5f5f29d76 + size: 2776564 + timestamp: 1775589970694 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.2-hd24854e_0.conda + sha256: c91bf510c130a1ea1b6ff023e28bac0ccaef869446acd805e2016f69ebdc49ea + md5: 25dcccd4f80f1638428613e0d7c9b4e1 depends: - __osx >=11.0 - ca-certificates license: Apache-2.0 license_family: Apache purls: [] - size: 3104268 - timestamp: 1769556384749 -- pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl + size: 3106008 + timestamp: 1775587972483 +- pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl name: packaging - version: '26.0' - sha256: b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529 + version: '26.2' + sha256: 5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl name: pandas @@ -5141,16 +5066,16 @@ packages: - xlsxwriter>=3.0.5 ; extra == 'all' - zstandard>=0.19.0 ; extra == 'all' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c2/51/72b7c3b25ecfc6810b29ae9bffe76e26a407adb20de5b90ed984b3d483ca/pandas_gbq-0.34.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/06/3d/2f0e9c5cbc456d34f48215645d876f7885a15e09a72a07d1de3ddb181c38/pandas_gbq-0.35.0-py3-none-any.whl name: pandas-gbq - version: 0.34.1 - sha256: b74932c6ee35dfc81582f39c792e3a68c9ef9bee8c85f25667d9d05dfadd0daf + version: 0.35.0 + sha256: 258de481019566611031919997bf9c1ece4ca30a4dd02d3fc3664b251d446182 requires_dist: - setuptools - - db-dtypes>=1.0.4,<2.0.0 - - numpy>=1.18.1 - - pandas>=1.1.4 - - pyarrow>=4.0.0 + - db-dtypes>=1.1.1,<2.0.0 + - numpy>=1.26.4 + - pandas>=1.5.3 + - pyarrow>=12.0.0 - pyarrow>=22.0.0 ; python_full_version >= '3.14' - pydata-google-auth>=1.5.0 - psutil>=5.9.8 @@ -5161,9 +5086,9 @@ packages: - packaging>=22.0.0 - google-cloud-bigquery-storage>=2.16.2,<3.0.0 ; extra == 'bqstorage' - tqdm>=4.23.0 ; extra == 'tqdm' - - geopandas>=0.9.0 ; extra == 'geopandas' - - shapely>=1.8.4 ; extra == 'geopandas' - requires_python: '>=3.9' + - geopandas>=0.14.4 ; extra == 'geopandas' + - shapely>=1.8.5 ; extra == 'geopandas' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/77/fc/8cb9073bb1bee54eb49a1ae501a36402d01763812962ac811cdc1c81a9d7/parsy-2.2-py3-none-any.whl name: parsy version: '2.2' @@ -5181,21 +5106,19 @@ packages: - pyzmq ; extra == 'complete' - blosc ; extra == 'complete' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl name: pathspec - version: 1.0.4 - sha256: fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723 + version: 1.1.1 + sha256: a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 requires_dist: - hyperscan>=0.7 ; extra == 'hyperscan' - typing-extensions>=4 ; extra == 'optional' - google-re2>=1.1 ; extra == 're2' - - pytest>=9 ; extra == 'tests' - - typing-extensions>=4.15 ; extra == 'tests' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl name: platformdirs - version: 4.9.4 - sha256: 68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868 + version: 4.9.6 + sha256: e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl name: pluggy @@ -5217,21 +5140,6 @@ packages: - aiohttp ; extra == 'aiohttp' - django ; extra == 'django' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - name: propcache - version: 0.4.1 - sha256: 2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl - name: propcache - version: 0.4.1 - sha256: 1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl - name: propcache - version: 0.4.1 - sha256: 66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925 - requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/1a/55/1140a8e067b8ec093a18a4ae7bb0045d9db65da38a08618ddc5e2f1994aa/propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl name: propcache version: 0.5.2 @@ -5247,33 +5155,23 @@ packages: version: 0.5.2 sha256: b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/84/f3/1fba73eeffafc998a25d59703b63f8be4fe8a5cb12eaff7386a0ba0f7125/proto_plus-1.27.2-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/7c/20/b122d4626976acb81132036d2ad1bb35a1a8775fceb837ec30964622516a/proto_plus-1.28.0-py3-none-any.whl name: proto-plus - version: 1.27.2 - sha256: 6432f75893d3b9e70b9c412f1d2f03f65b11fb164b793d14ae2ca01821d22718 + version: 1.28.0 + sha256: a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8 requires_dist: - protobuf>=4.25.8,<8.0.0 - google-api-core>=1.31.5 ; extra == 'testing' - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/16/92/d1e32e3e0d894fe00b15ce28ad4944ab692713f2e7f0a99787405e43533a/protobuf-6.33.6-cp39-abi3-manylinux2014_x86_64.whl - name: protobuf - version: 6.33.6 - sha256: e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/5c/01/a3c3ed5cd186f39e7880f8303cc51385a198a81469d53d0fdecf1f64d929/protobuf-6.33.6-cp39-abi3-macosx_10_9_universal2.whl - name: protobuf - version: 6.33.6 - sha256: 9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/53/1b/3b431694a4dc6d37b9f653f0c64b0a0d9ec074ee810710c0c3da21d67ba7/protobuf-7.34.1-cp310-abi3-manylinux2014_x86_64.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/70/5b/6baf9008817964454055ff3fe65f1de0b5f1e26c80c82f7fb108b7cd4ea3/protobuf-7.35.0-cp310-abi3-manylinux2014_x86_64.whl name: protobuf - version: 7.34.1 - sha256: 8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 + version: 7.35.0 + sha256: 6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl +- pypi: https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl name: protobuf - version: 7.34.1 - sha256: d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 + version: 7.35.0 + sha256: 66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl name: psutil @@ -5455,10 +5353,10 @@ packages: version: 3.2.5 sha256: a82211a43372cba9b1555a110e84e679deec2dc9463ae4c736977dad99dca5ed requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/e7/c3/26b8a0908a9db249de3b4169692e1c7c19048a9bc41a4d3209cee7dbb758/psycopg_pool-3.3.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/37/ed/89c2c620af0e1660354cd8aabf9f5b21f911597ce22acb37c805d6c86bc8/psycopg_pool-3.3.1-py3-none-any.whl name: psycopg-pool - version: 3.3.0 - sha256: 2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 + version: 3.3.1 + sha256: 2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5 requires_dist: - typing-extensions>=4.6 - anyio>=4.0 ; extra == 'test' @@ -5481,35 +5379,35 @@ packages: name: py4j version: 0.10.9.9 sha256: c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 -- pypi: https://files.pythonhosted.org/packages/36/2e/c0f017c405fcdc252dbccafbe05e36b0d0eb1ea9a958f081e01c6972927f/pyarrow-23.0.1-cp314-cp314-manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/1a/ff/f01485fda6f4e5d441afb8dd5e7681e4db18826c1e271852f5d3957d6a80/pyarrow-24.0.0-cp314-cp314-macosx_12_0_x86_64.whl name: pyarrow - version: 23.0.1 - sha256: 4982d71350b1a6e5cfe1af742c53dfb759b11ce14141870d05d9e540d13bc5d1 + version: 24.0.0 + sha256: e6f1278ee4785b6db21229374a1c9e54ec7c549de5d1efc9630b6207de7e170b requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/8d/1b/6da9a89583ce7b23ac611f183ae4843cd3a6cf54f079549b0e8c14031e73/pyarrow-23.0.1-cp314-cp314-macosx_12_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/1d/41/64180033d7027afce12dc96d0fe1f504c6fa112190582b458acea2399530/pyarrow-24.0.0-cp310-cp310-macosx_12_0_x86_64.whl name: pyarrow - version: 23.0.1 - sha256: 5df1161da23636a70838099d4aaa65142777185cc0cdba4037a18cee7d8db9ca + version: 24.0.0 + sha256: 644a246325b8c69c595ad1dd4b463eba4b0cdb731370e4a86137d433208d6147 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/ae/b5/d58a241fbe324dbaeb8df07be6af8752c846192d78d2272e551098f74e88/pyarrow-23.0.1-cp314-cp314-macosx_12_0_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/67/33/f75e91b9a64c3f33c787e263c93b871ad91b8a4a68c1d5cebddd9840e835/pyarrow-24.0.0-cp310-cp310-manylinux_2_28_x86_64.whl name: pyarrow - version: 23.0.1 - sha256: fa8e51cb04b9f8c9c5ace6bab63af9a1f88d35c0d6cbf53e8c17c098552285e1 + version: 24.0.0 + sha256: e3268e43984d0b1a185c89b4cfff282a7ead12fc93f56cfd7088bdbcbe727041 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/bc/8e/4be5617b4aaae0287f621ad31c6036e5f63118cfca0dc57d42121ff49b51/pyarrow-23.0.1-cp310-cp310-macosx_12_0_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/8e/3a/28ba9c1c1ebdbb5f1b94dfebb46f207e52e6a554b7fe4132540fde29a3a0/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_x86_64.whl name: pyarrow - version: 23.0.1 - sha256: 3f91c038b95f71ddfc865f11d5876c42f343b4495535bd262c7b321b0b94507c + version: 24.0.0 + sha256: ae8a1145af31d903fa9bb166824d7abe9b4681a000b0159c9fb99c11bc11ad26 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/bc/a8/24e5dc6855f50a62936ceb004e6e9645e4219a8065f304145d7fb8a79d5d/pyarrow-23.0.1-cp310-cp310-macosx_12_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/a5/bf/a34fee1d624152124fa8355c42f34195ad5fe5233ce5bb87946432047d52/pyarrow-24.0.0-cp310-cp310-macosx_12_0_arm64.whl name: pyarrow - version: 23.0.1 - sha256: 3fab8f82571844eb3c460f90a75583801d14ca0cc32b1acc8c361650e006fd56 + version: 24.0.0 + sha256: 7c2b98645d576a0b9616892ead22b64a83a5f043c5e2ca15ebcefcb5b70c80cb requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/f8/82/c40b68001dbec8a3faa4c08cd8c200798ac732d2854537c5449dc859f55a/pyarrow-23.0.1-cp310-cp310-manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/ad/80/d022a34ff05d2cbedd8ccf841fc1f532ecfa9eb5ed1711b56d0e0ea71fc9/pyarrow-24.0.0-cp314-cp314-macosx_12_0_arm64.whl name: pyarrow - version: 23.0.1 - sha256: c33b5bf406284fd0bba436ed6f6c3ebe8e311722b441d89397c54f871c6863a2 + version: 24.0.0 + sha256: 1cc9057f0319e26333b357e17f3c2c022f1a83739b48a88b25bfd5fa2dc18838 requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/2e/c3/94ade4906a2f88bc935772f59c934013b4205e773bcb4239db114a6da136/pyarrow_hotfix-0.7-py3-none-any.whl name: pyarrow-hotfix @@ -5548,57 +5446,57 @@ packages: version: 3.23.0 sha256: 187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*' -- pypi: https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl name: pydantic - version: 2.12.5 - sha256: e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d + version: 2.13.4 + sha256: 45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba requires_dist: - annotated-types>=0.6.0 - - pydantic-core==2.41.5 + - pydantic-core==2.46.4 - typing-extensions>=4.14.1 - typing-inspection>=0.4.2 - email-validator>=2.0.0 ; extra == 'email' - tzdata ; python_full_version >= '3.9' and sys_platform == 'win32' and extra == 'timezone' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl name: pydantic-core - version: 2.41.5 - sha256: 22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375 + version: 2.46.4 + sha256: da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5 requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl name: pydantic-core - version: 2.41.5 - sha256: 1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14 + version: 2.46.4 + sha256: 7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl name: pydantic-core - version: 2.41.5 - sha256: 100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a + version: 2.46.4 + sha256: 428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl name: pydantic-core - version: 2.41.5 - sha256: 77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146 + version: 2.46.4 + sha256: 23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl name: pydantic-core - version: 2.41.5 - sha256: 3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a + version: 2.46.4 + sha256: 395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl name: pydantic-core - version: 2.41.5 - sha256: dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2 + version: 2.46.4 + sha256: a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4 requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' @@ -5638,20 +5536,20 @@ packages: - coverage[toml]==7.10.7 ; extra == 'tests' - pytest>=8.4.2,<9.0.0 ; extra == 'tests' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/7c/4c/ad33b92b9864cbde84f259d5df035a6447f91891f5be77788e2a3892bce3/pymysql-1.1.2-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/c4/bd/2534e130295c8cfd4f0a2e31623baab7502278f1e97bcfe61db75656a77f/pymysql-1.2.0-py3-none-any.whl name: pymysql - version: 1.1.2 - sha256: e6b1d89711dd51f8f74b1631fe08f039e7d76cf67a42a323d3178f0f25762ed9 + version: 1.2.0 + sha256: 62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 requires_dist: - - cryptography ; extra == 'rsa' - - pynacl>=1.4.0 ; extra == 'ed25519' - requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl + - cryptography>=46.0.7 ; extra == 'rsa' + - pynacl>=1.6.2 ; extra == 'ed25519' + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl name: pyopenssl - version: 26.0.0 - sha256: df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81 + version: 26.2.0 + sha256: 4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 requires_dist: - - cryptography>=46.0.0,<47 + - cryptography>=46.0.0,<49 - typing-extensions>=4.9 ; python_full_version >= '3.8' and python_full_version < '3.13' - pytest-rerunfailures ; extra == 'test' - pretend ; extra == 'test' @@ -5813,24 +5711,24 @@ packages: purls: [] size: 25455342 timestamp: 1772729810280 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - build_number: 101 - sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd - md5: c014ad06e60441661737121d3eae8a60 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.5-habeac84_100_cp314.conda + build_number: 100 + sha256: 55eed9bf2a3f6e90311276f0834737fe7c2d9ec3e5e2e557507858df4c7521e6 + md5: da92e59ff92f2d5ede4f612af20f583f depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.3,<3.0a0 + - libexpat >=2.8.0,<3.0a0 - libffi >=3.5.2,<3.6.0a0 - libgcc >=14 - - liblzma >=5.8.2,<6.0a0 + - liblzma >=5.8.3,<6.0a0 - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libuuid >=2.41.3,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 + - libsqlite >=3.53.1,<4.0a0 + - libuuid >=2.42.1,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.6,<4.0a0 - python_abi 3.14.* *_cp314 - readline >=8.3,<9.0a0 - tk >=8.6.13,<8.7.0a0 @@ -5838,8 +5736,8 @@ packages: - zstd >=1.5.7,<1.6.0a0 license: Python-2.0 purls: [] - size: 36702440 - timestamp: 1770675584356 + size: 36745188 + timestamp: 1779236923603 python_site_packages_path: lib/python3.14/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.20-hea035f4_0_cpython.conda sha256: b6b9d6a85003b21ac17cc1485e196906bd704759caaab1315f6f8eeb85f26202 @@ -5863,21 +5761,21 @@ packages: purls: [] size: 13083662 timestamp: 1772730522090 -- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.3-h4f44bb5_101_cp314.conda - build_number: 101 - sha256: f64e357aa0168a201c9b3eedf500d89a8550d6631d26a95590b12de61f8fd660 - md5: 030ec23658b941438ac42303aff0db2b +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.5-h7c6738f_100_cp314.conda + build_number: 100 + sha256: f99fd77c51d52319f02b7732971b35921a987ac49ca9b60f9c2e280b0dcdd409 + md5: 915728f929ae3610f084aecdf62f5272 depends: - - __osx >=10.13 + - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.7.3,<3.0a0 + - libexpat >=2.8.0,<3.0a0 - libffi >=3.5.2,<3.6.0a0 - - liblzma >=5.8.2,<6.0a0 + - liblzma >=5.8.3,<6.0a0 - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 + - libsqlite >=3.53.1,<4.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.6,<4.0a0 - python_abi 3.14.* *_cp314 - readline >=8.3,<9.0a0 - tk >=8.6.13,<8.7.0a0 @@ -5885,8 +5783,8 @@ packages: - zstd >=1.5.7,<1.6.0a0 license: Python-2.0 purls: [] - size: 14387288 - timestamp: 1770676578632 + size: 14450441 + timestamp: 1779239702259 python_site_packages_path: lib/python3.14/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.20-h1b19095_0_cpython.conda sha256: f0f6fcbb6cfdee5a6b9c03b5b94d2bbe737f3b17a618006c7685cc48992ae667 @@ -5910,21 +5808,21 @@ packages: purls: [] size: 12468674 timestamp: 1772730636766 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda - build_number: 101 - sha256: fccce2af62d11328d232df9f6bbf63464fd45f81f718c661757f9c628c4378ce - md5: 753c8d0447677acb7ddbcc6e03e82661 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.5-h4c637c5_100_cp314.conda + build_number: 100 + sha256: 06dec0e2f50e2f7e6a8808fcb4aff23729a3f23bcb1fca4fcbc3a341d9e38a83 + md5: f7331c9deaf21c79e5675e72b21d570b depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.7.3,<3.0a0 + - libexpat >=2.8.0,<3.0a0 - libffi >=3.5.2,<3.6.0a0 - - liblzma >=5.8.2,<6.0a0 + - liblzma >=5.8.3,<6.0a0 - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 + - libsqlite >=3.53.1,<4.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.6,<4.0a0 - python_abi 3.14.* *_cp314 - readline >=8.3,<9.0a0 - tk >=8.6.13,<8.7.0a0 @@ -5932,8 +5830,8 @@ packages: - zstd >=1.5.7,<1.6.0a0 license: Python-2.0 purls: [] - size: 13522698 - timestamp: 1770675365241 + size: 13560854 + timestamp: 1779238292621 python_site_packages_path: lib/python3.14/site-packages - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl name: python-dateutil @@ -5972,10 +5870,10 @@ packages: purls: [] size: 6989 timestamp: 1752805904792 -- pypi: https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl name: pytz - version: 2026.1.post1 - sha256: f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a + version: '2026.2' + sha256: 04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 - pypi: https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl name: pyyaml version: 6.0.3 @@ -6264,10 +6162,10 @@ packages: - pandas>=1.3 ; extra == 'llm' - opentelemetry-proto ; extra == 'llm' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/55/96/7911234a14b891320e652b5ae258050f98584f22a8e33afba9ad43ab27c9/ray-2.54.1-cp310-cp310-manylinux2014_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/7e/d0/a85097dd53aaca1a44acc4dd0b3d2c0e9233179433e2ee326e4018ab3cf7/ray-2.55.1-cp310-cp310-macosx_12_0_arm64.whl name: ray - version: 2.54.1 - sha256: 054985194bd32f4464c93f9318d247fac61e1f32ac221565ecfdc81ab8c75d0b + version: 2.55.1 + sha256: 2d5786661e192148719accc959def6cdcabd7a24cd9008005bf3d0e3c8cfd529 requires_dist: - click>=7.0 - filelock @@ -6300,25 +6198,25 @@ packages: - smart-open ; extra == 'default' - virtualenv>=20.0.24,!=20.21.1 ; extra == 'default' - memray ; sys_platform != 'win32' and extra == 'observability' + - watchfiles ; extra == 'serve' + - opentelemetry-proto ; extra == 'serve' + - opencensus ; extra == 'serve' + - grpcio>=1.42.0 ; extra == 'serve' - requests ; extra == 'serve' + - aiohttp>=3.13.3 ; extra == 'serve' + - colorful ; extra == 'serve' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve' - opentelemetry-exporter-prometheus ; extra == 'serve' - - opentelemetry-proto ; extra == 'serve' - prometheus-client>=0.7.1 ; extra == 'serve' - - uvicorn[standard] ; extra == 'serve' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve' - aiohttp-cors ; extra == 'serve' - smart-open ; extra == 'serve' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve' - - watchfiles ; extra == 'serve' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve' + - fastapi ; extra == 'serve' - opentelemetry-sdk>=1.30.0 ; extra == 'serve' - - colorful ; extra == 'serve' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve' - starlette ; extra == 'serve' - - aiohttp>=3.13.3 ; extra == 'serve' - - fastapi ; extra == 'serve' - - grpcio>=1.42.0 ; extra == 'serve' - - opencensus ; extra == 'serve' + - uvicorn[standard] ; extra == 'serve' - pandas ; extra == 'tune' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'tune' - tensorboardx>=1.9 ; extra == 'tune' @@ -6326,47 +6224,48 @@ packages: - pyarrow>=9.0.0 ; extra == 'tune' - fsspec ; extra == 'tune' - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'adag' + - watchfiles ; extra == 'serve-grpc' + - opentelemetry-proto ; extra == 'serve-grpc' + - opencensus ; extra == 'serve-grpc' + - grpcio>=1.42.0 ; extra == 'serve-grpc' + - pyopenssl ; extra == 'serve-grpc' - requests ; extra == 'serve-grpc' + - aiohttp>=3.13.3 ; extra == 'serve-grpc' + - colorful ; extra == 'serve-grpc' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-grpc' - opentelemetry-exporter-prometheus ; extra == 'serve-grpc' - - opentelemetry-proto ; extra == 'serve-grpc' - prometheus-client>=0.7.1 ; extra == 'serve-grpc' - - uvicorn[standard] ; extra == 'serve-grpc' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-grpc' - aiohttp-cors ; extra == 'serve-grpc' - smart-open ; extra == 'serve-grpc' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-grpc' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-grpc' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-grpc' - - watchfiles ; extra == 'serve-grpc' - - pyopenssl ; extra == 'serve-grpc' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-grpc' + - fastapi ; extra == 'serve-grpc' - opentelemetry-sdk>=1.30.0 ; extra == 'serve-grpc' - - colorful ; extra == 'serve-grpc' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-grpc' - starlette ; extra == 'serve-grpc' - - aiohttp>=3.13.3 ; extra == 'serve-grpc' - - fastapi ; extra == 'serve-grpc' - - grpcio>=1.42.0 ; extra == 'serve-grpc' - - opencensus ; extra == 'serve-grpc' + - uvicorn[standard] ; extra == 'serve-grpc' + - watchfiles ; extra == 'serve-async-inference' + - opentelemetry-proto ; extra == 'serve-async-inference' + - taskiq ; extra == 'serve-async-inference' + - opencensus ; extra == 'serve-async-inference' + - grpcio>=1.42.0 ; extra == 'serve-async-inference' - requests ; extra == 'serve-async-inference' + - aiohttp>=3.13.3 ; extra == 'serve-async-inference' + - colorful ; extra == 'serve-async-inference' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-async-inference' - opentelemetry-exporter-prometheus ; extra == 'serve-async-inference' - - opentelemetry-proto ; extra == 'serve-async-inference' - prometheus-client>=0.7.1 ; extra == 'serve-async-inference' - - uvicorn[standard] ; extra == 'serve-async-inference' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-async-inference' - aiohttp-cors ; extra == 'serve-async-inference' - smart-open ; extra == 'serve-async-inference' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-async-inference' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-async-inference' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-async-inference' - - watchfiles ; extra == 'serve-async-inference' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-async-inference' + - fastapi ; extra == 'serve-async-inference' - opentelemetry-sdk>=1.30.0 ; extra == 'serve-async-inference' - - colorful ; extra == 'serve-async-inference' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-async-inference' - starlette ; extra == 'serve-async-inference' + - uvicorn[standard] ; extra == 'serve-async-inference' - celery ; extra == 'serve-async-inference' - - aiohttp>=3.13.3 ; extra == 'serve-async-inference' - - fastapi ; extra == 'serve-async-inference' - - grpcio>=1.42.0 ; extra == 'serve-async-inference' - - opencensus ; extra == 'serve-async-inference' - - ray-cpp==2.54.1 ; extra == 'cpp' + - ray-cpp==2.55.1 ; extra == 'cpp' - pandas ; extra == 'rllib' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'rllib' - tensorboardx>=1.9 ; extra == 'rllib' @@ -6386,145 +6285,146 @@ packages: - pyarrow>=9.0.0 ; extra == 'train' - fsspec ; extra == 'train' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'train' - - requests ; extra == 'air' - - opentelemetry-exporter-prometheus ; extra == 'air' - - opentelemetry-proto ; extra == 'air' - - pyarrow>=9.0.0 ; extra == 'air' + - watchfiles ; extra == 'air' - fsspec ; extra == 'air' - tensorboardx>=1.9 ; extra == 'air' + - opentelemetry-proto ; extra == 'air' + - pandas>=1.3 ; extra == 'air' + - opencensus ; extra == 'air' + - grpcio>=1.42.0 ; extra == 'air' + - requests ; extra == 'air' + - aiohttp>=3.13.3 ; extra == 'air' + - colorful ; extra == 'air' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'air' + - opentelemetry-exporter-prometheus ; extra == 'air' - prometheus-client>=0.7.1 ; extra == 'air' - - uvicorn[standard] ; extra == 'air' - - numpy>=1.20 ; extra == 'air' - - pandas ; extra == 'air' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'air' - aiohttp-cors ; extra == 'air' + - pyarrow>=9.0.0 ; extra == 'air' - smart-open ; extra == 'air' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'air' + - pandas ; extra == 'air' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'air' - - pandas>=1.3 ; extra == 'air' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'air' - - watchfiles ; extra == 'air' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'air' + - numpy>=1.20 ; extra == 'air' + - fastapi ; extra == 'air' - opentelemetry-sdk>=1.30.0 ; extra == 'air' - - colorful ; extra == 'air' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'air' - starlette ; extra == 'air' - - aiohttp>=3.13.3 ; extra == 'air' - - fastapi ; extra == 'air' - - grpcio>=1.42.0 ; extra == 'air' - - opencensus ; extra == 'air' - - memray ; sys_platform != 'win32' and extra == 'all' - - requests ; extra == 'all' - - opentelemetry-exporter-prometheus ; extra == 'all' - - opentelemetry-proto ; extra == 'all' - - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all' - - pyarrow>=9.0.0 ; extra == 'all' + - uvicorn[standard] ; extra == 'air' + - watchfiles ; extra == 'all' + - grpcio ; extra == 'all' + - gymnasium==1.2.2 ; extra == 'all' - fsspec ; extra == 'all' - tensorboardx>=1.9 ; extra == 'all' + - opentelemetry-proto ; extra == 'all' + - pandas>=1.3 ; extra == 'all' + - taskiq ; extra == 'all' + - opencensus ; extra == 'all' + - grpcio>=1.42.0 ; extra == 'all' + - ormsgpack>=1.7.0 ; extra == 'all' + - pyopenssl ; extra == 'all' + - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all' + - requests ; extra == 'all' + - aiohttp>=3.13.3 ; extra == 'all' + - colorful ; extra == 'all' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all' + - opentelemetry-exporter-prometheus ; extra == 'all' + - scipy ; extra == 'all' - prometheus-client>=0.7.1 ; extra == 'all' - - uvicorn[standard] ; extra == 'all' - - numpy>=1.20 ; extra == 'all' - - pandas ; extra == 'all' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all' - aiohttp-cors ; extra == 'all' + - pyarrow>=9.0.0 ; extra == 'all' - smart-open ; extra == 'all' - - pyyaml ; extra == 'all' - - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all' - - pandas>=1.3 ; extra == 'all' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all' - - lz4 ; extra == 'all' - - scipy ; extra == 'all' - - watchfiles ; extra == 'all' - - pyopenssl ; extra == 'all' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all' + - memray ; sys_platform != 'win32' and extra == 'all' + - pandas ; extra == 'all' + - pyyaml ; extra == 'all' + - numpy>=1.20 ; extra == 'all' + - fastapi ; extra == 'all' - opentelemetry-sdk>=1.30.0 ; extra == 'all' - - grpcio ; extra == 'all' - - dm-tree ; extra == 'all' - - gymnasium==1.2.2 ; extra == 'all' - - colorful ; extra == 'all' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all' - starlette ; extra == 'all' + - uvicorn[standard] ; extra == 'all' - celery ; extra == 'all' - - aiohttp>=3.13.3 ; extra == 'all' - - ormsgpack>=1.7.0 ; extra == 'all' - - fastapi ; extra == 'all' - - grpcio>=1.42.0 ; extra == 'all' - - opencensus ; extra == 'all' - - ray-cpp==2.54.1 ; extra == 'all-cpp' - - memray ; sys_platform != 'win32' and extra == 'all-cpp' - - requests ; extra == 'all-cpp' - - opentelemetry-exporter-prometheus ; extra == 'all-cpp' - - opentelemetry-proto ; extra == 'all-cpp' - - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all-cpp' - - pyarrow>=9.0.0 ; extra == 'all-cpp' + - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all' + - lz4 ; extra == 'all' + - dm-tree ; extra == 'all' + - watchfiles ; extra == 'all-cpp' + - grpcio ; extra == 'all-cpp' + - gymnasium==1.2.2 ; extra == 'all-cpp' - fsspec ; extra == 'all-cpp' - tensorboardx>=1.9 ; extra == 'all-cpp' + - opentelemetry-proto ; extra == 'all-cpp' + - pandas>=1.3 ; extra == 'all-cpp' + - taskiq ; extra == 'all-cpp' + - opencensus ; extra == 'all-cpp' + - grpcio>=1.42.0 ; extra == 'all-cpp' + - ormsgpack>=1.7.0 ; extra == 'all-cpp' + - pyopenssl ; extra == 'all-cpp' + - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all-cpp' + - requests ; extra == 'all-cpp' + - aiohttp>=3.13.3 ; extra == 'all-cpp' + - colorful ; extra == 'all-cpp' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all-cpp' + - opentelemetry-exporter-prometheus ; extra == 'all-cpp' + - scipy ; extra == 'all-cpp' - prometheus-client>=0.7.1 ; extra == 'all-cpp' - - uvicorn[standard] ; extra == 'all-cpp' - - numpy>=1.20 ; extra == 'all-cpp' - - pandas ; extra == 'all-cpp' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all-cpp' - aiohttp-cors ; extra == 'all-cpp' + - pyarrow>=9.0.0 ; extra == 'all-cpp' - smart-open ; extra == 'all-cpp' - - pyyaml ; extra == 'all-cpp' - - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all-cpp' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all-cpp' + - ray-cpp==2.55.1 ; extra == 'all-cpp' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all-cpp' - - pandas>=1.3 ; extra == 'all-cpp' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all-cpp' - - lz4 ; extra == 'all-cpp' - - scipy ; extra == 'all-cpp' - - watchfiles ; extra == 'all-cpp' - - pyopenssl ; extra == 'all-cpp' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all-cpp' + - memray ; sys_platform != 'win32' and extra == 'all-cpp' + - pandas ; extra == 'all-cpp' + - pyyaml ; extra == 'all-cpp' + - numpy>=1.20 ; extra == 'all-cpp' + - fastapi ; extra == 'all-cpp' - opentelemetry-sdk>=1.30.0 ; extra == 'all-cpp' - - grpcio ; extra == 'all-cpp' - - dm-tree ; extra == 'all-cpp' - - gymnasium==1.2.2 ; extra == 'all-cpp' - - colorful ; extra == 'all-cpp' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all-cpp' - starlette ; extra == 'all-cpp' + - uvicorn[standard] ; extra == 'all-cpp' - celery ; extra == 'all-cpp' - - aiohttp>=3.13.3 ; extra == 'all-cpp' - - ormsgpack>=1.7.0 ; extra == 'all-cpp' - - fastapi ; extra == 'all-cpp' - - grpcio>=1.42.0 ; extra == 'all-cpp' - - opencensus ; extra == 'all-cpp' - - hf-transfer ; extra == 'llm' - - requests ; extra == 'llm' - - opentelemetry-exporter-prometheus ; extra == 'llm' + - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all-cpp' + - lz4 ; extra == 'all-cpp' + - dm-tree ; extra == 'all-cpp' + - watchfiles ; extra == 'llm' + - fsspec ; extra == 'llm' - opentelemetry-proto ; extra == 'llm' - - vllm[audio]>=0.15.0 ; extra == 'llm' + - pandas>=1.3 ; extra == 'llm' + - jsonref>=1.1.0 ; extra == 'llm' + - ninja ; extra == 'llm' + - nixl>=1.0.0 ; extra == 'llm' + - meson ; extra == 'llm' + - opencensus ; extra == 'llm' - async-timeout ; python_full_version < '3.11' and extra == 'llm' - - pyarrow>=9.0.0 ; extra == 'llm' - - transformers>=4.57.3 ; extra == 'llm' - - fsspec ; extra == 'llm' - pybind11 ; extra == 'llm' + - grpcio>=1.42.0 ; extra == 'llm' + - vllm[audio]>=0.18.0 ; extra == 'llm' + - requests ; extra == 'llm' + - typer ; extra == 'llm' + - aiohttp>=3.13.3 ; extra == 'llm' + - colorful ; extra == 'llm' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'llm' + - opentelemetry-exporter-prometheus ; extra == 'llm' - prometheus-client>=0.7.1 ; extra == 'llm' - - uvicorn[standard] ; extra == 'llm' - - numpy>=1.20 ; extra == 'llm' + - jsonschema ; extra == 'llm' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'llm' - aiohttp-cors ; extra == 'llm' + - hf-transfer ; extra == 'llm' + - pyarrow>=9.0.0 ; extra == 'llm' - smart-open ; extra == 'llm' - - jsonref>=1.1.0 ; extra == 'llm' - - ninja ; extra == 'llm' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'llm' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'llm' - - typer ; extra == 'llm' - - meson ; extra == 'llm' - - pandas>=1.3 ; extra == 'llm' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'llm' - - jsonschema ; extra == 'llm' - - watchfiles ; extra == 'llm' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'llm' + - numpy>=1.20 ; extra == 'llm' + - fastapi ; extra == 'llm' - opentelemetry-sdk>=1.30.0 ; extra == 'llm' - - colorful ; extra == 'llm' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'llm' - starlette ; extra == 'llm' - - aiohttp>=3.13.3 ; extra == 'llm' - - nixl>=0.6.1 ; extra == 'llm' - - fastapi ; extra == 'llm' - - grpcio>=1.42.0 ; extra == 'llm' - - opencensus ; extra == 'llm' + - uvicorn[standard] ; extra == 'llm' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/af/cf/9a6e33b59e1a12428b4fbd6cc38f7e32d116ccde4c72e15c3f76a22bf36d/ray-2.54.1-cp310-cp310-macosx_12_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/b4/64/640f5525bac171282c6f76f3ecc9c4cfef60149ac0d00231afb22018ebe5/ray-2.55.1-cp310-cp310-manylinux2014_x86_64.whl name: ray - version: 2.54.1 - sha256: 2ea650e648acc6e76edd98c694657fd1fcb1cd97700d944a7d20da90269e9810 + version: 2.55.1 + sha256: bb49fbbe53a1d931e1f92d17f9271338f0b738885f8f70b7f531aa33f019d8af requires_dist: - click>=7.0 - filelock @@ -6557,25 +6457,25 @@ packages: - smart-open ; extra == 'default' - virtualenv>=20.0.24,!=20.21.1 ; extra == 'default' - memray ; sys_platform != 'win32' and extra == 'observability' - - fastapi ; extra == 'serve' - - opencensus ; extra == 'serve' - - opentelemetry-exporter-prometheus ; extra == 'serve' - - prometheus-client>=0.7.1 ; extra == 'serve' + - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve' - colorful ; extra == 'serve' + - starlette ; extra == 'serve' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve' - grpcio>=1.42.0 ; extra == 'serve' - aiohttp-cors ; extra == 'serve' - - opentelemetry-proto ; extra == 'serve' - - uvicorn[standard] ; extra == 'serve' - - smart-open ; extra == 'serve' - - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve' + - opentelemetry-exporter-prometheus ; extra == 'serve' + - prometheus-client>=0.7.1 ; extra == 'serve' + - fastapi ; extra == 'serve' - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve' - - watchfiles ; extra == 'serve' - - starlette ; extra == 'serve' + - opentelemetry-sdk>=1.30.0 ; extra == 'serve' - requests ; extra == 'serve' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve' - - opentelemetry-sdk>=1.30.0 ; extra == 'serve' + - watchfiles ; extra == 'serve' + - uvicorn[standard] ; extra == 'serve' + - smart-open ; extra == 'serve' + - opentelemetry-proto ; extra == 'serve' - aiohttp>=3.13.3 ; extra == 'serve' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve' + - opencensus ; extra == 'serve' - pandas ; extra == 'tune' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'tune' - tensorboardx>=1.9 ; extra == 'tune' @@ -6583,47 +6483,48 @@ packages: - pyarrow>=9.0.0 ; extra == 'tune' - fsspec ; extra == 'tune' - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'adag' - - fastapi ; extra == 'serve-grpc' - - opencensus ; extra == 'serve-grpc' - - opentelemetry-exporter-prometheus ; extra == 'serve-grpc' - - prometheus-client>=0.7.1 ; extra == 'serve-grpc' + - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-grpc' - colorful ; extra == 'serve-grpc' + - starlette ; extra == 'serve-grpc' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-grpc' - grpcio>=1.42.0 ; extra == 'serve-grpc' - aiohttp-cors ; extra == 'serve-grpc' - - opentelemetry-proto ; extra == 'serve-grpc' - - uvicorn[standard] ; extra == 'serve-grpc' - - smart-open ; extra == 'serve-grpc' - - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-grpc' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-grpc' + - opentelemetry-exporter-prometheus ; extra == 'serve-grpc' + - prometheus-client>=0.7.1 ; extra == 'serve-grpc' - pyopenssl ; extra == 'serve-grpc' - - watchfiles ; extra == 'serve-grpc' - - starlette ; extra == 'serve-grpc' + - fastapi ; extra == 'serve-grpc' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-grpc' + - opentelemetry-sdk>=1.30.0 ; extra == 'serve-grpc' - requests ; extra == 'serve-grpc' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-grpc' - - opentelemetry-sdk>=1.30.0 ; extra == 'serve-grpc' + - watchfiles ; extra == 'serve-grpc' + - uvicorn[standard] ; extra == 'serve-grpc' + - smart-open ; extra == 'serve-grpc' + - opentelemetry-proto ; extra == 'serve-grpc' - aiohttp>=3.13.3 ; extra == 'serve-grpc' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-grpc' - - fastapi ; extra == 'serve-async-inference' - - opencensus ; extra == 'serve-async-inference' - - opentelemetry-exporter-prometheus ; extra == 'serve-async-inference' - - prometheus-client>=0.7.1 ; extra == 'serve-async-inference' + - opencensus ; extra == 'serve-grpc' + - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-async-inference' - colorful ; extra == 'serve-async-inference' + - starlette ; extra == 'serve-async-inference' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-async-inference' - grpcio>=1.42.0 ; extra == 'serve-async-inference' - aiohttp-cors ; extra == 'serve-async-inference' - - opentelemetry-proto ; extra == 'serve-async-inference' - - uvicorn[standard] ; extra == 'serve-async-inference' + - opentelemetry-exporter-prometheus ; extra == 'serve-async-inference' - celery ; extra == 'serve-async-inference' - - smart-open ; extra == 'serve-async-inference' - - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-async-inference' + - prometheus-client>=0.7.1 ; extra == 'serve-async-inference' + - fastapi ; extra == 'serve-async-inference' - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-async-inference' - - watchfiles ; extra == 'serve-async-inference' - - starlette ; extra == 'serve-async-inference' + - taskiq ; extra == 'serve-async-inference' + - opentelemetry-sdk>=1.30.0 ; extra == 'serve-async-inference' - requests ; extra == 'serve-async-inference' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-async-inference' - - opentelemetry-sdk>=1.30.0 ; extra == 'serve-async-inference' + - watchfiles ; extra == 'serve-async-inference' + - uvicorn[standard] ; extra == 'serve-async-inference' + - smart-open ; extra == 'serve-async-inference' + - opentelemetry-proto ; extra == 'serve-async-inference' - aiohttp>=3.13.3 ; extra == 'serve-async-inference' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-async-inference' - - ray-cpp==2.54.1 ; extra == 'cpp' + - opencensus ; extra == 'serve-async-inference' + - ray-cpp==2.55.1 ; extra == 'cpp' - pandas ; extra == 'rllib' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'rllib' - tensorboardx>=1.9 ; extra == 'rllib' @@ -6643,140 +6544,141 @@ packages: - pyarrow>=9.0.0 ; extra == 'train' - fsspec ; extra == 'train' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'train' - - fastapi ; extra == 'air' + - pyarrow>=9.0.0 ; extra == 'air' + - fsspec ; extra == 'air' - tensorboardx>=1.9 ; extra == 'air' - - opencensus ; extra == 'air' - - opentelemetry-exporter-prometheus ; extra == 'air' - - prometheus-client>=0.7.1 ; extra == 'air' + - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'air' - colorful ; extra == 'air' - - pandas>=1.3 ; extra == 'air' - - pyarrow>=9.0.0 ; extra == 'air' + - starlette ; extra == 'air' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'air' - grpcio>=1.42.0 ; extra == 'air' + - numpy>=1.20 ; extra == 'air' - aiohttp-cors ; extra == 'air' - - opentelemetry-proto ; extra == 'air' - - uvicorn[standard] ; extra == 'air' - - smart-open ; extra == 'air' - - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'air' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'air' + - opentelemetry-exporter-prometheus ; extra == 'air' + - pandas>=1.3 ; extra == 'air' + - prometheus-client>=0.7.1 ; extra == 'air' - pandas ; extra == 'air' - - watchfiles ; extra == 'air' - - starlette ; extra == 'air' - - fsspec ; extra == 'air' + - fastapi ; extra == 'air' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'air' + - opentelemetry-sdk>=1.30.0 ; extra == 'air' - requests ; extra == 'air' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'air' - - opentelemetry-sdk>=1.30.0 ; extra == 'air' + - watchfiles ; extra == 'air' + - uvicorn[standard] ; extra == 'air' + - smart-open ; extra == 'air' + - opentelemetry-proto ; extra == 'air' - aiohttp>=3.13.3 ; extra == 'air' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'air' - - numpy>=1.20 ; extra == 'air' - - lz4 ; extra == 'all' - - fastapi ; extra == 'all' + - opencensus ; extra == 'air' + - pyarrow>=9.0.0 ; extra == 'all' + - fsspec ; extra == 'all' + - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all' - tensorboardx>=1.9 ; extra == 'all' - - opencensus ; extra == 'all' - - opentelemetry-exporter-prometheus ; extra == 'all' - - prometheus-client>=0.7.1 ; extra == 'all' + - ormsgpack>=1.7.0 ; extra == 'all' - colorful ; extra == 'all' - - scipy ; extra == 'all' - - pandas>=1.3 ; extra == 'all' - - pyarrow>=9.0.0 ; extra == 'all' - - memray ; sys_platform != 'win32' and extra == 'all' + - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all' + - pyyaml ; extra == 'all' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all' + - starlette ; extra == 'all' - grpcio>=1.42.0 ; extra == 'all' - - grpcio ; extra == 'all' + - numpy>=1.20 ; extra == 'all' - aiohttp-cors ; extra == 'all' - - opentelemetry-proto ; extra == 'all' - - uvicorn[standard] ; extra == 'all' + - memray ; sys_platform != 'win32' and extra == 'all' + - opentelemetry-exporter-prometheus ; extra == 'all' + - pandas>=1.3 ; extra == 'all' + - scipy ; extra == 'all' - celery ; extra == 'all' - - smart-open ; extra == 'all' - - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all' - - pandas ; extra == 'all' + - lz4 ; extra == 'all' + - prometheus-client>=0.7.1 ; extra == 'all' - pyopenssl ; extra == 'all' - - watchfiles ; extra == 'all' - - starlette ; extra == 'all' - - fsspec ; extra == 'all' - - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all' - - ormsgpack>=1.7.0 ; extra == 'all' + - grpcio ; extra == 'all' + - pandas ; extra == 'all' + - fastapi ; extra == 'all' + - gymnasium==1.2.2 ; extra == 'all' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all' + - taskiq ; extra == 'all' + - opentelemetry-sdk>=1.30.0 ; extra == 'all' - requests ; extra == 'all' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all' - - opentelemetry-sdk>=1.30.0 ; extra == 'all' - - gymnasium==1.2.2 ; extra == 'all' - dm-tree ; extra == 'all' - - pyyaml ; extra == 'all' - - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all' + - watchfiles ; extra == 'all' + - smart-open ; extra == 'all' + - uvicorn[standard] ; extra == 'all' + - opentelemetry-proto ; extra == 'all' - aiohttp>=3.13.3 ; extra == 'all' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all' - - numpy>=1.20 ; extra == 'all' - - lz4 ; extra == 'all-cpp' - - fastapi ; extra == 'all-cpp' + - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all' + - opencensus ; extra == 'all' + - pyarrow>=9.0.0 ; extra == 'all-cpp' + - ray-cpp==2.55.1 ; extra == 'all-cpp' + - fsspec ; extra == 'all-cpp' + - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all-cpp' - tensorboardx>=1.9 ; extra == 'all-cpp' - - opencensus ; extra == 'all-cpp' - - opentelemetry-exporter-prometheus ; extra == 'all-cpp' - - prometheus-client>=0.7.1 ; extra == 'all-cpp' + - ormsgpack>=1.7.0 ; extra == 'all-cpp' - colorful ; extra == 'all-cpp' - - scipy ; extra == 'all-cpp' - - pandas>=1.3 ; extra == 'all-cpp' - - pyarrow>=9.0.0 ; extra == 'all-cpp' - - memray ; sys_platform != 'win32' and extra == 'all-cpp' + - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all-cpp' + - pyyaml ; extra == 'all-cpp' + - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all-cpp' + - starlette ; extra == 'all-cpp' - grpcio>=1.42.0 ; extra == 'all-cpp' - - grpcio ; extra == 'all-cpp' + - numpy>=1.20 ; extra == 'all-cpp' - aiohttp-cors ; extra == 'all-cpp' - - opentelemetry-proto ; extra == 'all-cpp' - - uvicorn[standard] ; extra == 'all-cpp' + - memray ; sys_platform != 'win32' and extra == 'all-cpp' + - opentelemetry-exporter-prometheus ; extra == 'all-cpp' + - pandas>=1.3 ; extra == 'all-cpp' + - scipy ; extra == 'all-cpp' - celery ; extra == 'all-cpp' - - smart-open ; extra == 'all-cpp' - - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all-cpp' - - ray-cpp==2.54.1 ; extra == 'all-cpp' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all-cpp' - - pandas ; extra == 'all-cpp' + - lz4 ; extra == 'all-cpp' + - prometheus-client>=0.7.1 ; extra == 'all-cpp' - pyopenssl ; extra == 'all-cpp' - - watchfiles ; extra == 'all-cpp' - - starlette ; extra == 'all-cpp' - - fsspec ; extra == 'all-cpp' - - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all-cpp' - - ormsgpack>=1.7.0 ; extra == 'all-cpp' + - grpcio ; extra == 'all-cpp' + - pandas ; extra == 'all-cpp' + - fastapi ; extra == 'all-cpp' + - gymnasium==1.2.2 ; extra == 'all-cpp' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all-cpp' + - taskiq ; extra == 'all-cpp' + - opentelemetry-sdk>=1.30.0 ; extra == 'all-cpp' - requests ; extra == 'all-cpp' - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all-cpp' - - opentelemetry-sdk>=1.30.0 ; extra == 'all-cpp' - - gymnasium==1.2.2 ; extra == 'all-cpp' - dm-tree ; extra == 'all-cpp' - - pyyaml ; extra == 'all-cpp' - - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all-cpp' + - watchfiles ; extra == 'all-cpp' + - smart-open ; extra == 'all-cpp' + - uvicorn[standard] ; extra == 'all-cpp' + - opentelemetry-proto ; extra == 'all-cpp' - aiohttp>=3.13.3 ; extra == 'all-cpp' - - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all-cpp' - - numpy>=1.20 ; extra == 'all-cpp' - - nixl>=0.6.1 ; extra == 'llm' - - fastapi ; extra == 'llm' - - hf-transfer ; extra == 'llm' - - opencensus ; extra == 'llm' - - opentelemetry-exporter-prometheus ; extra == 'llm' - - prometheus-client>=0.7.1 ; extra == 'llm' - - colorful ; extra == 'llm' - - pandas>=1.3 ; extra == 'llm' + - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all-cpp' + - opencensus ; extra == 'all-cpp' - pyarrow>=9.0.0 ; extra == 'llm' - - ninja ; extra == 'llm' - - grpcio>=1.42.0 ; extra == 'llm' - - aiohttp-cors ; extra == 'llm' - - opentelemetry-proto ; extra == 'llm' - - uvicorn[standard] ; extra == 'llm' - - smart-open ; extra == 'llm' + - fsspec ; extra == 'llm' - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'llm' - jsonref>=1.1.0 ; extra == 'llm' - - vllm[audio]>=0.15.0 ; extra == 'llm' - - meson ; extra == 'llm' - - virtualenv>=20.0.24,!=20.21.1 ; extra == 'llm' - - async-timeout ; python_full_version < '3.11' and extra == 'llm' - - watchfiles ; extra == 'llm' + - colorful ; extra == 'llm' - starlette ; extra == 'llm' - - fsspec ; extra == 'llm' - - requests ; extra == 'llm' - - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'llm' - - opentelemetry-sdk>=1.30.0 ; extra == 'llm' - - aiohttp>=3.13.3 ; extra == 'llm' - - transformers>=4.57.3 ; extra == 'llm' - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'llm' - - pybind11 ; extra == 'llm' - - typer ; extra == 'llm' + - grpcio>=1.42.0 ; extra == 'llm' + - vllm[audio]>=0.18.0 ; extra == 'llm' - numpy>=1.20 ; extra == 'llm' + - aiohttp-cors ; extra == 'llm' + - opentelemetry-exporter-prometheus ; extra == 'llm' + - pandas>=1.3 ; extra == 'llm' + - typer ; extra == 'llm' + - async-timeout ; python_full_version < '3.11' and extra == 'llm' + - prometheus-client>=0.7.1 ; extra == 'llm' + - hf-transfer ; extra == 'llm' + - fastapi ; extra == 'llm' + - nixl>=1.0.0 ; extra == 'llm' + - virtualenv>=20.0.24,!=20.21.1 ; extra == 'llm' - jsonschema ; extra == 'llm' + - meson ; extra == 'llm' + - opentelemetry-sdk>=1.30.0 ; extra == 'llm' + - requests ; extra == 'llm' + - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'llm' + - watchfiles ; extra == 'llm' + - uvicorn[standard] ; extra == 'llm' + - smart-open ; extra == 'llm' + - ninja ; extra == 'llm' + - opentelemetry-proto ; extra == 'llm' + - pybind11 ; extra == 'llm' + - aiohttp>=3.13.3 ; extra == 'llm' + - opencensus ; extra == 'llm' requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 @@ -6838,10 +6740,10 @@ packages: - rpds-py>=0.7.0 - typing-extensions>=4.4.0 ; python_full_version < '3.13' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl name: requests - version: 2.33.1 - sha256: 4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a + version: 2.34.2 + sha256: 2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 requires_dist: - charset-normalizer>=2,<4 - idna>=2.5,<4 @@ -6866,15 +6768,6 @@ packages: requires_dist: - requests>=2.0.1,<3.0.0 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' -- pypi: https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl - name: rich - version: 14.3.3 - sha256: 793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d - requires_dist: - - ipywidgets>=7.5.1,<9 ; extra == 'jupyter' - - markdown-it-py>=2.2.0 - - pygments>=2.13.0,<3.0.0 - requires_python: '>=3.8.0' - pypi: https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl name: rich version: 15.0.0 @@ -6988,55 +6881,10 @@ packages: version: 1.17.0 sha256: 4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' -- pypi: https://files.pythonhosted.org/packages/01/b1/11c03e05bd2a2da590c1b77c8455f40eb505888a2683c4e41b487d79568c/snowflake_connector_python-4.4.0.tar.gz - name: snowflake-connector-python - version: 4.4.0 - sha256: 648f49029d699591af0f253e81c5bf60efc4411c7b0149ef074a59a038210a3b - requires_dist: - - asn1crypto>0.24.0,<2.0.0 - - cryptography>=46.0.5 - - pyopenssl>=24.0.0 - - pyjwt>=2.10.1,<3.0.0 - - pytz - - requests>=2.32.4,<3.0.0 - - packaging - - charset-normalizer>=2,<4 - - idna>=3.7,<4 - - urllib3>=1.26.5,<2.0.0 ; python_full_version < '3.10' - - certifi>=2024.7.4 - - typing-extensions>=4.3,<5 - - filelock>=3.5,<4 - - sortedcontainers>=2.4.0 - - platformdirs>=2.6.0,<5.0.0 - - tomlkit - - boto3>=1.24 - - botocore>=1.24 - - boto3>=1.24 ; extra == 'boto' - - botocore>=1.24 ; extra == 'boto' - - cython ; extra == 'development' - - coverage ; extra == 'development' - - mitmproxy>=12.0.0 ; python_full_version >= '3.12' and extra == 'development' - - more-itertools ; extra == 'development' - - numpy<=2.4.3 ; extra == 'development' - - pendulum!=2.1.1 ; extra == 'development' - - pexpect ; extra == 'development' - - pytest<7.5.0 ; extra == 'development' - - pytest-asyncio ; extra == 'development' - - pytest-cov ; extra == 'development' - - pytest-rerunfailures<16.0 ; extra == 'development' - - pytest-timeout ; extra == 'development' - - pytest-xdist ; extra == 'development' - - pytzdata ; extra == 'development' - - responses ; extra == 'development' - - pandas>=1.0.0,<3.0.0 ; python_full_version < '3.13' and extra == 'pandas' - - pandas>=2.1.2,<3.0.0 ; python_full_version >= '3.13' and extra == 'pandas' - - pyarrow>=14.0.1 ; extra == 'pandas' - - keyring>=23.1.0,<26.0.0 ; extra == 'secure-local-storage' - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/a7/31/0d6a1da486dc13263f43cdad0bbacdd041616c32220b9bcbff79160bdcc1/snowflake_connector_python-4.4.0-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/19/e9/3a21c4c86abebc81d378c2b688bd8ca4a39d4ba69057b98c0ce746360d09/snowflake_connector_python-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl name: snowflake-connector-python - version: 4.4.0 - sha256: fb628d5ea1999e23bfbaabce4125eb44d56605ca5634b8b1d6092ab22d555598 + version: 4.5.0 + sha256: 206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db requires_dist: - asn1crypto>0.24.0,<2.0.0 - cryptography>=46.0.5 @@ -7078,10 +6926,10 @@ packages: - pyarrow>=14.0.1 ; extra == 'pandas' - keyring>=23.1.0,<26.0.0 ; extra == 'secure-local-storage' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/ab/2f/4e1d2c1f93fa0009a4f34ba5168060e719cb1d9fef319fb0970f1e0bd8d6/snowflake_connector_python-4.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/99/e7/f0ab30895256c4d8e0b6e33857150d10d465bdfaef3f0ed471ba83b1444f/snowflake_connector_python-4.5.0.tar.gz name: snowflake-connector-python - version: 4.4.0 - sha256: 9b1a28f843c1c0b582db7854789525d0c8aac4ea5c56e31113684e38220d0af9 + version: 4.5.0 + sha256: 376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 requires_dist: - asn1crypto>0.24.0,<2.0.0 - cryptography>=46.0.5 @@ -7127,10 +6975,10 @@ packages: name: sortedcontainers version: 2.4.0 sha256: a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 -- pypi: https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/2e/84/efc7c0bf3a1c5eef81d397f6fddac855becdbb11cb38ff957888603014a7/sqlalchemy-2.0.49-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: sqlalchemy - version: 2.0.48 - sha256: a66fe406437dd65cacd96a72689a3aaaecaebbcd62d81c5ac1c0fdbeac835096 + version: 2.0.49 + sha256: 685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 requires_dist: - importlib-metadata ; python_full_version < '3.8' - greenlet>=1 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' @@ -7165,10 +7013,10 @@ packages: - typing-extensions!=3.10.0.1 ; extra == 'aiosqlite' - sqlcipher3-binary ; extra == 'sqlcipher' requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/5c/ad/6c4395649a212a6c603a72c5b9ab5dce3135a1546cfdffa3c427e71fd535/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/55/33/bf28f618c0a9597d14e0b9ee7d1e0622faff738d44fe986ee287cdf1b8d0/sqlalchemy-2.0.49-cp314-cp314-macosx_11_0_arm64.whl name: sqlalchemy - version: 2.0.48 - sha256: 10853a53a4a00417a00913d270dddda75815fcb80675874285f41051c094d7dd + version: 2.0.49 + sha256: 233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e requires_dist: - importlib-metadata ; python_full_version < '3.8' - greenlet>=1 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' @@ -7203,10 +7051,10 @@ packages: - typing-extensions!=3.10.0.1 ; extra == 'aiosqlite' - sqlcipher3-binary ; extra == 'sqlcipher' requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/9a/67/1235676e93dd3b742a4a8eddfae49eea46c85e3eed29f0da446a8dd57500/sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: sqlalchemy - version: 2.0.48 - sha256: 7001dc9d5f6bb4deb756d5928eaefe1930f6f4179da3924cbd95ee0e9f4dce89 + version: 2.0.49 + sha256: 6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 requires_dist: - importlib-metadata ; python_full_version < '3.8' - greenlet>=1 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' @@ -7241,10 +7089,10 @@ packages: - typing-extensions!=3.10.0.1 ; extra == 'aiosqlite' - sqlcipher3-binary ; extra == 'sqlcipher' requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/f2/5e/327428a034407651a048f5e624361adf3f9fbac9d0fa98e981e9c6ff2f5e/sqlalchemy-2.0.48-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl name: sqlalchemy - version: 2.0.48 - sha256: 426c5ca86415d9b8945c7073597e10de9644802e2ff502b8e1f11a7a2642856b + version: 2.0.49 + sha256: 42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f requires_dist: - importlib-metadata ; python_full_version < '3.8' - greenlet>=1 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' @@ -7279,10 +7127,10 @@ packages: - typing-extensions!=3.10.0.1 ; extra == 'aiosqlite' - sqlcipher3-binary ; extra == 'sqlcipher' requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/f7/b3/f437eaa1cf028bb3c927172c7272366393e73ccd104dcf5b6963f4ab5318/sqlalchemy-2.0.48-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl name: sqlalchemy - version: 2.0.48 - sha256: e2d0d88686e3d35a76f3e15a34e8c12d73fc94c1dea1cd55782e695cc14086dd + version: 2.0.49 + sha256: ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 requires_dist: - importlib-metadata ; python_full_version < '3.8' - greenlet>=1 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' @@ -7317,13 +7165,14 @@ packages: - typing-extensions!=3.10.0.1 ; extra == 'aiosqlite' - sqlcipher3-binary ; extra == 'sqlcipher' requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/69/13/f8c5dd59b119feee28cce53f23361d955cd46d0612697d49db0070f41ea9/sqlglot-30.2.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl name: sqlglot - version: 30.2.1 - sha256: f23d9ee9427ef9d20df15f9b0ffa57d9eb45e52b012219a349d1e6b50ed926d1 + version: 30.8.0 + sha256: af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 requires_dist: - duckdb>=0.6 ; extra == 'dev' - - sqlglot-mypy>=1.19.1.post1 ; extra == 'dev' + - sqlglot-mypy>=1.20.0.post6 ; python_full_version >= '3.10' and extra == 'dev' + - mypy ; python_full_version < '3.10' and extra == 'dev' - setuptools-scm ; extra == 'dev' - pandas ; extra == 'dev' - pandas-stubs ; extra == 'dev' @@ -7336,9 +7185,9 @@ packages: - types-pytz ; extra == 'dev' - typing-extensions ; extra == 'dev' - pyperf ; extra == 'dev' - - sqlglotc==30.2.1 ; extra == 'c' + - sqlglotc==30.8.0 ; python_full_version >= '3.10' and extra == 'c' - sqlglotrs==0.13.0 ; extra == 'rs' - - sqlglotc==30.2.1 ; extra == 'rs' + - sqlglotc==30.8.0 ; python_full_version >= '3.10' and extra == 'rs' requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl name: starlette @@ -7473,10 +7322,10 @@ packages: version: 2.4.1 sha256: 0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl name: tomlkit - version: 0.14.0 - sha256: 592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 + version: 0.15.0 + sha256: 4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl name: toolz @@ -7500,10 +7349,10 @@ packages: - requests ; extra == 'telegram' - ipywidgets>=6 ; extra == 'notebook' requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/91/88/b55b3117287a8540b76dbdd87733808d4d01c8067a3b339408c250bb3600/typeguard-4.5.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/5b/29/74eeb4d3f3ae61ca096b018ad486b3b3c74b17bec09ab4edab721cbefec3/typeguard-4.5.2-py3-none-any.whl name: typeguard - version: 4.5.1 - sha256: 44d2bf329d49a244110a090b55f5f91aa82d9a9834ebfd30bcc73651e4a8cc40 + version: 4.5.2 + sha256: fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf requires_dist: - importlib-metadata>=3.6 ; python_full_version < '3.10' - typing-extensions>=4.14.0 @@ -7518,11 +7367,11 @@ packages: - rich>=13.8.0 - annotated-doc>=0.0.2 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/8b/fa/4f4d3bfca9ef6dd17d69ed18b96564c53b32d3ce774132308d0bee849f10/types_pymysql-1.1.0.20251220-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/b1/5a/db02b5e6633fbe49eaf4e3194bc64ec031e6436a0cfcc610cbda4f1b6a24/types_pymysql-1.1.0.20260518-py3-none-any.whl name: types-pymysql - version: 1.1.0.20251220 - sha256: fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 - requires_python: '>=3.9' + version: 1.1.0.20260518 + sha256: cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl name: typing-extensions version: 4.15.0 @@ -7535,10 +7384,10 @@ packages: requires_dist: - typing-extensions>=4.12.0 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl name: tzdata - version: '2025.3' - sha256: 06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 + version: '2026.2' + sha256: bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7 requires_python: '>=2' - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c @@ -7547,17 +7396,17 @@ packages: purls: [] size: 119135 timestamp: 1767016325805 -- pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl name: urllib3 - version: 2.6.3 - sha256: bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 + version: 2.7.0 + sha256: 9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 requires_dist: - brotli>=1.2.0 ; platform_python_implementation == 'CPython' and extra == 'brotli' - brotlicffi>=1.2.0.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' - h2>=4,<5 ; extra == 'h2' - pysocks>=1.5.6,!=1.5.7,<2.0 ; extra == 'socks' - backports-zstd>=1.0.0 ; python_full_version < '3.14' and extra == 'zstd' - requires_python: '>=3.9' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl name: uvicorn version: 0.34.0 @@ -7684,48 +7533,48 @@ packages: - sphinxcontrib-asyncio~=0.3.0 ; extra == 'docs' - sphinx-rtd-theme~=0.5.2 ; extra == 'docs' requires_python: '>=3.8.1' -- pypi: https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/02/c8/79eee650c62d2c186598489814468e389b5def0ebe755399ff645b35b1b2/watchfiles-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl name: watchfiles - version: 1.1.1 - sha256: 39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd + version: 1.2.0 + sha256: b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 requires_dist: - anyio>=3.0.0 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/0d/5a/2bf22ecb24916983bf1cc0095e7dea2741d14d6553b0d6a2ac8bc96eca93/watchfiles-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl name: watchfiles - version: 1.1.1 - sha256: eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c + version: 1.2.0 + sha256: bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 requires_dist: - anyio>=3.0.0 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/55/70/dea1f6a0e76607841a60fb51af150e70124864673f61704abb62b90cdcc7/watchfiles-1.2.0-cp310-cp310-macosx_11_0_arm64.whl name: watchfiles - version: 1.1.1 - sha256: 03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 + version: 1.2.0 + sha256: c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 requires_dist: - anyio>=3.0.0 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl name: watchfiles - version: 1.1.1 - sha256: 5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 + version: 1.2.0 + sha256: 054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 requires_dist: - anyio>=3.0.0 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl name: watchfiles - version: 1.1.1 - sha256: d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 + version: 1.2.0 + sha256: 9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 requires_dist: - anyio>=3.0.0 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl name: watchfiles - version: 1.1.1 - sha256: 544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab + version: 1.2.0 + sha256: b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 requires_dist: - anyio>=3.0.0 - requires_python: '>=3.9' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl name: websockets version: '16.0' @@ -7810,37 +7659,37 @@ packages: version: 3.7.0 sha256: 12c249621af6d50a05d9f10af894b404157b15819878e18f75fcbb0213a77d07 requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/50/12/95a1d33f04a79c402664070d43b8b9f72dc18914e135b345b611b0b1f8cc/yarl-1.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/02/ad/0b9cc9f38a7324a7eb1d80f834eaa5283d17e9271bbda3186e598dddaeac/yarl-1.24.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: yarl - version: 1.23.0 - sha256: 31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 + version: 1.24.2 + sha256: f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 requires_dist: - idna>=2.0 - multidict>=4.0 - propcache>=0.2.1 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/68/2e/c5a2234238f8ce37a8312b52801ee74117f576b1539eec8404a480434acc/yarl-1.23.0-cp310-cp310-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/48/41/7daafb32dd7562bf45b1ce56562e7e1a9146f6479b6456873eb8a3413c40/yarl-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl name: yarl - version: 1.23.0 - sha256: 2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 + version: 1.24.2 + sha256: 7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 requires_dist: - idna>=2.0 - multidict>=4.0 - propcache>=0.2.1 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/7a/35/5a553687c5793df5429cd1db45909d4f3af7eee90014888c208d086a44f0/yarl-1.23.0-cp310-cp310-macosx_10_9_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/a8/8f/7b3ec212f1ea0683f55f978e3246bc313c38818664edfc97a9f349a4901e/yarl-1.24.2-cp310-cp310-macosx_11_0_arm64.whl name: yarl - version: 1.23.0 - sha256: e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d + version: 1.24.2 + sha256: 15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 requires_dist: - idna>=2.0 - multidict>=4.0 - propcache>=0.2.1 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl name: zipp - version: 3.23.0 - sha256: 071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e + version: 4.1.0 + sha256: 25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f requires_dist: - pytest>=6,!=8.1.* ; extra == 'test' - jaraco-itertools ; extra == 'test' @@ -7855,12 +7704,12 @@ packages: - furo ; extra == 'doc' - sphinx-lint ; extra == 'doc' - jaraco-tidelift>=1.4 ; extra == 'doc' - - pytest-checkdocs>=2.4 ; extra == 'check' + - pytest-checkdocs>=2.14 ; extra == 'check' - pytest-ruff>=0.2.1 ; sys_platform != 'cygwin' and extra == 'check' - pytest-cov ; extra == 'cover' - - pytest-enabler>=2.2 ; extra == 'enabler' - - pytest-mypy ; extra == 'type' - requires_python: '>=3.9' + - pytest-enabler>=3.4 ; extra == 'enabler' + - pytest-mypy>=1.0.1 ; platform_python_implementation != 'PyPy' and extra == 'type' + requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 diff --git a/pyproject.toml b/pyproject.toml index 9f25f82ad0e..daaecc11659 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -133,6 +133,7 @@ snowflake = [ ] sqlite_vec = ["sqlite-vec==v0.1.6"] mcp = ["fastapi_mcp"] +mlflow = ["mlflow>=2.10.0"] dbt = ["dbt-artifacts-parser"] @@ -154,7 +155,7 @@ test = [ ] ci = [ - "feast[test, aws, azure, cassandra, clickhouse, couchbase, delta, docling, duckdb, elasticsearch, faiss, gcp, ge, go, grpcio, hazelcast, hbase, ibis, image, k8s, mcp, milvus, mongodb, mssql, mysql, openlineage, opentelemetry, oracle, spark, trino, postgres, pytorch, qdrant, rag, ray, redis, singlestore, snowflake, sqlite_vec]", + "feast[test, aws, azure, cassandra, clickhouse, couchbase, delta, docling, duckdb, elasticsearch, faiss, gcp, ge, go, grpcio, hazelcast, hbase, ibis, image, k8s, mcp, milvus, mlflow, mongodb, mssql, mysql, openlineage, opentelemetry, oracle, spark, trino, postgres, pytorch, qdrant, rag, ray, redis, singlestore, snowflake, sqlite_vec]", "build", "virtualenv==20.23.0", "dbt-artifacts-parser", diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index 27009a08ff7..9a0736ff6cd 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -14,6 +14,7 @@ import asyncio import copy import itertools +import logging import os import time import warnings @@ -104,6 +105,8 @@ _track_materialization = None # Lazy-loaded on first materialization call _track_materialization_loaded = False +_logger = logging.getLogger(__name__) + def _get_track_materialization(): """Lazy-import feast.metrics only when materialization tracking is needed. @@ -126,6 +129,8 @@ def _get_track_materialization(): warnings.simplefilter("once", DeprecationWarning) +_UNSET = object() + class FeatureStore: """ @@ -193,6 +198,132 @@ def __init__( # Initialize feature service cache for performance optimization self._feature_service_cache = {} + # Cache for _resolve_feature_service_name lookups + self._fs_name_cache: Dict[frozenset, Optional[str]] = {} + self._fs_name_index: Dict[frozenset, str] = {} + self._fs_name_index_ts: float = -self._FS_NAME_INDEX_TTL_SECONDS + + self._mlflow_client: Any = _UNSET + + def _init_mlflow(self) -> Optional[Any]: + """Bootstrap MLflow integration on first access. + + Checks the config, imports the module, and creates the integration + client. Returns the client or ``None`` if MLflow is disabled or + unavailable. + """ + try: + mlflow_cfg = getattr(self.config, "mlflow", None) + if mlflow_cfg is None or not mlflow_cfg.enabled: + return None + from feast.mlflow import _register_store + + _register_store(self) + + from feast.mlflow_integration.client import FeastMlflowClient + + return FeastMlflowClient(self) + except ImportError: + return None + except Exception as e: + warnings.warn(f"Failed to configure MLflow tracking: {e}") + return None + + @property + def mlflow(self) -> Any: + """Access the Feast–MLflow integration client. + + Lazily initializes on first access. Returns ``None`` when MLflow + integration is not enabled, allowing callers to guard with + ``if store.mlflow:``. + """ + if self._mlflow_client is _UNSET: + self._mlflow_client = self._init_mlflow() + return self._mlflow_client + + @staticmethod + def _count_entities(entity_rows: Any) -> int: + """Count entities from either a list or columnar mapping.""" + if isinstance(entity_rows, list): + return len(entity_rows) + if isinstance(entity_rows, Mapping): + try: + _first_col = next(iter(entity_rows.values())) + if isinstance(_first_col, RepeatedValue): + return len(_first_col.val) + return len(_first_col) + except Exception: + return 0 + return 0 + + _FS_NAME_INDEX_TTL_SECONDS = 300 + + def _rebuild_fs_name_index(self) -> None: + """Rebuild the {frozenset(refs) → service_name} index from the registry.""" + index: Dict[frozenset, str] = {} + for fs in self.registry.list_feature_services(self.project, allow_cache=True): + fs_refs = frozenset( + f"{p.name_to_use()}:{f.name}" + for p in fs.feature_view_projections + for f in p.features + ) + index[fs_refs] = fs.name + self._fs_name_index = index + self._fs_name_cache = {} + self._fs_name_index_ts = time.monotonic() + + def _resolve_feature_service_name(self, feature_refs: List[str]) -> Optional[str]: + """Find the best-matching feature service for the given feature refs. + + Resolution: exact match wins immediately; otherwise the smallest + superset (fewest extra features) is returned. The full index is + rebuilt from the registry every _FS_NAME_INDEX_TTL_SECONDS and + per-query results are cached for O(1) repeated lookups. + """ + try: + now = time.monotonic() + if (now - self._fs_name_index_ts) >= self._FS_NAME_INDEX_TTL_SECONDS: + self._rebuild_fs_name_index() + + ref_key = frozenset(feature_refs) + if ref_key in self._fs_name_cache: + return self._fs_name_cache[ref_key] + + if ref_key in self._fs_name_index: + self._fs_name_cache[ref_key] = self._fs_name_index[ref_key] + return self._fs_name_index[ref_key] + + best_match = None + best_extra = float("inf") + for fs_refs, fs_name in self._fs_name_index.items(): + if ref_key.issubset(fs_refs): + extra = len(fs_refs) - len(ref_key) + if extra < best_extra: + best_match = fs_name + best_extra = extra + + self._fs_name_cache[ref_key] = best_match + return best_match + except Exception as e: + _logger.debug("Failed to resolve feature service name: %s", e) + return None + + def _log_entity_df_metadata(self, entity_df, start_date=None, end_date=None): + """Log lightweight entity_df metadata to MLflow.""" + try: + if self.mlflow is not None: + self.mlflow.log_entity_df_metadata(entity_df, start_date, end_date) + except Exception as e: + _logger.debug("Failed to log entity_df metadata to MLflow: %s", e) + + def _log_entity_df_artifact(self, entity_df): + """Upload entity DataFrame as a parquet artifact to MLflow.""" + try: + if self.mlflow is not None: + self.mlflow.log_entity_df_artifact(entity_df) + except Exception as e: + _logger.debug("Failed to log entity_df artifact to MLflow: %s", e) + def _init_openlineage_emitter(self) -> Optional[Any]: """Initialize OpenLineage emitter if configured and enabled.""" try: @@ -294,6 +425,9 @@ def _clear_feature_service_cache(self): self._feature_service_cache.clear() if hasattr(self.registry, "_feature_service_cache"): getattr(self.registry, "_feature_service_cache").clear() + self._fs_name_cache.clear() + self._fs_name_index.clear() + self._fs_name_index_ts = -self._FS_NAME_INDEX_TTL_SECONDS def refresh_registry(self): """Fetches and caches a copy of the feature registry in memory. @@ -1021,6 +1155,35 @@ def _apply_diffs( # Emit OpenLineage events for applied objects self._emit_openlineage_apply_diffs(registry_diff) + # Emit MLflow events for applied objects (Phase 7) + self._mlflow_log_apply_diffs(registry_diff) + + def _mlflow_log_apply_diffs(self, registry_diff: RegistryDiff): + """Log apply operation to MLflow ops experiment.""" + try: + if self.mlflow is None or not self.config.mlflow.log_operations: + return + from feast.diff.property_diff import TransitionType + + objects: List[Any] = [] + transition_types: Dict[str, str] = {} + for feast_object_diff in registry_diff.feast_object_diffs: + obj = ( + feast_object_diff.new_feast_object + or feast_object_diff.current_feast_object + ) + if obj is None: + continue + tt = feast_object_diff.transition_type + if tt == TransitionType.UNCHANGED: + continue + objects.append(obj) + transition_types[feast_object_diff.name] = tt.name + if objects: + self._mlflow_log_apply(objects, transition_types=transition_types) + except Exception as e: + _logger.debug("MLflow apply logging failed: %s", e) + def _emit_openlineage_apply_diffs(self, registry_diff: RegistryDiff): """Emit OpenLineage events for objects applied via diffs.""" if self.openlineage_emitter is None: @@ -1316,6 +1479,25 @@ def apply( # Emit OpenLineage events for applied objects self._emit_openlineage_apply(objects) + # Emit MLflow events for applied objects (Phase 7) + self._mlflow_log_apply(objects) + + def _mlflow_log_apply( + self, + objects: List[Any], + transition_types: Optional[Dict[str, str]] = None, + ): + """Log applied objects to MLflow ops experiment.""" + try: + if self.mlflow is None or not self.config.mlflow.log_operations: + return + self.mlflow.log_apply( + changed_objects=objects, + transition_types=transition_types, + ) + except Exception as e: + _logger.debug("MLflow apply logging failed: %s", e) + def _emit_openlineage_apply(self, objects: List[Any]): """Emit OpenLineage events for applied objects.""" if self.openlineage_emitter is None: @@ -1482,6 +1664,8 @@ def get_historical_features( if end_date is not None: kwargs["end_date"] = end_date + _retrieval_start = time.monotonic() + job = provider.get_historical_features( self.config, feature_views, @@ -1493,6 +1677,40 @@ def get_historical_features( **kwargs, ) + # Auto-log to MLflow if configured + try: + if self.mlflow is not None and self.config.mlflow.auto_log: + _duration = time.monotonic() - _retrieval_start + if isinstance(entity_df, pd.DataFrame): + _entity_count = len(entity_df) + elif isinstance(entity_df, str): + _entity_count = -1 + else: + _entity_count = 0 + _fs = features if isinstance(features, FeatureService) else None + _fs_name = ( + features.name + if isinstance(features, FeatureService) + else self._resolve_feature_service_name(_feature_refs) + ) + self.mlflow.log_feature_retrieval( + feature_refs=_feature_refs, + entity_count=_entity_count, + duration_seconds=_duration, + retrieval_type="historical", + feature_service=_fs, + feature_service_name=_fs_name, + ) + + self._log_entity_df_metadata( + entity_df, start_date=start_date, end_date=end_date + ) + + if self.config.mlflow.auto_log_entity_df: + self._log_entity_df_artifact(entity_df) + except Exception as e: + _logger.debug("MLflow auto-log failed for historical retrieval: %s", e) + return job def create_saved_dataset( @@ -1759,6 +1977,7 @@ def materialize_incremental( feature_views_to_materialize, None, end_date ) + _mat_start = time.monotonic() try: # TODO paging large loads for feature_view in feature_views_to_materialize: @@ -1854,6 +2073,16 @@ def tqdm_builder(length): self._emit_openlineage_materialize_complete( ol_run_id, feature_views_to_materialize ) + + # Emit MLflow event for materialization (Phase 7) + _mat_duration = time.monotonic() - _mat_start + self._mlflow_log_materialize( + feature_views_to_materialize, + None, + end_date, + _mat_duration, + incremental=True, + ) except Exception as e: # Emit OpenLineage FAIL event self._emit_openlineage_materialize_fail(ol_run_id, str(e)) @@ -1920,6 +2149,7 @@ def materialize( feature_views_to_materialize, start_date, end_date ) + _mat_start = time.monotonic() try: # TODO paging large loads for feature_view in feature_views_to_materialize: @@ -1982,11 +2212,44 @@ def tqdm_builder(length): self._emit_openlineage_materialize_complete( ol_run_id, feature_views_to_materialize ) + + # Emit MLflow event for materialization (Phase 7) + _mat_duration = time.monotonic() - _mat_start + self._mlflow_log_materialize( + feature_views_to_materialize, + start_date, + end_date, + _mat_duration, + incremental=False, + ) except Exception as e: # Emit OpenLineage FAIL event self._emit_openlineage_materialize_fail(ol_run_id, str(e)) raise + def _mlflow_log_materialize( + self, + feature_views: List[Any], + start_date: Optional[datetime], + end_date: datetime, + duration_seconds: float, + incremental: bool = False, + ): + """Log materialization to MLflow ops experiment.""" + try: + if self.mlflow is None or not self.config.mlflow.log_operations: + return + fv_names = [getattr(fv, "name", str(fv)) for fv in feature_views] + self.mlflow.log_materialize( + feature_view_names=fv_names, + start_date=start_date, + end_date=end_date, + duration_seconds=duration_seconds, + incremental=incremental, + ) + except Exception as e: + _logger.debug("MLflow materialize logging failed: %s", e) + def _emit_openlineage_materialize_start( self, feature_views: List[Any], @@ -2620,6 +2883,8 @@ def get_online_features( """ provider = self._get_provider() + _retrieval_start = time.monotonic() + response = provider.get_online_features( config=self.config, features=features, @@ -2630,6 +2895,31 @@ def get_online_features( include_feature_view_version_metadata=include_feature_view_version_metadata, ) + # Auto-log to MLflow if configured + try: + if self.mlflow is not None and self.config.mlflow.auto_log: + _duration = time.monotonic() - _retrieval_start + _feature_refs = utils._get_features( + self.registry, self.project, features, allow_cache=True + ) + _entity_count = self._count_entities(entity_rows) + _fs = features if isinstance(features, FeatureService) else None + _fs_name = ( + features.name + if isinstance(features, FeatureService) + else self._resolve_feature_service_name(_feature_refs) + ) + self.mlflow.log_feature_retrieval( + feature_refs=_feature_refs, + entity_count=_entity_count, + duration_seconds=_duration, + retrieval_type="online", + feature_service=_fs, + feature_service_name=_fs_name, + ) + except Exception as e: + _logger.debug("MLflow auto-log failed for online retrieval: %s", e) + return response async def get_online_features_async( @@ -2670,7 +2960,9 @@ async def get_online_features_async( """ provider = self._get_provider() - return await provider.get_online_features_async( + _retrieval_start = time.monotonic() + + response = await provider.get_online_features_async( config=self.config, features=features, entity_rows=entity_rows, @@ -2680,6 +2972,53 @@ async def get_online_features_async( include_feature_view_version_metadata=include_feature_view_version_metadata, ) + try: + if self.mlflow is not None and self.config.mlflow.auto_log: + _duration = time.monotonic() - _retrieval_start + _mlflow_client = self.mlflow + _registry = self.registry + _project = self.project + + def _log_sync(): + try: + _feature_refs = utils._get_features( + _registry, _project, features, allow_cache=True + ) + _entity_count = self._count_entities(entity_rows) + _fs = features if isinstance(features, FeatureService) else None + _fs_name = ( + features.name + if isinstance(features, FeatureService) + else self._resolve_feature_service_name(_feature_refs) + ) + _mlflow_client.log_feature_retrieval( + feature_refs=_feature_refs, + entity_count=_entity_count, + duration_seconds=_duration, + retrieval_type="online", + feature_service=_fs, + feature_service_name=_fs_name, + ) + except Exception as exc: + _logger.debug( + "MLflow auto-log failed for async online retrieval: %s", + exc, + ) + + def _on_done(fut): + if not fut.cancelled() and fut.exception() is not None: + _logger.debug( + "MLflow auto-log executor failed: %s", fut.exception() + ) + + loop = asyncio.get_running_loop() + fut = loop.run_in_executor(None, _log_sync) + fut.add_done_callback(_on_done) + except Exception as e: + _logger.debug("MLflow auto-log failed for online retrieval: %s", e) + + return response + def retrieve_online_documents( self, query: Union[str, List[float]], diff --git a/sdk/python/feast/mlflow.py b/sdk/python/feast/mlflow.py new file mode 100644 index 00000000000..f6cc359ea8b --- /dev/null +++ b/sdk/python/feast/mlflow.py @@ -0,0 +1,139 @@ +""" +``feast.mlflow`` — drop-in replacement for ``import mlflow`` with Feast superpowers. + +Any function or attribute available on the ``mlflow`` module can be accessed +via ``feast.mlflow.*``. A subset of calls are **Feast-enhanced** with +automatic tagging, lineage tracking, and feature resolution: + +- ``start_run()`` — auto-tags runs with ``feast.project`` +- ``log_model()`` — auto-saves ``feast_features.json`` +- ``register_model()`` — auto-tags model versions with ``feast.feature_service`` +- ``load_model()`` — auto-links prediction runs to training runs +- ``resolve_features()`` — Feast-only: model URI → feature service name +- ``get_training_entity_df()`` — Feast-only: recover training entity data + +All other calls (``log_params``, ``log_metrics``, ``set_tag``, +``log_artifact``, ``MlflowClient``, etc.) pass through to the raw +``mlflow`` module unchanged. + +**Store resolution order** (first match wins): + +1. Explicit ``feast.mlflow.init(store)`` call +2. Most recently created ``FeatureStore`` (auto-registered) +3. ``FeatureStore(".")`` from the current working directory +""" + +from __future__ import annotations + +import logging +from typing import TYPE_CHECKING, Any, Optional + +if TYPE_CHECKING: + from feast import FeatureStore + +_logger = logging.getLogger(__name__) + +_MISSING = object() + +_client: Optional[Any] = None +_registered_store: Optional["FeatureStore"] = None + + +def _register_store(store: "FeatureStore") -> None: + """Called by ``FeatureStore.__init__`` to auto-register itself. + + This is an internal API — end users should call :func:`init` instead. + """ + global _registered_store + _registered_store = store + + +def _build_client() -> Any: + """Create a ``FeastMlflowClient`` using the best available store.""" + from feast.mlflow_integration.client import FeastMlflowClient + + store = _registered_store + if store is None: + try: + from feast import FeatureStore + + store = FeatureStore(".") + except Exception as exc: + raise RuntimeError( + "feast.mlflow could not auto-discover a FeatureStore. " + "Either call feast.mlflow.init(store), create a FeatureStore " + "before using feast.mlflow, or ensure feature_store.yaml " + "exists in the current directory." + ) from exc + + mlflow_cfg = getattr(store.config, "mlflow", None) + if mlflow_cfg is None or not mlflow_cfg.enabled: + raise RuntimeError( + "MLflow integration is not enabled. " + "Set mlflow.enabled=true in feature_store.yaml, or call " + "feast.mlflow.init(store) with a store whose config has " + "mlflow.enabled=true." + ) + + try: + return FeastMlflowClient(store) + except ImportError: + raise ImportError( + "mlflow package is not installed. " + "Install it with: pip install feast[mlflow]" + ) + + +def _ensure_client() -> Any: + """Return the cached client, creating it on first call.""" + global _client + if _client is None: + _client = _build_client() + return _client + + +def init(store: "FeatureStore") -> None: + """Bind ``feast.mlflow`` to a specific :class:`~feast.FeatureStore`. + + Call this once at the start of a notebook or script. All subsequent + ``feast.mlflow.*`` calls will use this store's MLflow configuration. + + This is **optional** — if you skip it, ``feast.mlflow`` will use the + most recently created ``FeatureStore`` automatically. + """ + global _client, _registered_store + _client = None + _registered_store = store + + +def get_active_run_id() -> Optional[str]: + """Return the active MLflow run ID, or ``None``.""" + return _ensure_client().active_run_id + + +def __getattr__(name: str) -> Any: + """Open delegation: Feast-enhanced client first, raw mlflow fallback. + + Lookup order for ``feast.mlflow.``: + + 1. If ``FeastMlflowClient`` has a public attribute *name*, return it. + This gives Feast-enhanced versions of ``start_run``, ``log_model``, + ``register_model``, ``load_model``, etc. + 2. Otherwise, fall back to the raw ``mlflow`` module. This makes + ``feast.mlflow.log_params``, ``feast.mlflow.set_tag``, + ``feast.mlflow.MlflowClient``, etc. work without any wrappers. + """ + if name.startswith("_"): + raise AttributeError(f"module 'feast.mlflow' has no attribute {name!r}") + + client = _ensure_client() + + client_attr = getattr(client, name, _MISSING) + if client_attr is not _MISSING: + return client_attr + + mlflow_attr = getattr(client._mlflow, name, _MISSING) + if mlflow_attr is not _MISSING: + return mlflow_attr + + raise AttributeError(f"module 'feast.mlflow' has no attribute {name!r}") diff --git a/sdk/python/feast/mlflow_integration/__init__.py b/sdk/python/feast/mlflow_integration/__init__.py new file mode 100644 index 00000000000..400b42ee9ba --- /dev/null +++ b/sdk/python/feast/mlflow_integration/__init__.py @@ -0,0 +1,39 @@ +""" +MLflow integration for Feast Feature Store. + +This module provides seamless integration between Feast and MLflow. When enabled +in feature_store.yaml, feature metadata is logged to MLflow +during get_historical_features and get_online_features calls. + +Usage: + Configure MLflow in your feature_store.yaml: + + project: my_project + # ... other config ... + + mlflow: + enabled: true + tracking_uri: https://mlflow.example.com # or set MLFLOW_TRACKING_URI + auto_log: true + + When ``tracking_uri`` is omitted, the ``MLFLOW_TRACKING_URI`` environment + variable is used. If neither is set, MLflow falls back to its own default. + + All functionality is accessed through ``store.mlflow``: + + - ``store.mlflow.start_run()`` — start an MLflow run pre-tagged with Feast metadata + - ``store.mlflow.log_model()`` — log a model with ``feast_features.json`` + - ``store.mlflow.resolve_features()`` — map an MLflow model to its feature service + - ``store.mlflow.get_training_entity_df()`` — reproduce training by pulling entity + data from a previous MLflow run's artifacts +""" + +from feast.mlflow_integration.config import MlflowConfig +from feast.mlflow_integration.entity_df_builder import FeastMlflowEntityDfError +from feast.mlflow_integration.model_resolver import FeastMlflowModelResolutionError + +__all__ = [ + "MlflowConfig", + "FeastMlflowModelResolutionError", + "FeastMlflowEntityDfError", +] diff --git a/sdk/python/feast/mlflow_integration/client.py b/sdk/python/feast/mlflow_integration/client.py new file mode 100644 index 00000000000..bb64fe44dd3 --- /dev/null +++ b/sdk/python/feast/mlflow_integration/client.py @@ -0,0 +1,313 @@ +from __future__ import annotations + +import json +import logging +import os +import re +import tempfile +from typing import TYPE_CHECKING, Any, Dict, List, Optional + +if TYPE_CHECKING: + import pandas as pd + + from feast import FeatureStore + +_logger = logging.getLogger(__name__) + +_FLAVOR_MAP = { + "sklearn": "sklearn", + "pytorch": "pytorch", + "xgboost": "xgboost", + "lightgbm": "lightgbm", + "tensorflow": "tensorflow", + "keras": "keras", + "pyfunc": "pyfunc", +} + + +class FeastMlflowClient: + """Single integration client for all Feast–MLflow functionality. + + Composes :class:`FeastMlflowLogger`, :class:`FeastMlflowEntityDfBuilder`, + and :class:`FeastMlflowModelResolver` so that there is exactly **one** + ``mlflow`` import and **one** ``MlflowClient`` instance. + + Access via ``store.mlflow`` or ``feast.mlflow``:: + + store = FeatureStore(".") + + with store.mlflow.start_run(run_name="training"): + df = store.get_historical_features(...).to_df() + model = train(df) + store.mlflow.log_model(model, "model") + """ + + def __init__(self, store: "FeatureStore"): + import mlflow as _mlflow_mod + + self._mlflow = _mlflow_mod + self._store = store + self._tracking_uri = store.config.mlflow.get_tracking_uri() + self._client = _mlflow_mod.MlflowClient(tracking_uri=self._tracking_uri) + self._default_experiment = store.config.project + + from feast.mlflow_integration.entity_df_builder import ( + FeastMlflowEntityDfBuilder, + ) + from feast.mlflow_integration.logger import FeastMlflowLogger + from feast.mlflow_integration.model_resolver import FeastMlflowModelResolver + + self._logger_impl = FeastMlflowLogger(store, _mlflow_mod, self._client) + self._entity_df_builder = FeastMlflowEntityDfBuilder( + store, _mlflow_mod, self._client + ) + self._model_resolver = FeastMlflowModelResolver( + store, _mlflow_mod, self._client + ) + + @property + def client(self): + """The underlying ``MlflowClient`` instance.""" + return self._client + + @property + def mlflow(self): + """Escape hatch: access the raw ``mlflow`` module.""" + return self._mlflow + + @property + def active_run_id(self) -> Optional[str]: + """Return the active MLflow run ID, or ``None``.""" + run = self._mlflow.active_run() + return run.info.run_id if run else None + + # ------------------------------------------------------------------ + # Run management + # ------------------------------------------------------------------ + + def start_run( + self, + run_name: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + **kwargs: Any, + ): + """Context manager that starts an MLflow run pre-tagged with Feast metadata. + + Sets the default Feast experiment only when a run is actually started, + avoiding global side effects during ``FeatureStore.__init__``. If the + caller already set an experiment (via ``kwargs["experiment_id"]`` or a + prior ``mlflow.set_experiment``), that choice is respected. + """ + if self._tracking_uri: + self._mlflow.set_tracking_uri(self._tracking_uri) + if "experiment_id" not in kwargs: + self._mlflow.set_experiment(self._default_experiment) + + merged_tags = {"feast.project": self._store.project} + if tags: + merged_tags.update(tags) + return self._mlflow.start_run(run_name=run_name, tags=merged_tags, **kwargs) + + # ------------------------------------------------------------------ + # Model lifecycle + # ------------------------------------------------------------------ + + def log_model( + self, + model: Any, + artifact_path: str, + flavor: str = "sklearn", + **kwargs: Any, + ): + """Log a model and auto-attach ``feast_features.json``.""" + flavor_name = _FLAVOR_MAP.get(flavor, "pyfunc") + flavor_mod = getattr(self._mlflow, flavor_name, self._mlflow.pyfunc) + flavor_mod.log_model(model, artifact_path, **kwargs) + self._log_required_features() + + def _log_required_features(self) -> None: + try: + run = self._mlflow.active_run() + if run is None: + return + tags = self._client.get_run(run.info.run_id).data.tags + refs_str = tags.get("feast.feature_refs") + if not refs_str: + return + features = [r for r in refs_str.split(",") if r] + if not features: + return + + with tempfile.TemporaryDirectory() as tmp_dir: + path = os.path.join(tmp_dir, "feast_features.json") + with open(path, "w") as f: + json.dump(features, f) + self._client.log_artifact(run.info.run_id, path, artifact_path="") + except Exception as e: + _logger.debug("Failed to log feast_features.json: %s", e) + + def register_model(self, model_uri: str, name: str): + """Register a model and auto-tag the version with ``feast.feature_service``.""" + result = self._mlflow.register_model(model_uri, name) + + try: + if result.run_id: + run = self._client.get_run(result.run_id) + fs_name = run.data.tags.get("feast.feature_service") + if fs_name: + self._client.set_model_version_tag( + name, result.version, "feast.feature_service", fs_name + ) + except Exception as e: + _logger.debug("Failed to auto-tag model version: %s", e) + + return result + + def load_model(self, model_uri: str, **kwargs: Any): + """Load a model and auto-tag the active prediction run with training lineage.""" + model = self._mlflow.pyfunc.load_model(model_uri, **kwargs) + + try: + active = self._mlflow.active_run() + if active is None: + return model + + run_id = active.info.run_id + parsed = _parse_model_uri(model_uri) + if parsed is None: + return model + + model_name, version_or_alias = parsed + try: + if version_or_alias.isdigit(): + mv = self._client.get_model_version(model_name, version_or_alias) + else: + mv = self._client.get_model_version_by_alias( + model_name, version_or_alias + ) + except Exception: + return model + + self._client.set_tag(run_id, "feast.model_name", model_name) + self._client.set_tag(run_id, "feast.model_version", str(mv.version)) + + if mv.run_id: + self._client.set_tag(run_id, "feast.training_run_id", mv.run_id) + try: + training_run = self._client.get_run(mv.run_id) + fs_name = training_run.data.tags.get("feast.feature_service") + if fs_name: + self._client.set_tag(run_id, "feast.feature_service", fs_name) + except Exception: + pass + + except Exception as e: + _logger.debug("Failed to tag prediction run with training lineage: %s", e) + + return model + + # ------------------------------------------------------------------ + # Delegated to logger + # ------------------------------------------------------------------ + + def log_feature_retrieval( + self, + feature_refs: List[str], + entity_count: int, + duration_seconds: float, + retrieval_type: str = "historical", + feature_service: Optional[Any] = None, + feature_service_name: Optional[str] = None, + ) -> bool: + """Log feature retrieval metadata to the active MLflow run.""" + return self._logger_impl.log_feature_retrieval( + feature_refs=feature_refs, + entity_count=entity_count, + duration_seconds=duration_seconds, + retrieval_type=retrieval_type, + feature_service=feature_service, + feature_service_name=feature_service_name, + ) + + def log_training_dataset( + self, + df: "pd.DataFrame", + dataset_name: str = "feast_training_data", + source: Optional[str] = None, + ) -> bool: + """Log a training DataFrame as an MLflow dataset input.""" + return self._logger_impl.log_training_dataset( + df=df, dataset_name=dataset_name, source=source + ) + + def log_apply( + self, + changed_objects: List[Any], + transition_types: Optional[Dict[str, str]] = None, + ) -> bool: + """Log a feast apply operation to MLflow.""" + return self._logger_impl.log_apply( + changed_objects=changed_objects, + transition_types=transition_types, + ) + + def log_materialize( + self, + feature_view_names: List[str], + start_date: Any, + end_date: Any, + duration_seconds: float, + incremental: bool = False, + ) -> bool: + """Log a feast materialize operation to MLflow.""" + return self._logger_impl.log_materialize( + feature_view_names=feature_view_names, + start_date=start_date, + end_date=end_date, + duration_seconds=duration_seconds, + incremental=incremental, + ) + + def log_entity_df_metadata( + self, entity_df: Any, start_date: Any = None, end_date: Any = None + ) -> None: + """Log lightweight entity_df metadata to MLflow.""" + self._logger_impl.log_entity_df_metadata(entity_df, start_date, end_date) + + def log_entity_df_artifact(self, entity_df: Any) -> None: + """Upload entity DataFrame as a parquet artifact to MLflow.""" + self._logger_impl.log_entity_df_artifact(entity_df) + + # ------------------------------------------------------------------ + # Delegated to model resolver + # ------------------------------------------------------------------ + + def resolve_features(self, model_uri: str) -> str: + """Resolve which Feast feature service a registered model needs.""" + return self._model_resolver.resolve(model_uri) + + # ------------------------------------------------------------------ + # Delegated to entity df builder + # ------------------------------------------------------------------ + + def get_training_entity_df( + self, + run_id: str, + timestamp_column: str = "event_timestamp", + max_rows: Optional[int] = None, + ) -> "pd.DataFrame": + """Pull the entity DataFrame from a past MLflow run.""" + return self._entity_df_builder.get_entity_df( + run_id=run_id, + timestamp_column=timestamp_column, + max_rows=max_rows, + ) + + +def _parse_model_uri(model_uri: str) -> Optional[tuple]: + """Parse ``models://`` into a tuple.""" + pattern = r"^models:/([^/]+)/(.+)$" + match = re.match(pattern, model_uri) + if match: + return match.group(1), match.group(2) + return None diff --git a/sdk/python/feast/mlflow_integration/config.py b/sdk/python/feast/mlflow_integration/config.py new file mode 100644 index 00000000000..db1d18eb080 --- /dev/null +++ b/sdk/python/feast/mlflow_integration/config.py @@ -0,0 +1,65 @@ +import os +from typing import Optional + +from pydantic import StrictBool, StrictInt, StrictStr + +from feast.repo_config import FeastBaseModel + +MLFLOW_TAG_MAX_LENGTH = 5000 +MLFLOW_TAG_TRUNCATION_LIMIT = MLFLOW_TAG_MAX_LENGTH - 10 +MLFLOW_TAG_TRUNCATION_SLICE = MLFLOW_TAG_MAX_LENGTH - 13 + +MLFLOW_PARAM_MAX_LENGTH = 500 +MLFLOW_PARAM_TRUNCATION_LIMIT = MLFLOW_PARAM_MAX_LENGTH - 10 +MLFLOW_PARAM_TRUNCATION_SLICE = MLFLOW_PARAM_MAX_LENGTH - 13 + +DEFAULT_ENTITY_DF_MAX_ROWS = 100_000 + + +def resolve_tracking_uri(configured_uri: Optional[str] = None) -> Optional[str]: + """Return the effective MLflow tracking URI. + + Priority: + 1. Explicitly configured URI from feature_store.yaml + 2. MLFLOW_TRACKING_URI environment variable (MLflow's native convention) + 3. None — let MLflow fall back to its own defaults (local ./mlruns) + """ + if configured_uri: + return configured_uri + return os.environ.get("MLFLOW_TRACKING_URI") + + +class MlflowConfig(FeastBaseModel): + enabled: StrictBool = False + """ bool: Whether MLflow integration is enabled. Defaults to False. """ + + tracking_uri: Optional[StrictStr] = None + """ str: MLflow tracking URI. When not set, the MLFLOW_TRACKING_URI + environment variable is used. If neither is set, MLflow falls back + to its own default (local ./mlruns directory). """ + + auto_log: StrictBool = True + """ bool: Automatically log feature retrieval metadata to the active + MLflow run when get_historical_features or get_online_features is + called. Defaults to True. """ + + auto_log_entity_df: StrictBool = False + """ bool: When True, the input entity_df (or SQL query) is recorded in + the MLflow run. Defaults to False. """ + + entity_df_max_rows: StrictInt = DEFAULT_ENTITY_DF_MAX_ROWS + """ int: Maximum number of entity DataFrame rows to save as an MLflow + artifact. DataFrames exceeding this limit are skipped to avoid + OOM and slow uploads. Defaults to 100000. """ + + log_operations: StrictBool = False + """ bool: Log feast apply and materialize operations to a separate + MLflow experiment. Opt-in to avoid noise. Defaults to False. """ + + ops_experiment_suffix: StrictStr = "-feast-ops" + """ str: Suffix appended to the project name to form the MLflow + experiment name for operation logs. Defaults to '-feast-ops'. """ + + def get_tracking_uri(self) -> Optional[str]: + """Resolve the effective tracking URI for this config instance.""" + return resolve_tracking_uri(self.tracking_uri) diff --git a/sdk/python/feast/mlflow_integration/entity_df_builder.py b/sdk/python/feast/mlflow_integration/entity_df_builder.py new file mode 100644 index 00000000000..9aa0c8ba528 --- /dev/null +++ b/sdk/python/feast/mlflow_integration/entity_df_builder.py @@ -0,0 +1,116 @@ +from __future__ import annotations + +import logging +from typing import TYPE_CHECKING, Any, Optional + +import pandas as pd + +if TYPE_CHECKING: + from feast import FeatureStore + +_logger = logging.getLogger(__name__) + + +class FeastMlflowEntityDfError(Exception): + """Raised when an entity DataFrame cannot be built from an MLflow run.""" + + pass + + +class FeastMlflowEntityDfBuilder: + """Reconstructs entity DataFrames from MLflow run artifacts. + + Instantiated once inside :class:`FeastMlflowClient` and reuses its + ``MlflowClient`` — no separate ``import mlflow`` needed. + """ + + def __init__(self, store: "FeatureStore", mlflow_mod: Any, client: Any): + self._store = store + self._mlflow = mlflow_mod + self._client = client + + def get_entity_df( + self, + run_id: str, + timestamp_column: str = "event_timestamp", + max_rows: Optional[int] = None, + ) -> pd.DataFrame: + """Build an entity DataFrame from an MLflow run's artifacts. + + Convention: the run should have an artifact named ``entity_df.parquet`` + (or ``entity_df.csv``), saved automatically when + ``auto_log_entity_df: true`` is set in ``feature_store.yaml``. + + Args: + run_id: The MLflow run ID. + timestamp_column: Expected name of the timestamp column in the + entity DataFrame. + max_rows: Optional limit on number of rows to load. + + Returns: + A ``pd.DataFrame`` suitable for passing to + ``store.get_historical_features(entity_df=...)``. + + Raises: + FeastMlflowEntityDfError: If run not found or no entity data + is available on the run. + """ + from mlflow.exceptions import MlflowException + + try: + self._client.get_run(run_id) + except MlflowException as e: + raise FeastMlflowEntityDfError(f"Run '{run_id}' not found: {e}") + + df = self._try_artifact(run_id, "entity_df.parquet", "parquet") + if df is not None: + if max_rows is not None: + df = df.head(max_rows) + self._validate_timestamp_col(df, timestamp_column) + return df + + df = self._try_artifact(run_id, "entity_df.csv", "csv") + if df is not None: + if max_rows is not None: + df = df.head(max_rows) + self._validate_timestamp_col(df, timestamp_column) + return df + + raise FeastMlflowEntityDfError( + f"No entity data found for run '{run_id}'. " + f"Expected artifact 'entity_df.parquet' or 'entity_df.csv'. " + f"Ensure auto_log_entity_df is enabled in feature_store.yaml." + ) + + def _try_artifact( + self, run_id: str, artifact_name: str, fmt: str + ) -> Optional[pd.DataFrame]: + try: + local_path = self._client.download_artifacts(run_id, artifact_name) + if fmt == "parquet": + return pd.read_parquet(local_path) + if fmt == "csv": + return pd.read_csv(local_path) + _logger.warning( + "Unsupported entity DataFrame format '%s' for artifact '%s'. " + "Only 'parquet' and 'csv' are supported.", + fmt, + artifact_name, + ) + return None + except Exception as e: + _logger.debug( + "Artifact '%s' not found for run '%s': %s", + artifact_name, + run_id, + e, + ) + return None + + @staticmethod + def _validate_timestamp_col(df: pd.DataFrame, col: str) -> None: + if col not in df.columns: + raise FeastMlflowEntityDfError( + f"Entity DataFrame missing required timestamp column '{col}'. " + f"Available columns: {list(df.columns)}" + ) diff --git a/sdk/python/feast/mlflow_integration/logger.py b/sdk/python/feast/mlflow_integration/logger.py new file mode 100644 index 00000000000..e538f97c7db --- /dev/null +++ b/sdk/python/feast/mlflow_integration/logger.py @@ -0,0 +1,375 @@ +from __future__ import annotations + +import logging +import time +from datetime import datetime +from typing import TYPE_CHECKING, Any, Dict, List, Optional + +import pandas as pd + +from feast.mlflow_integration.config import ( + MLFLOW_TAG_TRUNCATION_LIMIT, + MLFLOW_TAG_TRUNCATION_SLICE, +) + +if TYPE_CHECKING: + from feast import FeatureStore + from feast.feature_service import FeatureService + +_logger = logging.getLogger(__name__) + +_WARNING_INTERVAL_SECONDS = 300 + + +class FeastMlflowLogger: + """Handles all MLflow logging for Feast feature retrieval and operations. + + Instantiated once inside :class:`FeastMlflowClient` and reuses its + ``mlflow`` module reference and ``MlflowClient`` — no duplicate + ``import mlflow`` or client construction. + """ + + def __init__(self, store: "FeatureStore", mlflow_mod: Any, client: Any): + self._store = store + self._mlflow = mlflow_mod + self._client = client + self._tracking_uri = store.config.mlflow.get_tracking_uri() + self._consecutive_failures = 0 + self._last_warning_time = 0.0 + + def _truncate_for_tag(self, value: str) -> str: + if len(value) > MLFLOW_TAG_TRUNCATION_LIMIT: + return value[:MLFLOW_TAG_TRUNCATION_SLICE] + "..." + return value + + def _report_failure(self, msg: str, exc: Exception) -> None: + self._consecutive_failures += 1 + now = time.monotonic() + if ( + self._consecutive_failures == 1 + or (now - self._last_warning_time) >= _WARNING_INTERVAL_SECONDS + ): + _logger.warning( + "%s (failures=%d): %s", msg, self._consecutive_failures, exc + ) + self._last_warning_time = now + else: + _logger.debug("%s (failures=%d): %s", msg, self._consecutive_failures, exc) + + def _report_success(self) -> None: + self._consecutive_failures = 0 + + def log_feature_retrieval( + self, + feature_refs: List[str], + entity_count: int, + duration_seconds: float, + retrieval_type: str = "historical", + feature_service: Optional["FeatureService"] = None, + feature_service_name: Optional[str] = None, + ) -> bool: + """Log feature retrieval metadata to the active MLflow run.""" + active_run = self._mlflow.active_run() + if active_run is None: + return False + + try: + run_id = active_run.info.run_id + + if self._store.project: + self._client.set_tag(run_id, "feast.project", self._store.project) + self._client.set_tag(run_id, "feast.retrieval_type", retrieval_type) + + fs_name = None + if feature_service is not None: + fs_name = feature_service.name + elif feature_service_name is not None: + fs_name = feature_service_name + if fs_name: + self._client.set_tag(run_id, "feast.feature_service", fs_name) + + fv_names = sorted({ref.split(":")[0] for ref in feature_refs if ":" in ref}) + if fv_names: + fv_str = self._truncate_for_tag(",".join(fv_names)) + self._client.set_tag(run_id, "feast.feature_views", fv_str) + + refs_str = self._truncate_for_tag(",".join(feature_refs)) + self._client.set_tag(run_id, "feast.feature_refs", refs_str) + self._client.set_tag(run_id, "feast.entity_count", str(entity_count)) + self._client.set_tag(run_id, "feast.feature_count", str(len(feature_refs))) + + self._client.log_metric( + run_id, "feast.job_submission_sec", round(duration_seconds, 4) + ) + + self._report_success() + return True + except Exception as e: + self._report_failure("Failed to log feature retrieval to MLflow", e) + return False + + def log_training_dataset( + self, + df: pd.DataFrame, + dataset_name: str = "feast_training_data", + source: Optional[str] = None, + ) -> bool: + """Log a training DataFrame as an MLflow dataset input on the active run.""" + active_run = self._mlflow.active_run() + if active_run is None: + return False + + try: + dataset = self._mlflow.data.from_pandas( + df, + name=dataset_name, + source=source or "feast.get_historical_features", + ) + self._mlflow.log_input(dataset, context="training") + return True + except Exception as e: + self._report_failure("Failed to log training dataset to MLflow", e) + return False + + def _get_or_create_experiment(self, experiment_name: str) -> str: + exp = self._client.get_experiment_by_name(experiment_name) + if exp is not None: + return exp.experiment_id + return self._client.create_experiment(experiment_name) + + def log_apply( + self, + changed_objects: List[Any], + transition_types: Optional[Dict[str, str]] = None, + ) -> bool: + """Log a feast apply operation to a dedicated MLflow experiment.""" + try: + from feast import Entity, FeatureService + from feast.feature_view import FeatureView + + project = self._store.project + mlflow_cfg = self._store.config.mlflow + ops_suffix = mlflow_cfg.ops_experiment_suffix + + experiment_name = f"{project}{ops_suffix}" + experiment_id = self._get_or_create_experiment(experiment_name) + + fv_names: List[str] = [] + fs_names: List[str] = [] + entity_names: List[str] = [] + for obj in changed_objects: + if isinstance(obj, FeatureView): + fv_names.append(obj.name) + elif isinstance(obj, FeatureService): + fs_names.append(obj.name) + elif isinstance(obj, Entity) and obj.name != "__dummy": + entity_names.append(obj.name) + + run = self._client.create_run(experiment_id, run_name=f"apply_{project}") + run_id = run.info.run_id + try: + self._client.set_tag(run_id, "feast.operation", "apply") + self._client.set_tag(run_id, "feast.project", project) + if fv_names: + self._client.set_tag( + run_id, + "feast.feature_views_changed", + self._truncate_for_tag(",".join(fv_names)), + ) + if fs_names: + self._client.set_tag( + run_id, + "feast.feature_services_changed", + self._truncate_for_tag(",".join(fs_names)), + ) + if entity_names: + self._client.set_tag( + run_id, + "feast.entities_changed", + self._truncate_for_tag(",".join(entity_names)), + ) + self._client.log_metric( + run_id, "feast.apply.feature_views_count", len(fv_names) + ) + self._client.log_metric( + run_id, "feast.apply.feature_services_count", len(fs_names) + ) + self._client.log_metric( + run_id, "feast.apply.entities_count", len(entity_names) + ) + + if transition_types: + self._log_transition_tags( + run_id, + transition_types, + fv_names, + fs_names, + entity_names, + ) + finally: + self._client.set_terminated(run_id) + + self._report_success() + return True + except Exception as e: + self._report_failure("Failed to log apply to MLflow", e) + return False + + def _log_transition_tags( + self, + run_id: str, + transition_types: Dict[str, str], + fv_names: List[str], + fs_names: List[str], + entity_names: List[str], + ) -> None: + buckets: Dict[str, Dict[str, List[str]]] = { + "feature_views": {"created": [], "updated": [], "deleted": []}, + "feature_services": {"created": [], "updated": [], "deleted": []}, + "entities": {"created": [], "updated": [], "deleted": []}, + } + + for name in fv_names: + tt = transition_types.get(name, "").upper() + if tt in ("CREATE", "UPDATE", "DELETE"): + buckets["feature_views"][tt.lower() + "d"].append(name) + + for name in fs_names: + tt = transition_types.get(name, "").upper() + if tt in ("CREATE", "UPDATE", "DELETE"): + buckets["feature_services"][tt.lower() + "d"].append(name) + + for name in entity_names: + tt = transition_types.get(name, "").upper() + if tt in ("CREATE", "UPDATE", "DELETE"): + buckets["entities"][tt.lower() + "d"].append(name) + + for obj_type, transitions in buckets.items(): + for transition, names in transitions.items(): + if names: + self._client.set_tag( + run_id, + f"feast.{obj_type}_{transition}", + self._truncate_for_tag(",".join(names)), + ) + + def log_materialize( + self, + feature_view_names: List[str], + start_date: Optional[datetime], + end_date: datetime, + duration_seconds: float, + incremental: bool = False, + ) -> bool: + """Log a feast materialize operation to a dedicated MLflow experiment.""" + try: + project = self._store.project + mlflow_cfg = self._store.config.mlflow + ops_suffix = mlflow_cfg.ops_experiment_suffix + + experiment_name = f"{project}{ops_suffix}" + experiment_id = self._get_or_create_experiment(experiment_name) + + op_type = "materialize_incremental" if incremental else "materialize" + run = self._client.create_run( + experiment_id, run_name=f"{op_type}_{project}" + ) + run_id = run.info.run_id + try: + self._client.set_tag(run_id, "feast.operation", op_type) + self._client.set_tag(run_id, "feast.project", project) + self._client.set_tag( + run_id, + "feast.materialize.feature_views", + self._truncate_for_tag(",".join(feature_view_names)), + ) + if start_date: + self._client.log_param( + run_id, + "feast.materialize.start_date", + start_date.isoformat(), + ) + self._client.log_param( + run_id, + "feast.materialize.end_date", + end_date.isoformat(), + ) + self._client.log_metric( + run_id, + "feast.materialize.duration_sec", + round(duration_seconds, 4), + ) + finally: + self._client.set_terminated(run_id) + + self._report_success() + return True + except Exception as e: + self._report_failure("Failed to log materialize to MLflow", e) + return False + + def log_entity_df_metadata( + self, entity_df: Any, start_date: Any = None, end_date: Any = None + ) -> None: + """Log lightweight entity_df metadata to MLflow. + + Uses ``set_tag`` (not ``log_param``) so the metadata can safely be + updated when ``get_historical_features`` is called multiple times + within the same MLflow run. + """ + try: + if self._mlflow.active_run() is None: + return + run_id = self._mlflow.active_run().info.run_id + + if isinstance(entity_df, str): + if len(entity_df) > MLFLOW_TAG_TRUNCATION_LIMIT: + query = entity_df[:MLFLOW_TAG_TRUNCATION_SLICE] + "..." + else: + query = entity_df + self._client.set_tag(run_id, "feast.entity_df_query", query) + self._client.set_tag(run_id, "feast.entity_df_type", "sql") + + elif isinstance(entity_df, pd.DataFrame): + self._client.set_tag(run_id, "feast.entity_df_type", "dataframe") + self._client.set_tag( + run_id, "feast.entity_df_rows", str(len(entity_df)) + ) + cols = ",".join(entity_df.columns) + if len(cols) > MLFLOW_TAG_TRUNCATION_LIMIT: + cols = cols[:MLFLOW_TAG_TRUNCATION_SLICE] + "..." + self._client.set_tag(run_id, "feast.entity_df_columns", cols) + + elif entity_df is None and (start_date or end_date): + self._client.set_tag(run_id, "feast.entity_df_type", "range") + if start_date: + self._client.set_tag(run_id, "feast.start_date", str(start_date)) + if end_date: + self._client.set_tag(run_id, "feast.end_date", str(end_date)) + + except Exception as e: + _logger.debug("Failed to log entity_df metadata to MLflow: %s", e) + + def log_entity_df_artifact(self, entity_df: Any) -> None: + """Upload entity DataFrame as a parquet artifact to MLflow.""" + try: + import os + import tempfile + + if self._mlflow.active_run() is None: + return + if not isinstance(entity_df, pd.DataFrame): + return + + mlflow_cfg = self._store.config.mlflow + run_id = self._mlflow.active_run().info.run_id + + max_rows = mlflow_cfg.entity_df_max_rows + if len(entity_df) <= max_rows: + with tempfile.TemporaryDirectory() as tmp_dir: + path = os.path.join(tmp_dir, "entity_df.parquet") + entity_df.to_parquet(path, index=False) + self._client.log_artifact(run_id, path) + + except Exception as e: + _logger.debug("Failed to log entity_df artifact to MLflow: %s", e) diff --git a/sdk/python/feast/mlflow_integration/model_resolver.py b/sdk/python/feast/mlflow_integration/model_resolver.py new file mode 100644 index 00000000000..b2d94dccbee --- /dev/null +++ b/sdk/python/feast/mlflow_integration/model_resolver.py @@ -0,0 +1,138 @@ +from __future__ import annotations + +import json +import logging +import re +from typing import TYPE_CHECKING, Any, Optional + +if TYPE_CHECKING: + from feast import FeatureStore + +_logger = logging.getLogger(__name__) + + +class FeastMlflowModelResolutionError(Exception): + """Raised when a model URI cannot be resolved to a feature service.""" + + pass + + +class FeastMlflowModelResolver: + """Resolves MLflow model URIs to Feast feature service names. + + Instantiated once inside :class:`FeastMlflowClient` and reuses its + ``MlflowClient`` — no separate ``import mlflow`` needed. + """ + + def __init__(self, store: "FeatureStore", mlflow_mod: Any, client: Any): + self._store = store + self._mlflow = mlflow_mod + self._client = client + + def resolve(self, model_uri: str) -> str: + """Resolve the Feast feature service name for a given MLflow model URI. + + Resolution order: + 1. Model version tag ``feast.feature_service`` (explicit override). + 2. Training run tag ``feast.feature_service`` (set by auto-log). + + Args: + model_uri: MLflow model URI in the form + ``models://``. + + Raises: + FeastMlflowModelResolutionError: If URI is invalid, resolution + fails, or validation against the store fails. + """ + from mlflow.exceptions import MlflowException + + pattern = r"^models:/([^/]+)/(.+)$" + match = re.match(pattern, model_uri) + if not match: + raise FeastMlflowModelResolutionError( + f"Invalid model_uri format: '{model_uri}'. " + f"Expected 'models://'." + ) + + model_name, version_or_alias = match.group(1), match.group(2) + + try: + if version_or_alias.isdigit(): + mv = self._client.get_model_version(model_name, version_or_alias) + else: + mv = self._client.get_model_version_by_alias( + model_name, version_or_alias + ) + except MlflowException as e: + raise FeastMlflowModelResolutionError( + f"Could not resolve model '{model_uri}': {e}" + ) + + tags = mv.tags or {} + if "feast.feature_service" in tags: + fs_name = tags["feast.feature_service"] + else: + fs_name = self._resolve_from_run_tags(mv) + if fs_name is None: + raise FeastMlflowModelResolutionError( + f"Could not determine feature service for model '{model_uri}'. " + f"No 'feast.feature_service' tag found on the model version or " + f"its training run. Set the tag explicitly on the model version " + f"or ensure auto_log was enabled during training." + ) + + self._validate_feature_service(fs_name, mv) + return fs_name + + def _resolve_from_run_tags(self, model_version: Any) -> Optional[str]: + try: + run = self._client.get_run(model_version.run_id) + return run.data.tags.get("feast.feature_service") + except Exception as e: + _logger.debug("Could not read run tags for model version: %s", e) + return None + + def _validate_feature_service(self, fs_name: str, model_version: Any) -> None: + try: + fs = self._store.get_feature_service(fs_name) + except Exception: + raise FeastMlflowModelResolutionError( + f"Feature service '{fs_name}' not found in the Feast registry." + ) + + if not self._has_artifact(model_version.run_id, "feast_features.json"): + return + + try: + local_path = self._client.download_artifacts( + model_version.run_id, "feast_features.json" + ) + with open(local_path) as f: + expected_features = json.load(f) + + actual_features = [] + for proj in fs.feature_view_projections: + for feat in proj.features: + actual_features.append(f"{proj.name_to_use()}:{feat.name}") + + expected_set = set(expected_features) + actual_set = set(actual_features) + + if expected_set != actual_set: + missing = expected_set - actual_set + extra = actual_set - expected_set + raise FeastMlflowModelResolutionError( + f"Feature mismatch for service '{fs_name}'. " + f"Missing: {missing}, Extra: {extra}" + ) + except FeastMlflowModelResolutionError: + raise + except Exception as e: + _logger.debug("Could not validate feast_features.json: %s", e) + + def _has_artifact(self, run_id: str, artifact_name: str) -> bool: + try: + artifacts = self._client.list_artifacts(run_id) + return any(a.path == artifact_name for a in artifacts) + except Exception: + return False diff --git a/sdk/python/feast/repo_config.py b/sdk/python/feast/repo_config.py index 3fbcb9ec498..b8bc794aaf5 100644 --- a/sdk/python/feast/repo_config.py +++ b/sdk/python/feast/repo_config.py @@ -355,6 +355,9 @@ class RepoConfig(FeastBaseModel): openlineage_config: Optional[OpenLineageConfig] = Field(None, alias="openlineage") """ Configuration for OpenLineage data lineage integration (optional). """ + mlflow_config: Optional[Any] = Field(None, alias="mlflow") + """ MlflowConfig: Configuration for MLflow experiment tracking integration (optional). """ + def __init__(self, **data: Any): super().__init__(**data) @@ -395,6 +398,11 @@ def __init__(self, **data: Any): if "openlineage" in data: self.openlineage_config = data["openlineage"] + # Initialize MLflow configuration + self._mlflow = None + if "mlflow" in data: + self.mlflow_config = data["mlflow"] + if self.entity_key_serialization_version < 3: warnings.warn( "The serialization version below 3 are deprecated. " @@ -495,6 +503,18 @@ def openlineage(self) -> Optional[OpenLineageConfig]: self._openlineage = self.openlineage_config return self._openlineage + @property + def mlflow(self): + """Get the MLflow configuration.""" + if not self._mlflow: + if isinstance(self.mlflow_config, Dict): + from feast.mlflow_integration.config import MlflowConfig + + self._mlflow = MlflowConfig(**self.mlflow_config) + elif self.mlflow_config: + self._mlflow = self.mlflow_config + return self._mlflow + @model_validator(mode="before") def _validate_auth_config(cls, values: Any) -> Any: from feast.permissions.auth_model import AuthConfig diff --git a/sdk/python/feast/ui_server.py b/sdk/python/feast/ui_server.py index b4cec9fc7cc..883f995b82d 100644 --- a/sdk/python/feast/ui_server.py +++ b/sdk/python/feast/ui_server.py @@ -1,6 +1,7 @@ import json import logging from importlib import resources as importlib_resources +from typing import Dict, List import uvicorn from fastapi import FastAPI, Response, status @@ -102,6 +103,275 @@ def get_app( with ui_dir.joinpath("projects-list.json").open(mode="w") as f: f.write(json.dumps(projects_dict)) + @app.get("/api/mlflow-runs") + def get_mlflow_runs(max_results: int = 50): + """Return MLflow runs linked to this Feast project via auto-logging.""" + mlflow_cfg = getattr(store.config, "mlflow", None) + if not mlflow_cfg or not mlflow_cfg.enabled: + return {"runs": [], "mlflow_uri": None} + + try: + import mlflow + + tracking_uri = mlflow_cfg.get_tracking_uri() + mlflow_ui_base = tracking_uri or mlflow.get_tracking_uri() or "" + client = mlflow.MlflowClient(tracking_uri=tracking_uri) + + project_name = store.config.project + experiment = client.get_experiment_by_name(project_name) + if experiment is None: + return {"runs": [], "mlflow_uri": mlflow_ui_base or None} + experiment_ids = [experiment.experiment_id] + + safe_project = project_name.replace("\\", "\\\\").replace("'", "\\'") + filter_str = ( + f"tags.`feast.project` = '{safe_project}' " + f"AND tags.`feast.retrieval_type` != ''" + ) + + max_results = min(max(max_results, 1), 200) + runs = client.search_runs( + experiment_ids=experiment_ids, + filter_string=filter_str, + max_results=max_results, + order_by=["start_time DESC"], + ) + + run_id_to_models: Dict[str, List[dict]] = {} + try: + for rm in client.search_registered_models(): + for mv in rm.latest_versions or []: + if mv.run_id: + run_id_to_models.setdefault(mv.run_id, []).append( + { + "model_name": rm.name, + "version": mv.version, + "stage": mv.current_stage, + "mlflow_url": ( + f"{mlflow_ui_base}/#/models/" + f"{rm.name}/versions/{mv.version}" + ), + } + ) + except Exception: + pass + + result = [] + for run in runs: + run_tags = run.data.tags + run_params = run.data.params + fv_raw = run_tags.get("feast.feature_views", "") + refs_raw = run_tags.get( + "feast.feature_refs", + run_params.get("feast.feature_refs", ""), + ) + result.append( + { + "run_id": run.info.run_id, + "run_name": run.info.run_name, + "status": run.info.status, + "start_time": run.info.start_time, + "feature_service": run_tags.get("feast.feature_service"), + "feature_views": [v for v in fv_raw.split(",") if v], + "feature_refs": [v for v in refs_raw.split(",") if v], + "retrieval_type": run_tags.get("feast.retrieval_type"), + "entity_count": run_tags.get( + "feast.entity_count", + run_params.get("feast.entity_count"), + ), + "mlflow_url": ( + f"{mlflow_ui_base}/#/experiments/" + f"{run.info.experiment_id}/runs/{run.info.run_id}" + ), + "registered_models": run_id_to_models.get(run.info.run_id, []), + } + ) + + return {"runs": result, "mlflow_uri": mlflow_ui_base or None} + except ImportError: + return { + "runs": [], + "mlflow_uri": None, + "error": "mlflow is not installed", + } + except Exception: + return { + "runs": [], + "mlflow_uri": None, + "error": "Failed to fetch MLflow runs", + } + + _feature_usage_cache: Dict = {"data": None, "timestamp": 0.0} + _FEATURE_USAGE_TTL_SECONDS = 300 + + @app.get("/api/mlflow-feature-usage") + def get_mlflow_feature_usage(): + """Return per-feature-view usage stats aggregated from MLflow runs. + + Caches results for 5 minutes to avoid hammering the MLflow server. + """ + import time as _time + + mlflow_cfg = getattr(store.config, "mlflow", None) + if not mlflow_cfg or not mlflow_cfg.enabled: + return {"feature_usage": {}, "mlflow_enabled": False} + + now = _time.monotonic() + if ( + _feature_usage_cache["data"] is not None + and (now - _feature_usage_cache["timestamp"]) < _FEATURE_USAGE_TTL_SECONDS + ): + return _feature_usage_cache["data"] + + try: + import mlflow + + tracking_uri = mlflow_cfg.get_tracking_uri() + client = mlflow.MlflowClient(tracking_uri=tracking_uri) + project_name = store.config.project + + experiment = client.get_experiment_by_name(project_name) + if experiment is None: + result = {"feature_usage": {}, "mlflow_enabled": True} + _feature_usage_cache["data"] = result + _feature_usage_cache["timestamp"] = now + return result + + safe_project = project_name.replace("\\", "\\\\").replace("'", "\\'") + filter_str = ( + f"tags.`feast.project` = '{safe_project}' " + f"AND tags.`feast.retrieval_type` != ''" + ) + runs = client.search_runs( + experiment_ids=[experiment.experiment_id], + filter_string=filter_str, + max_results=200, + order_by=["start_time DESC"], + ) + + run_id_to_models: Dict[str, List[str]] = {} + try: + for rm in client.search_registered_models(): + for mv in rm.latest_versions or []: + if mv.run_id: + run_id_to_models.setdefault(mv.run_id, []).append(rm.name) + except Exception: + pass + + usage: Dict[str, dict] = {} + for run in runs: + refs_raw = run.data.tags.get("feast.feature_refs", "") + fv_names = set() + for ref in refs_raw.split(","): + ref = ref.strip() + if ":" in ref: + fv_names.add(ref.split(":")[0]) + + run_models = run_id_to_models.get(run.info.run_id, []) + + for fv_name in fv_names: + if fv_name not in usage: + usage[fv_name] = { + "run_count": 0, + "last_used": None, + "models": [], + } + usage[fv_name]["run_count"] += 1 + run_ts = run.info.start_time + if usage[fv_name]["last_used"] is None or ( + run_ts and run_ts > usage[fv_name]["last_used"] + ): + usage[fv_name]["last_used"] = run_ts + for m in run_models: + if m not in usage[fv_name]["models"]: + usage[fv_name]["models"].append(m) + + result = {"feature_usage": usage, "mlflow_enabled": True} + _feature_usage_cache["data"] = result + _feature_usage_cache["timestamp"] = now + return result + except ImportError: + return { + "feature_usage": {}, + "mlflow_enabled": False, + "error": "mlflow is not installed", + } + except Exception as e: + logger.debug("Failed to fetch feature usage: %s", e) + return { + "feature_usage": {}, + "mlflow_enabled": True, + "error": "Failed to fetch usage data", + } + + @app.get("/api/mlflow-feature-models") + def get_mlflow_feature_models(): + """Return a mapping of feature_ref -> registered models that use it. + + Walks the MLflow Model Registry, inspects the training run for each + model's latest version(s), reads the ``feast.feature_refs`` tag, and + inverts it into a reverse index so the UI can show which registered + models depend on a given feature. + """ + mlflow_cfg = getattr(store.config, "mlflow", None) + if not mlflow_cfg or not mlflow_cfg.enabled: + return {"feature_models": {}} + + try: + import mlflow + + tracking_uri = mlflow_cfg.get_tracking_uri() + mlflow_ui_base = tracking_uri or mlflow.get_tracking_uri() or "" + client = mlflow.MlflowClient(tracking_uri=tracking_uri) + project_name = store.config.project + + feature_models: Dict[str, List[dict]] = {} + + for rm in client.search_registered_models(): + model_name = rm.name + latest_versions = rm.latest_versions or [] + for mv in latest_versions: + if not mv.run_id: + continue + try: + run = client.get_run(mv.run_id) + except Exception: + continue + + tags = run.data.tags + if tags.get("feast.project") != project_name: + continue + + refs_raw = tags.get("feast.feature_refs", "") + feature_refs = [r for r in refs_raw.split(",") if r] + + model_info = { + "model_name": model_name, + "version": mv.version, + "stage": mv.current_stage, + "mlflow_url": ( + f"{mlflow_ui_base}/#/models/" + f"{model_name}/versions/{mv.version}" + ), + } + + for ref in feature_refs: + feature_models.setdefault(ref, []).append(model_info) + + return {"feature_models": feature_models} + except ImportError: + return { + "feature_models": {}, + "error": "mlflow is not installed", + } + except Exception as e: + logger.debug("Failed to fetch MLflow feature-model mapping: %s", e) + return { + "feature_models": {}, + "error": "Failed to fetch model data", + } + + # For all other paths (such as paths that would otherwise be handled by react router), pass to React @app.api_route("/p/{path_name:path}", methods=["GET"]) def catch_all(): filename = ui_dir.joinpath("index.html") diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 1436c1f1059..7806c7f4af7 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -136,6 +136,7 @@ aiohttp==3.13.5 \ # via # aiobotocore # fsspec + # mlflow aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -148,6 +149,10 @@ alabaster==0.7.16 \ --hash=sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65 \ --hash=sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92 # via sphinx +alembic==1.18.4 \ + --hash=sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a \ + --hash=sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc + # via mlflow altair==4.2.2 \ --hash=sha256:39399a267c49b30d102c10411e67ab26374156a84b1aeb9fcd15140429ba49c5 \ --hash=sha256:8b45ebeaf8557f2d760c5c77b79f02ae12aee7c46c27c06014febab6f849bc87 @@ -261,9 +266,9 @@ azure-identity==1.25.3 \ --hash=sha256:ab23c0d63015f50b630ef6c6cf395e7262f439ce06e5d07a64e874c724f8d9e6 \ --hash=sha256:f4d0b956a8146f30333e071374171f3cfa7bdb8073adb8c3814b65567aa7447c # via feast (pyproject.toml) -azure-storage-blob==12.28.0 \ - --hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \ - --hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41 +azure-storage-blob==12.29.0 \ + --hash=sha256:2824ddd7ebc9056034ebc76b17971a38e9aa5835abb0d565b9700493f2a6c657 \ + --hash=sha256:ccf8a1bcd5e49df83ab85aab793b579e5ba2eeea2ad8900b2f62ca3a37dc391f # via feast (pyproject.toml) babel==2.18.0 \ --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ @@ -285,6 +290,10 @@ bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ --hash=sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6 # via nbconvert +blinker==1.9.0 \ + --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ + --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc + # via flask boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ --hash=sha256:95f5fe688795303a8a15e8b7e7f255cadab35eae459d00cc281a4fd77252ea80 @@ -308,6 +317,12 @@ build==1.5.0 \ # feast (pyproject.toml) # pip-tools # singlestoredb +cachetools==7.1.3 \ + --hash=sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d \ + --hash=sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804 + # via + # mlflow-skinny + # mlflow-tracing cassandra-driver==3.30.0 \ --hash=sha256:0c28a8e84917acebecbaed39844047c2f135739c3627dd7b9f8541af33e11df3 \ --hash=sha256:0f4225082a11d9529416c223553ab38a29c4e65da6646b40159c554480dc002c \ @@ -575,14 +590,16 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask + # flask # geomet # great-expectations + # mlflow-skinny # pip-tools # ray # typer @@ -593,6 +610,7 @@ clickhouse-connect==1.0.0 \ --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ + --hash=sha256:0d4ed1e296c6e77dc0dbf486607cc39fc6e36866abb653543d5ad0a8426ea8f0 \ --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ @@ -645,7 +663,9 @@ clickhouse-connect==1.0.0 \ cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a - # via dask + # via + # dask + # mlflow-skinny colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 @@ -658,6 +678,65 @@ comm==0.2.3 \ # via # ipykernel # ipywidgets +contourpy==1.3.2 \ + --hash=sha256:0475b1f6604896bc7c53bb070e355e9321e1bc0d381735421a2d2068ec56531f \ + --hash=sha256:106fab697af11456fcba3e352ad50effe493a90f893fca6c2ca5c033820cea92 \ + --hash=sha256:107ba8a6a7eec58bb475329e6d3b95deba9440667c4d62b9b6063942b61d7f16 \ + --hash=sha256:15ce6ab60957ca74cff444fe66d9045c1fd3e92c8936894ebd1f3eef2fff075f \ + --hash=sha256:1c48188778d4d2f3d48e4643fb15d8608b1d01e4b4d6b0548d9b336c28fc9b6f \ + --hash=sha256:3859783aefa2b8355697f16642695a5b9792e7a46ab86da1118a4a23a51a33d7 \ + --hash=sha256:3d80b2c0300583228ac98d0a927a1ba6a2ba6b8a742463c564f1d419ee5b211e \ + --hash=sha256:3f9e896f447c5c8618f1edb2bafa9a4030f22a575ec418ad70611450720b5b08 \ + --hash=sha256:434f0adf84911c924519d2b08fc10491dd282b20bdd3fa8f60fd816ea0b48841 \ + --hash=sha256:49b65a95d642d4efa8f64ba12558fcb83407e58a2dfba9d796d77b63ccfcaff5 \ + --hash=sha256:4caf2bcd2969402bf77edc4cb6034c7dd7c0803213b3523f111eb7460a51b8d2 \ + --hash=sha256:532fd26e715560721bb0d5fc7610fce279b3699b018600ab999d1be895b09415 \ + --hash=sha256:5ebac872ba09cb8f2131c46b8739a7ff71de28a24c869bcad554477eb089a878 \ + --hash=sha256:5f5964cdad279256c084b69c3f412b7801e15356b16efa9d78aa974041903da0 \ + --hash=sha256:65a887a6e8c4cd0897507d814b14c54a8c2e2aa4ac9f7686292f9769fcf9a6ab \ + --hash=sha256:6a37a2fb93d4df3fc4c0e363ea4d16f83195fc09c891bc8ce072b9d084853445 \ + --hash=sha256:70771a461aaeb335df14deb6c97439973d253ae70660ca085eec25241137ef43 \ + --hash=sha256:71e2bd4a1c4188f5c2b8d274da78faab884b59df20df63c34f74aa1813c4427c \ + --hash=sha256:745b57db7758f3ffc05a10254edd3182a2a83402a89c00957a8e8a22f5582823 \ + --hash=sha256:78e9253c3de756b3f6a5174d024c4835acd59eb3f8e2ca13e775dbffe1558f69 \ + --hash=sha256:82199cb78276249796419fe36b7386bd8d2cc3f28b3bc19fe2454fe2e26c4c15 \ + --hash=sha256:8b7fc0cd78ba2f4695fd0a6ad81a19e7e3ab825c31b577f384aa9d7817dc3bef \ + --hash=sha256:8c5acb8dddb0752bf252e01a3035b21443158910ac16a3b0d20e7fed7d534ce5 \ + --hash=sha256:8c942a01d9163e2e5cfb05cb66110121b8d07ad438a17f9e766317bcb62abf73 \ + --hash=sha256:8d2e74acbcba3bfdb6d9d8384cdc4f9260cae86ed9beee8bd5f54fee49a430b9 \ + --hash=sha256:90df94c89a91b7362e1142cbee7568f86514412ab8a2c0d0fca72d7e91b62912 \ + --hash=sha256:970e9173dbd7eba9b4e01aab19215a48ee5dd3f43cef736eebde064a171f89a5 \ + --hash=sha256:977e98a0e0480d3fe292246417239d2d45435904afd6d7332d8455981c408b85 \ + --hash=sha256:9be002b31c558d1ddf1b9b415b162c603405414bacd6932d031c5b5a8b757f0d \ + --hash=sha256:ad687a04bc802cbe8b9c399c07162a3c35e227e2daccf1668eb1f278cb698631 \ + --hash=sha256:b4f54d6a2defe9f257327b0f243612dd051cc43825587520b1bf74a31e2f6ef2 \ + --hash=sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54 \ + --hash=sha256:b7cd50c38f500bbcc9b6a46643a40e0913673f869315d8e70de0438817cb7773 \ + --hash=sha256:ba38e3f9f330af820c4b27ceb4b9c7feee5fe0493ea53a8720f4792667465934 \ + --hash=sha256:c440093bbc8fc21c637c03bafcbef95ccd963bc6e0514ad887932c18ca2a759a \ + --hash=sha256:c49f73e61f1f774650a55d221803b101d966ca0c5a2d6d5e4320ec3997489441 \ + --hash=sha256:c66c4906cdbc50e9cba65978823e6e00b45682eb09adbb78c9775b74eb222422 \ + --hash=sha256:c6c4639a9c22230276b7bffb6a850dfc8258a2521305e1faefe804d006b2e532 \ + --hash=sha256:c85bb486e9be652314bb5b9e2e3b0d1b2e643d5eec4992c0fbe8ac71775da739 \ + --hash=sha256:cc829960f34ba36aad4302e78eabf3ef16a3a100863f0d4eeddf30e8a485a03b \ + --hash=sha256:cdd22595308f53ef2f891040ab2b93d79192513ffccbd7fe19be7aa773a5e09f \ + --hash=sha256:d0e589ae0d55204991450bb5c23f571c64fe43adaa53f93fc902a84c96f52fe1 \ + --hash=sha256:d14f12932a8d620e307f715857107b1d1845cc44fdb5da2bc8e850f5ceba9f87 \ + --hash=sha256:d32530b534e986374fc19eaa77fcb87e8a99e5431499949b828312bdcd20ac52 \ + --hash=sha256:d6658ccc7251a4433eebd89ed2672c2ed96fba367fd25ca9512aa92a4b46c4f1 \ + --hash=sha256:d91a3ccc7fea94ca0acab82ceb77f396d50a1f67412efe4c526f5d20264e6ecd \ + --hash=sha256:dc41ba0714aa2968d1f8674ec97504a8f7e334f48eeacebcaa6256213acb0989 \ + --hash=sha256:de39db2604ae755316cb5967728f4bea92685884b1e767b7c24e983ef5f771cb \ + --hash=sha256:de425af81b6cea33101ae95ece1f696af39446db9682a0b56daaa48cfc29f38f \ + --hash=sha256:ded1706ed0c1049224531b81128efbd5084598f18d8a2d9efae833edbd2b40ad \ + --hash=sha256:e1578f7eafce927b168752ed7e22646dad6cd9bca673c60bff55889fa236ebf9 \ + --hash=sha256:e259bced5549ac64410162adc973c5e2fb77f04df4a439d00b478e57a0e65512 \ + --hash=sha256:e298e7e70cf4eb179cc1077be1c725b5fd131ebc81181bf0c03525c8abc297fd \ + --hash=sha256:eab0f6db315fa4d70f1d8ab514e527f0366ec021ff853d7ed6a2d33605cf4b83 \ + --hash=sha256:f26b383144cf2d2c29f01a1e8170f50dacf0eac02d64139dcd709a8ac4eb3cfe \ + --hash=sha256:f939a054192ddc596e031e50bb13b657ce318cf13d264f095ce9db7dc6ae81c0 \ + --hash=sha256:fd93cc7f3139b6dd7aab2f26a90dde0aa9fc264dbf70f6740d498a70b860b82c + # via matplotlib couchbase==4.3.2 \ --hash=sha256:032a180afd6621358b2c73543b9c5db9939b442fc3ad6d54417c36c8a8f65838 \ --hash=sha256:11ce688ed46edf8387bf51866618c7b4e06399e7fb34a6df002764996c109d1f \ @@ -832,56 +911,56 @@ coverage[toml]==7.14.0 \ --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 # via pytest-cov -cryptography==48.0.0 \ - --hash=sha256:0890f502ddf7d9c6426129c3f49f5c0a39278ed7cd6322c8755ffca6ee675a13 \ - --hash=sha256:0c558d2cdffd8f4bbb30fc7134c74d2ca9a476f830bb053074498fbc86f41ed6 \ - --hash=sha256:16cd65b9330583e4619939b3a3843eec1e6e789744bb01e7c7e2e62e33c239c8 \ - --hash=sha256:18349bbc56f4743c8b12dc32e2bccb2cf83ee8b69a3bba74ef8ae857e26b3d25 \ - --hash=sha256:1e2d54c8be6152856a36f0882ab231e70f8ec7f14e93cf87db8a2ed056bf160c \ - --hash=sha256:22a5cb272895dce158b2cacdfdc3debd299019659f42947dbdac6f32d68fe832 \ - --hash=sha256:27241b1dc9962e056062a8eef1991d02c3a24569c95975bd2322a8a52c6e5e12 \ - --hash=sha256:2b4d59804e8408e2fea7d1fbaf218e5ec984325221db76e6a241a9abd6cdd95c \ - --hash=sha256:2eb992bbd4661238c5a397594c83f5b4dc2bc5b848c365c8f991b6780efcc5c7 \ - --hash=sha256:369a6348999f94bbd53435c894377b20ab95f25a9065c283570e70150d8abc3c \ - --hash=sha256:3cb07a3ed6431663cd321ea8a000a1314c74211f823e4177fefa2255e057d1ec \ - --hash=sha256:40ba1f85eaa6959837b1d51c9767e230e14612eea4ef110ee8854ada22da1bf5 \ - --hash=sha256:4defde8685ae324a9eb9d818717e93b4638ef67070ac9bc15b8ca85f63048355 \ - --hash=sha256:55b7718303bf06a5753dcdccf2f3945cf18ad7bffde41b61226e4db31ab89a9c \ - --hash=sha256:561215ea3879cb1cbbf272867e2efda62476f240fb58c64de6b393ae19246741 \ - --hash=sha256:58d00498e8933e4a194f3076aee1b4a97dfec1a6da444535755822fe5d8b0b86 \ - --hash=sha256:59baa2cb386c4f0b9905bd6eb4c2a79a69a128408fd31d32ca4d7102d4156321 \ - --hash=sha256:5a5ed8fde7a1d09376ca0b40e68cd59c69fe23b1f9768bd5824f54681626032a \ - --hash=sha256:5b012212e08b8dd5edc78ef54da83dd9892fd9105323b3993eff6bea65dc21d7 \ - --hash=sha256:5c3932f4436d1cccb036cb0eaef46e6e2db91035166f1ad6505c3c9d5a635920 \ - --hash=sha256:614d0949f4790582d2cc25553abd09dd723025f0c0e7c67376a1d77196743d6e \ - --hash=sha256:76341972e1eff8b4bea859f09c0d3e64b96ce931b084f9b9b7db8ef364c30eff \ - --hash=sha256:77a2ccbbe917f6710e05ba9adaa25fb5075620bf3ea6fb751997875aff4ae4bd \ - --hash=sha256:7995ef305d7165c3f11ae07f2517e5a4f1d5c18da1376a0a9ed496336b69e5f3 \ - --hash=sha256:7ce4bfae76319a532a2dc68f82cc32f5676ee792a983187dac07183690e5c66f \ - --hash=sha256:7e8eac43dfca5c4cccc6dad9a80504436fca53bb9bc3100a2386d730fbe6b602 \ - --hash=sha256:84cf79f0dc8b36ac5da873481716e87aef31fcfa0444f9e1d8b4b2cece142855 \ - --hash=sha256:8c7378637d7d88016fa6791c159f698b3d3eed28ebf844ac36b9dc04a14dae18 \ - --hash=sha256:8cd666227ef7af430aa5914a9910e0ddd703e75f039cef0825cd0da71b6b711a \ - --hash=sha256:906cbf0670286c6e0044156bc7d4af9cbb0ef6db9f73e52c3ec56ba6bdde5336 \ - --hash=sha256:9071196d81abc88b3516ac8cdfad32e2b66dd4a5393a8e68a961e9161ddc6239 \ - --hash=sha256:9249e3cd978541d665967ac2cb2787fd6a62bddf1e75b3e347a594d7dacf4f74 \ - --hash=sha256:984a20b0f62a26f48a3396c72e4bc34c66e356d356bf370053066b3b6d54634a \ - --hash=sha256:9be5aafa5736574f8f15f262adc81b2a9869e2cfe9014d52a44633905b40d52c \ - --hash=sha256:9c459db21422be75e2809370b829a87eb37f74cd785fc4aa9ea1e5f43b47cda4 \ - --hash=sha256:9ccdac7d40688ecb5a3b4a604b8a88c8002e3442d6c60aead1db2a89a041560c \ - --hash=sha256:a0e692c683f4df67815a2d258b324e66f4738bd7a96a218c826dce4f4bd05d8f \ - --hash=sha256:a5da777e32ffed6f85a7b2b3f7c5cbc88c146bfcd0a1d7baf5fcc6c52ee35dd4 \ - --hash=sha256:a64697c641c7b1b2178e573cbc31c7c6684cd56883a478d75143dbb7118036db \ - --hash=sha256:ad64688338ed4bc1a6618076ba75fd7194a5f1797ac60b47afe926285adb3166 \ - --hash=sha256:bd72e68b06bb1e96913f97dd4901119bc17f39d4586a5adf2d3e47bc2b9d58b5 \ - --hash=sha256:c17dfe85494deaeddc5ce251aebd1d60bbe6afc8b62071bb0b469431a000124f \ - --hash=sha256:c18684a7f0cc9a3cb60328f496b8e3372def7c5d2df39ac267878b05565aaaae \ - --hash=sha256:cc90c0b39b2e3c65ef52c804b72e3c58f8a04ab2a1871272798e5f9572c17d20 \ - --hash=sha256:db63bf618e5dea46c07de12e900fe1cdd2541e6dc9dbae772a70b7d4d4765f6a \ - --hash=sha256:ea8990436d914540a40ab24b6a77c0969695ed52f4a4874c5137ccf7045a7057 \ - --hash=sha256:ecde28a596bead48b0cfd2a1b4416c3d43074c2d785e3a398d7ec1fc4d0f7fbb \ - --hash=sha256:f5333311663ea94f75dd408665686aaf426563556bb5283554a3539177e03b8c \ - --hash=sha256:fdfef35d751d510fcef5252703621574364fec16418c4a1e5e1055248401054b +cryptography==46.0.7 \ + --hash=sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65 \ + --hash=sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832 \ + --hash=sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067 \ + --hash=sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de \ + --hash=sha256:258514877e15963bd43b558917bc9f54cf7cf866c38aa576ebf47a77ddbc43a4 \ + --hash=sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0 \ + --hash=sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b \ + --hash=sha256:3986ac1dee6def53797289999eabe84798ad7817f3e97779b5061a95b0ee4968 \ + --hash=sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef \ + --hash=sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b \ + --hash=sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4 \ + --hash=sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3 \ + --hash=sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308 \ + --hash=sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e \ + --hash=sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163 \ + --hash=sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f \ + --hash=sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee \ + --hash=sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77 \ + --hash=sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85 \ + --hash=sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99 \ + --hash=sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7 \ + --hash=sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83 \ + --hash=sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85 \ + --hash=sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006 \ + --hash=sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb \ + --hash=sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e \ + --hash=sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba \ + --hash=sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325 \ + --hash=sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d \ + --hash=sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1 \ + --hash=sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1 \ + --hash=sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2 \ + --hash=sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0 \ + --hash=sha256:d02c738dacda7dc2a74d1b2b3177042009d5cab7c7079db74afc19e56ca1b455 \ + --hash=sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842 \ + --hash=sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457 \ + --hash=sha256:d3b99c535a9de0adced13d159c5a9cf65c325601aa30f4be08afd680643e9c15 \ + --hash=sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2 \ + --hash=sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c \ + --hash=sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb \ + --hash=sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5 \ + --hash=sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4 \ + --hash=sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902 \ + --hash=sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246 \ + --hash=sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022 \ + --hash=sha256:fc9ab8856ae6cf7c9358430e49b368f3108f050031442eaeb6b9d87e4dcf4e4f \ + --hash=sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e \ + --hash=sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298 \ + --hash=sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce # via # feast (pyproject.toml) # azure-identity @@ -889,6 +968,7 @@ cryptography==48.0.0 \ # google-auth # great-expectations # jwcrypto + # mlflow # moto # msal # oracledb @@ -897,10 +977,20 @@ cryptography==48.0.0 \ # snowflake-connector-python # types-pyopenssl # types-redis +cycler==0.12.1 \ + --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ + --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c + # via matplotlib dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) +databricks-sdk==0.109.0 \ + --hash=sha256:46745a25324a5b36f01236760e44fc6e2bce3f051224e6f8aef7633477fcbec8 \ + --hash=sha256:96b90f5ee2e0fac89f351aa77348263e1e0ed5d4d867cdfaefd2e0acc01b1e81 + # via + # mlflow-skinny + # mlflow-tracing datasets==4.8.5 \ --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff @@ -947,9 +1037,9 @@ debugpy==1.8.20 \ --hash=sha256:eada6042ad88fa1571b74bd5402ee8b86eded7a8f7b827849761700aff171f1b \ --hash=sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7 # via ipykernel -decorator==5.2.1 \ - --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ - --hash=sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a +decorator==5.3.1 \ + --hash=sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82 \ + --hash=sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c # via ipython defusedxml==0.7.1 \ --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \ @@ -969,7 +1059,9 @@ deltalake==0.25.5 \ deprecated==1.3.1 \ --hash=sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f \ --hash=sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223 - # via cassandra-driver + # via + # cassandra-driver + # opentelemetry-api deprecation==2.1.0 \ --hash=sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff \ --hash=sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a @@ -994,14 +1086,16 @@ dnspython==2.8.0 \ docker==7.1.0 \ --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 - # via testcontainers + # via + # mlflow + # testcontainers docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.75.0 \ - --hash=sha256:60f7bc4025f6511ba82eeb0aa677e756e9d3bf069d6f207c6ef2fb8be3176f32 \ - --hash=sha256:7961be3c3f58855324b081fce9e1231b892da7c61d6babbaf3d49c28387eb782 +docling-core[chunking]==2.76.0 \ + --hash=sha256:55af705c6d0755254afddb959fe5dea3a6d413d3ea7539e380bb008268806316 \ + --hash=sha256:e4f681ad434cb45ba93bd3afaab62c5d910bf9ac6b3fdb98b12ee2e476bb75a4 # via # docling # docling-ibm-models @@ -1151,6 +1245,7 @@ fastapi==0.136.1 \ # via # feast (pyproject.toml) # fastapi-mcp + # mlflow-skinny fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d @@ -1174,6 +1269,68 @@ filetype==1.2.0 \ --hash=sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb \ --hash=sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25 # via docling +flask==3.1.3 \ + --hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \ + --hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c + # via + # flask-cors + # mlflow +flask-cors==6.0.2 \ + --hash=sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423 \ + --hash=sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a + # via mlflow +fonttools==4.63.0 \ + --hash=sha256:032038247a96c1690f9f31e377c389383c902531b085aa4e4dabd6f57f870e69 \ + --hash=sha256:063e08bd17bd5a90127a14123de0d6a952dbc847695fd98b63c043d58057f90c \ + --hash=sha256:0c18358a155d75034911c5ee397a5b44cd19dd325dbb8b35fb60bf421d6a72ac \ + --hash=sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096 \ + --hash=sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d \ + --hash=sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68 \ + --hash=sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616 \ + --hash=sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78 \ + --hash=sha256:2b8ae05d9eacf6081414d759c0a352769ac28ce31280d6bb8e77b03f9e3c449f \ + --hash=sha256:2c14b4fd138c4bafcca294765c547914e1aa431ae1ca94ab99d8db08c958bd3b \ + --hash=sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b \ + --hash=sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02 \ + --hash=sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d \ + --hash=sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f \ + --hash=sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8 \ + --hash=sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272 \ + --hash=sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49 \ + --hash=sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419 \ + --hash=sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001 \ + --hash=sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03 \ + --hash=sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196 \ + --hash=sha256:79cdc9f567aec74a72918fd060283911406750cbc9fd28c1316023deb6ce31a9 \ + --hash=sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e \ + --hash=sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5 \ + --hash=sha256:7dd683fef0663e9f0f45cf541d788d24caa3ec9db50796b588e1757d8b3bc007 \ + --hash=sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380 \ + --hash=sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8 \ + --hash=sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27 \ + --hash=sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40 \ + --hash=sha256:a8b33a82979e0a6a34ff435cc81317be1f95ec1ebb7a3a2d1c8a6a54f02ae44e \ + --hash=sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0 \ + --hash=sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263 \ + --hash=sha256:afefc1ed0a59785a7fb06ea7e1678e849c193e1e387db783579bc7b3056fcfcb \ + --hash=sha256:b1cd75a03ad8cb5bc40c90bfde68c0c47de423aa19e5c0f362b43520645eea94 \ + --hash=sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b \ + --hash=sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6 \ + --hash=sha256:c0425b277a59cff3d80ca42162a8de360f318438a2ac83570842a678d826d579 \ + --hash=sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4 \ + --hash=sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59 \ + --hash=sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0 \ + --hash=sha256:cb014d58140a38135f16064c74c652ed57aa0b75cbf8bb59cac821f7edb5334e \ + --hash=sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be \ + --hash=sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd \ + --hash=sha256:d76ac49f929aecaf82d83250b8347e099d7aecba0f4726c1d9b6df3b8bb5fe18 \ + --hash=sha256:d7e5c9973aa04c95650c96e5f5ad865fbf42d62079163ecfab1e01cbc2504c22 \ + --hash=sha256:dcf076a4474fe0d7367e5bbf5b052c7284fa1feca729c04176ce513521afd8a0 \ + --hash=sha256:e3297a6a4059b4acc3a1e9a8b04741f240a80044eef08ebd32e8b5bcdddce75b \ + --hash=sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b \ + --hash=sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af \ + --hash=sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745 + # via matplotlib fqdn==1.5.1 \ --hash=sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f \ --hash=sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014 @@ -1325,6 +1482,14 @@ geomet==1.1.0 \ --hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \ --hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605 # via cassandra-driver +gitdb==4.0.12 \ + --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ + --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf + # via gitpython +gitpython==3.1.50 \ + --hash=sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc \ + --hash=sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9 + # via mlflow-skinny google-api-core[grpc]==2.30.3 \ --hash=sha256:a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8 \ --hash=sha256:e601a37f148585319b26db36e219df68c5d07b6382cff2d580e83404e44d641b @@ -1337,10 +1502,11 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via + # databricks-sdk # google-api-core # google-auth-oauthlib # google-cloud-bigquery @@ -1439,6 +1605,20 @@ googleapis-common-protos[grpc]==1.75.0 \ # google-api-core # grpc-google-iam-v1 # grpcio-status +graphene==3.4.3 \ + --hash=sha256:2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa \ + --hash=sha256:820db6289754c181007a150db1f7fff544b94142b556d12e3ebc777a7bf36c71 + # via mlflow +graphql-core==3.2.8 \ + --hash=sha256:015457da5d996c924ddf57a43f4e959b0b94fb695b85ed4c29446e508ed65cf3 \ + --hash=sha256:cbee07bee1b3ed5e531723685369039f32ff815ef60166686e0162f540f1520c + # via + # graphene + # graphql-relay +graphql-relay==3.2.0 \ + --hash=sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c \ + --hash=sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5 + # via graphene great-expectations==0.18.8 \ --hash=sha256:ab41cfa3de829a4f77bdcd4a23244684cbb67fdacc734d38910164cd02ec95b6 \ --hash=sha256:c1205bede593f679e22e0b3826d6ae1623c439cafd553f9f0bc2b0fd441f6ed9 @@ -1584,11 +1764,12 @@ grpcio-tools==1.62.3 \ --hash=sha256:f4b1615adf67bd8bb71f3464146a6f9949972d06d21a4f5e87e73f6464d97f57 \ --hash=sha256:f6831fdec2b853c9daa3358535c55eed3694325889aa714070528cf8f92d7d6d # via feast (pyproject.toml) -gunicorn==26.0.0 \ - --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ - --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf +gunicorn==25.3.0 \ + --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ + --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 # via # feast (pyproject.toml) + # mlflow # uvicorn-worker h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ @@ -1811,6 +1992,10 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp +huey==2.6.0 \ + --hash=sha256:1b9df9d370b49c6d5721ba8a01ac9a787cf86b3bdc584e4679de27b920395c3f \ + --hash=sha256:8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6 + # via mlflow huggingface-hub==0.36.2 \ --hash=sha256:1934304d2fb224f8afa3b87007d58501acfda9215b334eed53072dd5e815ff7a \ --hash=sha256:48f0c8eac16145dfce371e9d2d7772854a4f591bcb56c9cf548accf531d54270 @@ -1859,6 +2044,7 @@ importlib-metadata==9.0.0 \ # via # build # dask + # mlflow-skinny importlib-resources==7.1.0 \ --hash=sha256:0722d4c6212489c530f2a145a34c0a7a3b4721bc96a15fada5930e2a0b760708 \ --hash=sha256:1bd7b48b4088eddb2cd16382150bb515af0bd2c70128194392725f82ad2c96a1 @@ -1890,6 +2076,10 @@ isoduration==20.11.0 \ --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 # via jsonschema +itsdangerous==2.2.0 \ + --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ + --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 + # via flask jedi==0.20.0 \ --hash=sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 \ --hash=sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011 @@ -1900,6 +2090,7 @@ jinja2==3.1.6 \ # via # feast (pyproject.toml) # altair + # flask # great-expectations # jupyter-server # jupyterlab @@ -2019,6 +2210,125 @@ jwcrypto==1.5.7 \ --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \ --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0 # via python-keycloak +kiwisolver==1.5.0 \ + --hash=sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9 \ + --hash=sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679 \ + --hash=sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0 \ + --hash=sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8 \ + --hash=sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276 \ + --hash=sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96 \ + --hash=sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e \ + --hash=sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac \ + --hash=sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f \ + --hash=sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a \ + --hash=sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15 \ + --hash=sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7 \ + --hash=sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368 \ + --hash=sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02 \ + --hash=sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9 \ + --hash=sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681 \ + --hash=sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57 \ + --hash=sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27 \ + --hash=sha256:295d9ffe712caa9f8a3081de8d32fc60191b4b51c76f02f951fd8407253528f4 \ + --hash=sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920 \ + --hash=sha256:32cc0a5365239a6ea0c6ed461e8838d053b57e397443c0ca894dcc8e388d4374 \ + --hash=sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3 \ + --hash=sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa \ + --hash=sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23 \ + --hash=sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859 \ + --hash=sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb \ + --hash=sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d \ + --hash=sha256:41024ed50e44ab1a60d3fe0a9d15a4ccc9f5f2b1d814ff283c8d01134d5b81bc \ + --hash=sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581 \ + --hash=sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c \ + --hash=sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099 \ + --hash=sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05 \ + --hash=sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9 \ + --hash=sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd \ + --hash=sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc \ + --hash=sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796 \ + --hash=sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303 \ + --hash=sha256:51e8c4084897de9f05898c2c2a39af6318044ae969d46ff7a34ed3f96274adca \ + --hash=sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314 \ + --hash=sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489 \ + --hash=sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57 \ + --hash=sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1 \ + --hash=sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797 \ + --hash=sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021 \ + --hash=sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db \ + --hash=sha256:62f59da443c4f4849f73a51a193b1d9d258dcad0c41bc4d1b8fb2bcc04bfeb22 \ + --hash=sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028 \ + --hash=sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083 \ + --hash=sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65 \ + --hash=sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588 \ + --hash=sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0 \ + --hash=sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a \ + --hash=sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1 \ + --hash=sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c \ + --hash=sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac \ + --hash=sha256:86e0287879f75621ae85197b0877ed2f8b7aa57b511c7331dce2eb6f4de7d476 \ + --hash=sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53 \ + --hash=sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3 \ + --hash=sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4 \ + --hash=sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615 \ + --hash=sha256:8f9baf6f0a6e7571c45c8863010b45e837c3ee1c2c77fcd6ef423be91b21fedb \ + --hash=sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18 \ + --hash=sha256:9190426b7aa26c5229501fa297b8d0653cfd3f5a36f7990c264e157cbf886b3b \ + --hash=sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1 \ + --hash=sha256:94eff26096eb5395136634622515b234ecb6c9979824c1f5004c6e3c3c85ccd2 \ + --hash=sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c \ + --hash=sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac \ + --hash=sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d \ + --hash=sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf \ + --hash=sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2 \ + --hash=sha256:b83af57bdddef03c01a9138034c6ff03181a3028d9a1003b301eb1a55e161a3f \ + --hash=sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f \ + --hash=sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4 \ + --hash=sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9 \ + --hash=sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e \ + --hash=sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737 \ + --hash=sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b \ + --hash=sha256:bf4679a3d71012a7c2bf360e5cd878fbd5e4fcac0896b56393dec239d81529ed \ + --hash=sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3 \ + --hash=sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7 \ + --hash=sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08 \ + --hash=sha256:c8277104ded0a51e699c8c3aff63ce2c56d4ed5519a5f73e0fd7057f959a2b9e \ + --hash=sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902 \ + --hash=sha256:cc0b66c1eec9021353a4b4483afb12dfd50e3669ffbb9152d6842eb34c7e29fd \ + --hash=sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6 \ + --hash=sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310 \ + --hash=sha256:cff8e5383db4989311f99e814feeb90c4723eb4edca425b9d5d9c3fefcdd9537 \ + --hash=sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554 \ + --hash=sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e \ + --hash=sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87 \ + --hash=sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a \ + --hash=sha256:d5cd5189fc2b6a538b75ae45433140c4823463918f7b1617c31e68b085c0022c \ + --hash=sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79 \ + --hash=sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e \ + --hash=sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16 \ + --hash=sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1 \ + --hash=sha256:dd952e03bfbb096cfe2dd35cd9e00f269969b67536cb4370994afc20ff2d0875 \ + --hash=sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd \ + --hash=sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0 \ + --hash=sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9 \ + --hash=sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646 \ + --hash=sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657 \ + --hash=sha256:ebae99ed6764f2b5771c522477b311be313e8841d2e0376db2b10922daebbba4 \ + --hash=sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232 \ + --hash=sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819 \ + --hash=sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384 \ + --hash=sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309 \ + --hash=sha256:f42c23db5d1521218a3276bb08666dcb662896a0be7347cba864eca45ff64ede \ + --hash=sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2 \ + --hash=sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203 \ + --hash=sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7 \ + --hash=sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df \ + --hash=sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c \ + --hash=sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167 \ + --hash=sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3 \ + --hash=sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09 \ + --hash=sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398 + # via matplotlib kubernetes==35.0.0 \ --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee @@ -2241,6 +2551,10 @@ makefun==1.16.0 \ --hash=sha256:43baa4c3e7ae2b17de9ceac20b669e9a67ceeadff31581007cca20a07bbe42c4 \ --hash=sha256:e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947 # via great-expectations +mako==1.3.12 \ + --hash=sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9 \ + --hash=sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a + # via alembic markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a @@ -2340,13 +2654,72 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via + # flask # jinja2 + # mako # nbconvert # werkzeug marshmallow==3.26.2 \ --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations +matplotlib==3.10.9 \ + --hash=sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9 \ + --hash=sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42 \ + --hash=sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d \ + --hash=sha256:1872fb212a05b729e649754a72d5da61d03e0554d76e80303b6f83d1d2c0552b \ + --hash=sha256:1aa972116abb4c9d201bf245620b433726cb6856f3bef6a78f776a00f5c92d37 \ + --hash=sha256:1e7698ac9868428e84d2c967424803b2472ff7167d9d6590d4204ed775343c3b \ + --hash=sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456 \ + --hash=sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc \ + --hash=sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f \ + --hash=sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6 \ + --hash=sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2 \ + --hash=sha256:3fc0364dfbe1d07f6d15c5ebd0c5bf89e126916e5a8667dd4a7a6e84c36653d4 \ + --hash=sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320 \ + --hash=sha256:42fb814efabe95c06c1994d8ab5a8385f43a249e23badd3ba931d4308e5bca20 \ + --hash=sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf \ + --hash=sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c \ + --hash=sha256:51bf0ddbdc598e060d46c16b5590708f81a1624cefbaaf62f6a81bf9285b8c80 \ + --hash=sha256:56fc0bd271b00025c6edfdc7c2dcd247372c8e1544971d62e1dc7c17367e8bf9 \ + --hash=sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716 \ + --hash=sha256:6640f75af2c6148293caa0a2b39dd806a492dd66c8a8b04035813e33d0fd2585 \ + --hash=sha256:68cfdcede415f7c8f5577b03303dd94526cdb6d11036cecdc205e08733b2d2bb \ + --hash=sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38 \ + --hash=sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4 \ + --hash=sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2 \ + --hash=sha256:77210dce9cb8153dffc967efaae990543392563d5a376d4dd8539bebcb0ed217 \ + --hash=sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838 \ + --hash=sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4 \ + --hash=sha256:82834c3c292d24d3a8aae77cd2d20019de69d692a34a970e4fdb8d33e2ea3dda \ + --hash=sha256:8e436d155fa8a3399dc62683f8f5d0e2e50d25d0144a73edd73f82eec8f4abfb \ + --hash=sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f \ + --hash=sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f \ + --hash=sha256:985f2238880e2e69093f588f5fe2e46771747febf0649f3cf7f7b7480875317f \ + --hash=sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c \ + --hash=sha256:a5a6104ed666402ba5106d7f36e0e0cdca4e8d7fa4d39708ca88019e2835a2eb \ + --hash=sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b \ + --hash=sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285 \ + --hash=sha256:ae2f11957b27ce53497dd4d7b235c4d4f1faf383dfb39d0c5beb833bff883294 \ + --hash=sha256:b049278ddce116aaa1c1377ebf58adea909132dfce0281cf7e3a1ea9fc2e2c65 \ + --hash=sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e \ + --hash=sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d \ + --hash=sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f \ + --hash=sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8 \ + --hash=sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39 \ + --hash=sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6 \ + --hash=sha256:d730e984eddf56974c3e72b6129c7ca462ac38dc624338f4b0b23eb23ecba00f \ + --hash=sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf \ + --hash=sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2 \ + --hash=sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe \ + --hash=sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99 \ + --hash=sha256:dfca0129678bd56379db26c52b5d77ed7de314c047492fbdc763aa7501710cfb \ + --hash=sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8 \ + --hash=sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1 \ + --hash=sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921 \ + --hash=sha256:f76e640a5268850bfda54b5131b1b1941cc685e42c5fa98ed9f2d64038308cba \ + --hash=sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358 + # via mlflow matplotlib-inline==0.2.2 \ --hash=sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 \ --hash=sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79 @@ -2379,6 +2752,18 @@ mistune==3.2.1 \ # via # great-expectations # nbconvert +mlflow==3.12.0 \ + --hash=sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47 \ + --hash=sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0 + # via feast (pyproject.toml) +mlflow-skinny==3.12.0 \ + --hash=sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd \ + --hash=sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10 + # via mlflow +mlflow-tracing==3.12.0 \ + --hash=sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80 \ + --hash=sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518 + # via mlflow mmh3==5.2.1 \ --hash=sha256:022aa1a528604e6c83d0a7705fdef0b5355d897a9e0fa3a8d26709ceaa06965d \ --hash=sha256:0634581290e6714c068f4aa24020acf7880927d1f0084fa753d9799ae9610082 \ @@ -2909,6 +3294,7 @@ numpy==2.2.6 \ # feast (pyproject.toml) # accelerate # altair + # contourpy # dask # datasets # db-dtypes @@ -2918,6 +3304,8 @@ numpy==2.2.6 \ # great-expectations # ibis-framework # imageio + # matplotlib + # mlflow # opencv-python-headless # pandas # pandas-gbq @@ -2928,6 +3316,7 @@ numpy==2.2.6 \ # scipy # sentence-transformers # shapely + # skops # tifffile # torchvision # transformers @@ -2952,6 +3341,29 @@ openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 # via docling +opentelemetry-api==1.16.0 \ + --hash=sha256:4b0e895a3b1f5e1908043ebe492d33e33f9ccdbe6d02d3994c2f8721a63ddddb \ + --hash=sha256:79e8f0cf88dbdd36b6abf175d2092af1efcaa2e71552d0d2b3b181a9707bf4bc + # via + # mlflow-skinny + # mlflow-tracing + # opentelemetry-sdk +opentelemetry-proto==1.27.0 \ + --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ + --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace + # via + # mlflow-skinny + # mlflow-tracing +opentelemetry-sdk==1.16.0 \ + --hash=sha256:15f03915eec4839f885a5e6ed959cde59b8690c8c012d07c95b4b138c98dc43f \ + --hash=sha256:4d3bb91e9e209dbeea773b5565d901da4f76a29bf9dbc1c9500be3cabb239a4e + # via + # mlflow-skinny + # mlflow-tracing +opentelemetry-semantic-conventions==0.37b0 \ + --hash=sha256:087ce2e248e42f3ffe4d9fa2303111de72bb93baa06a0f4655980bc1557c4228 \ + --hash=sha256:462982278a42dab01f68641cd89f8460fe1f93e87c68a012a76fb426dcdba5ee + # via opentelemetry-sdk oracledb==4.0.0 \ --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ @@ -3088,6 +3500,9 @@ packaging==26.2 \ # jupyterlab-server # lazy-loader # marshmallow + # matplotlib + # mlflow-skinny + # mlflow-tracing # nbconvert # openlineage-python # pandas-gbq @@ -3095,6 +3510,7 @@ packaging==26.2 \ # ray # safetensors # scikit-image + # skops # snowflake-connector-python # sphinx # transformers @@ -3166,6 +3582,7 @@ pandas==2.3.3 \ # google-cloud-bigquery # great-expectations # ibis-framework + # mlflow # pandas-gbq # pymilvus # snowflake-connector-python @@ -3316,6 +3733,7 @@ pillow==11.3.0 \ # docling-parse # easyocr # imageio + # matplotlib # python-pptx # scikit-image # torchvision @@ -3353,6 +3771,10 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (pyproject.toml) +prettytable==3.17.0 \ + --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \ + --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287 + # via skops prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 @@ -3510,6 +3932,7 @@ protobuf==4.25.9 \ --hash=sha256:d49b615e7c935194ac161f0965699ac84df6112c378e05ec53da65d2e4cbb6d4 # via # feast (pyproject.toml) + # databricks-sdk # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable @@ -3521,7 +3944,10 @@ protobuf==4.25.9 \ # grpcio-status # grpcio-testing # grpcio-tools + # mlflow-skinny + # mlflow-tracing # mypy-protobuf + # opentelemetry-proto # proto-plus # pymilvus # qdrant-client @@ -3660,57 +4086,57 @@ py4j==0.10.9.9 \ --hash=sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 \ --hash=sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879 # via pyspark -pyarrow==24.0.0 \ - --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ - --hash=sha256:04920d6a71aabd08a0417709efce97d45ea8e6fb733d9ca9ecffb13c67839f68 \ - --hash=sha256:0b3537c00fb8d384f15ac1e79b6eb6db04a16514c8c1d22e59a9b95c8ba42868 \ - --hash=sha256:1183baeb14c5f587b1ec52831e665718ce632caab84b7cd6b85fd44f96114495 \ - --hash=sha256:14e31a3c9e35f1ab6356c6378f6f72830e6d2d5f1791df3774a7b097d18a6a1e \ - --hash=sha256:1617043b99bd33e5318ae18eb2919af09c71322ef1ca46566cdafc6e6712fb66 \ - --hash=sha256:1a4e45017efbf115032e4475ee876d525e0e36c742214fbe405332480ecd6275 \ - --hash=sha256:1b2fe7f9a5566401a0ef2571f197eb92358925c1f0c8dba305d6e43ea0871bb3 \ - --hash=sha256:1cc9057f0319e26333b357e17f3c2c022f1a83739b48a88b25bfd5fa2dc18838 \ - --hash=sha256:2392d954fcb920f42d230284b677605e4e2fbb11f2821e823e642abd67fbb491 \ - --hash=sha256:25ea65d868eb04015cd18e6df2fbe98f07e5bda2abefabcb88fce39a947716f6 \ - --hash=sha256:295f0a7f2e242dabd513737cf076007dc5b2d59237e3eca37b05c0c6446f3826 \ - --hash=sha256:2f16197705a230a78270cdd4ea8a1d57e86b2fdcbc34a1f6aebc72e65c986f9a \ - --hash=sha256:35405aecb474e683fb36af650618fd5340ee5471fc65a21b36076a18bbc6c981 \ - --hash=sha256:38be1808cdd068605b787e6ca9119b27eb275a0234e50212c3492331680c3b1e \ - --hash=sha256:3a577bd840ca83f646f0a625dbc571dba7044c43c2d1503afc378b570954345c \ - --hash=sha256:3b13dedfe76a0ad2d1d859b0811b53827a4e9d93a0bcb05cf59333ab4980cc7e \ - --hash=sha256:418e48ce50a45a6a6c73c454677203a9c75c966cb1e92ca3370959185f197a05 \ - --hash=sha256:55a3bc1e3df3b5567b7d27ef551b2283f0c68a5e86f1cd56abc569da4f31335b \ - --hash=sha256:6165461f55ef6314f026de6638d661188e3455d3ec49834556a0ebbdbace18bb \ - --hash=sha256:61a3d7eaa97a14768b542f3d284dc6400dd2470d9f080708b13cd46b6ae18136 \ - --hash=sha256:6233c9ed9ab9d1db47de57d9753256d9dcffbf42db341576099f0fd9f6bf4810 \ - --hash=sha256:641f795b361874ac9da5294f8f443dfdbee355cf2bd9e3b8d97aaac2306b9b37 \ - --hash=sha256:644a246325b8c69c595ad1dd4b463eba4b0cdb731370e4a86137d433208d6147 \ - --hash=sha256:6f066b179d68c413374294bc1735f68475457c933258df594443bb9d88ddc2a0 \ - --hash=sha256:7986f1fa71cee060ad00758bcc79d3a93bab8559bf978fab9e53472a2e25a17b \ - --hash=sha256:7c2b98645d576a0b9616892ead22b64a83a5f043c5e2ca15ebcefcb5b70c80cb \ - --hash=sha256:806f24b4085453c197a5078218d1ee08783ebbba271badd153d1ae22a3ee804f \ - --hash=sha256:85fe721a14dd823aca09127acbb06c3ca723efbd436c004f16bca601b04dcc83 \ - --hash=sha256:8adc8e6ce5fccf5dc707046ae4914fd537def529709cc0d285d37a7f9cd442ca \ - --hash=sha256:9700ebd9a51f5895ce75ff4ac4b3c47a7d4b42bc618be8e713e5d56bacf5f931 \ - --hash=sha256:9b18371ad2f44044b81a8d23bc2d8a9b6a6226dca775e8e16cfee640473d6c5d \ - --hash=sha256:a964266397740257f16f7bb2e4f08a0c81454004beab8ff59dd531b73610e9f2 \ - --hash=sha256:adbbedc55506cbdabb830890444fb856bfb0060c46c6f8026c6c2f2cf86ae795 \ - --hash=sha256:ae8a1145af31d903fa9bb166824d7abe9b4681a000b0159c9fb99c11bc11ad26 \ - --hash=sha256:b0e131f880cda8d04e076cee175a46fc0e8bc8b65c99c6c09dff6669335fde74 \ - --hash=sha256:b196eb3f931862af3fa84c2a253514d859c08e0d8fe020e07be12e75a5a9780c \ - --hash=sha256:b7d9a514e73bc42711e6a35aaccf3587c520024fe0a25d830a1a8a27c15f4f57 \ - --hash=sha256:bec9373df11544592b0ba7ec2af0e35059e5f0e7647c6183a854dedd193298f1 \ - --hash=sha256:c42ab9439498270139cc63e18847a02afe5c8b3ed9c931266533cfe378bd3591 \ - --hash=sha256:c91d00057f23b8d353039520dc3a6c09d8608164c692e9f59a175a42b2ae0c19 \ - --hash=sha256:d3e0b61e8efb24ed38898e5cdc5fffa9124be480008d401a1f8071500494ae42 \ - --hash=sha256:d7027eba1df3b2069e2e8d80f644fa0918b68c46432af3d088ddd390d063ecde \ - --hash=sha256:d8ddd2768da81d3ee08cfea9b597f4abb4e8e1dc8ae7e204b608d23a0d3ab699 \ - --hash=sha256:e3268e43984d0b1a185c89b4cfff282a7ead12fc93f56cfd7088bdbcbe727041 \ - --hash=sha256:e4505fc6583f7b05ab854934896bcac8253b04ac1171a77dfb73efef92076d91 \ - --hash=sha256:e56a1ffe9bf7b727432b89104cc0849c21582949dd7bdcb34f17b2001a351a76 \ - --hash=sha256:e6f1278ee4785b6db21229374a1c9e54ec7c549de5d1efc9630b6207de7e170b \ - --hash=sha256:f7616236ec1bc2b15bfdec22a71ab38851c86f8f05ff64f379e1278cf20c634a \ - --hash=sha256:fb24ac194bfc5e86839d7dcd52092ee31e5fe6733fe11f5e3b06ef0812b20072 +pyarrow==23.0.1 \ + --hash=sha256:00be9576d970c31defb5c32eb72ef585bf600ef6d0a82d5eccaae96639cf9d07 \ + --hash=sha256:07deae7783782ac7250989a7b2ecde9b3c343a643f82e8a4df03d93b633006f0 \ + --hash=sha256:0ae6e17c828455b6265d590100c295193f93cc5675eb0af59e49dbd00d2de350 \ + --hash=sha256:0b95a3994f015be13c63148fef8832e8a23938128c185ee951c98908a696e0eb \ + --hash=sha256:17cd28e906c18af486a499422740298c52d7c6795344ea5002a7720b4eadf16d \ + --hash=sha256:26d50dee49d741ac0e82185033488d28d35be4d763ae6f321f97d1140eb7a0e9 \ + --hash=sha256:29f7f7419a0e30264ea261fdc0e5fe63ce5a6095003db2945d7cd78df391a7e1 \ + --hash=sha256:33d648dc25b51fd8055c19e4261e813dfc4d2427f068bcecc8b53d01b81b0500 \ + --hash=sha256:3a4c85ef66c134161987c17b147d6bffdca4566f9a4c1d81a0a01cdf08414ea5 \ + --hash=sha256:3c30143b17161310f151f4a2bcfe41b5ff744238c1039338779424e38579d701 \ + --hash=sha256:3f91c038b95f71ddfc865f11d5876c42f343b4495535bd262c7b321b0b94507c \ + --hash=sha256:3fab8f82571844eb3c460f90a75583801d14ca0cc32b1acc8c361650e006fd56 \ + --hash=sha256:46718a220d64677c93bc243af1d44b55998255427588e400677d7192671845c7 \ + --hash=sha256:4982d71350b1a6e5cfe1af742c53dfb759b11ce14141870d05d9e540d13bc5d1 \ + --hash=sha256:527e8d899f14bd15b740cd5a54ad56b7f98044955373a17179d5956ddb93d9ce \ + --hash=sha256:564baf97c858ecc03ec01a41062e8f4698abc3e6e2acd79c01c2e97880a19730 \ + --hash=sha256:5abde149bb3ce524782d838eb67ac095cd3fd6090eba051130589793f1a7f76d \ + --hash=sha256:5c16ed4f53247fa3ffb12a14d236de4213a4415d127fe9cebed33d51671113e2 \ + --hash=sha256:5df1161da23636a70838099d4aaa65142777185cc0cdba4037a18cee7d8db9ca \ + --hash=sha256:5f4763b83c11c16e5f4c15601ba6dfa849e20723b46aa2617cb4bffe8768479f \ + --hash=sha256:6b8fda694640b00e8af3c824f99f789e836720aa8c9379fb435d4c4953a756b8 \ + --hash=sha256:6f0147ee9e0386f519c952cc670eb4a8b05caa594eeffe01af0e25f699e4e9bb \ + --hash=sha256:7044b442f184d84e2351e5084600f0d7343d6117aabcbc1ac78eb1ae11eb4125 \ + --hash=sha256:71c5be5cbf1e1cb6169d2a0980850bccb558ddc9b747b6206435313c47c37677 \ + --hash=sha256:76e823d0e86b4fb5e1cf4a58d293036e678b5a4b03539be933d3b31f9406859f \ + --hash=sha256:7707d2b6673f7de054e2e83d59f9e805939038eebe1763fe811ee8fa5c0cd1a7 \ + --hash=sha256:813d99f31275919c383aab17f0f455a04f5a429c261cc411b1e9a8f5e4aaaa05 \ + --hash=sha256:86ff03fb9f1a320266e0de855dee4b17da6794c595d207f89bba40d16b5c78b9 \ + --hash=sha256:8ff51b1addc469b9444b7c6f3548e19dc931b172ab234e995a60aea9f6e6025f \ + --hash=sha256:9b6f4f17b43bc39d56fec96e53fe89d94bac3eb134137964371b45352d40d0c2 \ + --hash=sha256:9fc13fc6c403d1337acab46a2c4346ca6c9dec5780c3c697cf8abfd5e19b6b37 \ + --hash=sha256:a09f3876e87f48bc2f13583ab551f0379e5dfb83210391e68ace404181a20690 \ + --hash=sha256:a35581e856a2fafa12f3f54fce4331862b1cfb0bef5758347a858a4aa9d6bae8 \ + --hash=sha256:a62e1899e3078bf65943078b3ad2a6ddcacf2373bc06379aac61b1e548a75814 \ + --hash=sha256:b8c5873e33440b2bc2f4a79d2b47017a89c5a24116c055625e6f2ee50523f019 \ + --hash=sha256:bf5842f960cddd2ef757d486041d57c96483efc295a8c4a0e20e704cbbf39c67 \ + --hash=sha256:c2139549494445609f35a5cda4eb94e2c9e4d704ce60a095b342f82460c73a83 \ + --hash=sha256:c250248f1fe266db627921c89b47b7c06fee0489ad95b04d50353537d74d6886 \ + --hash=sha256:c33b5bf406284fd0bba436ed6f6c3ebe8e311722b441d89397c54f871c6863a2 \ + --hash=sha256:cd395abf8f91c673dd3589cadc8cc1ee4e8674fa61b2e923c8dd215d9c7d1f41 \ + --hash=sha256:cecfb12ef629cf6be0b1887f9f86463b0dd3dc3195ae6224e74006be4736035a \ + --hash=sha256:d0744403adabef53c985a7f8a082b502a368510c40d184df349a0a8754533258 \ + --hash=sha256:db2190fa79c80a23fdd29fef4b8992893f024ae7c17d2f5f4db7171fa30c2c78 \ + --hash=sha256:ddf743e82f69dcd6dbbcb63628895d7161e04e56794ef80550ac6f3315eeb1d5 \ + --hash=sha256:df088e8f640c9fae3b1f495b3c64755c4e719091caf250f3a74d095ddf3c836d \ + --hash=sha256:e052a211c5ac9848ae15d5ec875ed0943c0221e2fcfe69eee80b604b4e703222 \ + --hash=sha256:f00f993a8179e0e1c9713bcc0baf6d6c01326a406a9c23495ec1ba9c9ebf2919 \ + --hash=sha256:f4b0dbfa124c0bb161f8b5ebb40f1a680b70279aa0c9901d44a2b5a20806039f \ + --hash=sha256:fa8e51cb04b9f8c9c5ace6bab63af9a1f88d35c0d6cbf53e8c17c098552285e1 \ + --hash=sha256:fed7020203e9ef273360b9e45be52a2a47d3103caf156a30ace5247ffb51bdbd # via # feast (pyproject.toml) # dask @@ -3719,6 +4145,7 @@ pyarrow==24.0.0 \ # deltalake # google-cloud-bigquery # ibis-framework + # mlflow # pandas-gbq # snowflake-connector-python pyarrow-hotfix==0.7 \ @@ -3836,6 +4263,8 @@ pydantic==2.13.4 \ # fastapi-mcp # great-expectations # mcp + # mlflow-skinny + # mlflow-tracing # pydantic-settings # qdrant-client pydantic-core==2.46.4 \ @@ -4210,7 +4639,9 @@ pyopenssl==26.2.0 \ pyparsing==3.3.2 \ --hash=sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d \ --hash=sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc - # via great-expectations + # via + # great-expectations + # matplotlib pypdfium2==4.30.0 \ --hash=sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e \ --hash=sha256:119b2969a6d6b1e8d55e99caaf05290294f2d0fe49c12a3f17102d01c441bd29 \ @@ -4437,10 +4868,12 @@ python-dateutil==2.9.0 \ # botocore # elasticsearch # google-cloud-bigquery + # graphene # great-expectations # ibis-framework # jupyter-client # kubernetes + # matplotlib # moto # openlineage-python # pandas @@ -4453,6 +4886,7 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via + # mlflow-skinny # pydantic-settings # pymilvus # testcontainers @@ -4465,9 +4899,9 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (pyproject.toml) -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ @@ -4565,6 +4999,7 @@ pyyaml==6.0.3 \ # huggingface-hub # jupyter-events # kubernetes + # mlflow-skinny # openlineage-python # pre-commit # ray @@ -4829,6 +5264,7 @@ requests==2.34.2 \ # via # feast (pyproject.toml) # azure-core + # databricks-sdk # datasets # docker # docling @@ -4840,6 +5276,7 @@ requests==2.34.2 \ # huggingface-hub # jupyterlab-server # kubernetes + # mlflow-skinny # moto # msal # openlineage-python @@ -5137,7 +5574,9 @@ scikit-learn==1.7.2 \ --hash=sha256:fa8f63940e29c82d1e67a45d5297bdebbcb585f5a5a50c4914cc2e852ab77f33 # via # feast (pyproject.toml) + # mlflow # sentence-transformers + # skops scipy==1.15.3 \ --hash=sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477 \ --hash=sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c \ @@ -5189,9 +5628,11 @@ scipy==1.15.3 \ # docling # easyocr # great-expectations + # mlflow # scikit-image # scikit-learn # sentence-transformers + # skops semchunk==3.2.5 \ --hash=sha256:ee15e9a06a69a411937dd8fcf0a25d7ef389c5195863140436872a02c95b0218 \ --hash=sha256:fd09cc5f380bd010b8ca773bd81893f7eaf11d37dd8362a83d46cedaf5dae076 @@ -5211,6 +5652,8 @@ setuptools==80.10.2 \ # feast (pyproject.toml) # grpcio-tools # jupyterlab + # opentelemetry-api + # opentelemetry-sdk # pandas-gbq # pbr # pip-tools @@ -5300,6 +5743,14 @@ six==1.17.0 \ # python-dateutil # rfc3339-validator # thriftpy2 +skops==0.14.0 \ + --hash=sha256:60a5db78a9db46ccee2139a0ba13ab5afb1c96f4749b382e75a371291bbe3e36 \ + --hash=sha256:6c8c0e047f691a3a582c3258943eecafcbfd79c8c7eef66260f3703e363254f0 + # via mlflow +smmap==5.0.3 \ + --hash=sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c \ + --hash=sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f + # via gitdb sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc @@ -5438,7 +5889,10 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 - # via feast (pyproject.toml) + # via + # feast (pyproject.toml) + # alembic + # mlflow sqlglot[rs]==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 @@ -5483,6 +5937,10 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e + # via mlflow-skinny sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 @@ -5491,12 +5949,13 @@ stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==0.52.1 \ + --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ + --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 # via # fastapi # mcp + # mlflow-skinny # sse-starlette sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ @@ -5685,6 +6144,7 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via + # alembic # build # coverage # fastapi-mcp @@ -5931,9 +6391,9 @@ typer==0.12.5 \ # docling # docling-core # fastapi-mcp -types-cffi==2.0.0.20260508 \ - --hash=sha256:746b081b4bf84f9d8855c517a67c2dff717f3c18657fcff8e9c251fb5778f311 \ - --hash=sha256:d094065daf4edcfbdd3e11c37d2fa9511eaf7c509da7a9d9573c276398a8e745 +types-cffi==2.0.0.20260518 \ + --hash=sha256:5b68a215a95d0eac4203b58e766ff7fe40c2e091b1fa1a9e54111f04cc560084 \ + --hash=sha256:f9707e66c13454789a58f8843d1ded4a66f1e9c8b10bd24d5eb5e0f25c0c5472 # via types-pyopenssl types-protobuf==3.19.22 \ --hash=sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab \ @@ -5941,25 +6401,25 @@ types-protobuf==3.19.22 \ # via # feast (pyproject.toml) # mypy-protobuf -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ --hash=sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54 # via types-redis -types-python-dateutil==2.9.0.20260508 \ - --hash=sha256:596a6d63d81f587bf04c8254fb78df9d2344e915ce67948d7400512e3a6206d5 \ - --hash=sha256:bfc6fd2d81aa86e5ac97206a64304f6bd247426eedbca9b98619bbc48c6a1c10 +types-python-dateutil==2.9.0.20260518 \ + --hash=sha256:51f02dc03b61c7f6a07df45797d4dfe8a1aa47f0b7db9ad89f6fd3a1a70e1b51 \ + --hash=sha256:d6a9c5bd0de61460c8fdef8ab2b400f956a1a1075cce08d4e2b4434e478c50b8 # via feast (pyproject.toml) -types-pytz==2026.2.0.20260506 \ - --hash=sha256:58ab5307c20885f9bcd42ff106616eb0e32710791f8cbdc770aee2ea0c4f01fb \ - --hash=sha256:fc6a0de6a1b7da82a748fb4065e152372dac3016559cb1eef5e8af1e338eb627 +types-pytz==2026.2.0.20260518 \ + --hash=sha256:3a12eaa38f476bd650902a9c9bb442f03f3c7dee2be5c5848bce61bd708d205a \ + --hash=sha256:e5d254329e9c4e91f0781b22c43a4bb2d10bb044d97b24c4b05d45567b0eae16 # via feast (pyproject.toml) -types-pyyaml==6.0.12.20260510 \ - --hash=sha256:09c1f1cb65a6eebea1e2e51ccf4918b8288e152909609a35cdb0d805efd125ad \ - --hash=sha256:3492eb9ba4d9d833473214c4d5736cccf5f37d93f5854059721e1c84f785309d +types-pyyaml==6.0.12.20260518 \ + --hash=sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd \ + --hash=sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466 # via feast (pyproject.toml) types-redis==4.6.0.20241004 \ --hash=sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e \ @@ -5969,9 +6429,9 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (pyproject.toml) -types-setuptools==82.0.0.20260508 \ - --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ - --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e +types-setuptools==82.0.0.20260518 \ + --hash=sha256:31c04a62b57a653a5021caf191be0f10f70df890f813b51f02bab3969d300f20 \ + --hash=sha256:3b743cfe63d0981ea4c15b90710fc1ed41e3464a537d51e705be514e891c1d07 # via # feast (pyproject.toml) # types-cffi @@ -5988,6 +6448,7 @@ typing-extensions==4.15.0 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # aiosignal + # alembic # anyio # async-lru # azure-core @@ -6000,6 +6461,7 @@ typing-extensions==4.15.0 \ # elasticsearch # exceptiongroup # fastapi + # graphene # great-expectations # huggingface-hub # ibis-framework @@ -6008,8 +6470,10 @@ typing-extensions==4.15.0 \ # mcp # minio # mistune + # mlflow-skinny # multidict # mypy + # opentelemetry-sdk # oracledb # psycopg # psycopg-pool @@ -6156,6 +6620,7 @@ uvicorn[standard]==0.34.0 \ # feast (pyproject.toml) # fastapi-mcp # mcp + # mlflow-skinny # uvicorn-worker uvicorn-worker==0.3.0 \ --hash=sha256:6baeab7b2162ea6b9612cbe149aa670a76090ad65a267ce8e27316ed13c7de7b \ @@ -6218,121 +6683,121 @@ virtualenv==20.23.0 \ # via # feast (pyproject.toml) # pre-commit -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn wcwidth==0.7.0 \ --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 - # via prompt-toolkit + # via + # prettytable + # prompt-toolkit webcolors==25.10.0 \ --hash=sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d \ --hash=sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf @@ -6415,7 +6880,10 @@ websockets==16.0 \ werkzeug==3.1.8 \ --hash=sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50 \ --hash=sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44 - # via moto + # via + # flask + # flask-cors + # moto wheel==0.47.0 \ --hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \ --hash=sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3 @@ -6839,9 +7307,9 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata zstandard==0.25.0 \ --hash=sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64 \ diff --git a/sdk/python/requirements/py3.10-minimal-requirements.txt b/sdk/python/requirements/py3.10-minimal-requirements.txt index 9a03493a6ab..82ae24de53a 100644 --- a/sdk/python/requirements/py3.10-minimal-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-requirements.txt @@ -161,38 +161,40 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ @@ -459,9 +461,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -755,9 +757,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via # google-api-core # google-auth-oauthlib @@ -2294,9 +2296,9 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp pytz==2026.2 \ --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ @@ -2758,9 +2760,9 @@ typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc # via fastapi-mcp -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2950,116 +2952,114 @@ uvloop==0.22.1 \ --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 # via uvicorn -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ @@ -3341,7 +3341,7 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt index 52773857dcd..739df33ddc0 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt @@ -4,38 +4,40 @@ # # pybuild-deps compile --generate-hashes --output-file=sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt sdk/python/requirements/py3.10-minimal-sdist-requirements.txt # -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ @@ -860,9 +862,9 @@ semantic-version==2.10.0 \ --hash=sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c \ --hash=sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177 # via setuptools-rust -setuptools-git-versioning==3.0.1 \ - --hash=sha256:737c4d17e848edd46e28764a19dc424d8537fcb2257022e5f4f5c0c8e9b64c80 \ - --hash=sha256:c8a599bacf163b5d215552b5701faf5480ffc4d65426a5711a010b802e1590eb +setuptools-git-versioning==3.1.0 \ + --hash=sha256:3a68f3fd58a2a5e86b0792435cfa9d8e569ab60ee5e4c29228c09da9b637bf18 \ + --hash=sha256:612dfcf184addac9e1c2216f4f229724b2390e5bf613fb925ae80b84f2529172 # via toolz setuptools-rust==1.12.1 \ --hash=sha256:85ae70989d96c9cfeb5ef79cf3bac2d5200bc5564f720a06edceedbdf6664640 \ @@ -980,9 +982,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==82.0.0.20260508 \ - --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ - --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e +types-setuptools==82.0.0.20260518 \ + --hash=sha256:31c04a62b57a653a5021caf191be0f10f70df890f813b51f02bab3969d300f20 \ + --hash=sha256:3b743cfe63d0981ea4c15b90710fc1ed41e3464a537d51e705be514e891c1d07 # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt index a998ead874d..ac0e59b5df0 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt @@ -165,38 +165,40 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ @@ -471,9 +473,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -843,9 +845,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via # google-api-core # google-auth-oauthlib @@ -2499,9 +2501,9 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp pytz==2026.2 \ --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ @@ -3020,9 +3022,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (pyproject.toml) -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -3219,116 +3221,114 @@ vcs-versioning==1.1.1 \ --hash=sha256:b541e2ba79fc6aaa3850f8a7f88af43d97c1c80649c01142ee4146eddbc599e4 \ --hash=sha256:fabd75a3cab7dd8ac02fe24a3a9ba936bf258667b5a62ed468c9a1da0f5775bc # via setuptools-scm -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ @@ -3610,9 +3610,9 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata # The following packages were excluded from the output: diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index d487d7d9ec1..905007c5cd3 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -14,38 +14,40 @@ anyio==4.13.0 \ # via # starlette # watchfiles -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ @@ -192,9 +194,9 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via requests -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -1469,116 +1471,114 @@ uvloop==0.22.1 \ --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 # via uvicorn -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websockets==16.0 \ --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ @@ -1643,7 +1643,7 @@ websockets==16.0 \ --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index a712a60a132..4f011ae852b 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -137,6 +137,7 @@ aiohttp==3.13.5 \ # aiobotocore # aiohttp-cors # fsspec + # mlflow # ray aiohttp-cors==0.8.1 \ --hash=sha256:3180cf304c5c712d626b9162b195b1db7ddf976a2a25172b35bb2448b890a80d \ @@ -154,6 +155,10 @@ alabaster==0.7.16 \ --hash=sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65 \ --hash=sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92 # via sphinx +alembic==1.18.4 \ + --hash=sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a \ + --hash=sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc + # via mlflow altair==4.2.2 \ --hash=sha256:39399a267c49b30d102c10411e67ab26374156a84b1aeb9fcd15140429ba49c5 \ --hash=sha256:8b45ebeaf8557f2d760c5c77b79f02ae12aee7c46c27c06014febab6f849bc87 @@ -265,9 +270,9 @@ azure-identity==1.25.3 \ --hash=sha256:ab23c0d63015f50b630ef6c6cf395e7262f439ce06e5d07a64e874c724f8d9e6 \ --hash=sha256:f4d0b956a8146f30333e071374171f3cfa7bdb8073adb8c3814b65567aa7447c # via feast (pyproject.toml) -azure-storage-blob==12.28.0 \ - --hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \ - --hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41 +azure-storage-blob==12.29.0 \ + --hash=sha256:2824ddd7ebc9056034ebc76b17971a38e9aa5835abb0d565b9700493f2a6c657 \ + --hash=sha256:ccf8a1bcd5e49df83ab85aab793b579e5ba2eeea2ad8900b2f62ca3a37dc391f # via feast (pyproject.toml) babel==2.18.0 \ --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ @@ -354,6 +359,10 @@ bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ --hash=sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6 # via nbconvert +blinker==1.9.0 \ + --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ + --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc + # via flask boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ --hash=sha256:95f5fe688795303a8a15e8b7e7f255cadab35eae459d00cc281a4fd77252ea80 @@ -377,6 +386,12 @@ build==1.5.0 \ # feast (pyproject.toml) # pip-tools # singlestoredb +cachetools==7.1.3 \ + --hash=sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d \ + --hash=sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804 + # via + # mlflow-skinny + # mlflow-tracing cassandra-driver==3.30.0 \ --hash=sha256:0c28a8e84917acebecbaed39844047c2f135739c3627dd7b9f8541af33e11df3 \ --hash=sha256:0f4225082a11d9529416c223553ab38a29c4e65da6646b40159c554480dc002c \ @@ -645,14 +660,16 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask + # flask # geomet # great-expectations + # mlflow-skinny # pip-tools # ray # typer @@ -663,6 +680,7 @@ clickhouse-connect==1.0.0 \ --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ + --hash=sha256:0d4ed1e296c6e77dc0dbf486607cc39fc6e36866abb653543d5ad0a8426ea8f0 \ --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ @@ -715,7 +733,9 @@ clickhouse-connect==1.0.0 \ cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a - # via dask + # via + # dask + # mlflow-skinny codeflare-sdk==0.37.0 \ --hash=sha256:2106118d9341db7e329da59f296bc635c08e365d4a644013bb9a55ce38c54da5 \ --hash=sha256:a5f86b9541a3ef2498bc920465b0e106c4e58bfa2004d14ff177f83761afd469 @@ -736,6 +756,80 @@ comm==0.2.3 \ # via # ipykernel # ipywidgets +contourpy==1.3.3 \ + --hash=sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69 \ + --hash=sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc \ + --hash=sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880 \ + --hash=sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a \ + --hash=sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8 \ + --hash=sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc \ + --hash=sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470 \ + --hash=sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5 \ + --hash=sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263 \ + --hash=sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b \ + --hash=sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5 \ + --hash=sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381 \ + --hash=sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3 \ + --hash=sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4 \ + --hash=sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e \ + --hash=sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f \ + --hash=sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772 \ + --hash=sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286 \ + --hash=sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42 \ + --hash=sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301 \ + --hash=sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77 \ + --hash=sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7 \ + --hash=sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411 \ + --hash=sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1 \ + --hash=sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9 \ + --hash=sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a \ + --hash=sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b \ + --hash=sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db \ + --hash=sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6 \ + --hash=sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620 \ + --hash=sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989 \ + --hash=sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea \ + --hash=sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67 \ + --hash=sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5 \ + --hash=sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d \ + --hash=sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36 \ + --hash=sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99 \ + --hash=sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1 \ + --hash=sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e \ + --hash=sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b \ + --hash=sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8 \ + --hash=sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d \ + --hash=sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7 \ + --hash=sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7 \ + --hash=sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339 \ + --hash=sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1 \ + --hash=sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659 \ + --hash=sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4 \ + --hash=sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f \ + --hash=sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20 \ + --hash=sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36 \ + --hash=sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb \ + --hash=sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d \ + --hash=sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8 \ + --hash=sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0 \ + --hash=sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b \ + --hash=sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7 \ + --hash=sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe \ + --hash=sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77 \ + --hash=sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497 \ + --hash=sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd \ + --hash=sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1 \ + --hash=sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216 \ + --hash=sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13 \ + --hash=sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae \ + --hash=sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae \ + --hash=sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77 \ + --hash=sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3 \ + --hash=sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f \ + --hash=sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff \ + --hash=sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9 \ + --hash=sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a + # via matplotlib couchbase==4.3.2 \ --hash=sha256:032a180afd6621358b2c73543b9c5db9939b442fc3ad6d54417c36c8a8f65838 \ --hash=sha256:11ce688ed46edf8387bf51866618c7b4e06399e7fb34a6df002764996c109d1f \ @@ -968,6 +1062,7 @@ cryptography==46.0.7 \ # google-auth # great-expectations # jwcrypto + # mlflow # moto # msal # oracledb @@ -977,10 +1072,20 @@ cryptography==46.0.7 \ # snowflake-connector-python # types-pyopenssl # types-redis +cycler==0.12.1 \ + --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ + --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c + # via matplotlib dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) +databricks-sdk==0.109.0 \ + --hash=sha256:46745a25324a5b36f01236760e44fc6e2bce3f051224e6f8aef7633477fcbec8 \ + --hash=sha256:96b90f5ee2e0fac89f351aa77348263e1e0ed5d4d867cdfaefd2e0acc01b1e81 + # via + # mlflow-skinny + # mlflow-tracing datasets==4.8.5 \ --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff @@ -1027,9 +1132,9 @@ debugpy==1.8.20 \ --hash=sha256:eada6042ad88fa1571b74bd5402ee8b86eded7a8f7b827849761700aff171f1b \ --hash=sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7 # via ipykernel -decorator==5.2.1 \ - --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ - --hash=sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a +decorator==5.3.1 \ + --hash=sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82 \ + --hash=sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c # via ipython defusedxml==0.7.1 \ --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \ @@ -1074,14 +1179,16 @@ dnspython==2.8.0 \ docker==7.1.0 \ --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 - # via testcontainers + # via + # mlflow + # testcontainers docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.75.0 \ - --hash=sha256:60f7bc4025f6511ba82eeb0aa677e756e9d3bf069d6f207c6ef2fb8be3176f32 \ - --hash=sha256:7961be3c3f58855324b081fce9e1231b892da7c61d6babbaf3d49c28387eb782 +docling-core[chunking]==2.76.0 \ + --hash=sha256:55af705c6d0755254afddb959fe5dea3a6d413d3ea7539e380bb008268806316 \ + --hash=sha256:e4f681ad434cb45ba93bd3afaab62c5d910bf9ac6b3fdb98b12ee2e476bb75a4 # via # docling # docling-ibm-models @@ -1226,6 +1333,7 @@ fastapi==0.136.1 \ # via # feast (pyproject.toml) # fastapi-mcp + # mlflow-skinny fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d @@ -1249,6 +1357,68 @@ filetype==1.2.0 \ --hash=sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb \ --hash=sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25 # via docling +flask==3.1.3 \ + --hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \ + --hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c + # via + # flask-cors + # mlflow +flask-cors==6.0.2 \ + --hash=sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423 \ + --hash=sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a + # via mlflow +fonttools==4.63.0 \ + --hash=sha256:032038247a96c1690f9f31e377c389383c902531b085aa4e4dabd6f57f870e69 \ + --hash=sha256:063e08bd17bd5a90127a14123de0d6a952dbc847695fd98b63c043d58057f90c \ + --hash=sha256:0c18358a155d75034911c5ee397a5b44cd19dd325dbb8b35fb60bf421d6a72ac \ + --hash=sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096 \ + --hash=sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d \ + --hash=sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68 \ + --hash=sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616 \ + --hash=sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78 \ + --hash=sha256:2b8ae05d9eacf6081414d759c0a352769ac28ce31280d6bb8e77b03f9e3c449f \ + --hash=sha256:2c14b4fd138c4bafcca294765c547914e1aa431ae1ca94ab99d8db08c958bd3b \ + --hash=sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b \ + --hash=sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02 \ + --hash=sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d \ + --hash=sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f \ + --hash=sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8 \ + --hash=sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272 \ + --hash=sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49 \ + --hash=sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419 \ + --hash=sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001 \ + --hash=sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03 \ + --hash=sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196 \ + --hash=sha256:79cdc9f567aec74a72918fd060283911406750cbc9fd28c1316023deb6ce31a9 \ + --hash=sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e \ + --hash=sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5 \ + --hash=sha256:7dd683fef0663e9f0f45cf541d788d24caa3ec9db50796b588e1757d8b3bc007 \ + --hash=sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380 \ + --hash=sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8 \ + --hash=sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27 \ + --hash=sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40 \ + --hash=sha256:a8b33a82979e0a6a34ff435cc81317be1f95ec1ebb7a3a2d1c8a6a54f02ae44e \ + --hash=sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0 \ + --hash=sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263 \ + --hash=sha256:afefc1ed0a59785a7fb06ea7e1678e849c193e1e387db783579bc7b3056fcfcb \ + --hash=sha256:b1cd75a03ad8cb5bc40c90bfde68c0c47de423aa19e5c0f362b43520645eea94 \ + --hash=sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b \ + --hash=sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6 \ + --hash=sha256:c0425b277a59cff3d80ca42162a8de360f318438a2ac83570842a678d826d579 \ + --hash=sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4 \ + --hash=sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59 \ + --hash=sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0 \ + --hash=sha256:cb014d58140a38135f16064c74c652ed57aa0b75cbf8bb59cac821f7edb5334e \ + --hash=sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be \ + --hash=sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd \ + --hash=sha256:d76ac49f929aecaf82d83250b8347e099d7aecba0f4726c1d9b6df3b8bb5fe18 \ + --hash=sha256:d7e5c9973aa04c95650c96e5f5ad865fbf42d62079163ecfab1e01cbc2504c22 \ + --hash=sha256:dcf076a4474fe0d7367e5bbf5b052c7284fa1feca729c04176ce513521afd8a0 \ + --hash=sha256:e3297a6a4059b4acc3a1e9a8b04741f240a80044eef08ebd32e8b5bcdddce75b \ + --hash=sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b \ + --hash=sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af \ + --hash=sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745 + # via matplotlib fqdn==1.5.1 \ --hash=sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f \ --hash=sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014 @@ -1401,6 +1571,14 @@ geomet==1.1.0 \ --hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \ --hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605 # via cassandra-driver +gitdb==4.0.12 \ + --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ + --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf + # via gitpython +gitpython==3.1.50 \ + --hash=sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc \ + --hash=sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9 + # via mlflow-skinny google-api-core[grpc]==2.30.3 \ --hash=sha256:a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8 \ --hash=sha256:e601a37f148585319b26db36e219df68c5d07b6382cff2d580e83404e44d641b @@ -1414,10 +1592,11 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via + # databricks-sdk # google-api-core # google-auth-oauthlib # google-cloud-bigquery @@ -1516,6 +1695,20 @@ googleapis-common-protos[grpc]==1.75.0 \ # google-api-core # grpc-google-iam-v1 # grpcio-status +graphene==3.4.3 \ + --hash=sha256:2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa \ + --hash=sha256:820db6289754c181007a150db1f7fff544b94142b556d12e3ebc777a7bf36c71 + # via mlflow +graphql-core==3.2.8 \ + --hash=sha256:015457da5d996c924ddf57a43f4e959b0b94fb695b85ed4c29446e508ed65cf3 \ + --hash=sha256:cbee07bee1b3ed5e531723685369039f32ff815ef60166686e0162f540f1520c + # via + # graphene + # graphql-relay +graphql-relay==3.2.0 \ + --hash=sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c \ + --hash=sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5 + # via graphene great-expectations==0.18.8 \ --hash=sha256:ab41cfa3de829a4f77bdcd4a23244684cbb67fdacc734d38910164cd02ec95b6 \ --hash=sha256:c1205bede593f679e22e0b3826d6ae1623c439cafd553f9f0bc2b0fd441f6ed9 @@ -1662,11 +1855,12 @@ grpcio-tools==1.62.3 \ --hash=sha256:f4b1615adf67bd8bb71f3464146a6f9949972d06d21a4f5e87e73f6464d97f57 \ --hash=sha256:f6831fdec2b853c9daa3358535c55eed3694325889aa714070528cf8f92d7d6d # via feast (pyproject.toml) -gunicorn==26.0.0 \ - --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ - --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf +gunicorn==25.3.0 \ + --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ + --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 # via # feast (pyproject.toml) + # mlflow # uvicorn-worker h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ @@ -1889,6 +2083,10 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp +huey==2.6.0 \ + --hash=sha256:1b9df9d370b49c6d5721ba8a01ac9a787cf86b3bdc584e4679de27b920395c3f \ + --hash=sha256:8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6 + # via mlflow huggingface-hub==0.36.2 \ --hash=sha256:1934304d2fb224f8afa3b87007d58501acfda9215b334eed53072dd5e815ff7a \ --hash=sha256:48f0c8eac16145dfce371e9d2d7772854a4f591bcb56c9cf548accf531d54270 @@ -1936,6 +2134,7 @@ importlib-metadata==8.7.1 \ --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via # dask + # mlflow-skinny # opentelemetry-api importlib-resources==7.1.0 \ --hash=sha256:0722d4c6212489c530f2a145a34c0a7a3b4721bc96a15fada5930e2a0b760708 \ @@ -1978,6 +2177,10 @@ isoduration==20.11.0 \ --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 # via jsonschema +itsdangerous==2.2.0 \ + --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ + --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 + # via flask jedi==0.20.0 \ --hash=sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 \ --hash=sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011 @@ -1988,6 +2191,7 @@ jinja2==3.1.6 \ # via # feast (pyproject.toml) # altair + # flask # great-expectations # jupyter-server # jupyterlab @@ -2107,6 +2311,125 @@ jwcrypto==1.5.7 \ --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \ --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0 # via python-keycloak +kiwisolver==1.5.0 \ + --hash=sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9 \ + --hash=sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679 \ + --hash=sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0 \ + --hash=sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8 \ + --hash=sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276 \ + --hash=sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96 \ + --hash=sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e \ + --hash=sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac \ + --hash=sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f \ + --hash=sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a \ + --hash=sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15 \ + --hash=sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7 \ + --hash=sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368 \ + --hash=sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02 \ + --hash=sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9 \ + --hash=sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681 \ + --hash=sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57 \ + --hash=sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27 \ + --hash=sha256:295d9ffe712caa9f8a3081de8d32fc60191b4b51c76f02f951fd8407253528f4 \ + --hash=sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920 \ + --hash=sha256:32cc0a5365239a6ea0c6ed461e8838d053b57e397443c0ca894dcc8e388d4374 \ + --hash=sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3 \ + --hash=sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa \ + --hash=sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23 \ + --hash=sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859 \ + --hash=sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb \ + --hash=sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d \ + --hash=sha256:41024ed50e44ab1a60d3fe0a9d15a4ccc9f5f2b1d814ff283c8d01134d5b81bc \ + --hash=sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581 \ + --hash=sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c \ + --hash=sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099 \ + --hash=sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05 \ + --hash=sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9 \ + --hash=sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd \ + --hash=sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc \ + --hash=sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796 \ + --hash=sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303 \ + --hash=sha256:51e8c4084897de9f05898c2c2a39af6318044ae969d46ff7a34ed3f96274adca \ + --hash=sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314 \ + --hash=sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489 \ + --hash=sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57 \ + --hash=sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1 \ + --hash=sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797 \ + --hash=sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021 \ + --hash=sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db \ + --hash=sha256:62f59da443c4f4849f73a51a193b1d9d258dcad0c41bc4d1b8fb2bcc04bfeb22 \ + --hash=sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028 \ + --hash=sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083 \ + --hash=sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65 \ + --hash=sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588 \ + --hash=sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0 \ + --hash=sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a \ + --hash=sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1 \ + --hash=sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c \ + --hash=sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac \ + --hash=sha256:86e0287879f75621ae85197b0877ed2f8b7aa57b511c7331dce2eb6f4de7d476 \ + --hash=sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53 \ + --hash=sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3 \ + --hash=sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4 \ + --hash=sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615 \ + --hash=sha256:8f9baf6f0a6e7571c45c8863010b45e837c3ee1c2c77fcd6ef423be91b21fedb \ + --hash=sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18 \ + --hash=sha256:9190426b7aa26c5229501fa297b8d0653cfd3f5a36f7990c264e157cbf886b3b \ + --hash=sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1 \ + --hash=sha256:94eff26096eb5395136634622515b234ecb6c9979824c1f5004c6e3c3c85ccd2 \ + --hash=sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c \ + --hash=sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac \ + --hash=sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d \ + --hash=sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf \ + --hash=sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2 \ + --hash=sha256:b83af57bdddef03c01a9138034c6ff03181a3028d9a1003b301eb1a55e161a3f \ + --hash=sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f \ + --hash=sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4 \ + --hash=sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9 \ + --hash=sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e \ + --hash=sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737 \ + --hash=sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b \ + --hash=sha256:bf4679a3d71012a7c2bf360e5cd878fbd5e4fcac0896b56393dec239d81529ed \ + --hash=sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3 \ + --hash=sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7 \ + --hash=sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08 \ + --hash=sha256:c8277104ded0a51e699c8c3aff63ce2c56d4ed5519a5f73e0fd7057f959a2b9e \ + --hash=sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902 \ + --hash=sha256:cc0b66c1eec9021353a4b4483afb12dfd50e3669ffbb9152d6842eb34c7e29fd \ + --hash=sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6 \ + --hash=sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310 \ + --hash=sha256:cff8e5383db4989311f99e814feeb90c4723eb4edca425b9d5d9c3fefcdd9537 \ + --hash=sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554 \ + --hash=sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e \ + --hash=sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87 \ + --hash=sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a \ + --hash=sha256:d5cd5189fc2b6a538b75ae45433140c4823463918f7b1617c31e68b085c0022c \ + --hash=sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79 \ + --hash=sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e \ + --hash=sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16 \ + --hash=sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1 \ + --hash=sha256:dd952e03bfbb096cfe2dd35cd9e00f269969b67536cb4370994afc20ff2d0875 \ + --hash=sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd \ + --hash=sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0 \ + --hash=sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9 \ + --hash=sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646 \ + --hash=sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657 \ + --hash=sha256:ebae99ed6764f2b5771c522477b311be313e8841d2e0376db2b10922daebbba4 \ + --hash=sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232 \ + --hash=sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819 \ + --hash=sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384 \ + --hash=sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309 \ + --hash=sha256:f42c23db5d1521218a3276bb08666dcb662896a0be7347cba864eca45ff64ede \ + --hash=sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2 \ + --hash=sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203 \ + --hash=sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7 \ + --hash=sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df \ + --hash=sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c \ + --hash=sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167 \ + --hash=sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3 \ + --hash=sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09 \ + --hash=sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398 + # via matplotlib kube-authkit==0.4.0 \ --hash=sha256:1df61ac392fca96c8f5ae8c3d6e9918f1e1655d212434b3c3da5f92cc23b660d \ --hash=sha256:3bf5fc6ddc882498040118c907628ea68789f9a947454c241972008be59601a3 @@ -2336,6 +2659,10 @@ makefun==1.16.0 \ --hash=sha256:43baa4c3e7ae2b17de9ceac20b669e9a67ceeadff31581007cca20a07bbe42c4 \ --hash=sha256:e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947 # via great-expectations +mako==1.3.12 \ + --hash=sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9 \ + --hash=sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a + # via alembic markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a @@ -2435,13 +2762,72 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via + # flask # jinja2 + # mako # nbconvert # werkzeug marshmallow==3.26.2 \ --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations +matplotlib==3.10.9 \ + --hash=sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9 \ + --hash=sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42 \ + --hash=sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d \ + --hash=sha256:1872fb212a05b729e649754a72d5da61d03e0554d76e80303b6f83d1d2c0552b \ + --hash=sha256:1aa972116abb4c9d201bf245620b433726cb6856f3bef6a78f776a00f5c92d37 \ + --hash=sha256:1e7698ac9868428e84d2c967424803b2472ff7167d9d6590d4204ed775343c3b \ + --hash=sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456 \ + --hash=sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc \ + --hash=sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f \ + --hash=sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6 \ + --hash=sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2 \ + --hash=sha256:3fc0364dfbe1d07f6d15c5ebd0c5bf89e126916e5a8667dd4a7a6e84c36653d4 \ + --hash=sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320 \ + --hash=sha256:42fb814efabe95c06c1994d8ab5a8385f43a249e23badd3ba931d4308e5bca20 \ + --hash=sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf \ + --hash=sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c \ + --hash=sha256:51bf0ddbdc598e060d46c16b5590708f81a1624cefbaaf62f6a81bf9285b8c80 \ + --hash=sha256:56fc0bd271b00025c6edfdc7c2dcd247372c8e1544971d62e1dc7c17367e8bf9 \ + --hash=sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716 \ + --hash=sha256:6640f75af2c6148293caa0a2b39dd806a492dd66c8a8b04035813e33d0fd2585 \ + --hash=sha256:68cfdcede415f7c8f5577b03303dd94526cdb6d11036cecdc205e08733b2d2bb \ + --hash=sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38 \ + --hash=sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4 \ + --hash=sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2 \ + --hash=sha256:77210dce9cb8153dffc967efaae990543392563d5a376d4dd8539bebcb0ed217 \ + --hash=sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838 \ + --hash=sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4 \ + --hash=sha256:82834c3c292d24d3a8aae77cd2d20019de69d692a34a970e4fdb8d33e2ea3dda \ + --hash=sha256:8e436d155fa8a3399dc62683f8f5d0e2e50d25d0144a73edd73f82eec8f4abfb \ + --hash=sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f \ + --hash=sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f \ + --hash=sha256:985f2238880e2e69093f588f5fe2e46771747febf0649f3cf7f7b7480875317f \ + --hash=sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c \ + --hash=sha256:a5a6104ed666402ba5106d7f36e0e0cdca4e8d7fa4d39708ca88019e2835a2eb \ + --hash=sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b \ + --hash=sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285 \ + --hash=sha256:ae2f11957b27ce53497dd4d7b235c4d4f1faf383dfb39d0c5beb833bff883294 \ + --hash=sha256:b049278ddce116aaa1c1377ebf58adea909132dfce0281cf7e3a1ea9fc2e2c65 \ + --hash=sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e \ + --hash=sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d \ + --hash=sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f \ + --hash=sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8 \ + --hash=sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39 \ + --hash=sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6 \ + --hash=sha256:d730e984eddf56974c3e72b6129c7ca462ac38dc624338f4b0b23eb23ecba00f \ + --hash=sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf \ + --hash=sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2 \ + --hash=sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe \ + --hash=sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99 \ + --hash=sha256:dfca0129678bd56379db26c52b5d77ed7de314c047492fbdc763aa7501710cfb \ + --hash=sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8 \ + --hash=sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1 \ + --hash=sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921 \ + --hash=sha256:f76e640a5268850bfda54b5131b1b1941cc685e42c5fa98ed9f2d64038308cba \ + --hash=sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358 + # via mlflow matplotlib-inline==0.2.2 \ --hash=sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 \ --hash=sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79 @@ -2474,6 +2860,18 @@ mistune==3.2.1 \ # via # great-expectations # nbconvert +mlflow==3.12.0 \ + --hash=sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47 \ + --hash=sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0 + # via feast (pyproject.toml) +mlflow-skinny==3.12.0 \ + --hash=sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd \ + --hash=sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10 + # via mlflow +mlflow-tracing==3.12.0 \ + --hash=sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80 \ + --hash=sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518 + # via mlflow mmh3==5.2.1 \ --hash=sha256:022aa1a528604e6c83d0a7705fdef0b5355d897a9e0fa3a8d26709ceaa06965d \ --hash=sha256:0634581290e6714c068f4aa24020acf7880927d1f0084fa753d9799ae9610082 \ @@ -2944,83 +3342,84 @@ notebook-shim==0.2.4 \ # via # jupyterlab # notebook -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # accelerate # altair + # contourpy # dask # datasets # db-dtypes @@ -3030,6 +3429,8 @@ numpy==2.4.4 \ # great-expectations # ibis-framework # imageio + # matplotlib + # mlflow # opencv-python-headless # pandas # pandas-gbq @@ -3041,6 +3442,7 @@ numpy==2.4.4 \ # scipy # sentence-transformers # shapely + # skops # tifffile # torchvision # transformers @@ -3081,6 +3483,8 @@ opentelemetry-api==1.41.1 \ --hash=sha256:0ad1814d73b875f84494387dae86ce0b12c68556331ce6ce8fe789197c949621 \ --hash=sha256:a22df900e75c76dc08440710e51f52f1aa6b451b429298896023e60db5b3139f # via + # mlflow-skinny + # mlflow-tracing # opentelemetry-exporter-prometheus # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -3091,11 +3495,16 @@ opentelemetry-exporter-prometheus==0.62b1 \ opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace - # via ray + # via + # mlflow-skinny + # mlflow-tracing + # ray opentelemetry-sdk==1.41.1 \ --hash=sha256:724b615e1215b5aeacda0abb8a6a8922c9a1853068948bd0bd225a56d0c792e6 \ --hash=sha256:edee379c126c1bce952b0c812b48fe8ff35b30df0eecf17e98afa4d598b7d85d # via + # mlflow-skinny + # mlflow-tracing # opentelemetry-exporter-prometheus # ray opentelemetry-semantic-conventions==0.62b1 \ @@ -3238,6 +3647,9 @@ packaging==26.2 \ # jupyterlab-server # lazy-loader # marshmallow + # matplotlib + # mlflow-skinny + # mlflow-tracing # nbconvert # openlineage-python # pandas-gbq @@ -3245,6 +3657,7 @@ packaging==26.2 \ # ray # safetensors # scikit-image + # skops # snowflake-connector-python # sphinx # transformers @@ -3316,6 +3729,7 @@ pandas==2.3.3 \ # google-cloud-bigquery # great-expectations # ibis-framework + # mlflow # pandas-gbq # pymilvus # ray @@ -3471,6 +3885,7 @@ pillow==11.3.0 \ # docling-parse # easyocr # imageio + # matplotlib # python-pptx # scikit-image # torchvision @@ -3508,6 +3923,10 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (pyproject.toml) +prettytable==3.17.0 \ + --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \ + --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287 + # via skops prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 @@ -3667,6 +4086,7 @@ protobuf==4.25.9 \ --hash=sha256:d49b615e7c935194ac161f0965699ac84df6112c378e05ec53da65d2e4cbb6d4 # via # feast (pyproject.toml) + # databricks-sdk # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable @@ -3678,6 +4098,8 @@ protobuf==4.25.9 \ # grpcio-status # grpcio-testing # grpcio-tools + # mlflow-skinny + # mlflow-tracing # mypy-protobuf # opentelemetry-proto # proto-plus @@ -3828,57 +4250,57 @@ py4j==0.10.9.9 \ --hash=sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 \ --hash=sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879 # via pyspark -pyarrow==24.0.0 \ - --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ - --hash=sha256:04920d6a71aabd08a0417709efce97d45ea8e6fb733d9ca9ecffb13c67839f68 \ - --hash=sha256:0b3537c00fb8d384f15ac1e79b6eb6db04a16514c8c1d22e59a9b95c8ba42868 \ - --hash=sha256:1183baeb14c5f587b1ec52831e665718ce632caab84b7cd6b85fd44f96114495 \ - --hash=sha256:14e31a3c9e35f1ab6356c6378f6f72830e6d2d5f1791df3774a7b097d18a6a1e \ - --hash=sha256:1617043b99bd33e5318ae18eb2919af09c71322ef1ca46566cdafc6e6712fb66 \ - --hash=sha256:1a4e45017efbf115032e4475ee876d525e0e36c742214fbe405332480ecd6275 \ - --hash=sha256:1b2fe7f9a5566401a0ef2571f197eb92358925c1f0c8dba305d6e43ea0871bb3 \ - --hash=sha256:1cc9057f0319e26333b357e17f3c2c022f1a83739b48a88b25bfd5fa2dc18838 \ - --hash=sha256:2392d954fcb920f42d230284b677605e4e2fbb11f2821e823e642abd67fbb491 \ - --hash=sha256:25ea65d868eb04015cd18e6df2fbe98f07e5bda2abefabcb88fce39a947716f6 \ - --hash=sha256:295f0a7f2e242dabd513737cf076007dc5b2d59237e3eca37b05c0c6446f3826 \ - --hash=sha256:2f16197705a230a78270cdd4ea8a1d57e86b2fdcbc34a1f6aebc72e65c986f9a \ - --hash=sha256:35405aecb474e683fb36af650618fd5340ee5471fc65a21b36076a18bbc6c981 \ - --hash=sha256:38be1808cdd068605b787e6ca9119b27eb275a0234e50212c3492331680c3b1e \ - --hash=sha256:3a577bd840ca83f646f0a625dbc571dba7044c43c2d1503afc378b570954345c \ - --hash=sha256:3b13dedfe76a0ad2d1d859b0811b53827a4e9d93a0bcb05cf59333ab4980cc7e \ - --hash=sha256:418e48ce50a45a6a6c73c454677203a9c75c966cb1e92ca3370959185f197a05 \ - --hash=sha256:55a3bc1e3df3b5567b7d27ef551b2283f0c68a5e86f1cd56abc569da4f31335b \ - --hash=sha256:6165461f55ef6314f026de6638d661188e3455d3ec49834556a0ebbdbace18bb \ - --hash=sha256:61a3d7eaa97a14768b542f3d284dc6400dd2470d9f080708b13cd46b6ae18136 \ - --hash=sha256:6233c9ed9ab9d1db47de57d9753256d9dcffbf42db341576099f0fd9f6bf4810 \ - --hash=sha256:641f795b361874ac9da5294f8f443dfdbee355cf2bd9e3b8d97aaac2306b9b37 \ - --hash=sha256:644a246325b8c69c595ad1dd4b463eba4b0cdb731370e4a86137d433208d6147 \ - --hash=sha256:6f066b179d68c413374294bc1735f68475457c933258df594443bb9d88ddc2a0 \ - --hash=sha256:7986f1fa71cee060ad00758bcc79d3a93bab8559bf978fab9e53472a2e25a17b \ - --hash=sha256:7c2b98645d576a0b9616892ead22b64a83a5f043c5e2ca15ebcefcb5b70c80cb \ - --hash=sha256:806f24b4085453c197a5078218d1ee08783ebbba271badd153d1ae22a3ee804f \ - --hash=sha256:85fe721a14dd823aca09127acbb06c3ca723efbd436c004f16bca601b04dcc83 \ - --hash=sha256:8adc8e6ce5fccf5dc707046ae4914fd537def529709cc0d285d37a7f9cd442ca \ - --hash=sha256:9700ebd9a51f5895ce75ff4ac4b3c47a7d4b42bc618be8e713e5d56bacf5f931 \ - --hash=sha256:9b18371ad2f44044b81a8d23bc2d8a9b6a6226dca775e8e16cfee640473d6c5d \ - --hash=sha256:a964266397740257f16f7bb2e4f08a0c81454004beab8ff59dd531b73610e9f2 \ - --hash=sha256:adbbedc55506cbdabb830890444fb856bfb0060c46c6f8026c6c2f2cf86ae795 \ - --hash=sha256:ae8a1145af31d903fa9bb166824d7abe9b4681a000b0159c9fb99c11bc11ad26 \ - --hash=sha256:b0e131f880cda8d04e076cee175a46fc0e8bc8b65c99c6c09dff6669335fde74 \ - --hash=sha256:b196eb3f931862af3fa84c2a253514d859c08e0d8fe020e07be12e75a5a9780c \ - --hash=sha256:b7d9a514e73bc42711e6a35aaccf3587c520024fe0a25d830a1a8a27c15f4f57 \ - --hash=sha256:bec9373df11544592b0ba7ec2af0e35059e5f0e7647c6183a854dedd193298f1 \ - --hash=sha256:c42ab9439498270139cc63e18847a02afe5c8b3ed9c931266533cfe378bd3591 \ - --hash=sha256:c91d00057f23b8d353039520dc3a6c09d8608164c692e9f59a175a42b2ae0c19 \ - --hash=sha256:d3e0b61e8efb24ed38898e5cdc5fffa9124be480008d401a1f8071500494ae42 \ - --hash=sha256:d7027eba1df3b2069e2e8d80f644fa0918b68c46432af3d088ddd390d063ecde \ - --hash=sha256:d8ddd2768da81d3ee08cfea9b597f4abb4e8e1dc8ae7e204b608d23a0d3ab699 \ - --hash=sha256:e3268e43984d0b1a185c89b4cfff282a7ead12fc93f56cfd7088bdbcbe727041 \ - --hash=sha256:e4505fc6583f7b05ab854934896bcac8253b04ac1171a77dfb73efef92076d91 \ - --hash=sha256:e56a1ffe9bf7b727432b89104cc0849c21582949dd7bdcb34f17b2001a351a76 \ - --hash=sha256:e6f1278ee4785b6db21229374a1c9e54ec7c549de5d1efc9630b6207de7e170b \ - --hash=sha256:f7616236ec1bc2b15bfdec22a71ab38851c86f8f05ff64f379e1278cf20c634a \ - --hash=sha256:fb24ac194bfc5e86839d7dcd52092ee31e5fe6733fe11f5e3b06ef0812b20072 +pyarrow==23.0.1 \ + --hash=sha256:00be9576d970c31defb5c32eb72ef585bf600ef6d0a82d5eccaae96639cf9d07 \ + --hash=sha256:07deae7783782ac7250989a7b2ecde9b3c343a643f82e8a4df03d93b633006f0 \ + --hash=sha256:0ae6e17c828455b6265d590100c295193f93cc5675eb0af59e49dbd00d2de350 \ + --hash=sha256:0b95a3994f015be13c63148fef8832e8a23938128c185ee951c98908a696e0eb \ + --hash=sha256:17cd28e906c18af486a499422740298c52d7c6795344ea5002a7720b4eadf16d \ + --hash=sha256:26d50dee49d741ac0e82185033488d28d35be4d763ae6f321f97d1140eb7a0e9 \ + --hash=sha256:29f7f7419a0e30264ea261fdc0e5fe63ce5a6095003db2945d7cd78df391a7e1 \ + --hash=sha256:33d648dc25b51fd8055c19e4261e813dfc4d2427f068bcecc8b53d01b81b0500 \ + --hash=sha256:3a4c85ef66c134161987c17b147d6bffdca4566f9a4c1d81a0a01cdf08414ea5 \ + --hash=sha256:3c30143b17161310f151f4a2bcfe41b5ff744238c1039338779424e38579d701 \ + --hash=sha256:3f91c038b95f71ddfc865f11d5876c42f343b4495535bd262c7b321b0b94507c \ + --hash=sha256:3fab8f82571844eb3c460f90a75583801d14ca0cc32b1acc8c361650e006fd56 \ + --hash=sha256:46718a220d64677c93bc243af1d44b55998255427588e400677d7192671845c7 \ + --hash=sha256:4982d71350b1a6e5cfe1af742c53dfb759b11ce14141870d05d9e540d13bc5d1 \ + --hash=sha256:527e8d899f14bd15b740cd5a54ad56b7f98044955373a17179d5956ddb93d9ce \ + --hash=sha256:564baf97c858ecc03ec01a41062e8f4698abc3e6e2acd79c01c2e97880a19730 \ + --hash=sha256:5abde149bb3ce524782d838eb67ac095cd3fd6090eba051130589793f1a7f76d \ + --hash=sha256:5c16ed4f53247fa3ffb12a14d236de4213a4415d127fe9cebed33d51671113e2 \ + --hash=sha256:5df1161da23636a70838099d4aaa65142777185cc0cdba4037a18cee7d8db9ca \ + --hash=sha256:5f4763b83c11c16e5f4c15601ba6dfa849e20723b46aa2617cb4bffe8768479f \ + --hash=sha256:6b8fda694640b00e8af3c824f99f789e836720aa8c9379fb435d4c4953a756b8 \ + --hash=sha256:6f0147ee9e0386f519c952cc670eb4a8b05caa594eeffe01af0e25f699e4e9bb \ + --hash=sha256:7044b442f184d84e2351e5084600f0d7343d6117aabcbc1ac78eb1ae11eb4125 \ + --hash=sha256:71c5be5cbf1e1cb6169d2a0980850bccb558ddc9b747b6206435313c47c37677 \ + --hash=sha256:76e823d0e86b4fb5e1cf4a58d293036e678b5a4b03539be933d3b31f9406859f \ + --hash=sha256:7707d2b6673f7de054e2e83d59f9e805939038eebe1763fe811ee8fa5c0cd1a7 \ + --hash=sha256:813d99f31275919c383aab17f0f455a04f5a429c261cc411b1e9a8f5e4aaaa05 \ + --hash=sha256:86ff03fb9f1a320266e0de855dee4b17da6794c595d207f89bba40d16b5c78b9 \ + --hash=sha256:8ff51b1addc469b9444b7c6f3548e19dc931b172ab234e995a60aea9f6e6025f \ + --hash=sha256:9b6f4f17b43bc39d56fec96e53fe89d94bac3eb134137964371b45352d40d0c2 \ + --hash=sha256:9fc13fc6c403d1337acab46a2c4346ca6c9dec5780c3c697cf8abfd5e19b6b37 \ + --hash=sha256:a09f3876e87f48bc2f13583ab551f0379e5dfb83210391e68ace404181a20690 \ + --hash=sha256:a35581e856a2fafa12f3f54fce4331862b1cfb0bef5758347a858a4aa9d6bae8 \ + --hash=sha256:a62e1899e3078bf65943078b3ad2a6ddcacf2373bc06379aac61b1e548a75814 \ + --hash=sha256:b8c5873e33440b2bc2f4a79d2b47017a89c5a24116c055625e6f2ee50523f019 \ + --hash=sha256:bf5842f960cddd2ef757d486041d57c96483efc295a8c4a0e20e704cbbf39c67 \ + --hash=sha256:c2139549494445609f35a5cda4eb94e2c9e4d704ce60a095b342f82460c73a83 \ + --hash=sha256:c250248f1fe266db627921c89b47b7c06fee0489ad95b04d50353537d74d6886 \ + --hash=sha256:c33b5bf406284fd0bba436ed6f6c3ebe8e311722b441d89397c54f871c6863a2 \ + --hash=sha256:cd395abf8f91c673dd3589cadc8cc1ee4e8674fa61b2e923c8dd215d9c7d1f41 \ + --hash=sha256:cecfb12ef629cf6be0b1887f9f86463b0dd3dc3195ae6224e74006be4736035a \ + --hash=sha256:d0744403adabef53c985a7f8a082b502a368510c40d184df349a0a8754533258 \ + --hash=sha256:db2190fa79c80a23fdd29fef4b8992893f024ae7c17d2f5f4db7171fa30c2c78 \ + --hash=sha256:ddf743e82f69dcd6dbbcb63628895d7161e04e56794ef80550ac6f3315eeb1d5 \ + --hash=sha256:df088e8f640c9fae3b1f495b3c64755c4e719091caf250f3a74d095ddf3c836d \ + --hash=sha256:e052a211c5ac9848ae15d5ec875ed0943c0221e2fcfe69eee80b604b4e703222 \ + --hash=sha256:f00f993a8179e0e1c9713bcc0baf6d6c01326a406a9c23495ec1ba9c9ebf2919 \ + --hash=sha256:f4b0dbfa124c0bb161f8b5ebb40f1a680b70279aa0c9901d44a2b5a20806039f \ + --hash=sha256:fa8e51cb04b9f8c9c5ace6bab63af9a1f88d35c0d6cbf53e8c17c098552285e1 \ + --hash=sha256:fed7020203e9ef273360b9e45be52a2a47d3103caf156a30ace5247ffb51bdbd # via # feast (pyproject.toml) # dask @@ -3887,6 +4309,7 @@ pyarrow==24.0.0 \ # deltalake # google-cloud-bigquery # ibis-framework + # mlflow # pandas-gbq # ray # snowflake-connector-python @@ -4006,6 +4429,8 @@ pydantic==2.13.4 \ # fastapi-mcp # great-expectations # mcp + # mlflow-skinny + # mlflow-tracing # pydantic-settings # qdrant-client # ray @@ -4410,7 +4835,9 @@ pyopenssl==26.2.0 \ pyparsing==3.3.2 \ --hash=sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d \ --hash=sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc - # via great-expectations + # via + # great-expectations + # matplotlib pypdfium2==4.30.0 \ --hash=sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e \ --hash=sha256:119b2969a6d6b1e8d55e99caaf05290294f2d0fe49c12a3f17102d01c441bd29 \ @@ -4637,10 +5064,12 @@ python-dateutil==2.9.0 \ # botocore # elasticsearch # google-cloud-bigquery + # graphene # great-expectations # ibis-framework # jupyter-client # kubernetes + # matplotlib # moto # openlineage-python # pandas @@ -4653,6 +5082,7 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via + # mlflow-skinny # pydantic-settings # pymilvus # testcontainers @@ -4665,9 +5095,9 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (pyproject.toml) -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ @@ -4765,6 +5195,7 @@ pyyaml==6.0.3 \ # huggingface-hub # jupyter-events # kubernetes + # mlflow-skinny # openlineage-python # openshift-client # pre-commit @@ -5027,6 +5458,7 @@ requests==2.34.2 \ # via # feast (pyproject.toml) # azure-core + # databricks-sdk # datasets # docker # docling @@ -5039,6 +5471,7 @@ requests==2.34.2 \ # jupyterlab-server # kube-authkit # kubernetes + # mlflow-skinny # moto # msal # openlineage-python @@ -5370,7 +5803,9 @@ scikit-learn==1.8.0 \ --hash=sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd # via # feast (pyproject.toml) + # mlflow # sentence-transformers + # skops scipy==1.17.1 \ --hash=sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0 \ --hash=sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458 \ @@ -5437,9 +5872,11 @@ scipy==1.17.1 \ # docling # easyocr # great-expectations + # mlflow # scikit-image # scikit-learn # sentence-transformers + # skops semchunk==3.2.5 \ --hash=sha256:ee15e9a06a69a411937dd8fcf0a25d7ef389c5195863140436872a02c95b0218 \ --hash=sha256:fd09cc5f380bd010b8ca773bd81893f7eaf11d37dd8362a83d46cedaf5dae076 @@ -5550,10 +5987,18 @@ six==1.17.0 \ # python-dateutil # rfc3339-validator # thriftpy2 +skops==0.14.0 \ + --hash=sha256:60a5db78a9db46ccee2139a0ba13ab5afb1c96f4749b382e75a371291bbe3e36 \ + --hash=sha256:6c8c0e047f691a3a582c3258943eecafcbfd79c8c7eef66260f3703e363254f0 + # via mlflow smart-open==7.6.1 \ --hash=sha256:4347996e7ba21db7cd1e059632e0b30395407e4f6c660d2ddffc8f2a9ae5f990 \ --hash=sha256:b4de6aebef023aca91cc9fb372052e1343ba3f152de215bd22391a663e3ddd21 # via ray +smmap==5.0.3 \ + --hash=sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c \ + --hash=sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f + # via gitdb sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc @@ -5692,7 +6137,10 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 - # via feast (pyproject.toml) + # via + # feast (pyproject.toml) + # alembic + # mlflow sqlglot[rs]==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 @@ -5737,6 +6185,10 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e + # via mlflow-skinny sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 @@ -5745,12 +6197,13 @@ stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==0.52.1 \ + --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ + --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 # via # fastapi # mcp + # mlflow-skinny # sse-starlette sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ @@ -6178,9 +6631,9 @@ typer==0.12.5 \ # docling # docling-core # fastapi-mcp -types-cffi==2.0.0.20260508 \ - --hash=sha256:746b081b4bf84f9d8855c517a67c2dff717f3c18657fcff8e9c251fb5778f311 \ - --hash=sha256:d094065daf4edcfbdd3e11c37d2fa9511eaf7c509da7a9d9573c276398a8e745 +types-cffi==2.0.0.20260518 \ + --hash=sha256:5b68a215a95d0eac4203b58e766ff7fe40c2e091b1fa1a9e54111f04cc560084 \ + --hash=sha256:f9707e66c13454789a58f8843d1ded4a66f1e9c8b10bd24d5eb5e0f25c0c5472 # via types-pyopenssl types-protobuf==3.19.22 \ --hash=sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab \ @@ -6188,25 +6641,25 @@ types-protobuf==3.19.22 \ # via # feast (pyproject.toml) # mypy-protobuf -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ --hash=sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54 # via types-redis -types-python-dateutil==2.9.0.20260508 \ - --hash=sha256:596a6d63d81f587bf04c8254fb78df9d2344e915ce67948d7400512e3a6206d5 \ - --hash=sha256:bfc6fd2d81aa86e5ac97206a64304f6bd247426eedbca9b98619bbc48c6a1c10 +types-python-dateutil==2.9.0.20260518 \ + --hash=sha256:51f02dc03b61c7f6a07df45797d4dfe8a1aa47f0b7db9ad89f6fd3a1a70e1b51 \ + --hash=sha256:d6a9c5bd0de61460c8fdef8ab2b400f956a1a1075cce08d4e2b4434e478c50b8 # via feast (pyproject.toml) -types-pytz==2026.2.0.20260506 \ - --hash=sha256:58ab5307c20885f9bcd42ff106616eb0e32710791f8cbdc770aee2ea0c4f01fb \ - --hash=sha256:fc6a0de6a1b7da82a748fb4065e152372dac3016559cb1eef5e8af1e338eb627 +types-pytz==2026.2.0.20260518 \ + --hash=sha256:3a12eaa38f476bd650902a9c9bb442f03f3c7dee2be5c5848bce61bd708d205a \ + --hash=sha256:e5d254329e9c4e91f0781b22c43a4bb2d10bb044d97b24c4b05d45567b0eae16 # via feast (pyproject.toml) -types-pyyaml==6.0.12.20260510 \ - --hash=sha256:09c1f1cb65a6eebea1e2e51ccf4918b8288e152909609a35cdb0d805efd125ad \ - --hash=sha256:3492eb9ba4d9d833473214c4d5736cccf5f37d93f5854059721e1c84f785309d +types-pyyaml==6.0.12.20260518 \ + --hash=sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd \ + --hash=sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466 # via feast (pyproject.toml) types-redis==4.6.0.20241004 \ --hash=sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e \ @@ -6216,9 +6669,9 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (pyproject.toml) -types-setuptools==82.0.0.20260508 \ - --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ - --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e +types-setuptools==82.0.0.20260518 \ + --hash=sha256:31c04a62b57a653a5021caf191be0f10f70df890f813b51f02bab3969d300f20 \ + --hash=sha256:3b743cfe63d0981ea4c15b90710fc1ed41e3464a537d51e705be514e891c1d07 # via # feast (pyproject.toml) # types-cffi @@ -6235,6 +6688,7 @@ typing-extensions==4.15.0 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # aiosignal + # alembic # anyio # azure-core # azure-identity @@ -6243,6 +6697,7 @@ typing-extensions==4.15.0 \ # docling-core # elasticsearch # fastapi + # graphene # great-expectations # huggingface-hub # ibis-framework @@ -6250,6 +6705,7 @@ typing-extensions==4.15.0 \ # jwcrypto # mcp # minio + # mlflow-skinny # mypy # opentelemetry-api # opentelemetry-sdk @@ -6399,6 +6855,7 @@ uvicorn[standard]==0.34.0 \ # feast (pyproject.toml) # fastapi-mcp # mcp + # mlflow-skinny # uvicorn-worker uvicorn-worker==0.3.0 \ --hash=sha256:6baeab7b2162ea6b9612cbe149aa670a76090ad65a267ce8e27316ed13c7de7b \ @@ -6462,121 +6919,121 @@ virtualenv==20.23.0 \ # feast (pyproject.toml) # pre-commit # ray -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn wcwidth==0.7.0 \ --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 - # via prompt-toolkit + # via + # prettytable + # prompt-toolkit webcolors==25.10.0 \ --hash=sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d \ --hash=sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf @@ -6659,7 +7116,10 @@ websockets==16.0 \ werkzeug==3.1.8 \ --hash=sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50 \ --hash=sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44 - # via moto + # via + # flask + # flask-cors + # moto wheel==0.47.0 \ --hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \ --hash=sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3 @@ -7084,9 +7544,9 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata zstandard==0.25.0 \ --hash=sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64 \ diff --git a/sdk/python/requirements/py3.11-minimal-requirements.txt b/sdk/python/requirements/py3.11-minimal-requirements.txt index 0a5fbedf9da..7798a5eece1 100644 --- a/sdk/python/requirements/py3.11-minimal-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-requirements.txt @@ -161,38 +161,40 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ @@ -457,9 +459,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -749,9 +751,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via # google-api-core # google-auth-oauthlib @@ -1672,79 +1674,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # dask @@ -2305,9 +2307,9 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp pytz==2026.2 \ --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ @@ -2767,9 +2769,9 @@ typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc # via fastapi-mcp -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2954,116 +2956,114 @@ uvloop==0.22.1 \ --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 # via uvicorn -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ @@ -3345,7 +3345,7 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt index 26e2004915f..280bb1f4f7e 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt @@ -4,38 +4,40 @@ # # pybuild-deps compile --generate-hashes --output-file=sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt sdk/python/requirements/py3.11-minimal-sdist-requirements.txt # -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ @@ -649,79 +651,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # pandas # pyarrow @@ -872,9 +874,9 @@ semantic-version==2.10.0 \ --hash=sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c \ --hash=sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177 # via setuptools-rust -setuptools-git-versioning==3.0.1 \ - --hash=sha256:737c4d17e848edd46e28764a19dc424d8537fcb2257022e5f4f5c0c8e9b64c80 \ - --hash=sha256:c8a599bacf163b5d215552b5701faf5480ffc4d65426a5711a010b802e1590eb +setuptools-git-versioning==3.1.0 \ + --hash=sha256:3a68f3fd58a2a5e86b0792435cfa9d8e569ab60ee5e4c29228c09da9b637bf18 \ + --hash=sha256:612dfcf184addac9e1c2216f4f229724b2390e5bf613fb925ae80b84f2529172 # via toolz setuptools-rust==1.12.1 \ --hash=sha256:85ae70989d96c9cfeb5ef79cf3bac2d5200bc5564f720a06edceedbdf6664640 \ @@ -975,9 +977,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==82.0.0.20260508 \ - --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ - --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e +types-setuptools==82.0.0.20260518 \ + --hash=sha256:31c04a62b57a653a5021caf191be0f10f70df890f813b51f02bab3969d300f20 \ + --hash=sha256:3b743cfe63d0981ea4c15b90710fc1ed41e3464a537d51e705be514e891c1d07 # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt index ac7664e360f..50a8d8eb80f 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt @@ -165,38 +165,40 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ @@ -469,9 +471,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -835,9 +837,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via # google-api-core # google-auth-oauthlib @@ -1842,79 +1844,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # dask @@ -2508,9 +2510,9 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp pytz==2026.2 \ --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ @@ -3024,9 +3026,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (pyproject.toml) -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -3215,116 +3217,114 @@ vcs-versioning==1.1.1 \ --hash=sha256:b541e2ba79fc6aaa3850f8a7f88af43d97c1c80649c01142ee4146eddbc599e4 \ --hash=sha256:fabd75a3cab7dd8ac02fe24a3a9ba936bf258667b5a62ed468c9a1da0f5775bc # via setuptools-scm -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ @@ -3606,9 +3606,9 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata # The following packages were excluded from the output: diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index a1e662d60d0..694cde10b6e 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -14,38 +14,40 @@ anyio==4.13.0 \ # via # starlette # watchfiles -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ @@ -192,9 +194,9 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via requests -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -646,79 +648,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # dask @@ -1430,116 +1432,114 @@ uvloop==0.22.1 \ --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 # via uvicorn -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websockets==16.0 \ --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ @@ -1604,7 +1604,7 @@ websockets==16.0 \ --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index 3781f17c67d..181df9d8952 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -137,6 +137,7 @@ aiohttp==3.13.5 \ # aiobotocore # aiohttp-cors # fsspec + # mlflow # ray aiohttp-cors==0.8.1 \ --hash=sha256:3180cf304c5c712d626b9162b195b1db7ddf976a2a25172b35bb2448b890a80d \ @@ -154,6 +155,10 @@ alabaster==0.7.16 \ --hash=sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65 \ --hash=sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92 # via sphinx +alembic==1.18.4 \ + --hash=sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a \ + --hash=sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc + # via mlflow altair==4.2.2 \ --hash=sha256:39399a267c49b30d102c10411e67ab26374156a84b1aeb9fcd15140429ba49c5 \ --hash=sha256:8b45ebeaf8557f2d760c5c77b79f02ae12aee7c46c27c06014febab6f849bc87 @@ -261,9 +266,9 @@ azure-identity==1.25.3 \ --hash=sha256:ab23c0d63015f50b630ef6c6cf395e7262f439ce06e5d07a64e874c724f8d9e6 \ --hash=sha256:f4d0b956a8146f30333e071374171f3cfa7bdb8073adb8c3814b65567aa7447c # via feast (pyproject.toml) -azure-storage-blob==12.28.0 \ - --hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \ - --hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41 +azure-storage-blob==12.29.0 \ + --hash=sha256:2824ddd7ebc9056034ebc76b17971a38e9aa5835abb0d565b9700493f2a6c657 \ + --hash=sha256:ccf8a1bcd5e49df83ab85aab793b579e5ba2eeea2ad8900b2f62ca3a37dc391f # via feast (pyproject.toml) babel==2.18.0 \ --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ @@ -350,6 +355,10 @@ bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ --hash=sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6 # via nbconvert +blinker==1.9.0 \ + --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ + --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc + # via flask boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ --hash=sha256:95f5fe688795303a8a15e8b7e7f255cadab35eae459d00cc281a4fd77252ea80 @@ -373,6 +382,12 @@ build==1.5.0 \ # feast (pyproject.toml) # pip-tools # singlestoredb +cachetools==7.1.3 \ + --hash=sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d \ + --hash=sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804 + # via + # mlflow-skinny + # mlflow-tracing cassandra-driver==3.30.0 \ --hash=sha256:0c28a8e84917acebecbaed39844047c2f135739c3627dd7b9f8541af33e11df3 \ --hash=sha256:0f4225082a11d9529416c223553ab38a29c4e65da6646b40159c554480dc002c \ @@ -641,14 +656,16 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask + # flask # geomet # great-expectations + # mlflow-skinny # pip-tools # ray # typer @@ -659,6 +676,7 @@ clickhouse-connect==1.0.0 \ --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ + --hash=sha256:0d4ed1e296c6e77dc0dbf486607cc39fc6e36866abb653543d5ad0a8426ea8f0 \ --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ @@ -711,7 +729,9 @@ clickhouse-connect==1.0.0 \ cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a - # via dask + # via + # dask + # mlflow-skinny codeflare-sdk==0.37.0 \ --hash=sha256:2106118d9341db7e329da59f296bc635c08e365d4a644013bb9a55ce38c54da5 \ --hash=sha256:a5f86b9541a3ef2498bc920465b0e106c4e58bfa2004d14ff177f83761afd469 @@ -732,6 +752,80 @@ comm==0.2.3 \ # via # ipykernel # ipywidgets +contourpy==1.3.3 \ + --hash=sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69 \ + --hash=sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc \ + --hash=sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880 \ + --hash=sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a \ + --hash=sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8 \ + --hash=sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc \ + --hash=sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470 \ + --hash=sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5 \ + --hash=sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263 \ + --hash=sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b \ + --hash=sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5 \ + --hash=sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381 \ + --hash=sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3 \ + --hash=sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4 \ + --hash=sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e \ + --hash=sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f \ + --hash=sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772 \ + --hash=sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286 \ + --hash=sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42 \ + --hash=sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301 \ + --hash=sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77 \ + --hash=sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7 \ + --hash=sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411 \ + --hash=sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1 \ + --hash=sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9 \ + --hash=sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a \ + --hash=sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b \ + --hash=sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db \ + --hash=sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6 \ + --hash=sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620 \ + --hash=sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989 \ + --hash=sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea \ + --hash=sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67 \ + --hash=sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5 \ + --hash=sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d \ + --hash=sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36 \ + --hash=sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99 \ + --hash=sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1 \ + --hash=sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e \ + --hash=sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b \ + --hash=sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8 \ + --hash=sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d \ + --hash=sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7 \ + --hash=sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7 \ + --hash=sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339 \ + --hash=sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1 \ + --hash=sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659 \ + --hash=sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4 \ + --hash=sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f \ + --hash=sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20 \ + --hash=sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36 \ + --hash=sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb \ + --hash=sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d \ + --hash=sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8 \ + --hash=sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0 \ + --hash=sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b \ + --hash=sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7 \ + --hash=sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe \ + --hash=sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77 \ + --hash=sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497 \ + --hash=sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd \ + --hash=sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1 \ + --hash=sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216 \ + --hash=sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13 \ + --hash=sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae \ + --hash=sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae \ + --hash=sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77 \ + --hash=sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3 \ + --hash=sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f \ + --hash=sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff \ + --hash=sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9 \ + --hash=sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a + # via matplotlib couchbase==4.3.2 \ --hash=sha256:032a180afd6621358b2c73543b9c5db9939b442fc3ad6d54417c36c8a8f65838 \ --hash=sha256:11ce688ed46edf8387bf51866618c7b4e06399e7fb34a6df002764996c109d1f \ @@ -964,6 +1058,7 @@ cryptography==46.0.7 \ # google-auth # great-expectations # jwcrypto + # mlflow # moto # msal # oracledb @@ -973,10 +1068,20 @@ cryptography==46.0.7 \ # snowflake-connector-python # types-pyopenssl # types-redis +cycler==0.12.1 \ + --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ + --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c + # via matplotlib dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) +databricks-sdk==0.109.0 \ + --hash=sha256:46745a25324a5b36f01236760e44fc6e2bce3f051224e6f8aef7633477fcbec8 \ + --hash=sha256:96b90f5ee2e0fac89f351aa77348263e1e0ed5d4d867cdfaefd2e0acc01b1e81 + # via + # mlflow-skinny + # mlflow-tracing datasets==4.8.5 \ --hash=sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772 \ --hash=sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff @@ -1023,9 +1128,9 @@ debugpy==1.8.20 \ --hash=sha256:eada6042ad88fa1571b74bd5402ee8b86eded7a8f7b827849761700aff171f1b \ --hash=sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7 # via ipykernel -decorator==5.2.1 \ - --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ - --hash=sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a +decorator==5.3.1 \ + --hash=sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82 \ + --hash=sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c # via ipython defusedxml==0.7.1 \ --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \ @@ -1070,14 +1175,16 @@ dnspython==2.8.0 \ docker==7.1.0 \ --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 - # via testcontainers + # via + # mlflow + # testcontainers docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.75.0 \ - --hash=sha256:60f7bc4025f6511ba82eeb0aa677e756e9d3bf069d6f207c6ef2fb8be3176f32 \ - --hash=sha256:7961be3c3f58855324b081fce9e1231b892da7c61d6babbaf3d49c28387eb782 +docling-core[chunking]==2.76.0 \ + --hash=sha256:55af705c6d0755254afddb959fe5dea3a6d413d3ea7539e380bb008268806316 \ + --hash=sha256:e4f681ad434cb45ba93bd3afaab62c5d910bf9ac6b3fdb98b12ee2e476bb75a4 # via # docling # docling-ibm-models @@ -1222,6 +1329,7 @@ fastapi==0.136.1 \ # via # feast (pyproject.toml) # fastapi-mcp + # mlflow-skinny fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d @@ -1245,6 +1353,68 @@ filetype==1.2.0 \ --hash=sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb \ --hash=sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25 # via docling +flask==3.1.3 \ + --hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \ + --hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c + # via + # flask-cors + # mlflow +flask-cors==6.0.2 \ + --hash=sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423 \ + --hash=sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a + # via mlflow +fonttools==4.63.0 \ + --hash=sha256:032038247a96c1690f9f31e377c389383c902531b085aa4e4dabd6f57f870e69 \ + --hash=sha256:063e08bd17bd5a90127a14123de0d6a952dbc847695fd98b63c043d58057f90c \ + --hash=sha256:0c18358a155d75034911c5ee397a5b44cd19dd325dbb8b35fb60bf421d6a72ac \ + --hash=sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096 \ + --hash=sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d \ + --hash=sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68 \ + --hash=sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616 \ + --hash=sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78 \ + --hash=sha256:2b8ae05d9eacf6081414d759c0a352769ac28ce31280d6bb8e77b03f9e3c449f \ + --hash=sha256:2c14b4fd138c4bafcca294765c547914e1aa431ae1ca94ab99d8db08c958bd3b \ + --hash=sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b \ + --hash=sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02 \ + --hash=sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d \ + --hash=sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f \ + --hash=sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8 \ + --hash=sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272 \ + --hash=sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49 \ + --hash=sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419 \ + --hash=sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001 \ + --hash=sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03 \ + --hash=sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196 \ + --hash=sha256:79cdc9f567aec74a72918fd060283911406750cbc9fd28c1316023deb6ce31a9 \ + --hash=sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e \ + --hash=sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5 \ + --hash=sha256:7dd683fef0663e9f0f45cf541d788d24caa3ec9db50796b588e1757d8b3bc007 \ + --hash=sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380 \ + --hash=sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8 \ + --hash=sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27 \ + --hash=sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40 \ + --hash=sha256:a8b33a82979e0a6a34ff435cc81317be1f95ec1ebb7a3a2d1c8a6a54f02ae44e \ + --hash=sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0 \ + --hash=sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263 \ + --hash=sha256:afefc1ed0a59785a7fb06ea7e1678e849c193e1e387db783579bc7b3056fcfcb \ + --hash=sha256:b1cd75a03ad8cb5bc40c90bfde68c0c47de423aa19e5c0f362b43520645eea94 \ + --hash=sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b \ + --hash=sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6 \ + --hash=sha256:c0425b277a59cff3d80ca42162a8de360f318438a2ac83570842a678d826d579 \ + --hash=sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4 \ + --hash=sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59 \ + --hash=sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0 \ + --hash=sha256:cb014d58140a38135f16064c74c652ed57aa0b75cbf8bb59cac821f7edb5334e \ + --hash=sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be \ + --hash=sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd \ + --hash=sha256:d76ac49f929aecaf82d83250b8347e099d7aecba0f4726c1d9b6df3b8bb5fe18 \ + --hash=sha256:d7e5c9973aa04c95650c96e5f5ad865fbf42d62079163ecfab1e01cbc2504c22 \ + --hash=sha256:dcf076a4474fe0d7367e5bbf5b052c7284fa1feca729c04176ce513521afd8a0 \ + --hash=sha256:e3297a6a4059b4acc3a1e9a8b04741f240a80044eef08ebd32e8b5bcdddce75b \ + --hash=sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b \ + --hash=sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af \ + --hash=sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745 + # via matplotlib fqdn==1.5.1 \ --hash=sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f \ --hash=sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014 @@ -1397,6 +1567,14 @@ geomet==1.1.0 \ --hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \ --hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605 # via cassandra-driver +gitdb==4.0.12 \ + --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ + --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf + # via gitpython +gitpython==3.1.50 \ + --hash=sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc \ + --hash=sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9 + # via mlflow-skinny google-api-core[grpc]==2.30.3 \ --hash=sha256:a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8 \ --hash=sha256:e601a37f148585319b26db36e219df68c5d07b6382cff2d580e83404e44d641b @@ -1410,10 +1588,11 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via + # databricks-sdk # google-api-core # google-auth-oauthlib # google-cloud-bigquery @@ -1512,6 +1691,20 @@ googleapis-common-protos[grpc]==1.75.0 \ # google-api-core # grpc-google-iam-v1 # grpcio-status +graphene==3.4.3 \ + --hash=sha256:2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa \ + --hash=sha256:820db6289754c181007a150db1f7fff544b94142b556d12e3ebc777a7bf36c71 + # via mlflow +graphql-core==3.2.8 \ + --hash=sha256:015457da5d996c924ddf57a43f4e959b0b94fb695b85ed4c29446e508ed65cf3 \ + --hash=sha256:cbee07bee1b3ed5e531723685369039f32ff815ef60166686e0162f540f1520c + # via + # graphene + # graphql-relay +graphql-relay==3.2.0 \ + --hash=sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c \ + --hash=sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5 + # via graphene great-expectations==0.18.8 \ --hash=sha256:ab41cfa3de829a4f77bdcd4a23244684cbb67fdacc734d38910164cd02ec95b6 \ --hash=sha256:c1205bede593f679e22e0b3826d6ae1623c439cafd553f9f0bc2b0fd441f6ed9 @@ -1658,11 +1851,12 @@ grpcio-tools==1.62.3 \ --hash=sha256:f4b1615adf67bd8bb71f3464146a6f9949972d06d21a4f5e87e73f6464d97f57 \ --hash=sha256:f6831fdec2b853c9daa3358535c55eed3694325889aa714070528cf8f92d7d6d # via feast (pyproject.toml) -gunicorn==26.0.0 \ - --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ - --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf +gunicorn==25.3.0 \ + --hash=sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660 \ + --hash=sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889 # via # feast (pyproject.toml) + # mlflow # uvicorn-worker h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ @@ -1885,6 +2079,10 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp +huey==2.6.0 \ + --hash=sha256:1b9df9d370b49c6d5721ba8a01ac9a787cf86b3bdc584e4679de27b920395c3f \ + --hash=sha256:8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6 + # via mlflow huggingface-hub==0.36.2 \ --hash=sha256:1934304d2fb224f8afa3b87007d58501acfda9215b334eed53072dd5e815ff7a \ --hash=sha256:48f0c8eac16145dfce371e9d2d7772854a4f591bcb56c9cf548accf531d54270 @@ -1930,7 +2128,9 @@ imagesize==2.0.0 \ importlib-metadata==8.7.1 \ --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 - # via opentelemetry-api + # via + # mlflow-skinny + # opentelemetry-api importlib-resources==7.1.0 \ --hash=sha256:0722d4c6212489c530f2a145a34c0a7a3b4721bc96a15fada5930e2a0b760708 \ --hash=sha256:1bd7b48b4088eddb2cd16382150bb515af0bd2c70128194392725f82ad2c96a1 @@ -1972,6 +2172,10 @@ isoduration==20.11.0 \ --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 # via jsonschema +itsdangerous==2.2.0 \ + --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ + --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 + # via flask jedi==0.20.0 \ --hash=sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 \ --hash=sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011 @@ -1982,6 +2186,7 @@ jinja2==3.1.6 \ # via # feast (pyproject.toml) # altair + # flask # great-expectations # jupyter-server # jupyterlab @@ -2101,6 +2306,125 @@ jwcrypto==1.5.7 \ --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \ --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0 # via python-keycloak +kiwisolver==1.5.0 \ + --hash=sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9 \ + --hash=sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679 \ + --hash=sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0 \ + --hash=sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8 \ + --hash=sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276 \ + --hash=sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96 \ + --hash=sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e \ + --hash=sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac \ + --hash=sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f \ + --hash=sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a \ + --hash=sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15 \ + --hash=sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7 \ + --hash=sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368 \ + --hash=sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02 \ + --hash=sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9 \ + --hash=sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681 \ + --hash=sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57 \ + --hash=sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27 \ + --hash=sha256:295d9ffe712caa9f8a3081de8d32fc60191b4b51c76f02f951fd8407253528f4 \ + --hash=sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920 \ + --hash=sha256:32cc0a5365239a6ea0c6ed461e8838d053b57e397443c0ca894dcc8e388d4374 \ + --hash=sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3 \ + --hash=sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa \ + --hash=sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23 \ + --hash=sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859 \ + --hash=sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb \ + --hash=sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d \ + --hash=sha256:41024ed50e44ab1a60d3fe0a9d15a4ccc9f5f2b1d814ff283c8d01134d5b81bc \ + --hash=sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581 \ + --hash=sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c \ + --hash=sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099 \ + --hash=sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05 \ + --hash=sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9 \ + --hash=sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd \ + --hash=sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc \ + --hash=sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796 \ + --hash=sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303 \ + --hash=sha256:51e8c4084897de9f05898c2c2a39af6318044ae969d46ff7a34ed3f96274adca \ + --hash=sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314 \ + --hash=sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489 \ + --hash=sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57 \ + --hash=sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1 \ + --hash=sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797 \ + --hash=sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021 \ + --hash=sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db \ + --hash=sha256:62f59da443c4f4849f73a51a193b1d9d258dcad0c41bc4d1b8fb2bcc04bfeb22 \ + --hash=sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028 \ + --hash=sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083 \ + --hash=sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65 \ + --hash=sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588 \ + --hash=sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0 \ + --hash=sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a \ + --hash=sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1 \ + --hash=sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c \ + --hash=sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac \ + --hash=sha256:86e0287879f75621ae85197b0877ed2f8b7aa57b511c7331dce2eb6f4de7d476 \ + --hash=sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53 \ + --hash=sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3 \ + --hash=sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4 \ + --hash=sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615 \ + --hash=sha256:8f9baf6f0a6e7571c45c8863010b45e837c3ee1c2c77fcd6ef423be91b21fedb \ + --hash=sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18 \ + --hash=sha256:9190426b7aa26c5229501fa297b8d0653cfd3f5a36f7990c264e157cbf886b3b \ + --hash=sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1 \ + --hash=sha256:94eff26096eb5395136634622515b234ecb6c9979824c1f5004c6e3c3c85ccd2 \ + --hash=sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c \ + --hash=sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac \ + --hash=sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d \ + --hash=sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf \ + --hash=sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2 \ + --hash=sha256:b83af57bdddef03c01a9138034c6ff03181a3028d9a1003b301eb1a55e161a3f \ + --hash=sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f \ + --hash=sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4 \ + --hash=sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9 \ + --hash=sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e \ + --hash=sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737 \ + --hash=sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b \ + --hash=sha256:bf4679a3d71012a7c2bf360e5cd878fbd5e4fcac0896b56393dec239d81529ed \ + --hash=sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3 \ + --hash=sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7 \ + --hash=sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08 \ + --hash=sha256:c8277104ded0a51e699c8c3aff63ce2c56d4ed5519a5f73e0fd7057f959a2b9e \ + --hash=sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902 \ + --hash=sha256:cc0b66c1eec9021353a4b4483afb12dfd50e3669ffbb9152d6842eb34c7e29fd \ + --hash=sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6 \ + --hash=sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310 \ + --hash=sha256:cff8e5383db4989311f99e814feeb90c4723eb4edca425b9d5d9c3fefcdd9537 \ + --hash=sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554 \ + --hash=sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e \ + --hash=sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87 \ + --hash=sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a \ + --hash=sha256:d5cd5189fc2b6a538b75ae45433140c4823463918f7b1617c31e68b085c0022c \ + --hash=sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79 \ + --hash=sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e \ + --hash=sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16 \ + --hash=sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1 \ + --hash=sha256:dd952e03bfbb096cfe2dd35cd9e00f269969b67536cb4370994afc20ff2d0875 \ + --hash=sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd \ + --hash=sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0 \ + --hash=sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9 \ + --hash=sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646 \ + --hash=sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657 \ + --hash=sha256:ebae99ed6764f2b5771c522477b311be313e8841d2e0376db2b10922daebbba4 \ + --hash=sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232 \ + --hash=sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819 \ + --hash=sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384 \ + --hash=sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309 \ + --hash=sha256:f42c23db5d1521218a3276bb08666dcb662896a0be7347cba864eca45ff64ede \ + --hash=sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2 \ + --hash=sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203 \ + --hash=sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7 \ + --hash=sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df \ + --hash=sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c \ + --hash=sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167 \ + --hash=sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3 \ + --hash=sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09 \ + --hash=sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398 + # via matplotlib kube-authkit==0.4.0 \ --hash=sha256:1df61ac392fca96c8f5ae8c3d6e9918f1e1655d212434b3c3da5f92cc23b660d \ --hash=sha256:3bf5fc6ddc882498040118c907628ea68789f9a947454c241972008be59601a3 @@ -2330,6 +2654,10 @@ makefun==1.16.0 \ --hash=sha256:43baa4c3e7ae2b17de9ceac20b669e9a67ceeadff31581007cca20a07bbe42c4 \ --hash=sha256:e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947 # via great-expectations +mako==1.3.12 \ + --hash=sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9 \ + --hash=sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a + # via alembic markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a @@ -2429,13 +2757,72 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via + # flask # jinja2 + # mako # nbconvert # werkzeug marshmallow==3.26.2 \ --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations +matplotlib==3.10.9 \ + --hash=sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9 \ + --hash=sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42 \ + --hash=sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d \ + --hash=sha256:1872fb212a05b729e649754a72d5da61d03e0554d76e80303b6f83d1d2c0552b \ + --hash=sha256:1aa972116abb4c9d201bf245620b433726cb6856f3bef6a78f776a00f5c92d37 \ + --hash=sha256:1e7698ac9868428e84d2c967424803b2472ff7167d9d6590d4204ed775343c3b \ + --hash=sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456 \ + --hash=sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc \ + --hash=sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f \ + --hash=sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6 \ + --hash=sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2 \ + --hash=sha256:3fc0364dfbe1d07f6d15c5ebd0c5bf89e126916e5a8667dd4a7a6e84c36653d4 \ + --hash=sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320 \ + --hash=sha256:42fb814efabe95c06c1994d8ab5a8385f43a249e23badd3ba931d4308e5bca20 \ + --hash=sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf \ + --hash=sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c \ + --hash=sha256:51bf0ddbdc598e060d46c16b5590708f81a1624cefbaaf62f6a81bf9285b8c80 \ + --hash=sha256:56fc0bd271b00025c6edfdc7c2dcd247372c8e1544971d62e1dc7c17367e8bf9 \ + --hash=sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716 \ + --hash=sha256:6640f75af2c6148293caa0a2b39dd806a492dd66c8a8b04035813e33d0fd2585 \ + --hash=sha256:68cfdcede415f7c8f5577b03303dd94526cdb6d11036cecdc205e08733b2d2bb \ + --hash=sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38 \ + --hash=sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4 \ + --hash=sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2 \ + --hash=sha256:77210dce9cb8153dffc967efaae990543392563d5a376d4dd8539bebcb0ed217 \ + --hash=sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838 \ + --hash=sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4 \ + --hash=sha256:82834c3c292d24d3a8aae77cd2d20019de69d692a34a970e4fdb8d33e2ea3dda \ + --hash=sha256:8e436d155fa8a3399dc62683f8f5d0e2e50d25d0144a73edd73f82eec8f4abfb \ + --hash=sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f \ + --hash=sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f \ + --hash=sha256:985f2238880e2e69093f588f5fe2e46771747febf0649f3cf7f7b7480875317f \ + --hash=sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c \ + --hash=sha256:a5a6104ed666402ba5106d7f36e0e0cdca4e8d7fa4d39708ca88019e2835a2eb \ + --hash=sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b \ + --hash=sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285 \ + --hash=sha256:ae2f11957b27ce53497dd4d7b235c4d4f1faf383dfb39d0c5beb833bff883294 \ + --hash=sha256:b049278ddce116aaa1c1377ebf58adea909132dfce0281cf7e3a1ea9fc2e2c65 \ + --hash=sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e \ + --hash=sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d \ + --hash=sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f \ + --hash=sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8 \ + --hash=sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39 \ + --hash=sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6 \ + --hash=sha256:d730e984eddf56974c3e72b6129c7ca462ac38dc624338f4b0b23eb23ecba00f \ + --hash=sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf \ + --hash=sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2 \ + --hash=sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe \ + --hash=sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99 \ + --hash=sha256:dfca0129678bd56379db26c52b5d77ed7de314c047492fbdc763aa7501710cfb \ + --hash=sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8 \ + --hash=sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1 \ + --hash=sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921 \ + --hash=sha256:f76e640a5268850bfda54b5131b1b1941cc685e42c5fa98ed9f2d64038308cba \ + --hash=sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358 + # via mlflow matplotlib-inline==0.2.2 \ --hash=sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 \ --hash=sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79 @@ -2468,6 +2855,18 @@ mistune==3.2.1 \ # via # great-expectations # nbconvert +mlflow==3.12.0 \ + --hash=sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47 \ + --hash=sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0 + # via feast (pyproject.toml) +mlflow-skinny==3.12.0 \ + --hash=sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd \ + --hash=sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10 + # via mlflow +mlflow-tracing==3.12.0 \ + --hash=sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80 \ + --hash=sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518 + # via mlflow mmh3==5.2.1 \ --hash=sha256:022aa1a528604e6c83d0a7705fdef0b5355d897a9e0fa3a8d26709ceaa06965d \ --hash=sha256:0634581290e6714c068f4aa24020acf7880927d1f0084fa753d9799ae9610082 \ @@ -2938,83 +3337,84 @@ notebook-shim==0.2.4 \ # via # jupyterlab # notebook -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # accelerate # altair + # contourpy # dask # datasets # db-dtypes @@ -3024,6 +3424,8 @@ numpy==2.4.4 \ # great-expectations # ibis-framework # imageio + # matplotlib + # mlflow # opencv-python-headless # pandas # pandas-gbq @@ -3035,6 +3437,7 @@ numpy==2.4.4 \ # scipy # sentence-transformers # shapely + # skops # tifffile # torchvision # transformers @@ -3075,6 +3478,8 @@ opentelemetry-api==1.41.1 \ --hash=sha256:0ad1814d73b875f84494387dae86ce0b12c68556331ce6ce8fe789197c949621 \ --hash=sha256:a22df900e75c76dc08440710e51f52f1aa6b451b429298896023e60db5b3139f # via + # mlflow-skinny + # mlflow-tracing # opentelemetry-exporter-prometheus # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -3085,11 +3490,16 @@ opentelemetry-exporter-prometheus==0.62b1 \ opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace - # via ray + # via + # mlflow-skinny + # mlflow-tracing + # ray opentelemetry-sdk==1.41.1 \ --hash=sha256:724b615e1215b5aeacda0abb8a6a8922c9a1853068948bd0bd225a56d0c792e6 \ --hash=sha256:edee379c126c1bce952b0c812b48fe8ff35b30df0eecf17e98afa4d598b7d85d # via + # mlflow-skinny + # mlflow-tracing # opentelemetry-exporter-prometheus # ray opentelemetry-semantic-conventions==0.62b1 \ @@ -3228,6 +3638,9 @@ packaging==26.2 \ # jupyterlab-server # lazy-loader # marshmallow + # matplotlib + # mlflow-skinny + # mlflow-tracing # nbconvert # openlineage-python # pandas-gbq @@ -3235,6 +3648,7 @@ packaging==26.2 \ # ray # safetensors # scikit-image + # skops # snowflake-connector-python # sphinx # transformers @@ -3306,6 +3720,7 @@ pandas==2.3.3 \ # google-cloud-bigquery # great-expectations # ibis-framework + # mlflow # pandas-gbq # pymilvus # ray @@ -3461,6 +3876,7 @@ pillow==11.3.0 \ # docling-parse # easyocr # imageio + # matplotlib # python-pptx # scikit-image # torchvision @@ -3498,6 +3914,10 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (pyproject.toml) +prettytable==3.17.0 \ + --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \ + --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287 + # via skops prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 @@ -3657,6 +4077,7 @@ protobuf==4.25.9 \ --hash=sha256:d49b615e7c935194ac161f0965699ac84df6112c378e05ec53da65d2e4cbb6d4 # via # feast (pyproject.toml) + # databricks-sdk # google-api-core # google-cloud-bigquery-storage # google-cloud-bigtable @@ -3668,6 +4089,8 @@ protobuf==4.25.9 \ # grpcio-status # grpcio-testing # grpcio-tools + # mlflow-skinny + # mlflow-tracing # mypy-protobuf # opentelemetry-proto # proto-plus @@ -3818,57 +4241,57 @@ py4j==0.10.9.9 \ --hash=sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 \ --hash=sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879 # via pyspark -pyarrow==24.0.0 \ - --hash=sha256:02b001b3ed4723caa44f6cd1af2d5c86aa2cf9971dacc2ffa55b21237713dfba \ - --hash=sha256:04920d6a71aabd08a0417709efce97d45ea8e6fb733d9ca9ecffb13c67839f68 \ - --hash=sha256:0b3537c00fb8d384f15ac1e79b6eb6db04a16514c8c1d22e59a9b95c8ba42868 \ - --hash=sha256:1183baeb14c5f587b1ec52831e665718ce632caab84b7cd6b85fd44f96114495 \ - --hash=sha256:14e31a3c9e35f1ab6356c6378f6f72830e6d2d5f1791df3774a7b097d18a6a1e \ - --hash=sha256:1617043b99bd33e5318ae18eb2919af09c71322ef1ca46566cdafc6e6712fb66 \ - --hash=sha256:1a4e45017efbf115032e4475ee876d525e0e36c742214fbe405332480ecd6275 \ - --hash=sha256:1b2fe7f9a5566401a0ef2571f197eb92358925c1f0c8dba305d6e43ea0871bb3 \ - --hash=sha256:1cc9057f0319e26333b357e17f3c2c022f1a83739b48a88b25bfd5fa2dc18838 \ - --hash=sha256:2392d954fcb920f42d230284b677605e4e2fbb11f2821e823e642abd67fbb491 \ - --hash=sha256:25ea65d868eb04015cd18e6df2fbe98f07e5bda2abefabcb88fce39a947716f6 \ - --hash=sha256:295f0a7f2e242dabd513737cf076007dc5b2d59237e3eca37b05c0c6446f3826 \ - --hash=sha256:2f16197705a230a78270cdd4ea8a1d57e86b2fdcbc34a1f6aebc72e65c986f9a \ - --hash=sha256:35405aecb474e683fb36af650618fd5340ee5471fc65a21b36076a18bbc6c981 \ - --hash=sha256:38be1808cdd068605b787e6ca9119b27eb275a0234e50212c3492331680c3b1e \ - --hash=sha256:3a577bd840ca83f646f0a625dbc571dba7044c43c2d1503afc378b570954345c \ - --hash=sha256:3b13dedfe76a0ad2d1d859b0811b53827a4e9d93a0bcb05cf59333ab4980cc7e \ - --hash=sha256:418e48ce50a45a6a6c73c454677203a9c75c966cb1e92ca3370959185f197a05 \ - --hash=sha256:55a3bc1e3df3b5567b7d27ef551b2283f0c68a5e86f1cd56abc569da4f31335b \ - --hash=sha256:6165461f55ef6314f026de6638d661188e3455d3ec49834556a0ebbdbace18bb \ - --hash=sha256:61a3d7eaa97a14768b542f3d284dc6400dd2470d9f080708b13cd46b6ae18136 \ - --hash=sha256:6233c9ed9ab9d1db47de57d9753256d9dcffbf42db341576099f0fd9f6bf4810 \ - --hash=sha256:641f795b361874ac9da5294f8f443dfdbee355cf2bd9e3b8d97aaac2306b9b37 \ - --hash=sha256:644a246325b8c69c595ad1dd4b463eba4b0cdb731370e4a86137d433208d6147 \ - --hash=sha256:6f066b179d68c413374294bc1735f68475457c933258df594443bb9d88ddc2a0 \ - --hash=sha256:7986f1fa71cee060ad00758bcc79d3a93bab8559bf978fab9e53472a2e25a17b \ - --hash=sha256:7c2b98645d576a0b9616892ead22b64a83a5f043c5e2ca15ebcefcb5b70c80cb \ - --hash=sha256:806f24b4085453c197a5078218d1ee08783ebbba271badd153d1ae22a3ee804f \ - --hash=sha256:85fe721a14dd823aca09127acbb06c3ca723efbd436c004f16bca601b04dcc83 \ - --hash=sha256:8adc8e6ce5fccf5dc707046ae4914fd537def529709cc0d285d37a7f9cd442ca \ - --hash=sha256:9700ebd9a51f5895ce75ff4ac4b3c47a7d4b42bc618be8e713e5d56bacf5f931 \ - --hash=sha256:9b18371ad2f44044b81a8d23bc2d8a9b6a6226dca775e8e16cfee640473d6c5d \ - --hash=sha256:a964266397740257f16f7bb2e4f08a0c81454004beab8ff59dd531b73610e9f2 \ - --hash=sha256:adbbedc55506cbdabb830890444fb856bfb0060c46c6f8026c6c2f2cf86ae795 \ - --hash=sha256:ae8a1145af31d903fa9bb166824d7abe9b4681a000b0159c9fb99c11bc11ad26 \ - --hash=sha256:b0e131f880cda8d04e076cee175a46fc0e8bc8b65c99c6c09dff6669335fde74 \ - --hash=sha256:b196eb3f931862af3fa84c2a253514d859c08e0d8fe020e07be12e75a5a9780c \ - --hash=sha256:b7d9a514e73bc42711e6a35aaccf3587c520024fe0a25d830a1a8a27c15f4f57 \ - --hash=sha256:bec9373df11544592b0ba7ec2af0e35059e5f0e7647c6183a854dedd193298f1 \ - --hash=sha256:c42ab9439498270139cc63e18847a02afe5c8b3ed9c931266533cfe378bd3591 \ - --hash=sha256:c91d00057f23b8d353039520dc3a6c09d8608164c692e9f59a175a42b2ae0c19 \ - --hash=sha256:d3e0b61e8efb24ed38898e5cdc5fffa9124be480008d401a1f8071500494ae42 \ - --hash=sha256:d7027eba1df3b2069e2e8d80f644fa0918b68c46432af3d088ddd390d063ecde \ - --hash=sha256:d8ddd2768da81d3ee08cfea9b597f4abb4e8e1dc8ae7e204b608d23a0d3ab699 \ - --hash=sha256:e3268e43984d0b1a185c89b4cfff282a7ead12fc93f56cfd7088bdbcbe727041 \ - --hash=sha256:e4505fc6583f7b05ab854934896bcac8253b04ac1171a77dfb73efef92076d91 \ - --hash=sha256:e56a1ffe9bf7b727432b89104cc0849c21582949dd7bdcb34f17b2001a351a76 \ - --hash=sha256:e6f1278ee4785b6db21229374a1c9e54ec7c549de5d1efc9630b6207de7e170b \ - --hash=sha256:f7616236ec1bc2b15bfdec22a71ab38851c86f8f05ff64f379e1278cf20c634a \ - --hash=sha256:fb24ac194bfc5e86839d7dcd52092ee31e5fe6733fe11f5e3b06ef0812b20072 +pyarrow==23.0.1 \ + --hash=sha256:00be9576d970c31defb5c32eb72ef585bf600ef6d0a82d5eccaae96639cf9d07 \ + --hash=sha256:07deae7783782ac7250989a7b2ecde9b3c343a643f82e8a4df03d93b633006f0 \ + --hash=sha256:0ae6e17c828455b6265d590100c295193f93cc5675eb0af59e49dbd00d2de350 \ + --hash=sha256:0b95a3994f015be13c63148fef8832e8a23938128c185ee951c98908a696e0eb \ + --hash=sha256:17cd28e906c18af486a499422740298c52d7c6795344ea5002a7720b4eadf16d \ + --hash=sha256:26d50dee49d741ac0e82185033488d28d35be4d763ae6f321f97d1140eb7a0e9 \ + --hash=sha256:29f7f7419a0e30264ea261fdc0e5fe63ce5a6095003db2945d7cd78df391a7e1 \ + --hash=sha256:33d648dc25b51fd8055c19e4261e813dfc4d2427f068bcecc8b53d01b81b0500 \ + --hash=sha256:3a4c85ef66c134161987c17b147d6bffdca4566f9a4c1d81a0a01cdf08414ea5 \ + --hash=sha256:3c30143b17161310f151f4a2bcfe41b5ff744238c1039338779424e38579d701 \ + --hash=sha256:3f91c038b95f71ddfc865f11d5876c42f343b4495535bd262c7b321b0b94507c \ + --hash=sha256:3fab8f82571844eb3c460f90a75583801d14ca0cc32b1acc8c361650e006fd56 \ + --hash=sha256:46718a220d64677c93bc243af1d44b55998255427588e400677d7192671845c7 \ + --hash=sha256:4982d71350b1a6e5cfe1af742c53dfb759b11ce14141870d05d9e540d13bc5d1 \ + --hash=sha256:527e8d899f14bd15b740cd5a54ad56b7f98044955373a17179d5956ddb93d9ce \ + --hash=sha256:564baf97c858ecc03ec01a41062e8f4698abc3e6e2acd79c01c2e97880a19730 \ + --hash=sha256:5abde149bb3ce524782d838eb67ac095cd3fd6090eba051130589793f1a7f76d \ + --hash=sha256:5c16ed4f53247fa3ffb12a14d236de4213a4415d127fe9cebed33d51671113e2 \ + --hash=sha256:5df1161da23636a70838099d4aaa65142777185cc0cdba4037a18cee7d8db9ca \ + --hash=sha256:5f4763b83c11c16e5f4c15601ba6dfa849e20723b46aa2617cb4bffe8768479f \ + --hash=sha256:6b8fda694640b00e8af3c824f99f789e836720aa8c9379fb435d4c4953a756b8 \ + --hash=sha256:6f0147ee9e0386f519c952cc670eb4a8b05caa594eeffe01af0e25f699e4e9bb \ + --hash=sha256:7044b442f184d84e2351e5084600f0d7343d6117aabcbc1ac78eb1ae11eb4125 \ + --hash=sha256:71c5be5cbf1e1cb6169d2a0980850bccb558ddc9b747b6206435313c47c37677 \ + --hash=sha256:76e823d0e86b4fb5e1cf4a58d293036e678b5a4b03539be933d3b31f9406859f \ + --hash=sha256:7707d2b6673f7de054e2e83d59f9e805939038eebe1763fe811ee8fa5c0cd1a7 \ + --hash=sha256:813d99f31275919c383aab17f0f455a04f5a429c261cc411b1e9a8f5e4aaaa05 \ + --hash=sha256:86ff03fb9f1a320266e0de855dee4b17da6794c595d207f89bba40d16b5c78b9 \ + --hash=sha256:8ff51b1addc469b9444b7c6f3548e19dc931b172ab234e995a60aea9f6e6025f \ + --hash=sha256:9b6f4f17b43bc39d56fec96e53fe89d94bac3eb134137964371b45352d40d0c2 \ + --hash=sha256:9fc13fc6c403d1337acab46a2c4346ca6c9dec5780c3c697cf8abfd5e19b6b37 \ + --hash=sha256:a09f3876e87f48bc2f13583ab551f0379e5dfb83210391e68ace404181a20690 \ + --hash=sha256:a35581e856a2fafa12f3f54fce4331862b1cfb0bef5758347a858a4aa9d6bae8 \ + --hash=sha256:a62e1899e3078bf65943078b3ad2a6ddcacf2373bc06379aac61b1e548a75814 \ + --hash=sha256:b8c5873e33440b2bc2f4a79d2b47017a89c5a24116c055625e6f2ee50523f019 \ + --hash=sha256:bf5842f960cddd2ef757d486041d57c96483efc295a8c4a0e20e704cbbf39c67 \ + --hash=sha256:c2139549494445609f35a5cda4eb94e2c9e4d704ce60a095b342f82460c73a83 \ + --hash=sha256:c250248f1fe266db627921c89b47b7c06fee0489ad95b04d50353537d74d6886 \ + --hash=sha256:c33b5bf406284fd0bba436ed6f6c3ebe8e311722b441d89397c54f871c6863a2 \ + --hash=sha256:cd395abf8f91c673dd3589cadc8cc1ee4e8674fa61b2e923c8dd215d9c7d1f41 \ + --hash=sha256:cecfb12ef629cf6be0b1887f9f86463b0dd3dc3195ae6224e74006be4736035a \ + --hash=sha256:d0744403adabef53c985a7f8a082b502a368510c40d184df349a0a8754533258 \ + --hash=sha256:db2190fa79c80a23fdd29fef4b8992893f024ae7c17d2f5f4db7171fa30c2c78 \ + --hash=sha256:ddf743e82f69dcd6dbbcb63628895d7161e04e56794ef80550ac6f3315eeb1d5 \ + --hash=sha256:df088e8f640c9fae3b1f495b3c64755c4e719091caf250f3a74d095ddf3c836d \ + --hash=sha256:e052a211c5ac9848ae15d5ec875ed0943c0221e2fcfe69eee80b604b4e703222 \ + --hash=sha256:f00f993a8179e0e1c9713bcc0baf6d6c01326a406a9c23495ec1ba9c9ebf2919 \ + --hash=sha256:f4b0dbfa124c0bb161f8b5ebb40f1a680b70279aa0c9901d44a2b5a20806039f \ + --hash=sha256:fa8e51cb04b9f8c9c5ace6bab63af9a1f88d35c0d6cbf53e8c17c098552285e1 \ + --hash=sha256:fed7020203e9ef273360b9e45be52a2a47d3103caf156a30ace5247ffb51bdbd # via # feast (pyproject.toml) # dask @@ -3877,6 +4300,7 @@ pyarrow==24.0.0 \ # deltalake # google-cloud-bigquery # ibis-framework + # mlflow # pandas-gbq # ray # snowflake-connector-python @@ -3996,6 +4420,8 @@ pydantic==2.13.4 \ # fastapi-mcp # great-expectations # mcp + # mlflow-skinny + # mlflow-tracing # pydantic-settings # qdrant-client # ray @@ -4400,7 +4826,9 @@ pyopenssl==26.2.0 \ pyparsing==3.3.2 \ --hash=sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d \ --hash=sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc - # via great-expectations + # via + # great-expectations + # matplotlib pypdfium2==4.30.0 \ --hash=sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e \ --hash=sha256:119b2969a6d6b1e8d55e99caaf05290294f2d0fe49c12a3f17102d01c441bd29 \ @@ -4627,10 +5055,12 @@ python-dateutil==2.9.0 \ # botocore # elasticsearch # google-cloud-bigquery + # graphene # great-expectations # ibis-framework # jupyter-client # kubernetes + # matplotlib # moto # openlineage-python # pandas @@ -4643,6 +5073,7 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via + # mlflow-skinny # pydantic-settings # pymilvus # testcontainers @@ -4655,9 +5086,9 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (pyproject.toml) -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ @@ -4755,6 +5186,7 @@ pyyaml==6.0.3 \ # huggingface-hub # jupyter-events # kubernetes + # mlflow-skinny # openlineage-python # openshift-client # pre-commit @@ -5017,6 +5449,7 @@ requests==2.34.2 \ # via # feast (pyproject.toml) # azure-core + # databricks-sdk # datasets # docker # docling @@ -5029,6 +5462,7 @@ requests==2.34.2 \ # jupyterlab-server # kube-authkit # kubernetes + # mlflow-skinny # moto # msal # openlineage-python @@ -5360,7 +5794,9 @@ scikit-learn==1.8.0 \ --hash=sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd # via # feast (pyproject.toml) + # mlflow # sentence-transformers + # skops scipy==1.17.1 \ --hash=sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0 \ --hash=sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458 \ @@ -5427,9 +5863,11 @@ scipy==1.17.1 \ # docling # easyocr # great-expectations + # mlflow # scikit-image # scikit-learn # sentence-transformers + # skops semchunk==3.2.5 \ --hash=sha256:ee15e9a06a69a411937dd8fcf0a25d7ef389c5195863140436872a02c95b0218 \ --hash=sha256:fd09cc5f380bd010b8ca773bd81893f7eaf11d37dd8362a83d46cedaf5dae076 @@ -5540,10 +5978,18 @@ six==1.17.0 \ # python-dateutil # rfc3339-validator # thriftpy2 +skops==0.14.0 \ + --hash=sha256:60a5db78a9db46ccee2139a0ba13ab5afb1c96f4749b382e75a371291bbe3e36 \ + --hash=sha256:6c8c0e047f691a3a582c3258943eecafcbfd79c8c7eef66260f3703e363254f0 + # via mlflow smart-open==7.6.1 \ --hash=sha256:4347996e7ba21db7cd1e059632e0b30395407e4f6c660d2ddffc8f2a9ae5f990 \ --hash=sha256:b4de6aebef023aca91cc9fb372052e1343ba3f152de215bd22391a663e3ddd21 # via ray +smmap==5.0.3 \ + --hash=sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c \ + --hash=sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f + # via gitdb sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc @@ -5682,7 +6128,10 @@ sqlalchemy[mypy]==2.0.49 \ --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 - # via feast (pyproject.toml) + # via + # feast (pyproject.toml) + # alembic + # mlflow sqlglot[rs]==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ --hash=sha256:af903378c331d5b72277a1b41118f07bc3e50cf4478e2d47eed12c96ee6a22a4 @@ -5727,6 +6176,10 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e + # via mlflow-skinny sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 @@ -5735,12 +6188,13 @@ stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==0.52.1 \ + --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ + --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 # via # fastapi # mcp + # mlflow-skinny # sse-starlette sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ @@ -5838,9 +6292,9 @@ thriftpy2==0.6.0 \ --hash=sha256:f6b86112cca7bd04151ce248d781763ea5f74cc18d148476c6d16cee32db81ac \ --hash=sha256:f837ab85ae93b118766b8b28a1cec47a1daddee303e1f986a595c56379062a5c # via happybase -tifffile==2026.5.2 \ - --hash=sha256:21b10227ede8493814a34676774797f721f487e36cb0530e7c3bd882caa87f5a \ - --hash=sha256:5129b53b826e768a5b1af26b765eeea75c2d0a227d2d12849617e0737588e105 +tifffile==2026.5.15 \ + --hash=sha256:6715515a53cabc0cefc5c9f13a0ae2c250e63e2ca784ce02d0b6c333810c2a17 \ + --hash=sha256:ee4f3e07ee0d8ff4745a8c735ac2b72caa3173c7d6059b00fdc3ff492a0b635b # via scikit-image timm==1.0.27 \ --hash=sha256:315dfe63186ca9fb7ff941268941231fd5be259f2b4bb4afa28560ae1015cb9a \ @@ -6166,9 +6620,9 @@ typer==0.12.5 \ # docling # docling-core # fastapi-mcp -types-cffi==2.0.0.20260508 \ - --hash=sha256:746b081b4bf84f9d8855c517a67c2dff717f3c18657fcff8e9c251fb5778f311 \ - --hash=sha256:d094065daf4edcfbdd3e11c37d2fa9511eaf7c509da7a9d9573c276398a8e745 +types-cffi==2.0.0.20260518 \ + --hash=sha256:5b68a215a95d0eac4203b58e766ff7fe40c2e091b1fa1a9e54111f04cc560084 \ + --hash=sha256:f9707e66c13454789a58f8843d1ded4a66f1e9c8b10bd24d5eb5e0f25c0c5472 # via types-pyopenssl types-protobuf==3.19.22 \ --hash=sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab \ @@ -6176,25 +6630,25 @@ types-protobuf==3.19.22 \ # via # feast (pyproject.toml) # mypy-protobuf -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ --hash=sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54 # via types-redis -types-python-dateutil==2.9.0.20260508 \ - --hash=sha256:596a6d63d81f587bf04c8254fb78df9d2344e915ce67948d7400512e3a6206d5 \ - --hash=sha256:bfc6fd2d81aa86e5ac97206a64304f6bd247426eedbca9b98619bbc48c6a1c10 +types-python-dateutil==2.9.0.20260518 \ + --hash=sha256:51f02dc03b61c7f6a07df45797d4dfe8a1aa47f0b7db9ad89f6fd3a1a70e1b51 \ + --hash=sha256:d6a9c5bd0de61460c8fdef8ab2b400f956a1a1075cce08d4e2b4434e478c50b8 # via feast (pyproject.toml) -types-pytz==2026.2.0.20260506 \ - --hash=sha256:58ab5307c20885f9bcd42ff106616eb0e32710791f8cbdc770aee2ea0c4f01fb \ - --hash=sha256:fc6a0de6a1b7da82a748fb4065e152372dac3016559cb1eef5e8af1e338eb627 +types-pytz==2026.2.0.20260518 \ + --hash=sha256:3a12eaa38f476bd650902a9c9bb442f03f3c7dee2be5c5848bce61bd708d205a \ + --hash=sha256:e5d254329e9c4e91f0781b22c43a4bb2d10bb044d97b24c4b05d45567b0eae16 # via feast (pyproject.toml) -types-pyyaml==6.0.12.20260510 \ - --hash=sha256:09c1f1cb65a6eebea1e2e51ccf4918b8288e152909609a35cdb0d805efd125ad \ - --hash=sha256:3492eb9ba4d9d833473214c4d5736cccf5f37d93f5854059721e1c84f785309d +types-pyyaml==6.0.12.20260518 \ + --hash=sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd \ + --hash=sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466 # via feast (pyproject.toml) types-redis==4.6.0.20241004 \ --hash=sha256:5f17d2b3f9091ab75384153bfa276619ffa1cf6a38da60e10d5e6749cc5b902e \ @@ -6204,9 +6658,9 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (pyproject.toml) -types-setuptools==82.0.0.20260508 \ - --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ - --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e +types-setuptools==82.0.0.20260518 \ + --hash=sha256:31c04a62b57a653a5021caf191be0f10f70df890f813b51f02bab3969d300f20 \ + --hash=sha256:3b743cfe63d0981ea4c15b90710fc1ed41e3464a537d51e705be514e891c1d07 # via # feast (pyproject.toml) # types-cffi @@ -6223,6 +6677,7 @@ typing-extensions==4.15.0 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # aiosignal + # alembic # anyio # azure-core # azure-identity @@ -6231,12 +6686,14 @@ typing-extensions==4.15.0 \ # docling-core # elasticsearch # fastapi + # graphene # great-expectations # huggingface-hub # ibis-framework # jwcrypto # mcp # minio + # mlflow-skinny # mypy # opentelemetry-api # opentelemetry-sdk @@ -6386,6 +6843,7 @@ uvicorn[standard]==0.34.0 \ # feast (pyproject.toml) # fastapi-mcp # mcp + # mlflow-skinny # uvicorn-worker uvicorn-worker==0.3.0 \ --hash=sha256:6baeab7b2162ea6b9612cbe149aa670a76090ad65a267ce8e27316ed13c7de7b \ @@ -6449,121 +6907,121 @@ virtualenv==20.23.0 \ # feast (pyproject.toml) # pre-commit # ray -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn wcwidth==0.7.0 \ --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 - # via prompt-toolkit + # via + # prettytable + # prompt-toolkit webcolors==25.10.0 \ --hash=sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d \ --hash=sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf @@ -6646,7 +7104,10 @@ websockets==16.0 \ werkzeug==3.1.8 \ --hash=sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50 \ --hash=sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44 - # via moto + # via + # flask + # flask-cors + # moto wheel==0.47.0 \ --hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \ --hash=sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3 @@ -7071,9 +7532,9 @@ yarl==1.23.0 \ --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d # via aiohttp -zipp==3.23.1 \ - --hash=sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc \ - --hash=sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110 +zipp==4.1.0 \ + --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ + --hash=sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602 # via importlib-metadata zstandard==0.25.0 \ --hash=sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64 \ diff --git a/sdk/python/requirements/py3.12-minimal-requirements.txt b/sdk/python/requirements/py3.12-minimal-requirements.txt index 9a531793acb..b52f33348d0 100644 --- a/sdk/python/requirements/py3.12-minimal-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-requirements.txt @@ -161,38 +161,40 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy atpublic==7.0.0 \ --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ @@ -453,9 +455,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -745,9 +747,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via # google-api-core # google-auth-oauthlib @@ -1664,79 +1666,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # dask @@ -2297,9 +2299,9 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp pytz==2026.2 \ --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ @@ -2759,9 +2761,9 @@ typer==0.25.1 \ --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc # via fastapi-mcp -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2946,116 +2948,114 @@ uvloop==0.22.1 \ --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 # via uvicorn -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt index 070790ae39c..48163513c45 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt @@ -4,38 +4,40 @@ # # pybuild-deps compile --generate-hashes --output-file=sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt sdk/python/requirements/py3.12-minimal-sdist-requirements.txt # -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ @@ -642,79 +644,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # pandas # pyarrow @@ -865,9 +867,9 @@ semantic-version==2.10.0 \ --hash=sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c \ --hash=sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177 # via setuptools-rust -setuptools-git-versioning==3.0.1 \ - --hash=sha256:737c4d17e848edd46e28764a19dc424d8537fcb2257022e5f4f5c0c8e9b64c80 \ - --hash=sha256:c8a599bacf163b5d215552b5701faf5480ffc4d65426a5711a010b802e1590eb +setuptools-git-versioning==3.1.0 \ + --hash=sha256:3a68f3fd58a2a5e86b0792435cfa9d8e569ab60ee5e4c29228c09da9b637bf18 \ + --hash=sha256:612dfcf184addac9e1c2216f4f229724b2390e5bf613fb925ae80b84f2529172 # via toolz setuptools-rust==1.12.1 \ --hash=sha256:85ae70989d96c9cfeb5ef79cf3bac2d5200bc5564f720a06edceedbdf6664640 \ @@ -966,9 +968,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==82.0.0.20260508 \ - --hash=sha256:ba1d863bbd11526d7232bca8d5a4aebe1d38fa1677a550f47a2692b7d5776900 \ - --hash=sha256:e76ade6f42ba9b4211636b84b65a8e55948a67ffe81f9a44e66b8af93d57e77e +types-setuptools==82.0.0.20260518 \ + --hash=sha256:31c04a62b57a653a5021caf191be0f10f70df890f813b51f02bab3969d300f20 \ + --hash=sha256:3b743cfe63d0981ea4c15b90710fc1ed41e3464a537d51e705be514e891c1d07 # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt index e3de3af6245..c16471e8a27 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt @@ -165,38 +165,40 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy atpublic==7.0.0 \ --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ @@ -465,9 +467,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -831,9 +833,9 @@ google-api-core[grpc]==2.30.3 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.52.0 \ - --hash=sha256:01f30e1a9e3638698d89464f5e603ce29d18e1c0e63ec31ac570aba4e164aaf5 \ - --hash=sha256:aee92803ba0ff93a70a3b8a35c7b4797837751cd6380b63ff38372b98f3ed627 +google-auth==2.53.0 \ + --hash=sha256:6e7449917c599b35126a99ec268ec6880301f2fea41dce198fe8fd83ff642b68 \ + --hash=sha256:e7e6aa16f6bee7b2b264830fd04f08087a1d5a836df516251a5d15327b246c9c # via # google-api-core # google-auth-oauthlib @@ -1834,79 +1836,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # dask @@ -2500,9 +2502,9 @@ python-dotenv==1.2.2 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.28 \ - --hash=sha256:10faac07eb966c3f48dc415f9dee46c04cb10d58d30a35677db8027c825ed9b6 \ - --hash=sha256:8550da197eac0f7ab748961fc9509b999fa2662ea25cef857f05249f6893c0f8 +python-multipart==0.0.29 \ + --hash=sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69 \ + --hash=sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904 # via mcp pytz==2026.2 \ --hash=sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126 \ @@ -3016,9 +3018,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (pyproject.toml) -types-pymysql==1.1.0.20260508 \ - --hash=sha256:49abf0c2f8d944384834544a8f25ea1b25018c3d815f7ec676f73d0b7fe0731c \ - --hash=sha256:a726e6f867e0a1027a297c89d7646e4d52b7db6ccd11b2a40780120257610c78 +types-pymysql==1.1.0.20260518 \ + --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ + --hash=sha256:cf697ce4e44124fc859e8e8a7f047c1dc864745c3c628b85a51b3ee01502ef98 # via feast (pyproject.toml) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -3207,116 +3209,114 @@ vcs-versioning==1.1.1 \ --hash=sha256:b541e2ba79fc6aaa3850f8a7f88af43d97c1c80649c01142ee4146eddbc599e4 \ --hash=sha256:fabd75a3cab7dd8ac02fe24a3a9ba936bf258667b5a62ed468c9a1da0f5775bc # via setuptools-scm -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ diff --git a/sdk/python/requirements/py3.12-requirements.txt b/sdk/python/requirements/py3.12-requirements.txt index 7e85eaec765..d46a6b09d33 100644 --- a/sdk/python/requirements/py3.12-requirements.txt +++ b/sdk/python/requirements/py3.12-requirements.txt @@ -14,38 +14,40 @@ anyio==4.13.0 \ # via # starlette # watchfiles -ast-serialize==0.4.0 \ - --hash=sha256:074032142777e3e6091977dc3c5146a8ca58ae6825b7f64e9a0b604153ddabd8 \ - --hash=sha256:1026f565a7ab846337c630909089b3346a2fe417bf1552b1581ab01852137407 \ - --hash=sha256:1c5245228e65d38cb48e1251f0ca71b0fa417e527141491e8c92f740e8e2d121 \ - --hash=sha256:1e1fb90def261f6a0db885876f7e1a49ad2dbac38ad9f2f62dba2f9543af16e7 \ - --hash=sha256:3bdde2c4570143791f636aed4e3ef868f5b46eb90a18f8d5c41dd045aab08bef \ - --hash=sha256:404f3462b4532e13a70b8849bba241dbd82e30043ff58d98c7e762fd925b116a \ - --hash=sha256:43729a5e369ebbe7750635c0c206bc616fcd36e703cb9c4497d6b4df0291ee64 \ - --hash=sha256:4738790cf54d8b416de992b87ee567056980bc82134d52458bd4985f389d1658 \ - --hash=sha256:4db9769d57deb5545ce56ebbbbe3436dcc0ae2688ce14c295cd14e106624ece7 \ - --hash=sha256:6551d55b8607b97a7755683d743200b398c61a0b71a11b7f00c89c335a11d0f4 \ - --hash=sha256:6615b39cd747967c3aabe68bf3f5f26748e823cc6b474ddc1510ed188a824149 \ - --hash=sha256:70d9c5d527bbfa69bd3c7d17dac11fb6781e36186a434a06d7d5892e0b2f88f9 \ - --hash=sha256:7234ff086cb152ea2a3b7ef895b5ebeb6d80779df049d5c6431c8e3536d5b03c \ - --hash=sha256:732b4ef76adcb0f298a7d18c4558336d83b1384f9ae0c7eaa1dc8d031b0a4390 \ - --hash=sha256:74e4e634ab82d1466acf0be27043178570b98ebeaa3165f9240a6fad4c286471 \ - --hash=sha256:79c8d015c771c8bfdb1208003b227b27c40034790a2c29c09f2317a041825ce2 \ - --hash=sha256:7fba7315fd4bd87cb5560792709f6e66e0606402d362c0a38dd32dfb66ba6066 \ - --hash=sha256:8f5153e9c44a02e61f4042c5f9249d2e8a759773d621a0b2f445a899e536e181 \ - --hash=sha256:905fc11940831454d93589bd7ce2acb6a5eb01c2936156f751d2a21087c98cd3 \ - --hash=sha256:90fc5c0d35a22f1a92dd33635508626d50f8fc64deb897c23e78e666a60804c9 \ - --hash=sha256:91362c0a9fdf1c344b7f50a5b0508b11a0732102998fbd754a191f7187e77031 \ - --hash=sha256:91d3786f3929786cdc4eeedfd110abb4603e7f6c1390c5af398f333a947b742d \ - --hash=sha256:97c55336e16f5c4ca2bde7be94cca4b8f7d665d64f7008925a82e02707ba14ac \ - --hash=sha256:9ecd6a1fc1b86f1f4e8ae206759b6319c10019706b3496b01b54d02b9b2cd918 \ - --hash=sha256:a6f26937ce0293aafbece0e39019e020369a5a70486ff4088227f0cc888844a9 \ - --hash=sha256:b3db87c4772097c0782250bcd550d66b1189a8c889793c7bcf153f4fee70005c \ - --hash=sha256:bd50d201098aae0d202805fe9606c0545492f69a3ec4403337e32c54ad29fc41 \ - --hash=sha256:cf2ff7b654c8e95143e20f5d75878cbb78b65b928b26c4d58ef71cdba9d6d981 \ - --hash=sha256:dcd04f85a29deb80400e8987cfaceb9907140f763453cbffdbd6ff36f1b32c12 \ - --hash=sha256:dcded5056d9f3d201df7833082c07ebcbc566ffc3d4105c9fc9fe278fa086ecb \ - --hash=sha256:faa008dccfcb793ae9101325e4d6d026caaa5d845c2182f03749c759834b0a3a +ast-serialize==0.5.0 \ + --hash=sha256:061ee58bdb52341c8201a6df41182a977736bae3b7ded87ca7176ca25a8a47ab \ + --hash=sha256:0668aa9459cfa8c9c49ddd2163ebcf43088ba045ef7492af6fe22e0098303101 \ + --hash=sha256:104e4a35bd7c124173c41760ef9aaea17ddb3f86c65cb643671d59afbe3ee94c \ + --hash=sha256:143a4ef63285a075871908fda3672dc21864b83a8ec3ee12304aa3e4c5387b9a \ + --hash=sha256:16db7c62ec0b8efe1d7afd283a388d8f74f2605d56032e5a37747d2de8dba027 \ + --hash=sha256:1943db345233cc7194a470f13afa9c59772c0b123dea0c9414c4d4ca54369759 \ + --hash=sha256:239a4c354e8d676e9d94631d1d4a64edc6b266f86ff3a5a80aedd344f342c01d \ + --hash=sha256:2782c36237c46dd1674542f2109740ea5ea485a169bf1431939ada0434e17934 \ + --hash=sha256:27d51654fc240a1e87e742d353d98eb45b75f62f129086b3596ab53df2ac2a43 \ + --hash=sha256:36be371028fc1675acb38a331bde160dbab7ff907fdf00b67eb6911aa106951b \ + --hash=sha256:5499e8797edff2a9186aa313ed382c6b422e798e9332d9953badcee6e69a88f2 \ + --hash=sha256:5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6 \ + --hash=sha256:6848f2a093fb5548751a9a09bff8fcd229e2bbeb0e3331f391b6ae6d26cd9903 \ + --hash=sha256:787baedb0262cc49e8ce37cc15c00ae818e46a165a3b36f5e21ed174998104cb \ + --hash=sha256:7d1a2de9de5be04652f0ed60738356ef94f66db37924a9499fffe98dc491aa0b \ + --hash=sha256:832d4c998e0b091fd60a6d6bceee535483c4d490de9ba85003af835225719261 \ + --hash=sha256:842d1c004bb466c7df036f95fabef789570541922b10976b12f5592a69cf0b38 \ + --hash=sha256:8f5c14f169eb0972c0c21bada5358b23d6047c76583b005234f865b11f1fa00a \ + --hash=sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642 \ + --hash=sha256:9cc22cf0c9be65e71cf88fda130af60d61eb4a79370ad4cfe7900d48a4aa2211 \ + --hash=sha256:b0c06d760909b095cc466356dfccd05a1c7233a6ca191c020dca2c6a6f16c24c \ + --hash=sha256:b15219e9cdc9f53f6f4cb51c009203507228226148c05c5e8fe451c28b435eb3 \ + --hash=sha256:b54f60c1d78767a53b67eaa663f0dfac3afe606aa07f1301572f588b73d64809 \ + --hash=sha256:b725026bafa801dbd7310eb13a75f0a2e370e7e51b2cb225f9d21fcfadf919ee \ + --hash=sha256:baf5eb061eb5bccade4128ad42da33787d72f6013809cd1b590376ece8b3c937 \ + --hash=sha256:be5173fb66f9b49026d9d5a2ff0fc7c7009077107c0eb285b2d60fdf1fe10bd1 \ + --hash=sha256:bf683d6363edf2b39eed6b6d4fe22d34b6203867a67e27134d9e2a2680c4bc4a \ + --hash=sha256:cae65289fc456fde04af979a2be09302ef5d8ab92ef23e596d6746dc267ada27 \ + --hash=sha256:cf25572c526add400f26a4750dc6ce0c3bb93fc1f75e7ae0cad4ce4f2cd5c590 \ + --hash=sha256:df1c00022cbbcb064bfaa505aa9c9295362443ce5dacb459d1331d3da353f887 \ + --hash=sha256:e42d729ef2be96a14efbad355093284739e3670ece3e534f82cc8832790911d9 \ + --hash=sha256:f66173891548c9f2726bf27957b41cabce12fa679dc6da505ddbde4d4b3b31cf \ + --hash=sha256:f8015cd071ac1339924ee2b8098c93e00e155f30a16f40ec9816fcf84f4753f6 # via mypy attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ @@ -192,9 +194,9 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via requests -click==8.3.3 \ - --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ - --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 +click==8.4.0 \ + --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ + --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 # via # feast (pyproject.toml) # dask @@ -642,79 +644,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.4 \ - --hash=sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed \ - --hash=sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50 \ - --hash=sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959 \ - --hash=sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827 \ - --hash=sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd \ - --hash=sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233 \ - --hash=sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc \ - --hash=sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b \ - --hash=sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7 \ - --hash=sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e \ - --hash=sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a \ - --hash=sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d \ - --hash=sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3 \ - --hash=sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e \ - --hash=sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb \ - --hash=sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a \ - --hash=sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0 \ - --hash=sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e \ - --hash=sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113 \ - --hash=sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103 \ - --hash=sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93 \ - --hash=sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af \ - --hash=sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5 \ - --hash=sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7 \ - --hash=sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392 \ - --hash=sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c \ - --hash=sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4 \ - --hash=sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40 \ - --hash=sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf \ - --hash=sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44 \ - --hash=sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b \ - --hash=sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5 \ - --hash=sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e \ - --hash=sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74 \ - --hash=sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0 \ - --hash=sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e \ - --hash=sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec \ - --hash=sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015 \ - --hash=sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d \ - --hash=sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d \ - --hash=sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842 \ - --hash=sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150 \ - --hash=sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8 \ - --hash=sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a \ - --hash=sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed \ - --hash=sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f \ - --hash=sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008 \ - --hash=sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e \ - --hash=sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0 \ - --hash=sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e \ - --hash=sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f \ - --hash=sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a \ - --hash=sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40 \ - --hash=sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7 \ - --hash=sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83 \ - --hash=sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d \ - --hash=sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c \ - --hash=sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871 \ - --hash=sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502 \ - --hash=sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252 \ - --hash=sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8 \ - --hash=sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115 \ - --hash=sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f \ - --hash=sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e \ - --hash=sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d \ - --hash=sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0 \ - --hash=sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119 \ - --hash=sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e \ - --hash=sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db \ - --hash=sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121 \ - --hash=sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d \ - --hash=sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e +numpy==2.4.6 \ + --hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \ + --hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \ + --hash=sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f \ + --hash=sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079 \ + --hash=sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096 \ + --hash=sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47 \ + --hash=sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66 \ + --hash=sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d \ + --hash=sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1 \ + --hash=sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e \ + --hash=sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147 \ + --hash=sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd \ + --hash=sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75 \ + --hash=sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063 \ + --hash=sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73 \ + --hash=sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab \ + --hash=sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4 \ + --hash=sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41 \ + --hash=sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402 \ + --hash=sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698 \ + --hash=sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7 \ + --hash=sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8 \ + --hash=sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b \ + --hash=sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8 \ + --hash=sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0 \ + --hash=sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662 \ + --hash=sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91 \ + --hash=sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0 \ + --hash=sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f \ + --hash=sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3 \ + --hash=sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f \ + --hash=sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67 \ + --hash=sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6 \ + --hash=sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997 \ + --hash=sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b \ + --hash=sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e \ + --hash=sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538 \ + --hash=sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627 \ + --hash=sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93 \ + --hash=sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02 \ + --hash=sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853 \ + --hash=sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c \ + --hash=sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43 \ + --hash=sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd \ + --hash=sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8 \ + --hash=sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089 \ + --hash=sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778 \ + --hash=sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1 \ + --hash=sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb \ + --hash=sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261 \ + --hash=sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb \ + --hash=sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a \ + --hash=sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8 \ + --hash=sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359 \ + --hash=sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5 \ + --hash=sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7 \ + --hash=sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751 \ + --hash=sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8 \ + --hash=sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605 \ + --hash=sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e \ + --hash=sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45 \ + --hash=sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2 \ + --hash=sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895 \ + --hash=sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe \ + --hash=sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb \ + --hash=sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a \ + --hash=sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577 \ + --hash=sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d \ + --hash=sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a \ + --hash=sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda \ + --hash=sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6 \ + --hash=sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20 # via # feast (pyproject.toml) # dask @@ -1426,116 +1428,114 @@ uvloop==0.22.1 \ --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 # via uvicorn -watchfiles==1.1.1 \ - --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ - --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ - --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ - --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ - --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ - --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ - --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ - --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ - --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ - --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ - --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ - --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ - --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ - --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ - --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ - --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ - --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ - --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ - --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ - --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ - --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ - --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ - --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ - --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ - --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ - --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ - --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ - --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ - --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ - --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ - --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ - --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ - --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ - --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ - --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ - --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ - --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ - --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ - --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ - --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ - --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ - --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ - --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ - --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ - --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ - --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ - --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ - --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ - --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ - --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ - --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ - --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ - --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ - --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ - --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ - --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ - --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ - --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ - --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ - --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ - --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ - --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ - --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ - --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ - --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ - --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ - --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ - --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ - --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ - --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ - --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ - --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ - --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ - --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ - --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ - --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ - --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ - --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ - --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ - --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ - --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ - --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ - --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ - --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ - --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ - --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ - --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ - --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ - --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ - --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ - --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ - --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ - --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ - --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ - --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ - --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ - --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ - --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ - --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ - --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ - --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ - --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ - --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ - --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ - --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ - --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ - --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ - --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ - --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf +watchfiles==1.2.0 \ + --hash=sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9 \ + --hash=sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98 \ + --hash=sha256:027ae72bfdfd254862065d8b3e2a815c6ab9b1853ce41e6648ece84afd34a551 \ + --hash=sha256:03b14855c6f35539e2d95c442ae9530a75762f1e26567152b9ed05f96534a74d \ + --hash=sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7 \ + --hash=sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db \ + --hash=sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69 \ + --hash=sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242 \ + --hash=sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925 \ + --hash=sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f \ + --hash=sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5 \ + --hash=sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5 \ + --hash=sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427 \ + --hash=sha256:11743adfa510bfffebe97659fb280182b5c9b238708f667e866f308c3430dc19 \ + --hash=sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4 \ + --hash=sha256:204f299afcbd65918ab78dbc52626b0ae45e9d8cef403fdbf33ecf9e40eac66e \ + --hash=sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa \ + --hash=sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba \ + --hash=sha256:24b2405c0a46738dd9e1cf7135aa5dbdb9d42d024628651b3b13d5117e99f8df \ + --hash=sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c \ + --hash=sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906 \ + --hash=sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65 \ + --hash=sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c \ + --hash=sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c \ + --hash=sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30 \ + --hash=sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077 \ + --hash=sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374 \ + --hash=sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01 \ + --hash=sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33 \ + --hash=sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831 \ + --hash=sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9 \ + --hash=sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2 \ + --hash=sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b \ + --hash=sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f \ + --hash=sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658 \ + --hash=sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579 \ + --hash=sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5 \ + --hash=sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0 \ + --hash=sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7 \ + --hash=sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666 \ + --hash=sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5 \ + --hash=sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201 \ + --hash=sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103 \ + --hash=sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6 \ + --hash=sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8 \ + --hash=sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1 \ + --hash=sha256:77a0feab9af4c021c581f695258c642b3d10c5fd4c676e33a0d8606425d82631 \ + --hash=sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898 \ + --hash=sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d \ + --hash=sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44 \ + --hash=sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2 \ + --hash=sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5 \ + --hash=sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a \ + --hash=sha256:8c520725602756229f045b032a1ff33d7ef0f7404189d62f6c2438cb6d8ef6a1 \ + --hash=sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b \ + --hash=sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc \ + --hash=sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5 \ + --hash=sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377 \ + --hash=sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8 \ + --hash=sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add \ + --hash=sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281 \ + --hash=sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9 \ + --hash=sha256:a16ffe19bf5cf9f5edaa1ad1dd830c5a816e8feec430c522302ab55483a4b994 \ + --hash=sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0 \ + --hash=sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e \ + --hash=sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0 \ + --hash=sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28 \ + --hash=sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7 \ + --hash=sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55 \ + --hash=sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb \ + --hash=sha256:b62f042afde2dde21ec1d2c1a74361e804673df86f51e418a999c9acfe671b07 \ + --hash=sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb \ + --hash=sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4 \ + --hash=sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0 \ + --hash=sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e \ + --hash=sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4 \ + --hash=sha256:bb68bf4df85abebe5efddc53cf2075520f243a59868d9b3973278b23e76962a9 \ + --hash=sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06 \ + --hash=sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26 \ + --hash=sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7 \ + --hash=sha256:c16cb06dd17d43b9d185094268459eac92c9538356f050e55b54e82cf700e1d4 \ + --hash=sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3 \ + --hash=sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3 \ + --hash=sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838 \ + --hash=sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71 \ + --hash=sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488 \ + --hash=sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717 \ + --hash=sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d \ + --hash=sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44 \ + --hash=sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2 \ + --hash=sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b \ + --hash=sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2 \ + --hash=sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22 \ + --hash=sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6 \ + --hash=sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e \ + --hash=sha256:e1cfd51e97e13ff3bd047c140764d277fc9b95b7cb5da59e46a47d167adab310 \ + --hash=sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165 \ + --hash=sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5 \ + --hash=sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799 \ + --hash=sha256:eb72919d93e3a16fc451d3aa3d4b1698423daca1b382d3d959c9ac51297c12a8 \ + --hash=sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7 \ + --hash=sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379 \ + --hash=sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925 \ + --hash=sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72 \ + --hash=sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4 \ + --hash=sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08 \ + --hash=sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4 # via uvicorn websockets==16.0 \ --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ diff --git a/sdk/python/tests/integration/test_mlflow_integration.py b/sdk/python/tests/integration/test_mlflow_integration.py new file mode 100644 index 00000000000..1b0d4e26342 --- /dev/null +++ b/sdk/python/tests/integration/test_mlflow_integration.py @@ -0,0 +1,1116 @@ +# Copyright 2026 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os +from datetime import datetime, timedelta + +import numpy as np +import pandas as pd +import pytest + +from feast import Entity, FeatureService, FeatureStore, FeatureView, Field, FileSource +from feast.infra.online_stores.sqlite import SqliteOnlineStoreConfig +from feast.repo_config import RepoConfig +from feast.types import Float32, Int64 + +mlflow = pytest.importorskip("mlflow", reason="mlflow is not installed") +from mlflow.tracking import MlflowClient # noqa: E402 + +import feast.mlflow # noqa: E402 +from feast.mlflow_integration import ( # noqa: E402 + FeastMlflowEntityDfError, + FeastMlflowModelResolutionError, + MlflowConfig, +) +from feast.mlflow_integration.config import ( # noqa: E402 + MLFLOW_TAG_TRUNCATION_LIMIT, + resolve_tracking_uri, +) + +# --------------------------------------------------------------------------- +# Fixtures +# --------------------------------------------------------------------------- + + +@pytest.fixture(autouse=True) +def _isolate_mlflow_globals(): + """Reset module-level mlflow caching between tests.""" + feast.mlflow._client = None + feast.mlflow._registered_store = None + yield + + +@pytest.fixture() +def tracking_uri(tmp_path): + uri = str(tmp_path / "mlruns") + mlflow.set_tracking_uri(uri) + mlflow.set_experiment("test_mlflow") + yield uri + mlflow.set_tracking_uri("") + + +@pytest.fixture() +def driver_parquet(tmp_path): + data_dir = tmp_path / "data" + data_dir.mkdir() + + end = datetime.now().replace(microsecond=0, second=0, minute=0) + start = end - timedelta(days=7) + timestamps = pd.date_range(start, end, freq="h") + driver_ids = [1001, 1002, 1003] + + np.random.seed(42) + rows = [ + { + "driver_id": did, + "event_timestamp": ts, + "created": ts, + "conv_rate": float(np.random.uniform(0, 1)), + "acc_rate": float(np.random.uniform(0, 1)), + "avg_daily_trips": int(np.random.randint(1, 100)), + } + for ts in timestamps + for did in driver_ids + ] + df = pd.DataFrame(rows) + path = str(data_dir / "driver_stats.parquet") + df.to_parquet(path) + return tmp_path, path + + +@pytest.fixture() +def feast_objects(driver_parquet): + _, parquet_path = driver_parquet + + driver = Entity(name="driver", join_keys=["driver_id"]) + source = FileSource( + name="driver_stats_source", + path=parquet_path, + timestamp_field="event_timestamp", + created_timestamp_column="created", + ) + fv = FeatureView( + name="driver_hourly_stats", + entities=[driver], + ttl=timedelta(days=7), + schema=[ + Field(name="conv_rate", dtype=Float32), + Field(name="acc_rate", dtype=Float32), + Field(name="avg_daily_trips", dtype=Int64), + ], + online=True, + source=source, + ) + fs = FeatureService(name="driver_activity_v1", features=[fv]) + return driver, source, fv, fs + + +def _make_store( + tmp_path, + tracking_uri, + *, + enabled=True, + auto_log=True, + auto_log_entity_df=True, + entity_df_max_rows=100_000, +): + data_dir = tmp_path / "data" + data_dir.mkdir(exist_ok=True) + + config = RepoConfig( + project="test_mlflow", + provider="local", + registry=str(data_dir / "registry.db"), + online_store=SqliteOnlineStoreConfig(path=str(data_dir / "online.db")), + entity_key_serialization_version=3, + mlflow=MlflowConfig( + enabled=enabled, + tracking_uri=tracking_uri, + auto_log=auto_log, + auto_log_entity_df=auto_log_entity_df, + entity_df_max_rows=entity_df_max_rows, + ), + ) + return FeatureStore(config=config) + + +@pytest.fixture() +def store_enabled(driver_parquet, tracking_uri, feast_objects): + tmp_path, _ = driver_parquet + store = _make_store(tmp_path, tracking_uri) + store.apply(list(feast_objects)) + store.materialize( + start_date=datetime.now() - timedelta(days=7), + end_date=datetime.now(), + ) + return store + + +@pytest.fixture() +def entity_df(): + np.random.seed(42) + n = 50 + return pd.DataFrame( + { + "driver_id": np.random.choice([1001, 1002, 1003], n), + "event_timestamp": [ + datetime.now() - timedelta(hours=i % 48) for i in range(n) + ], + "label": np.random.randint(0, 2, n), + } + ) + + +class TestMlflowConfig: + @pytest.mark.integration + def test_defaults(self): + cfg = MlflowConfig() + assert cfg.enabled is False + assert cfg.auto_log is True + assert cfg.auto_log_entity_df is False + assert cfg.entity_df_max_rows == 100_000 + assert cfg.tracking_uri is None + + @pytest.mark.integration + def test_get_tracking_uri_explicit(self): + cfg = MlflowConfig(tracking_uri="http://example.com:5000") + assert cfg.get_tracking_uri() == "http://example.com:5000" + + @pytest.mark.integration + def test_get_tracking_uri_env_fallback(self, monkeypatch): + monkeypatch.setenv("MLFLOW_TRACKING_URI", "http://env-uri:5000") + cfg = MlflowConfig() + assert cfg.get_tracking_uri() == "http://env-uri:5000" + + @pytest.mark.integration + def test_get_tracking_uri_none_when_unset(self, monkeypatch): + monkeypatch.delenv("MLFLOW_TRACKING_URI", raising=False) + cfg = MlflowConfig() + assert cfg.get_tracking_uri() is None + + @pytest.mark.integration + def test_resolve_tracking_uri_priority(self, monkeypatch): + monkeypatch.setenv("MLFLOW_TRACKING_URI", "http://env:5000") + assert resolve_tracking_uri("http://explicit:5000") == "http://explicit:5000" + assert resolve_tracking_uri(None) == "http://env:5000" + monkeypatch.delenv("MLFLOW_TRACKING_URI") + assert resolve_tracking_uri(None) is None + + +class TestLogFeatureRetrieval: + @pytest.mark.integration + def test_logs_all_tags_and_metric(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + refs = [ + "driver_hourly_stats:conv_rate", + "driver_hourly_stats:acc_rate", + "transformed:conv_rate_plus_val1", + ] + + with mlflow.start_run(run_name="test_tags") as run: + result = store_enabled.mlflow.log_feature_retrieval( + feature_refs=refs, + entity_count=200, + duration_seconds=0.1234, + retrieval_type="historical", + feature_service_name="driver_activity_v1", + ) + + assert result is True + data = client.get_run(run.info.run_id) + tags = data.data.tags + + assert tags["feast.project"] == "test_mlflow" + assert tags["feast.retrieval_type"] == "historical" + assert tags["feast.feature_service"] == "driver_activity_v1" + assert tags["feast.entity_count"] == "200" + assert tags["feast.feature_count"] == "3" + assert "driver_hourly_stats" in tags["feast.feature_views"] + assert "transformed" in tags["feast.feature_views"] + assert "driver_hourly_stats:conv_rate" in tags["feast.feature_refs"] + assert data.data.metrics["feast.job_submission_sec"] == 0.1234 + + @pytest.mark.integration + def test_noop_without_active_run(self, store_enabled, tracking_uri): + result = store_enabled.mlflow.log_feature_retrieval( + feature_refs=["fv:feat"], + entity_count=1, + duration_seconds=0.01, + ) + assert result is False + + @pytest.mark.integration + def test_feature_views_sorted_and_deduped(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + refs = ["z_view:f1", "a_view:f2", "z_view:f3", "a_view:f4"] + + with mlflow.start_run() as run: + store_enabled.mlflow.log_feature_retrieval( + feature_refs=refs, + entity_count=1, + duration_seconds=0.01, + ) + + tags = client.get_run(run.info.run_id).data.tags + assert tags["feast.feature_views"] == "a_view,z_view" + + @pytest.mark.integration + def test_truncation_for_long_refs(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + refs = [f"fv:feature_{i:04d}" for i in range(500)] + + with mlflow.start_run() as run: + store_enabled.mlflow.log_feature_retrieval( + feature_refs=refs, + entity_count=1, + duration_seconds=0.01, + ) + + tags = client.get_run(run.info.run_id).data.tags + assert len(tags["feast.feature_refs"]) <= MLFLOW_TAG_TRUNCATION_LIMIT + assert tags["feast.feature_refs"].endswith("...") + + @pytest.mark.integration + def test_no_feature_service_tag_when_none(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + + with mlflow.start_run() as run: + store_enabled.mlflow.log_feature_retrieval( + feature_refs=["fv:f1"], + entity_count=1, + duration_seconds=0.01, + feature_service=None, + feature_service_name=None, + ) + + tags = client.get_run(run.info.run_id).data.tags + assert "feast.feature_service" not in tags + + +class TestLogTrainingDataset: + @pytest.mark.integration + def test_logs_dataset_input(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + df = pd.DataFrame({"a": [1, 2], "b": [3, 4]}) + + with mlflow.start_run() as run: + result = store_enabled.mlflow.log_training_dataset( + df, dataset_name="test_ds" + ) + + assert result is True + run_data = client.get_run(run.info.run_id) + assert len(run_data.inputs.dataset_inputs) > 0 + assert run_data.inputs.dataset_inputs[0].dataset.name == "test_ds" + + @pytest.mark.integration + def test_noop_without_active_run(self, store_enabled, tracking_uri): + df = pd.DataFrame({"a": [1]}) + assert store_enabled.mlflow.log_training_dataset(df) is False + + +class TestHistoricalAutoLog: + @pytest.mark.integration + def test_tags_logged_via_feature_service( + self, store_enabled, entity_df, tracking_uri + ): + client = MlflowClient(tracking_uri=tracking_uri) + + with mlflow.start_run(run_name="hist_fs") as run: + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + data = client.get_run(run.info.run_id) + tags = data.data.tags + + assert tags["feast.project"] == "test_mlflow" + assert tags["feast.retrieval_type"] == "historical" + assert tags["feast.feature_service"] == "driver_activity_v1" + assert "driver_hourly_stats" in tags["feast.feature_views"] + assert tags["feast.entity_count"] == str(len(entity_df)) + assert int(tags["feast.feature_count"]) >= 3 + assert data.data.metrics["feast.job_submission_sec"] >= 0 + + @pytest.mark.integration + def test_tags_logged_via_feature_refs(self, store_enabled, entity_df, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + + with mlflow.start_run(run_name="hist_refs") as run: + store_enabled.get_historical_features( + features=[ + "driver_hourly_stats:conv_rate", + "driver_hourly_stats:acc_rate", + ], + entity_df=entity_df, + ).to_df() + + tags = client.get_run(run.info.run_id).data.tags + assert tags["feast.retrieval_type"] == "historical" + assert tags["feast.feature_count"] == "2" + assert "driver_hourly_stats:conv_rate" in tags["feast.feature_refs"] + + @pytest.mark.integration + def test_entity_df_artifact_uploaded(self, store_enabled, entity_df, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + + with mlflow.start_run(run_name="hist_artifact") as run: + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + artifacts = [a.path for a in client.list_artifacts(run.info.run_id)] + assert "entity_df.parquet" in artifacts + + tags = client.get_run(run.info.run_id).data.tags + assert tags["feast.entity_df_rows"] == str(len(entity_df)) + assert "driver_id" in tags["feast.entity_df_columns"] + assert "event_timestamp" in tags["feast.entity_df_columns"] + assert tags["feast.entity_df_type"] == "dataframe" + + @pytest.mark.integration + def test_entity_df_skipped_when_exceeds_max_rows( + self, driver_parquet, tracking_uri, feast_objects + ): + tmp_path, _ = driver_parquet + store = _make_store(tmp_path, tracking_uri, entity_df_max_rows=5) + store.apply(list(feast_objects)) + + client = MlflowClient(tracking_uri=tracking_uri) + entity_df = pd.DataFrame( + { + "driver_id": [1001] * 10, + "event_timestamp": [ + datetime.now() - timedelta(hours=i) for i in range(10) + ], + } + ) + + with mlflow.start_run(run_name="hist_skip") as run: + store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + artifacts = [a.path for a in client.list_artifacts(run.info.run_id)] + assert "entity_df.parquet" not in artifacts + tags = client.get_run(run.info.run_id).data.tags + assert tags["feast.entity_df_rows"] == "10" + + @pytest.mark.integration + def test_no_tags_without_active_run(self, store_enabled, entity_df): + result = store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + assert len(result) == len(entity_df) + + +class TestOnlineAutoLog: + @pytest.mark.integration + def test_tags_logged_for_online_retrieval(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + + with mlflow.start_run(run_name="online") as run: + store_enabled.get_online_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_rows=[{"driver_id": 1001}, {"driver_id": 1002}], + ) + + data = client.get_run(run.info.run_id) + tags = data.data.tags + + assert tags["feast.retrieval_type"] == "online" + assert tags["feast.feature_service"] == "driver_activity_v1" + assert tags["feast.entity_count"] == "2" + assert int(tags["feast.feature_count"]) >= 3 + assert data.data.metrics["feast.job_submission_sec"] >= 0 + + @pytest.mark.integration + def test_entity_count_for_list_input(self, store_enabled, tracking_uri): + client = MlflowClient(tracking_uri=tracking_uri) + + with mlflow.start_run(run_name="online_list") as run: + store_enabled.get_online_features( + features=["driver_hourly_stats:conv_rate"], + entity_rows=[ + {"driver_id": 1001}, + {"driver_id": 1002}, + {"driver_id": 1003}, + ], + ) + + tags = client.get_run(run.info.run_id).data.tags + assert tags["feast.entity_count"] == "3" + + +class TestDisabledIntegration: + @pytest.mark.integration + def test_disabled_does_not_log( + self, driver_parquet, tracking_uri, feast_objects, entity_df + ): + tmp_path, _ = driver_parquet + store = _make_store(tmp_path, tracking_uri, enabled=False) + store.apply(list(feast_objects)) + + client = MlflowClient(tracking_uri=tracking_uri) + with mlflow.start_run(run_name="disabled") as run: + store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + tags = client.get_run(run.info.run_id).data.tags + assert "feast.project" not in tags + assert "feast.feature_service" not in tags + + @pytest.mark.integration + def test_auto_log_false_does_not_log( + self, driver_parquet, tracking_uri, feast_objects, entity_df + ): + tmp_path, _ = driver_parquet + store = _make_store(tmp_path, tracking_uri, enabled=True, auto_log=False) + store.apply(list(feast_objects)) + + client = MlflowClient(tracking_uri=tracking_uri) + with mlflow.start_run(run_name="no_auto_log") as run: + store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + tags = client.get_run(run.info.run_id).data.tags + assert "feast.project" not in tags + + @pytest.mark.integration + def test_auto_log_entity_df_false_skips_artifact( + self, driver_parquet, tracking_uri, feast_objects, entity_df + ): + tmp_path, _ = driver_parquet + store = _make_store(tmp_path, tracking_uri, auto_log_entity_df=False) + store.apply(list(feast_objects)) + + client = MlflowClient(tracking_uri=tracking_uri) + with mlflow.start_run(run_name="no_entity_df") as run: + store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + run_data = client.get_run(run.info.run_id).data + artifacts = [a.path for a in client.list_artifacts(run.info.run_id)] + assert "entity_df.parquet" not in artifacts + + assert "feast.entity_df_rows" in run_data.tags + assert run_data.tags["feast.entity_df_type"] == "dataframe" + assert run_data.tags["feast.feature_service"] == "driver_activity_v1" + + +class TestEntityDfBuilder: + @pytest.mark.integration + def test_roundtrip_parquet(self, store_enabled, entity_df, tracking_uri): + with mlflow.start_run(run_name="roundtrip") as run: + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + recovered = store_enabled.mlflow.get_training_entity_df( + run_id=run.info.run_id, + ) + + assert recovered.shape == entity_df.shape + assert set(recovered.columns) == set(entity_df.columns) + assert "event_timestamp" in recovered.columns + + @pytest.mark.integration + def test_max_rows_limits_output(self, store_enabled, entity_df, tracking_uri): + with mlflow.start_run(run_name="max_rows") as run: + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + recovered = store_enabled.mlflow.get_training_entity_df( + run_id=run.info.run_id, + max_rows=5, + ) + assert len(recovered) == 5 + + @pytest.mark.integration + def test_missing_artifact_raises(self, store_enabled, tracking_uri): + with mlflow.start_run(run_name="empty") as run: + mlflow.log_param("dummy", "value") + + with pytest.raises(FeastMlflowEntityDfError, match="No entity data found"): + store_enabled.mlflow.get_training_entity_df( + run_id=run.info.run_id, + ) + + @pytest.mark.integration + def test_nonexistent_run_raises(self, store_enabled, tracking_uri): + with pytest.raises(FeastMlflowEntityDfError, match="not found"): + store_enabled.mlflow.get_training_entity_df( + run_id="0000000000000000deadbeef00000000", + ) + + @pytest.mark.integration + def test_missing_timestamp_column_raises(self, store_enabled, tracking_uri): + df = pd.DataFrame({"driver_id": [1001], "value": [0.5]}) + with mlflow.start_run(run_name="bad_cols") as run: + import tempfile + + with tempfile.TemporaryDirectory() as tmp_dir: + path = os.path.join(tmp_dir, "entity_df.parquet") + df.to_parquet(path, index=False) + mlflow.log_artifact(path) + + with pytest.raises( + FeastMlflowEntityDfError, match="missing required timestamp" + ): + store_enabled.mlflow.get_training_entity_df( + run_id=run.info.run_id, + ) + + @pytest.mark.integration + def test_custom_timestamp_column(self, store_enabled, tracking_uri): + df = pd.DataFrame( + { + "driver_id": [1001], + "ts": [datetime.now()], + } + ) + with mlflow.start_run(run_name="custom_ts") as run: + import tempfile + + with tempfile.TemporaryDirectory() as tmp_dir: + path = os.path.join(tmp_dir, "entity_df.parquet") + df.to_parquet(path, index=False) + mlflow.log_artifact(path) + + recovered = store_enabled.mlflow.get_training_entity_df( + run_id=run.info.run_id, + timestamp_column="ts", + ) + assert len(recovered) == 1 + assert "ts" in recovered.columns + + +class TestModelResolver: + def _train_and_register(self, store, entity_df, tracking_uri, model_name): + """Train inside an mlflow run, log a model, register it.""" + from sklearn.linear_model import LogisticRegression + + with mlflow.start_run(run_name=f"train_{model_name}") as run: + store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + model = LogisticRegression() + model.fit([[0, 0], [1, 1]], [0, 1]) + mlflow.sklearn.log_model(model, "model") + + mlflow.register_model(f"runs:/{run.info.run_id}/model", model_name) + return run.info.run_id + + @pytest.mark.integration + def test_resolve_from_run_tags(self, store_enabled, entity_df, tracking_uri): + self._train_and_register( + store_enabled, entity_df, tracking_uri, "test_resolve_run_tags" + ) + + fs_name = store_enabled.mlflow.resolve_features( + model_uri="models:/test_resolve_run_tags/1", + ) + assert fs_name == "driver_activity_v1" + + @pytest.mark.integration + def test_resolve_from_model_version_tag( + self, store_enabled, entity_df, tracking_uri, feast_objects + ): + self._train_and_register( + store_enabled, entity_df, tracking_uri, "test_resolve_mv_tag" + ) + + _, _, fv, _ = feast_objects + override_fs = FeatureService(name="overridden_service", features=[fv]) + store_enabled.apply([override_fs]) + + client = MlflowClient(tracking_uri=tracking_uri) + client.set_model_version_tag( + "test_resolve_mv_tag", "1", "feast.feature_service", "overridden_service" + ) + + fs_name = store_enabled.mlflow.resolve_features( + model_uri="models:/test_resolve_mv_tag/1", + ) + assert fs_name == "overridden_service" + + @pytest.mark.integration + def test_model_version_tag_takes_priority_over_run_tag( + self, store_enabled, entity_df, tracking_uri, feast_objects + ): + self._train_and_register( + store_enabled, entity_df, tracking_uri, "test_priority" + ) + + _, _, fv, _ = feast_objects + override_fs = FeatureService(name="explicit_override", features=[fv]) + store_enabled.apply([override_fs]) + + client = MlflowClient(tracking_uri=tracking_uri) + client.set_model_version_tag( + "test_priority", "1", "feast.feature_service", "explicit_override" + ) + + fs_name = store_enabled.mlflow.resolve_features( + model_uri="models:/test_priority/1", + ) + assert fs_name == "explicit_override" + + @pytest.mark.integration + def test_validates_feature_service_exists( + self, store_enabled, entity_df, tracking_uri + ): + self._train_and_register( + store_enabled, entity_df, tracking_uri, "test_validate_exists" + ) + + client = MlflowClient(tracking_uri=tracking_uri) + client.set_model_version_tag( + "test_validate_exists", + "1", + "feast.feature_service", + "nonexistent_service", + ) + + with pytest.raises( + FeastMlflowModelResolutionError, match="not found in the Feast registry" + ): + store_enabled.mlflow.resolve_features( + model_uri="models:/test_validate_exists/1", + ) + + @pytest.mark.integration + def test_invalid_uri_raises(self, store_enabled, tracking_uri): + with pytest.raises(FeastMlflowModelResolutionError, match="Invalid model_uri"): + store_enabled.mlflow.resolve_features( + model_uri="not-a-valid-uri", + ) + + @pytest.mark.integration + def test_nonexistent_model_raises(self, store_enabled, tracking_uri): + with pytest.raises(FeastMlflowModelResolutionError, match="Could not resolve"): + store_enabled.mlflow.resolve_features( + model_uri="models:/does_not_exist/1", + ) + + @pytest.mark.integration + def test_no_feast_tag_anywhere_raises(self, store_enabled, tracking_uri): + from sklearn.linear_model import LogisticRegression + + mlflow.set_experiment("test_mlflow") + with mlflow.start_run(run_name="no_feast_tags") as run: + model = LogisticRegression() + model.fit([[0], [1]], [0, 1]) + mlflow.sklearn.log_model(model, "model") + + mlflow.register_model(f"runs:/{run.info.run_id}/model", "test_no_feast_tag") + + with pytest.raises( + FeastMlflowModelResolutionError, + match="Could not determine feature service", + ): + store_enabled.mlflow.resolve_features( + model_uri="models:/test_no_feast_tag/1", + ) + + @pytest.mark.integration + def test_feature_mismatch_with_required_features_artifact( + self, store_enabled, entity_df, tracking_uri + ): + from sklearn.linear_model import LogisticRegression + + with mlflow.start_run(run_name="mismatch") as run: + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + model = LogisticRegression() + model.fit([[0], [1]], [0, 1]) + mlflow.sklearn.log_model(model, "model") + + import tempfile + + with tempfile.TemporaryDirectory() as tmp_dir: + path = os.path.join(tmp_dir, "feast_features.json") + with open(path, "w") as f: + json.dump(["driver_hourly_stats:nonexistent_feature"], f) + mlflow.log_artifact(path) + + mlflow.register_model(f"runs:/{run.info.run_id}/model", "test_mismatch") + + with pytest.raises(FeastMlflowModelResolutionError, match="Feature mismatch"): + store_enabled.mlflow.resolve_features( + model_uri="models:/test_mismatch/1", + ) + + +class TestEndToEnd: + @pytest.mark.integration + def test_full_lifecycle(self, store_enabled, entity_df, tracking_uri): + from sklearn.linear_model import LogisticRegression + + with store_enabled.mlflow.start_run(run_name="e2e_train") as train_run: + training_df = store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + X = training_df[["conv_rate", "acc_rate", "avg_daily_trips"]].fillna(0) + y = entity_df["label"].values[: len(X)] + model = LogisticRegression().fit(X, y) + store_enabled.mlflow.log_model(model, "model") + + store_enabled.mlflow.register_model( + f"runs:/{train_run.info.run_id}/model", "e2e_model" + ) + + fs_name = store_enabled.mlflow.resolve_features( + model_uri="models:/e2e_model/1", + ) + assert fs_name == "driver_activity_v1" + + with store_enabled.mlflow.start_run(run_name="e2e_serve") as serve_run: + store_enabled.get_online_features( + features=store_enabled.get_feature_service(fs_name), + entity_rows=[{"driver_id": 1001}], + ) + + serve_tags = ( + MlflowClient(tracking_uri=tracking_uri) + .get_run(serve_run.info.run_id) + .data.tags + ) + assert serve_tags["feast.retrieval_type"] == "online" + assert serve_tags["feast.feature_service"] == "driver_activity_v1" + + recovered_df = store_enabled.mlflow.get_training_entity_df( + run_id=train_run.info.run_id, + ) + assert recovered_df.shape == entity_df.shape + + with store_enabled.mlflow.start_run(run_name="e2e_reproduce") as repro_run: + store_enabled.get_historical_features( + features=store_enabled.get_feature_service(fs_name), + entity_df=recovered_df, + ).to_df() + + repro_tags = ( + MlflowClient(tracking_uri=tracking_uri) + .get_run(repro_run.info.run_id) + .data.tags + ) + assert repro_tags["feast.feature_service"] == "driver_activity_v1" + assert repro_tags["feast.entity_count"] == str(len(entity_df)) + + +class TestLogApplyTransitionTypes: + """Tests for per-object transition type tags via store.mlflow.""" + + @pytest.mark.integration + def test_transition_tags_created(self, store_enabled, tracking_uri, feast_objects): + driver, source, fv, fs = feast_objects + transition_types = { + fv.name: "CREATE", + fs.name: "CREATE", + driver.name: "CREATE", + } + store_enabled.mlflow.log_apply( + changed_objects=[fv, fs, driver], + transition_types=transition_types, + ) + + client = MlflowClient(tracking_uri=tracking_uri) + exp = client.get_experiment_by_name("test_mlflow-feast-ops") + assert exp is not None + runs = client.search_runs(experiment_ids=[exp.experiment_id]) + assert len(runs) == 1 + + tags = runs[0].data.tags + assert tags["feast.operation"] == "apply" + assert tags["feast.feature_views_created"] == fv.name + assert tags["feast.feature_services_created"] == fs.name + assert tags["feast.entities_created"] == driver.name + assert "feast.feature_views_updated" not in tags + assert "feast.feature_views_deleted" not in tags + + @pytest.mark.integration + def test_transition_tags_mixed(self, store_enabled, tracking_uri, feast_objects): + driver, source, fv, fs = feast_objects + + fv2 = FeatureView( + name="driver_daily_stats", + entities=[driver], + ttl=timedelta(days=1), + schema=[Field(name="conv_rate", dtype=Float32)], + online=True, + source=source, + ) + + transition_types = { + fv.name: "UPDATE", + fv2.name: "CREATE", + fs.name: "DELETE", + } + store_enabled.mlflow.log_apply( + changed_objects=[fv, fv2, fs], + transition_types=transition_types, + ) + + client = MlflowClient(tracking_uri=tracking_uri) + exp = client.get_experiment_by_name("test_mlflow-feast-ops") + runs = client.search_runs(experiment_ids=[exp.experiment_id]) + assert len(runs) == 1 + + tags = runs[0].data.tags + assert fv.name in tags["feast.feature_views_updated"] + assert fv2.name in tags["feast.feature_views_created"] + assert fs.name in tags["feast.feature_services_deleted"] + + @pytest.mark.integration + def test_no_transition_tags_when_none( + self, store_enabled, tracking_uri, feast_objects + ): + _, _, fv, fs = feast_objects + store_enabled.mlflow.log_apply( + changed_objects=[fv, fs], + transition_types=None, + ) + + client = MlflowClient(tracking_uri=tracking_uri) + exp = client.get_experiment_by_name("test_mlflow-feast-ops") + runs = client.search_runs(experiment_ids=[exp.experiment_id]) + assert len(runs) == 1 + + tags = runs[0].data.tags + assert tags["feast.feature_views_changed"] == fv.name + assert "feast.feature_views_created" not in tags + assert "feast.feature_views_updated" not in tags + + @pytest.mark.integration + def test_backward_compatible_changed_tags_still_present( + self, store_enabled, tracking_uri, feast_objects + ): + """Transition tags are additive — the aggregate *_changed tags still appear.""" + driver, _, fv, fs = feast_objects + transition_types = { + fv.name: "CREATE", + fs.name: "UPDATE", + driver.name: "CREATE", + } + store_enabled.mlflow.log_apply( + changed_objects=[fv, fs, driver], + transition_types=transition_types, + ) + + client = MlflowClient(tracking_uri=tracking_uri) + exp = client.get_experiment_by_name("test_mlflow-feast-ops") + runs = client.search_runs(experiment_ids=[exp.experiment_id]) + tags = runs[0].data.tags + + assert tags["feast.feature_views_changed"] == fv.name + assert tags["feast.feature_services_changed"] == fs.name + assert tags["feast.entities_changed"] == driver.name + assert tags["feast.feature_views_created"] == fv.name + assert tags["feast.feature_services_updated"] == fs.name + assert tags["feast.entities_created"] == driver.name + + +class TestFeastMlflowModuleAPI: + """Tests for the ``store.mlflow`` and ``feast.mlflow`` module-level API.""" + + @pytest.mark.integration + def test_store_mlflow_property(self, store_enabled, tracking_uri): + """store.mlflow returns a FeastMlflowClient instance.""" + assert store_enabled.mlflow is not None + assert hasattr(store_enabled.mlflow, "start_run") + assert hasattr(store_enabled.mlflow, "log_model") + assert hasattr(store_enabled.mlflow, "resolve_features") + + @pytest.mark.integration + def test_store_mlflow_none_when_disabled(self, driver_parquet, tracking_uri): + tmp_path, _ = driver_parquet + store = _make_store(tmp_path, tracking_uri, enabled=False) + assert store.mlflow is None + + @pytest.mark.integration + def test_auto_registration_via_feature_store(self, store_enabled, tracking_uri): + """FeatureStore auto-registers with feast.mlflow — no init() needed.""" + client = MlflowClient(tracking_uri=tracking_uri) + + with store_enabled.mlflow.start_run(run_name="auto_reg") as run: + feast.mlflow.log_params({"lr": "0.01"}) + feast.mlflow.log_metrics({"acc": 0.95}) + feast.mlflow.log_metric("loss", 0.05) + assert store_enabled.mlflow.active_run_id == run.info.run_id + + data = client.get_run(run.info.run_id) + assert data.data.params["lr"] == "0.01" + assert data.data.metrics["acc"] == 0.95 + assert data.data.metrics["loss"] == 0.05 + assert data.data.tags.get("feast.project") == "test_mlflow" + + @pytest.mark.integration + def test_explicit_init_overrides_auto_registration( + self, store_enabled, tracking_uri + ): + feast.mlflow.init(store_enabled) + with store_enabled.mlflow.start_run(run_name="explicit_init") as run: + feast.mlflow.log_metric("x", 1.0) + + client = MlflowClient(tracking_uri=tracking_uri) + data = client.get_run(run.info.run_id) + assert data.data.tags.get("feast.project") == "test_mlflow" + + @pytest.mark.integration + def test_getattr_delegates_all_methods(self, store_enabled, tracking_uri): + """All FeastMlflowClient public methods are accessible via store.mlflow.""" + for method_name in [ + "start_run", + "log_model", + "register_model", + "load_model", + "resolve_features", + "get_training_entity_df", + "log_feature_retrieval", + "log_training_dataset", + "log_apply", + "log_materialize", + ]: + attr = getattr(store_enabled.mlflow, method_name) + assert callable(attr), f"{method_name} should be callable" + + @pytest.mark.integration + def test_active_run_id_property(self, store_enabled): + assert store_enabled.mlflow.active_run_id is None + with store_enabled.mlflow.start_run(run_name="prop_test"): + assert store_enabled.mlflow.active_run_id is not None + + @pytest.mark.integration + def test_mlflow_escape_hatch(self, store_enabled): + raw = store_enabled.mlflow.mlflow + assert hasattr(raw, "start_run") + + @pytest.mark.integration + def test_unknown_attr_raises(self, store_enabled): + with pytest.raises(AttributeError): + feast.mlflow.nonexistent_method + + @pytest.mark.integration + def test_log_model_and_register(self, store_enabled, entity_df, tracking_uri): + from sklearn.linear_model import LogisticRegression + + with store_enabled.mlflow.start_run(run_name="mod_train"): + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + model = LogisticRegression().fit([[0, 0], [1, 1]], [0, 1]) + store_enabled.mlflow.log_model(model, "model") + train_run_id = store_enabled.mlflow.active_run_id + + mv = store_enabled.mlflow.register_model( + f"runs:/{train_run_id}/model", "mod_test_model" + ) + assert mv.version is not None + + client = MlflowClient(tracking_uri=tracking_uri) + mv_info = client.get_model_version("mod_test_model", mv.version) + assert mv_info.tags.get("feast.feature_service") == "driver_activity_v1" + + @pytest.mark.integration + def test_load_model_tags_prediction_run( + self, store_enabled, entity_df, tracking_uri + ): + from sklearn.linear_model import LogisticRegression + + with store_enabled.mlflow.start_run(run_name="mod_train_load"): + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + model = LogisticRegression().fit([[0, 0], [1, 1]], [0, 1]) + store_enabled.mlflow.log_model(model, "model") + train_run_id = store_enabled.mlflow.active_run_id + + store_enabled.mlflow.register_model( + f"runs:/{train_run_id}/model", "mod_load_test" + ) + + with store_enabled.mlflow.start_run(run_name="mod_predict") as pred_run: + store_enabled.mlflow.load_model("models:/mod_load_test/1") + + client = MlflowClient(tracking_uri=tracking_uri) + tags = client.get_run(pred_run.info.run_id).data.tags + assert tags.get("feast.training_run_id") == train_run_id + assert tags.get("feast.model_name") == "mod_load_test" + + @pytest.mark.integration + def test_resolve_features_and_get_training_entity_df( + self, store_enabled, entity_df, tracking_uri + ): + from sklearn.linear_model import LogisticRegression + + with store_enabled.mlflow.start_run(run_name="mod_resolve"): + store_enabled.get_historical_features( + features=store_enabled.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + model = LogisticRegression().fit([[0, 0], [1, 1]], [0, 1]) + store_enabled.mlflow.log_model(model, "model") + train_run_id = store_enabled.mlflow.active_run_id + + store_enabled.mlflow.register_model( + f"runs:/{train_run_id}/model", "mod_resolve_model" + ) + + fs_name = store_enabled.mlflow.resolve_features("models:/mod_resolve_model/1") + assert fs_name == "driver_activity_v1" + + recovered = store_enabled.mlflow.get_training_entity_df(train_run_id) + assert recovered.shape == entity_df.shape + + @pytest.mark.integration + def test_no_active_run_returns_none(self, store_enabled): + assert store_enabled.mlflow.active_run_id is None + + @pytest.mark.integration + def test_error_when_mlflow_disabled(self, driver_parquet, tracking_uri): + """feast.mlflow raises RuntimeError when mlflow is not enabled.""" + tmp_path, _ = driver_parquet + feast.mlflow._client = None + feast.mlflow._registered_store = None + + disabled_store = _make_store(tmp_path, tracking_uri, enabled=False) + feast.mlflow.init(disabled_store) + + with pytest.raises(RuntimeError, match="not enabled"): + feast.mlflow.start_run(run_name="should_fail") diff --git a/ui/src/components/RegistryVisualization.tsx b/ui/src/components/RegistryVisualization.tsx index d3479078618..3db1fc28e08 100644 --- a/ui/src/components/RegistryVisualization.tsx +++ b/ui/src/components/RegistryVisualization.tsx @@ -25,6 +25,7 @@ import { } from "@elastic/eui"; import { FEAST_FCO_TYPES } from "../parsers/types"; import { EntityRelation } from "../parsers/parseEntityRelationships"; +import { MlflowRunData } from "../queries/useLoadMlflowRuns"; import { feast } from "../protos"; import { useTheme } from "../contexts/ThemeContext"; import { @@ -79,6 +80,10 @@ const getNodeColor = (type: FEAST_FCO_TYPES) => { return "#ff8000"; // Orange case FEAST_FCO_TYPES.dataSource: return "#cc0000"; // Red + case FEAST_FCO_TYPES.mlflowRun: + return "#0194e2"; // MLflow brand blue + case FEAST_FCO_TYPES.mlflowModel: + return "#7b2d8e"; // Purple default: return "#666666"; // Gray } @@ -94,6 +99,10 @@ const getLightNodeColor = (type: FEAST_FCO_TYPES) => { return "#fff2e6"; // Light orange case FEAST_FCO_TYPES.dataSource: return "#ffe6e6"; // Light red + case FEAST_FCO_TYPES.mlflowRun: + return "#e6f6fd"; // Light MLflow blue + case FEAST_FCO_TYPES.mlflowModel: + return "#f3e6f9"; // Light purple default: return "#f0f0f0"; // Light gray } @@ -109,6 +118,10 @@ const getNodeIcon = (type: FEAST_FCO_TYPES) => { return "▲"; // Triangle for entity case FEAST_FCO_TYPES.dataSource: return "◆"; // Diamond for data source + case FEAST_FCO_TYPES.mlflowRun: + return "⬡"; // Hexagon for MLflow run + case FEAST_FCO_TYPES.mlflowModel: + return "⬢"; // Filled hexagon for registered model default: return "●"; // Default circle } @@ -125,6 +138,14 @@ const CustomNode = ({ data }: { data: NodeData }) => { const hasVersion = data.versionNumber != null && data.versionNumber > 1; const handleClick = () => { + if ( + (data.type === FEAST_FCO_TYPES.mlflowRun || + data.type === FEAST_FCO_TYPES.mlflowModel) && + data.metadata?.mlflow_url + ) { + window.open(data.metadata.mlflow_url, "_blank", "noopener,noreferrer"); + return; + } let path; switch (data.type) { case FEAST_FCO_TYPES.dataSource: @@ -183,7 +204,10 @@ const CustomNode = ({ data }: { data: NodeData }) => { zIndex: 5, }} > - View Details + {data.type === FEAST_FCO_TYPES.mlflowRun || + data.type === FEAST_FCO_TYPES.mlflowModel + ? "Open in MLflow ↗" + : "View Details"}
)} @@ -398,6 +422,8 @@ const getLayoutedElements = ( [FEAST_FCO_TYPES.entity]: [], [FEAST_FCO_TYPES.featureView]: [], [FEAST_FCO_TYPES.featureService]: [], + [FEAST_FCO_TYPES.mlflowRun]: [], + [FEAST_FCO_TYPES.mlflowModel]: [], }; isolatedNodes.forEach((node) => { @@ -454,6 +480,8 @@ const Legend = () => { { type: FEAST_FCO_TYPES.featureView, label: "Feature View" }, { type: FEAST_FCO_TYPES.entity, label: "Entity" }, { type: FEAST_FCO_TYPES.dataSource, label: "Data Source" }, + { type: FEAST_FCO_TYPES.mlflowRun, label: "MLflow Run" }, + { type: FEAST_FCO_TYPES.mlflowModel, label: "Registered Model" }, ]; const isDarkMode = colorMode === "dark"; @@ -535,6 +563,7 @@ const registryToFlow = ( relationships: EntityRelation[], permissions?: any[], versionHistory?: feast.core.IFeatureViewVersionRecord[], + mlflowRuns?: MlflowRunData[], ) => { const nodes: Node[] = []; const edges: Edge[] = []; @@ -743,6 +772,101 @@ const registryToFlow = ( }); }); + if (mlflowRuns && mlflowRuns.length > 0) { + mlflowRuns.forEach((run) => { + const runLabel = run.run_name || run.run_id.substring(0, 8); + nodes.push({ + id: `mlflow-${run.run_id}`, + type: "custom", + data: { + label: runLabel, + type: FEAST_FCO_TYPES.mlflowRun, + metadata: { + mlflow_url: run.mlflow_url, + retrieval_type: run.retrieval_type, + status: run.status, + run_id: run.run_id, + }, + }, + position: { x: 0, y: 0 }, + }); + + if (run.feature_service) { + const fsNodeId = `fs-${run.feature_service}`; + const fsNodeExists = nodes.some((n) => n.id === fsNodeId); + if (fsNodeExists) { + edges.push({ + id: `edge-mlflow-${run.run_id}`, + source: fsNodeId, + sourceHandle: "source", + target: `mlflow-${run.run_id}`, + targetHandle: "target", + animated: true, + style: { + strokeWidth: 3, + stroke: "#0194e2", + strokeDasharray: "10 5", + animation: "dataflow 2s linear infinite", + }, + type: "smoothstep", + markerEnd: { + type: MarkerType.ArrowClosed, + width: 20, + height: 20, + color: "#0194e2", + }, + }); + } + } + + if (run.registered_models && run.registered_models.length > 0) { + run.registered_models.forEach((model) => { + const modelNodeId = `model-${model.model_name}-v${model.version}`; + const modelExists = nodes.some((n) => n.id === modelNodeId); + if (!modelExists) { + nodes.push({ + id: modelNodeId, + type: "custom", + data: { + label: `${model.model_name} v${model.version}`, + type: FEAST_FCO_TYPES.mlflowModel, + metadata: { + mlflow_url: model.mlflow_url, + model_name: model.model_name, + version: model.version, + stage: model.stage, + }, + }, + position: { x: 0, y: 0 }, + }); + } + + edges.push({ + id: `edge-model-${run.run_id}-${model.model_name}-v${model.version}`, + source: `mlflow-${run.run_id}`, + sourceHandle: "source", + target: modelNodeId, + targetHandle: "target", + animated: true, + style: { + strokeWidth: 3, + stroke: "#7b2d8e", + strokeDasharray: "10 5", + animation: "dataflow 2s linear infinite", + }, + type: "smoothstep", + markerEnd: { + type: MarkerType.ArrowClosed, + width: 20, + height: 20, + color: "#7b2d8e", + }, + }); + }); + } + }); + } + return { nodes, edges }; }; @@ -756,6 +880,10 @@ const getNodePrefix = (type: FEAST_FCO_TYPES) => { return "entity"; case FEAST_FCO_TYPES.dataSource: return "ds"; + case FEAST_FCO_TYPES.mlflowRun: + return "mlflow"; + case FEAST_FCO_TYPES.mlflowModel: + return "model"; default: return "unknown"; } @@ -766,7 +894,8 @@ interface RegistryVisualizationProps { relationships: EntityRelation[]; indirectRelationships: EntityRelation[]; filterNode?: { type: FEAST_FCO_TYPES; name: string }; - permissions?: any[]; // Add permissions field + permissions?: any[]; + mlflowRuns?: MlflowRunData[]; } const RegistryVisualization: React.FC = ({ @@ -775,6 +904,7 @@ const RegistryVisualization: React.FC = ({ indirectRelationships, filterNode, permissions, + mlflowRuns, }) => { const [nodes, setNodes, onNodesChange] = useNodesState([]); const [edges, setEdges, onEdgesChange] = useEdgesState([]); @@ -851,6 +981,7 @@ const RegistryVisualization: React.FC = ({ validRelationships, permissions, versionRecords as feast.core.IFeatureViewVersionRecord[] | undefined, + mlflowRuns, ); const { nodes: layoutedNodes, edges: layoutedEdges } = @@ -873,6 +1004,7 @@ const RegistryVisualization: React.FC = ({ showIsolatedNodes, filterNode, permissions, + mlflowRuns, setNodes, setEdges, ]); diff --git a/ui/src/components/RegistryVisualizationTab.tsx b/ui/src/components/RegistryVisualizationTab.tsx index ebc77604322..29d66b064d7 100644 --- a/ui/src/components/RegistryVisualizationTab.tsx +++ b/ui/src/components/RegistryVisualizationTab.tsx @@ -10,6 +10,7 @@ import { EuiFlexItem, } from "@elastic/eui"; import useLoadRegistry from "../queries/useLoadRegistry"; +import useLoadMlflowRuns from "../queries/useLoadMlflowRuns"; import RegistryPathContext from "../contexts/RegistryPathContext"; import RegistryVisualization from "./RegistryVisualization"; import { FEAST_FCO_TYPES } from "../parsers/types"; @@ -22,6 +23,7 @@ const RegistryVisualizationTab = () => { registryUrl, projectName, ); + const { data: mlflowData } = useLoadMlflowRuns(); const [selectedObjectType, setSelectedObjectType] = useState(""); const [selectedObjectName, setSelectedObjectName] = useState(""); const [selectedPermissionAction, setSelectedPermissionAction] = useState(""); @@ -92,6 +94,9 @@ const RegistryVisualizationTab = () => { { value: "entity", text: "Entity" }, { value: "featureView", text: "Feature View" }, { value: "featureService", text: "Feature Service" }, + ...(mlflowData?.runs?.length + ? [{ value: "mlflowRun", text: "MLflow Run" }] + : []), ]} value={selectedObjectType} onChange={(e) => { @@ -162,6 +167,7 @@ const RegistryVisualizationTab = () => { } : undefined } + mlflowRuns={mlflowData?.runs?.length ? mlflowData.runs : undefined} /> )} diff --git a/ui/src/hooks/useFCOExploreSuggestions.ts b/ui/src/hooks/useFCOExploreSuggestions.ts index 43a0e1bea3f..13cd2c58fa4 100644 --- a/ui/src/hooks/useFCOExploreSuggestions.ts +++ b/ui/src/hooks/useFCOExploreSuggestions.ts @@ -22,6 +22,8 @@ const FCO_TO_URL_NAME_MAP: Record = { entity: "/entity", featureView: "/feature-view", featureService: "/feature-service", + mlflowRun: "/mlflow-run", + mlflowModel: "/mlflow-model", }; const createSearchLink = ( diff --git a/ui/src/pages/feature-views/FeatureViewUsagePanel.tsx b/ui/src/pages/feature-views/FeatureViewUsagePanel.tsx new file mode 100644 index 00000000000..71eaebedd02 --- /dev/null +++ b/ui/src/pages/feature-views/FeatureViewUsagePanel.tsx @@ -0,0 +1,130 @@ +import React from "react"; +import { + EuiBadge, + EuiBasicTable, + EuiFlexGroup, + EuiFlexItem, + EuiHorizontalRule, + EuiLoadingSpinner, + EuiPanel, + EuiText, + EuiTitle, + EuiToolTip, +} from "@elastic/eui"; +import useLoadFeatureUsage, { + FeatureUsageEntry, +} from "../../queries/useLoadFeatureUsage"; + +interface FeatureViewUsagePanelProps { + featureViewName: string; +} + +const formatTimestamp = (ts: number | null): string => { + if (ts == null) return "Never"; + const date = new Date(ts); + return date.toLocaleString(); +}; + +const formatRelativeTime = (ts: number | null): string => { + if (ts == null) return ""; + const now = Date.now(); + const diffMs = now - ts; + const diffMin = Math.floor(diffMs / 60000); + if (diffMin < 1) return "just now"; + if (diffMin < 60) return `${diffMin}m ago`; + const diffHr = Math.floor(diffMin / 60); + if (diffHr < 24) return `${diffHr}h ago`; + const diffDays = Math.floor(diffHr / 24); + return `${diffDays}d ago`; +}; + +const FeatureViewUsagePanel = ({ + featureViewName, +}: FeatureViewUsagePanelProps) => { + const { data, isLoading, isError } = useLoadFeatureUsage(); + + if (isLoading) { + return ( + + +

MLflow Usage

+
+ + + + + + +
+ ); + } + + if (isError || !data || !data.mlflow_enabled) { + return null; + } + + const usage: FeatureUsageEntry | undefined = + data.feature_usage?.[featureViewName]; + + if (!usage || usage.run_count === 0) { + return ( + + +

MLflow Usage

+
+ + + No MLflow training runs have used this feature view. + +
+ ); + } + + const modelItems = usage.models.map((name) => ({ name })); + + const modelColumns = [ + { + name: "Registered Model", + field: "name", + render: (name: string) => {name}, + }, + ]; + + return ( + + +

MLflow Usage

+
+ + + + + Training runs: {usage.run_count} + + + + + + Last used: {formatRelativeTime(usage.last_used)} + + + + + {modelItems.length > 0 && ( + <> + + + Registered models using this feature view: + + + + )} +
+ ); +}; + +export default FeatureViewUsagePanel; diff --git a/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx b/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx index e766e4fd0ab..e58e690c04e 100644 --- a/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx +++ b/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx @@ -8,6 +8,7 @@ import { EuiStat, EuiText, EuiTitle, + EuiToolTip, } from "@elastic/eui"; import React from "react"; @@ -19,9 +20,11 @@ import { encodeSearchQueryString } from "../../hooks/encodeSearchQueryString"; import { EntityRelation } from "../../parsers/parseEntityRelationships"; import { FEAST_FCO_TYPES } from "../../parsers/types"; import useLoadRelationshipData from "../../queries/useLoadRelationshipsData"; +import useLoadFeatureUsage from "../../queries/useLoadFeatureUsage"; import { getEntityPermissions } from "../../utils/permissionUtils"; import BatchSourcePropertiesView from "../data-sources/BatchSourcePropertiesView"; import ConsumingFeatureServicesList from "./ConsumingFeatureServicesList"; +import FeatureViewUsagePanel from "./FeatureViewUsagePanel"; import { feast } from "../../protos"; import { toDate } from "../../utils/timestamp"; @@ -51,6 +54,7 @@ const RegularFeatureViewOverviewTab = ({ const fvName = featureViewName === undefined ? "" : featureViewName; const relationshipQuery = useLoadRelationshipData(); + const { data: usageData } = useLoadFeatureUsage(); const fsNames = relationshipQuery.data ? relationshipQuery.data.filter(whereFSconsumesThisFv(fvName)).map((fs) => { @@ -59,12 +63,43 @@ const RegularFeatureViewOverviewTab = ({ : []; const numOfFs = fsNames.length; + const fvUsage = usageData?.feature_usage?.[fvName]; + const runCount = fvUsage?.run_count ?? 0; + const lastUsed = fvUsage?.last_used ?? null; + const lastUsedLabel = + lastUsed != null ? new Date(lastUsed).toLocaleDateString() : "N/A"; + return ( + {usageData?.mlflow_enabled && ( + <> + + + + + + + + + + )} @@ -128,6 +163,10 @@ const RegularFeatureViewOverviewTab = ({ )} + {usageData?.mlflow_enabled && ( + + )} +

Tags

diff --git a/ui/src/pages/features/FeatureListPage.tsx b/ui/src/pages/features/FeatureListPage.tsx index 3edc6df8a40..05d946d9fe5 100644 --- a/ui/src/pages/features/FeatureListPage.tsx +++ b/ui/src/pages/features/FeatureListPage.tsx @@ -15,10 +15,14 @@ import { EuiFlexGroup, EuiFlexItem, EuiFormRow, + EuiBadge, } from "@elastic/eui"; import EuiCustomLink from "../../components/EuiCustomLink"; import ExportButton from "../../components/ExportButton"; import { useParams } from "react-router-dom"; +import useLoadFeatureModels, { + FeatureModelInfo, +} from "../../queries/useLoadFeatureModels"; import { FeatureIcon } from "../../graphics/FeatureIcon"; import useResourceQuery, { featuresListPath, @@ -36,6 +40,7 @@ interface Feature { type: string; project?: string; permissions?: any[]; + models?: FeatureModelInfo[]; } type FeatureColumn = @@ -60,6 +65,7 @@ const FeatureListPage = () => { restPath: `/permissions?project=${encodeURIComponent(projectName || "")}`, restSelect: (d) => d.permissions, }); + const { data: featureModelsData } = useLoadFeatureModels(); const [searchText, setSearchText] = useState(""); const [selectedPermissionAction, setSelectedPermissionAction] = useState(""); @@ -70,8 +76,10 @@ const FeatureListPage = () => { const [pageSize, setPageSize] = useState(100); const featuresWithPermissions: Feature[] = (features || []).map((feature) => { + const featureRef = `${feature.featureView}:${feature.name}`; return { ...feature, + models: featureModelsData?.feature_models?.[featureRef] || [], permissions: getEntityPermissions( selectedPermissionAction ? filterPermissionsByAction(permissions, selectedPermissionAction) @@ -133,6 +141,47 @@ const FeatureListPage = () => { }, }, { name: "Type", field: "type", sortable: true }, + { + name: "Models", + field: "models", + sortable: false, + render: (models: FeatureModelInfo[]) => { + if (!models || models.length === 0) { + return ( + + -- + + ); + } + if (models.length === 1) { + return ( + + {models[0].model_name} v{models[0].version} + + ); + } + return ( + + {models.map((m) => ( +
+ {m.model_name} v{m.version} +
+ ))} +

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

+ } + > + {models.length} models + + ); + }, + }, { name: "Permissions", field: "permissions", diff --git a/ui/src/parsers/types.ts b/ui/src/parsers/types.ts index 1e515f23f34..9f88660aad2 100644 --- a/ui/src/parsers/types.ts +++ b/ui/src/parsers/types.ts @@ -3,6 +3,8 @@ enum FEAST_FCO_TYPES { entity = "entity", featureView = "featureView", featureService = "featureService", + mlflowRun = "mlflowRun", + mlflowModel = "mlflowModel", } export { FEAST_FCO_TYPES }; diff --git a/ui/src/queries/useLoadFeatureModels.ts b/ui/src/queries/useLoadFeatureModels.ts new file mode 100644 index 00000000000..dc6f97843d0 --- /dev/null +++ b/ui/src/queries/useLoadFeatureModels.ts @@ -0,0 +1,37 @@ +import { useQuery } from "react-query"; + +export interface FeatureModelInfo { + model_name: string; + version: string; + stage: string; + mlflow_url: string; +} + +interface FeatureModelsResponse { + feature_models: Record; + error?: string; +} + +const useLoadFeatureModels = () => { + return useQuery( + "feature-models", + () => { + return fetch("/api/mlflow-feature-models") + .then((res) => { + if (!res.ok) { + return { feature_models: {} }; + } + return res.json(); + }) + .catch(() => { + return { feature_models: {} }; + }); + }, + { + staleTime: 60000, + retry: false, + }, + ); +}; + +export default useLoadFeatureModels; diff --git a/ui/src/queries/useLoadFeatureUsage.ts b/ui/src/queries/useLoadFeatureUsage.ts new file mode 100644 index 00000000000..c797abe88ce --- /dev/null +++ b/ui/src/queries/useLoadFeatureUsage.ts @@ -0,0 +1,35 @@ +import { useQuery } from "react-query"; + +interface FeatureUsageEntry { + run_count: number; + last_used: number | null; + models: string[]; +} + +interface FeatureUsageResponse { + feature_usage: Record; + mlflow_enabled?: boolean; + error?: string; +} + +const fetchFeatureUsage = async (): Promise => { + const response = await fetch("/api/mlflow-feature-usage"); + if (!response.ok) { + throw new Error(`Failed to fetch feature usage: ${response.statusText}`); + } + return response.json(); +}; + +const useLoadFeatureUsage = () => { + return useQuery( + "mlflowFeatureUsage", + fetchFeatureUsage, + { + staleTime: 5 * 60 * 1000, + refetchOnWindowFocus: false, + }, + ); +}; + +export default useLoadFeatureUsage; +export type { FeatureUsageEntry, FeatureUsageResponse }; diff --git a/ui/src/queries/useLoadMlflowRuns.ts b/ui/src/queries/useLoadMlflowRuns.ts new file mode 100644 index 00000000000..041fd41137d --- /dev/null +++ b/ui/src/queries/useLoadMlflowRuns.ts @@ -0,0 +1,52 @@ +import { useQuery } from "react-query"; + +export interface RegisteredModelInfo { + model_name: string; + version: string; + stage: string; + mlflow_url: string; +} + +export interface MlflowRunData { + run_id: string; + run_name: string; + status: string; + start_time: number; + feature_service: string | null; + feature_views: string[]; + feature_refs: string[]; + retrieval_type: string | null; + entity_count: string | null; + mlflow_url: string; + registered_models: RegisteredModelInfo[]; +} + +interface MlflowRunsResponse { + runs: MlflowRunData[]; + mlflow_uri: string | null; + error?: string; +} + +const useLoadMlflowRuns = () => { + return useQuery( + "mlflow-runs", + () => { + return fetch("/api/mlflow-runs") + .then((res) => { + if (!res.ok) { + return { runs: [], mlflow_uri: null }; + } + return res.json(); + }) + .catch(() => { + return { runs: [], mlflow_uri: null }; + }); + }, + { + staleTime: 30000, + retry: false, + }, + ); +}; + +export default useLoadMlflowRuns; From ac588d70757288bbbcd98ec7c1e42c0993e7981b Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 21 May 2026 14:35:49 +0530 Subject: [PATCH 29/59] fix: Fix shared SQL registry crash - avoid unnecessary UDF deserialization in proto cache building Signed-off-by: ntkathole --- sdk/python/feast/feature_view.py | 13 +- .../feast/infra/registry/base_registry.py | 8 + .../feast/infra/registry/caching_registry.py | 28 ++-- .../infra/registry/proto_registry_utils.py | 44 ++++-- sdk/python/feast/infra/registry/registry.py | 14 +- sdk/python/feast/infra/registry/remote.py | 4 + sdk/python/feast/infra/registry/snowflake.py | 148 ++++++++++++++---- sdk/python/feast/infra/registry/sql.py | 102 ++++++++---- sdk/python/feast/on_demand_feature_view.py | 15 +- sdk/python/feast/registry_server.py | 5 + sdk/python/feast/stream_feature_view.py | 16 +- .../unit/infra/registry/test_sql_registry.py | 117 +++++++++++++- 12 files changed, 421 insertions(+), 93 deletions(-) diff --git a/sdk/python/feast/feature_view.py b/sdk/python/feast/feature_view.py index da11a7958ca..149523eff66 100644 --- a/sdk/python/feast/feature_view.py +++ b/sdk/python/feast/feature_view.py @@ -113,6 +113,7 @@ class FeatureView(BaseFeatureView): materialization_intervals: List[Tuple[datetime, datetime]] mode: Optional[Union["TransformationMode", str]] enable_validation: bool + _raw_feature_transformation_proto: Optional[Message] = None def __init__( self, @@ -481,7 +482,9 @@ def to_proto_spec( ] feature_transformation_proto = None - if hasattr(self, "feature_transformation") and self.feature_transformation: + if getattr(self, "_raw_feature_transformation_proto", None) is not None: + feature_transformation_proto = self._raw_feature_transformation_proto + elif hasattr(self, "feature_transformation") and self.feature_transformation: feature_transformation_proto = transformation_to_proto( self.feature_transformation ) @@ -636,8 +639,14 @@ def _from_proto_internal( source=source_views if source_views else batch_source, # type: ignore[arg-type] sink_source=batch_source if source_views else None, mode=mode, - feature_transformation=transformation, + feature_transformation=transformation + if not skip_udf + else feature_transformation_proto, # type: ignore[arg-type] ) + if skip_udf: + feature_view._raw_feature_transformation_proto = ( + feature_transformation_proto + ) else: mode_from_spec = ( feature_view_proto.spec.mode if feature_view_proto.spec.mode else None diff --git a/sdk/python/feast/infra/registry/base_registry.py b/sdk/python/feast/infra/registry/base_registry.py index da4f291bc44..f0478312079 100644 --- a/sdk/python/feast/infra/registry/base_registry.py +++ b/sdk/python/feast/infra/registry/base_registry.py @@ -368,6 +368,7 @@ def list_stream_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[StreamFeatureView]: """ Retrieve a list of stream feature views from the registry @@ -376,6 +377,7 @@ def list_stream_feature_views( project: Filter stream feature views based on project name allow_cache: Whether to allow returning stream feature views from a cached registry tags: Filter by tags + skip_udf: Skip deserializing UDFs (for metadata-only operations) Returns: List of stream feature views @@ -407,6 +409,7 @@ def list_on_demand_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[OnDemandFeatureView]: """ Retrieve a list of on demand feature views from the registry @@ -415,6 +418,7 @@ def list_on_demand_feature_views( project: Filter on demand feature views based on project name allow_cache: Whether to allow returning on demand feature views from a cached registry tags: Filter by tags + skip_udf: Skip deserializing UDFs (for metadata-only operations) Returns: List of on demand feature views @@ -446,6 +450,7 @@ def list_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[FeatureView]: """ Retrieve a list of feature views from the registry @@ -454,6 +459,7 @@ def list_feature_views( allow_cache: Allow returning feature views from the cached registry project: Filter feature views based on project name tags: Filter by tags + skip_udf: Skip deserializing UDFs (for metadata-only operations) Returns: List of feature views @@ -484,6 +490,7 @@ def list_all_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[BaseFeatureView]: """ Retrieve a list of feature views of all types from the registry @@ -492,6 +499,7 @@ def list_all_feature_views( allow_cache: Allow returning feature views from the cached registry project: Filter feature views based on project name tags: Filter by tags + skip_udf: Skip deserializing UDFs (for metadata-only operations) Returns: List of feature views diff --git a/sdk/python/feast/infra/registry/caching_registry.py b/sdk/python/feast/infra/registry/caching_registry.py index ad6714d9796..2e15272cf05 100644 --- a/sdk/python/feast/infra/registry/caching_registry.py +++ b/sdk/python/feast/infra/registry/caching_registry.py @@ -121,7 +121,7 @@ def get_any_feature_view( @abstractmethod def _list_all_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs: Any ) -> List[BaseFeatureView]: pass @@ -130,13 +130,14 @@ def list_all_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[BaseFeatureView]: if allow_cache: self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_all_feature_views( - self.cached_registry_proto, project, tags + self.cached_registry_proto, project, tags, skip_udf=skip_udf ) - return self._list_all_feature_views(project, tags) + return self._list_all_feature_views(project, tags, skip_udf=skip_udf) @abstractmethod def _get_feature_view(self, name: str, project: str) -> FeatureView: @@ -154,7 +155,7 @@ def get_feature_view( @abstractmethod def _list_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs: Any ) -> List[FeatureView]: pass @@ -163,13 +164,14 @@ def list_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[FeatureView]: if allow_cache: self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_feature_views( - self.cached_registry_proto, project, tags + self.cached_registry_proto, project, tags, skip_udf=skip_udf ) - return self._list_feature_views(project, tags) + return self._list_feature_views(project, tags, skip_udf=skip_udf) @abstractmethod def _get_on_demand_feature_view( @@ -189,7 +191,7 @@ def get_on_demand_feature_view( @abstractmethod def _list_on_demand_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs: Any ) -> List[OnDemandFeatureView]: pass @@ -198,13 +200,14 @@ def list_on_demand_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[OnDemandFeatureView]: if allow_cache: self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_on_demand_feature_views( - self.cached_registry_proto, project, tags + self.cached_registry_proto, project, tags, skip_udf=skip_udf ) - return self._list_on_demand_feature_views(project, tags) + return self._list_on_demand_feature_views(project, tags, skip_udf=skip_udf) @abstractmethod def _get_stream_feature_view(self, name: str, project: str) -> StreamFeatureView: @@ -222,7 +225,7 @@ def get_stream_feature_view( @abstractmethod def _list_stream_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs: Any ) -> List[StreamFeatureView]: pass @@ -231,13 +234,14 @@ def list_stream_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[StreamFeatureView]: if allow_cache: self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_stream_feature_views( - self.cached_registry_proto, project, tags + self.cached_registry_proto, project, tags, skip_udf=skip_udf ) - return self._list_stream_feature_views(project, tags) + return self._list_stream_feature_views(project, tags, skip_udf=skip_udf) @abstractmethod def _get_feature_service(self, name: str, project: str) -> FeatureService: diff --git a/sdk/python/feast/infra/registry/proto_registry_utils.py b/sdk/python/feast/infra/registry/proto_registry_utils.py index 82b7f3e8aaa..e315e3b706c 100644 --- a/sdk/python/feast/infra/registry/proto_registry_utils.py +++ b/sdk/python/feast/infra/registry/proto_registry_utils.py @@ -57,15 +57,19 @@ def wrapper( registry_proto: RegistryProto, project: str, tags: Optional[dict[str, str]], + **kwargs, ): nonlocal cache_key, cache_value - key = tuple([id(registry_proto), registry_proto.version_id, project, tags]) + kwargs_key = tuple(sorted(kwargs.items())) if kwargs else () + key = tuple( + [id(registry_proto), registry_proto.version_id, project, tags, kwargs_key] + ) if key == cache_key: return cache_value else: - cache_value = func(registry_proto, project, tags) + cache_value = func(registry_proto, project, tags, **kwargs) cache_key = key return cache_value @@ -279,31 +283,42 @@ def list_feature_services( @registry_proto_cache_with_tags def list_all_feature_views( - registry_proto: RegistryProto, project: str, tags: Optional[dict[str, str]] + registry_proto: RegistryProto, + project: str, + tags: Optional[dict[str, str]], + skip_udf: bool = False, ) -> List[BaseFeatureView]: return ( - list_feature_views(registry_proto, project, tags) - + list_stream_feature_views(registry_proto, project, tags) - + list_on_demand_feature_views(registry_proto, project, tags) + list_feature_views(registry_proto, project, tags, skip_udf=skip_udf) + + list_stream_feature_views(registry_proto, project, tags, skip_udf=skip_udf) + + list_on_demand_feature_views(registry_proto, project, tags, skip_udf=skip_udf) ) @registry_proto_cache_with_tags def list_feature_views( - registry_proto: RegistryProto, project: str, tags: Optional[dict[str, str]] + registry_proto: RegistryProto, + project: str, + tags: Optional[dict[str, str]], + skip_udf: bool = False, ) -> List[FeatureView]: feature_views: List[FeatureView] = [] for feature_view_proto in registry_proto.feature_views: if feature_view_proto.spec.project == project and utils.has_all_tags( feature_view_proto.spec.tags, tags ): - feature_views.append(FeatureView.from_proto(feature_view_proto)) + feature_views.append( + FeatureView.from_proto(feature_view_proto, skip_udf=skip_udf) + ) return feature_views @registry_proto_cache_with_tags def list_stream_feature_views( - registry_proto: RegistryProto, project: str, tags: Optional[dict[str, str]] + registry_proto: RegistryProto, + project: str, + tags: Optional[dict[str, str]], + skip_udf: bool = False, ) -> List[StreamFeatureView]: stream_feature_views = [] for stream_feature_view in registry_proto.stream_feature_views: @@ -311,14 +326,17 @@ def list_stream_feature_views( stream_feature_view.spec.tags, tags ): stream_feature_views.append( - StreamFeatureView.from_proto(stream_feature_view) + StreamFeatureView.from_proto(stream_feature_view, skip_udf=skip_udf) ) return stream_feature_views @registry_proto_cache_with_tags def list_on_demand_feature_views( - registry_proto: RegistryProto, project: str, tags: Optional[dict[str, str]] + registry_proto: RegistryProto, + project: str, + tags: Optional[dict[str, str]], + skip_udf: bool = False, ) -> List[OnDemandFeatureView]: on_demand_feature_views = [] for on_demand_feature_view in registry_proto.on_demand_feature_views: @@ -326,7 +344,9 @@ def list_on_demand_feature_views( on_demand_feature_view.spec.tags, tags ): on_demand_feature_views.append( - OnDemandFeatureView.from_proto(on_demand_feature_view) + OnDemandFeatureView.from_proto( + on_demand_feature_view, skip_udf=skip_udf + ) ) return on_demand_feature_views diff --git a/sdk/python/feast/infra/registry/registry.py b/sdk/python/feast/infra/registry/registry.py index e26595ad4af..c7d638af125 100644 --- a/sdk/python/feast/infra/registry/registry.py +++ b/sdk/python/feast/infra/registry/registry.py @@ -877,12 +877,13 @@ def list_stream_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[StreamFeatureView]: registry_proto = self._get_registry_proto( project=project, allow_cache=allow_cache ) return proto_registry_utils.list_stream_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) def list_on_demand_feature_views( @@ -890,12 +891,13 @@ def list_on_demand_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[OnDemandFeatureView]: registry_proto = self._get_registry_proto( project=project, allow_cache=allow_cache ) return proto_registry_utils.list_on_demand_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) def get_on_demand_feature_view( @@ -978,12 +980,13 @@ def list_all_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[BaseFeatureView]: registry_proto = self._get_registry_proto( project=project, allow_cache=allow_cache ) return proto_registry_utils.list_all_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) def get_any_feature_view( @@ -999,11 +1002,14 @@ def list_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[FeatureView]: registry_proto = self._get_registry_proto( project=project, allow_cache=allow_cache ) - return proto_registry_utils.list_feature_views(registry_proto, project, tags) + return proto_registry_utils.list_feature_views( + registry_proto, project, tags, skip_udf=skip_udf + ) def get_feature_view( self, name: str, project: str, allow_cache: bool = False diff --git a/sdk/python/feast/infra/registry/remote.py b/sdk/python/feast/infra/registry/remote.py index c553a55f754..ac5961cd677 100644 --- a/sdk/python/feast/infra/registry/remote.py +++ b/sdk/python/feast/infra/registry/remote.py @@ -268,6 +268,7 @@ def list_stream_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[StreamFeatureView]: request = RegistryServer_pb2.ListStreamFeatureViewsRequest( project=project, allow_cache=allow_cache, tags=tags @@ -292,6 +293,7 @@ def list_on_demand_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[OnDemandFeatureView]: request = RegistryServer_pb2.ListOnDemandFeatureViewsRequest( project=project, allow_cache=allow_cache, tags=tags @@ -320,6 +322,7 @@ def list_all_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[BaseFeatureView]: request = RegistryServer_pb2.ListAllFeatureViewsRequest( project=project, allow_cache=allow_cache, tags=tags @@ -347,6 +350,7 @@ def list_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[FeatureView]: request = RegistryServer_pb2.ListFeatureViewsRequest( project=project, allow_cache=allow_cache, tags=tags diff --git a/sdk/python/feast/infra/registry/snowflake.py b/sdk/python/feast/infra/registry/snowflake.py index 6382fa1c010..ca98ed3a0c9 100644 --- a/sdk/python/feast/infra/registry/snowflake.py +++ b/sdk/python/feast/infra/registry/snowflake.py @@ -643,25 +643,30 @@ def list_all_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[BaseFeatureView]: if allow_cache: registry_proto = self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_all_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) return ( cast( list[BaseFeatureView], - self.list_feature_views(project, allow_cache, tags), + self.list_feature_views(project, allow_cache, tags, skip_udf=skip_udf), ) + cast( list[BaseFeatureView], - self.list_stream_feature_views(project, allow_cache, tags), + self.list_stream_feature_views( + project, allow_cache, tags, skip_udf=skip_udf + ), ) + cast( list[BaseFeatureView], - self.list_on_demand_feature_views(project, allow_cache, tags), + self.list_on_demand_feature_views( + project, allow_cache, tags, skip_udf=skip_udf + ), ) ) @@ -859,11 +864,12 @@ def list_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[FeatureView]: if allow_cache: registry_proto = self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) return self._list_objects( "FEATURE_VIEWS", @@ -872,6 +878,7 @@ def list_feature_views( FeatureView, "FEATURE_VIEW_PROTO", tags=tags, + skip_udf=skip_udf, ) def list_on_demand_feature_views( @@ -879,11 +886,12 @@ def list_on_demand_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[OnDemandFeatureView]: if allow_cache: registry_proto = self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_on_demand_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) return self._list_objects( "ON_DEMAND_FEATURE_VIEWS", @@ -892,6 +900,7 @@ def list_on_demand_feature_views( OnDemandFeatureView, "ON_DEMAND_FEATURE_VIEW_PROTO", tags=tags, + skip_udf=skip_udf, ) def list_saved_datasets( @@ -919,11 +928,12 @@ def list_stream_feature_views( project: str, allow_cache: bool = False, tags: Optional[dict[str, str]] = None, + skip_udf: bool = False, ) -> List[StreamFeatureView]: if allow_cache: registry_proto = self._refresh_cached_registry_if_necessary() return proto_registry_utils.list_stream_feature_views( - registry_proto, project, tags + registry_proto, project, tags, skip_udf=skip_udf ) return self._list_objects( "STREAM_FEATURE_VIEWS", @@ -931,6 +941,7 @@ def list_stream_feature_views( StreamFeatureViewProto, StreamFeatureView, "STREAM_FEATURE_VIEW_PROTO", + skip_udf=skip_udf, tags=tags, ) @@ -957,7 +968,20 @@ def _list_objects( python_class: Any, proto_field_name: str, tags: Optional[dict[str, str]] = None, + proto_only: bool = False, + skip_udf: bool = False, ): + """ + Args: + proto_only: If True, return raw protobuf objects without calling + from_proto(). Used by proto() to build the RegistryProto cache + efficiently — avoids the from_proto()/to_proto() round-trip and + works uniformly for all object types (entities, data sources, etc.). + skip_udf: If True, call from_proto() but skip deserializing UDFs + (dill.loads). Returns Python objects suitable for filtering and + display without requiring the UDF's source module to be installed. + Only relevant for feature view types. + """ with GetSnowflakeConnection(self.registry_config) as conn: query = f""" SELECT @@ -971,11 +995,17 @@ def _list_objects( if not df.empty: objects = [] for row in df.iterrows(): - obj = python_class.from_proto( - proto_class.FromString(row[1][proto_field_name]) - ) - if has_all_tags(obj.tags, tags): - objects.append(obj) + proto = proto_class.FromString(row[1][proto_field_name]) + if proto_only: + objects.append(proto) + else: + obj = ( + python_class.from_proto(proto, skip_udf=skip_udf) + if skip_udf + else python_class.from_proto(proto) + ) + if has_all_tags(obj.tags, tags): + objects.append(obj) return objects return [] @@ -1134,28 +1164,90 @@ def process_project(project: Project): r.projects.extend([project.to_proto()]) last_updated_timestamps.append(last_updated_timestamp) - for lister, registry_proto_field in [ - (self.list_entities, r.entities), - (self.list_feature_views, r.feature_views), - (self.list_data_sources, r.data_sources), - (self.list_on_demand_feature_views, r.on_demand_feature_views), - (self.list_stream_feature_views, r.stream_feature_views), - (self.list_feature_services, r.feature_services), - (self.list_saved_datasets, r.saved_datasets), - (self.list_validation_references, r.validation_references), - (self.list_permissions, r.permissions), + # proto_only=True: return raw protos without calling from_proto(), + # which would trigger dill.loads() on UDFs and fail for cross-project + # modules. _list_objects hits the DB directly (no cache), avoiding + # infinite recursion since proto() itself builds the cache. + for ( + table, + proto_class, + python_class, + proto_field_name, + registry_proto_field, + ) in [ + ("ENTITIES", EntityProto, Entity, "ENTITY_PROTO", r.entities), + ( + "FEATURE_VIEWS", + FeatureViewProto, + FeatureView, + "FEATURE_VIEW_PROTO", + r.feature_views, + ), + ( + "DATA_SOURCES", + DataSourceProto, + DataSource, + "DATA_SOURCE_PROTO", + r.data_sources, + ), + ( + "ON_DEMAND_FEATURE_VIEWS", + OnDemandFeatureViewProto, + OnDemandFeatureView, + "ON_DEMAND_FEATURE_VIEW_PROTO", + r.on_demand_feature_views, + ), + ( + "STREAM_FEATURE_VIEWS", + StreamFeatureViewProto, + StreamFeatureView, + "STREAM_FEATURE_VIEW_PROTO", + r.stream_feature_views, + ), + ( + "FEATURE_SERVICES", + FeatureServiceProto, + FeatureService, + "FEATURE_SERVICE_PROTO", + r.feature_services, + ), + ( + "SAVED_DATASETS", + SavedDatasetProto, + SavedDataset, + "SAVED_DATASET_PROTO", + r.saved_datasets, + ), + ( + "VALIDATION_REFERENCES", + ValidationReferenceProto, + ValidationReference, + "VALIDATION_REFERENCE_PROTO", + r.validation_references, + ), + ( + "PERMISSIONS", + PermissionProto, + Permission, + "PERMISSION_PROTO", + r.permissions, + ), ]: - # Always bypass cache here: proto() builds the cache, so using - # allow_cache=True would cause infinite recursion via refresh(). - objs: List[Any] = lister(project_name, False) # type: ignore + objs = self._list_objects( + table, + project_name, + proto_class, + python_class, + proto_field_name, + proto_only=True, + ) if objs: - obj_protos = [obj.to_proto() for obj in objs] - for obj_proto in obj_protos: + for obj_proto in objs: if "spec" in obj_proto.DESCRIPTOR.fields_by_name: obj_proto.spec.project = project_name else: obj_proto.project = project_name - registry_proto_field.extend(obj_protos) + registry_proto_field.extend(objs) # This is suuuper jank. Because of https://github.com/feast-dev/feast/issues/2783, # the registry proto only has a single infra field, which we're currently setting as the "last" project. diff --git a/sdk/python/feast/infra/registry/sql.py b/sdk/python/feast/infra/registry/sql.py index ae09c8e52b6..4b02f999a0d 100644 --- a/sdk/python/feast/infra/registry/sql.py +++ b/sdk/python/feast/infra/registry/sql.py @@ -387,7 +387,7 @@ def _get_stream_feature_view(self, name: str, project: str): ) def _list_stream_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[StreamFeatureView]: return self._list_objects( stream_feature_views, @@ -396,6 +396,7 @@ def _list_stream_feature_views( StreamFeatureView, "feature_view_proto", tags=tags, + **kwargs, ) def apply_entity(self, entity: Entity, project: str, commit: bool = True): @@ -457,20 +458,22 @@ def _get_any_feature_view(self, name: str, project: str) -> BaseFeatureView: return fv def _list_all_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[BaseFeatureView]: return ( cast( list[BaseFeatureView], - self._list_feature_views(project=project, tags=tags), + self._list_feature_views(project=project, tags=tags, **kwargs), ) + cast( list[BaseFeatureView], - self._list_stream_feature_views(project=project, tags=tags), + self._list_stream_feature_views(project=project, tags=tags, **kwargs), ) + cast( list[BaseFeatureView], - self._list_on_demand_feature_views(project=project, tags=tags), + self._list_on_demand_feature_views( + project=project, tags=tags, **kwargs + ), ) ) @@ -537,7 +540,7 @@ def _get_validation_reference(self, name: str, project: str) -> ValidationRefere ) def _list_validation_references( - self, project: str, tags: Optional[dict[str, str]] = None + self, project: str, tags: Optional[dict[str, str]] = None, **kwargs ) -> List[ValidationReference]: return self._list_objects( table=validation_references, @@ -546,13 +549,20 @@ def _list_validation_references( python_class=ValidationReference, proto_field_name="validation_reference_proto", tags=tags, + **kwargs, ) def _list_entities( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[Entity]: return self._list_objects( - entities, project, EntityProto, Entity, "entity_proto", tags=tags + entities, + project, + EntityProto, + Entity, + "entity_proto", + tags=tags, + **kwargs, ) def delete_entity(self, name: str, project: str, commit: bool = True): @@ -614,7 +624,7 @@ def _get_data_source(self, name: str, project: str) -> DataSource: ) def _list_data_sources( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[DataSource]: return self._list_objects( data_sources, @@ -623,6 +633,7 @@ def _list_data_sources( DataSource, "data_source_proto", tags=tags, + **kwargs, ) def apply_data_source( @@ -878,7 +889,7 @@ def delete_data_source(self, name: str, project: str, commit: bool = True): raise DataSourceObjectNotFoundException(name, project) def _list_feature_services( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[FeatureService]: return self._list_objects( feature_services, @@ -887,10 +898,11 @@ def _list_feature_services( FeatureService, "feature_service_proto", tags=tags, + **kwargs, ) def _list_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[FeatureView]: return self._list_objects( feature_views, @@ -899,10 +911,11 @@ def _list_feature_views( FeatureView, "feature_view_proto", tags=tags, + **kwargs, ) def _list_saved_datasets( - self, project: str, tags: Optional[dict[str, str]] = None + self, project: str, tags: Optional[dict[str, str]] = None, **kwargs ) -> List[SavedDataset]: return self._list_objects( saved_datasets, @@ -911,10 +924,11 @@ def _list_saved_datasets( SavedDataset, "saved_dataset_proto", tags=tags, + **kwargs, ) def _list_on_demand_feature_views( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[OnDemandFeatureView]: return self._list_objects( on_demand_feature_views, @@ -923,6 +937,7 @@ def _list_on_demand_feature_views( OnDemandFeatureView, "feature_view_proto", tags=tags, + **kwargs, ) def _list_project_metadata(self, project: str) -> List[ProjectMetadata]: @@ -1232,26 +1247,29 @@ def process_project(project: Project): r.projects.extend([project.to_proto()]) last_updated_timestamps.append(last_updated_timestamp) + # proto_only=True: return raw protos without calling from_proto(), + # which would trigger dill.loads() on UDFs and fail for cross-project + # modules. The _list_* helpers hit the DB directly (no cache), avoiding + # infinite recursion since proto() itself builds the cache. for lister, registry_proto_field in [ - (self.list_entities, r.entities), - (self.list_feature_views, r.feature_views), - (self.list_data_sources, r.data_sources), - (self.list_on_demand_feature_views, r.on_demand_feature_views), - (self.list_stream_feature_views, r.stream_feature_views), - (self.list_feature_services, r.feature_services), - (self.list_saved_datasets, r.saved_datasets), - (self.list_validation_references, r.validation_references), - (self.list_permissions, r.permissions), + (self._list_entities, r.entities), + (self._list_feature_views, r.feature_views), + (self._list_data_sources, r.data_sources), + (self._list_on_demand_feature_views, r.on_demand_feature_views), + (self._list_stream_feature_views, r.stream_feature_views), + (self._list_feature_services, r.feature_services), + (self._list_saved_datasets, r.saved_datasets), + (self._list_validation_references, r.validation_references), + (self._list_permissions, r.permissions), ]: - objs: List[Any] = lister(project_name, allow_cache=False) # type: ignore + objs: List[Any] = lister(project_name, tags=None, proto_only=True) # type: ignore if objs: - obj_protos = [obj.to_proto() for obj in objs] - for obj_proto in obj_protos: + for obj_proto in objs: if "spec" in obj_proto.DESCRIPTOR.fields_by_name: obj_proto.spec.project = project_name else: obj_proto.project = project_name - registry_proto_field.extend(obj_protos) + registry_proto_field.extend(objs) # This is suuuper jank. Because of https://github.com/feast-dev/feast/issues/2783, # the registry proto only has a single infra field, which we're currently setting as the "last" project. @@ -1486,18 +1504,37 @@ def _list_objects( python_class: Any, proto_field_name: str, tags: Optional[dict[str, str]] = None, + proto_only: bool = False, + skip_udf: bool = False, ): + """ + Args: + proto_only: If True, return raw protobuf objects without calling + from_proto(). Used by proto() to build the RegistryProto cache + efficiently — avoids the from_proto()/to_proto() round-trip and + works uniformly for all object types (entities, data sources, etc.). + skip_udf: If True, call from_proto() but skip deserializing UDFs + (dill.loads). Returns Python objects suitable for filtering and + display without requiring the UDF's source module to be installed. + Only relevant for feature view types. + """ with self.read_engine.begin() as conn: stmt = select(table).where(table.c.project_id == project) rows = conn.execute(stmt).all() if rows: objects = [] for row in rows: - obj = python_class.from_proto( - proto_class.FromString(row._mapping[proto_field_name]) - ) - if utils.has_all_tags(obj.tags, tags): - objects.append(obj) + proto = proto_class.FromString(row._mapping[proto_field_name]) + if proto_only: + objects.append(proto) + else: + obj = ( + python_class.from_proto(proto, skip_udf=skip_udf) + if skip_udf + else python_class.from_proto(proto) + ) + if utils.has_all_tags(obj.tags, tags): + objects.append(obj) return objects return [] @@ -1568,7 +1605,7 @@ def _get_permission(self, name: str, project: str) -> Permission: ) def _list_permissions( - self, project: str, tags: Optional[dict[str, str]] + self, project: str, tags: Optional[dict[str, str]], **kwargs ) -> List[Permission]: return self._list_objects( permissions, @@ -1577,6 +1614,7 @@ def _list_permissions( Permission, "permission_proto", tags=tags, + **kwargs, ) def apply_permission( diff --git a/sdk/python/feast/on_demand_feature_view.py b/sdk/python/feast/on_demand_feature_view.py index dbd7738f21d..c69005478e0 100644 --- a/sdk/python/feast/on_demand_feature_view.py +++ b/sdk/python/feast/on_demand_feature_view.py @@ -155,6 +155,7 @@ class OnDemandFeatureView(BaseFeatureView): udf: Optional[FunctionType] udf_string: Optional[str] aggregations: List[Aggregation] + _raw_feature_transformation_proto: Optional[Any] = None def __init__( # noqa: C901 self, @@ -609,7 +610,12 @@ def to_proto(self) -> OnDemandFeatureViewProto: request_data_source=self._input_schema_sentinel.to_proto() ) - feature_transformation = transformation_to_proto(self.feature_transformation) + if getattr(self, "_raw_feature_transformation_proto", None) is not None: + feature_transformation = self._raw_feature_transformation_proto + else: + feature_transformation = transformation_to_proto( + self.feature_transformation + ) tags = dict(self.tags) if self.tags else {} if self.track_metrics: @@ -727,6 +733,13 @@ def from_proto( else: on_demand_feature_view_obj.current_version_number = None + if skip_udf and on_demand_feature_view_proto.spec.HasField( + "feature_transformation" + ): + on_demand_feature_view_obj._raw_feature_transformation_proto = ( + on_demand_feature_view_proto.spec.feature_transformation + ) + # Set timestamps if present cls._set_timestamps_from_proto( on_demand_feature_view_proto, on_demand_feature_view_obj diff --git a/sdk/python/feast/registry_server.py b/sdk/python/feast/registry_server.py index 061e9c29c4f..c55cd1cc3b2 100644 --- a/sdk/python/feast/registry_server.py +++ b/sdk/python/feast/registry_server.py @@ -392,6 +392,7 @@ def ListFeatureViews( project=request.project, allow_cache=request.allow_cache, tags=dict(request.tags), + skip_udf=True, ), ), actions=AuthzedAction.DESCRIBE, @@ -416,6 +417,7 @@ def ListAllFeatureViews( project=request.project, allow_cache=request.allow_cache, tags=dict(request.tags), + skip_udf=True, ), ) @@ -588,6 +590,7 @@ def ListStreamFeatureViews( project=request.project, allow_cache=request.allow_cache, tags=dict(request.tags), + skip_udf=True, ), ), actions=AuthzedAction.DESCRIBE, @@ -629,6 +632,7 @@ def ListOnDemandFeatureViews( project=request.project, allow_cache=request.allow_cache, tags=dict(request.tags), + skip_udf=True, ), ), actions=AuthzedAction.DESCRIBE, @@ -1138,6 +1142,7 @@ def ListFeatures(self, request: RegistryServer_pb2.ListFeaturesRequest, context) feature_views = self.proxied_registry.list_all_feature_views( project=request.project, allow_cache=allow_cache, + skip_udf=True, ) permitted_fvs = permitted_resources( resources=cast(list[FeastObject], feature_views), diff --git a/sdk/python/feast/stream_feature_view.py b/sdk/python/feast/stream_feature_view.py index 3d0f98edae3..b461e85d50c 100644 --- a/sdk/python/feast/stream_feature_view.py +++ b/sdk/python/feast/stream_feature_view.py @@ -101,6 +101,8 @@ class StreamFeatureView(FeatureView): timestamp_field: str enable_tiling: bool tiling_hop_size: Optional[timedelta] + _raw_udf_proto: Optional[Any] = None + _raw_feature_transformation_proto: Optional[Any] = None def __init__( self, @@ -277,7 +279,12 @@ def to_proto(self): stream_source_proto = serialize_data_source(self.stream_source) udf_proto, feature_transformation = None, None - if self.udf: + if getattr(self, "_raw_udf_proto", None) is not None: + udf_proto = self._raw_udf_proto + feature_transformation = getattr( + self, "_raw_feature_transformation_proto", None + ) + elif self.udf: udf_proto = UserDefinedFunctionProto( name=self.udf.__name__, body=dill.dumps(self.udf, recurse=True), @@ -403,6 +410,13 @@ def from_proto(cls, sfv_proto, skip_udf: bool = False): else: stream_feature_view.current_version_number = None + if skip_udf and sfv_proto.spec.HasField("user_defined_function"): + stream_feature_view._raw_udf_proto = sfv_proto.spec.user_defined_function + if skip_udf and sfv_proto.spec.HasField("feature_transformation"): + stream_feature_view._raw_feature_transformation_proto = ( + sfv_proto.spec.feature_transformation + ) + stream_feature_view.entities = list(sfv_proto.spec.entities) stream_feature_view.features = [ diff --git a/sdk/python/tests/unit/infra/registry/test_sql_registry.py b/sdk/python/tests/unit/infra/registry/test_sql_registry.py index 5f144adbaf4..1a3ec92a4a6 100644 --- a/sdk/python/tests/unit/infra/registry/test_sql_registry.py +++ b/sdk/python/tests/unit/infra/registry/test_sql_registry.py @@ -12,9 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +import sys import tempfile +import types from datetime import timedelta +import dill import pytest from feast import Field @@ -23,7 +26,11 @@ from feast.errors import ConflictingFeatureViewNames from feast.feature_view import FeatureView from feast.infra.offline_stores.file_source import FileSource -from feast.infra.registry.sql import SqlRegistry, SqlRegistryConfig +from feast.infra.registry.sql import SqlRegistry, SqlRegistryConfig, feature_views +from feast.protos.feast.core.Transformation_pb2 import ( + FeatureTransformationV2, + UserDefinedFunctionV2, +) from feast.stream_feature_view import StreamFeatureView from feast.types import Float32 from feast.value_type import ValueType @@ -44,6 +51,13 @@ def sqlite_registry(): registry.teardown() +@pytest.fixture +def shared_sqlite_db_path(): + """Return a shared SQLite DB path for cross-project tests.""" + fd, path = tempfile.mkstemp() + yield path + + def test_sql_registry(sqlite_registry): """ Test the SQL registry @@ -105,3 +119,104 @@ def test_feature_view_name_conflict_between_stream_and_batch(sqlite_registry): with pytest.raises(ConflictingFeatureViewNames): sqlite_registry.apply_feature_view(stream_view, "test_project") + + +def _serialize_udf_referencing_module(module_name: str) -> bytes: + """Create a dill-serialized UDF that references a fake module. + + The function is defined inside a temporary module so that dill records + a dependency on that module. After serialization, the module is removed + from sys.modules so that deserializing the bytes will raise + ModuleNotFoundError. + """ + mod = types.ModuleType(module_name) + mod.__package__ = module_name + sys.modules[module_name] = mod + exec("def _udf(x): return x", mod.__dict__) + udf_bytes = dill.dumps(mod._udf) + del sys.modules[module_name] + return udf_bytes + + +def test_shared_registry_cross_project_udf_does_not_crash(shared_sqlite_db_path): + """Initializing a SqlRegistry must not crash when another project in the + same database has a feature view whose UDF references a module that is + not installed in the current environment. + + Before the fix, proto() called from_proto() on every feature view across + all projects, triggering dill.loads() which raised ModuleNotFoundError. + """ + db_url = f"sqlite:///{shared_sqlite_db_path}" + config = SqlRegistryConfig( + registry_type="sql", path=db_url, purge_feast_metadata=False + ) + + registry_a = SqlRegistry(config, "project_a", None) + + entity = Entity(name="driver", join_keys=["driver_id"]) + registry_a.apply_entity(entity, "project_a") + + file_source = FileSource( + path="driver_stats.parquet", + timestamp_field="event_timestamp", + created_timestamp_column="created", + ) + fv = FeatureView( + name="driver_features", + entities=[entity], + ttl=timedelta(days=1), + schema=[Field(name="conv_rate", dtype=Float32)], + source=file_source, + ) + registry_a.apply_feature_view(fv, "project_a") + + # Inject a UDF body that references a non-existent module directly into + # the DB, simulating a feature view from another project that uses a + # module not available in this environment. + fake_udf_bytes = _serialize_udf_referencing_module("nonexistent_project_module") + + fv_proto = fv.to_proto() + fv_proto.spec.project = "project_a" + fv_proto.spec.feature_transformation.CopyFrom( + FeatureTransformationV2( + user_defined_function=UserDefinedFunctionV2( + name="fake_udf", + body=fake_udf_bytes, + body_text="def _udf(x): return x", + mode="python", + ) + ) + ) + with registry_a.write_engine.begin() as conn: + from sqlalchemy import update + + stmt = ( + update(feature_views) + .where( + feature_views.c.feature_view_name == "driver_features", + feature_views.c.project_id == "project_a", + ) + .values(feature_view_proto=fv_proto.SerializeToString()) + ) + conn.execute(stmt) + + # Creating a new SqlRegistry for project_b against the same DB should + # NOT crash even though project_a has a UDF referencing an unavailable + # module. proto() should read raw protos without deserializing UDFs. + registry_b = SqlRegistry(config, "project_b", None) + + entity_b = Entity(name="customer", join_keys=["customer_id"]) + registry_b.apply_entity(entity_b, "project_b") + retrieved = registry_b.get_entity("customer", "project_b") + assert retrieved.name == "customer" + + # Verify project_a's data is still accessible in the cached proto + proto = registry_b.proto() + project_names = [p.spec.name for p in proto.projects] + assert "project_a" in project_names + assert "project_b" in project_names + + fv_names = [fv.spec.name for fv in proto.feature_views] + assert "driver_features" in fv_names + + registry_a.teardown() From e756ffe26b0b4fd16e8f621269195f15f14340f4 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Fri, 22 May 2026 16:35:17 +0530 Subject: [PATCH 30/59] fix: PyJWT 2.10+ added validation that rejects empty HMAC keys Signed-off-by: ntkathole --- .../client/intra_comm_authentication_client_manager.py | 2 +- .../feast/permissions/client/kubernetes_auth_client_manager.py | 2 +- .../permissions/client/oidc_authentication_client_manager.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/python/feast/permissions/client/intra_comm_authentication_client_manager.py b/sdk/python/feast/permissions/client/intra_comm_authentication_client_manager.py index 30476316c12..bdc6159a2f8 100644 --- a/sdk/python/feast/permissions/client/intra_comm_authentication_client_manager.py +++ b/sdk/python/feast/permissions/client/intra_comm_authentication_client_manager.py @@ -29,4 +29,4 @@ def get_token(self): f"No Auth client manager implemented for the auth type:{self.auth_config.type}" ) - return jwt.encode(payload, "") + return jwt.encode(payload, "", algorithm="none") diff --git a/sdk/python/feast/permissions/client/kubernetes_auth_client_manager.py b/sdk/python/feast/permissions/client/kubernetes_auth_client_manager.py index 0cee687d08f..ac94b8713ad 100644 --- a/sdk/python/feast/permissions/client/kubernetes_auth_client_manager.py +++ b/sdk/python/feast/permissions/client/kubernetes_auth_client_manager.py @@ -22,7 +22,7 @@ def get_token(self): "sub": f":::{intra_communication_base64}", # Subject claim } - return jwt.encode(payload, "") + return jwt.encode(payload, "", algorithm="none") # Check if user token is provided in config (for external users) if hasattr(self.auth_config, "user_token") and self.auth_config.user_token: diff --git a/sdk/python/feast/permissions/client/oidc_authentication_client_manager.py b/sdk/python/feast/permissions/client/oidc_authentication_client_manager.py index 84a0c0115c9..37e613dafc1 100644 --- a/sdk/python/feast/permissions/client/oidc_authentication_client_manager.py +++ b/sdk/python/feast/permissions/client/oidc_authentication_client_manager.py @@ -24,7 +24,7 @@ def get_token(self): payload = { "preferred_username": f"{intra_communication_base64}", } - return jwt.encode(payload, "") + return jwt.encode(payload, "", algorithm="none") if self.auth_config.token: return self.auth_config.token From 97ed40ca175e29cc1df30fb8d866f4cfc3f3d62c Mon Sep 17 00:00:00 2001 From: samuelkim7 Date: Fri, 22 May 2026 11:18:30 +0200 Subject: [PATCH 31/59] fix(go): skip registry refresh when cache_ttl_seconds <= 0 Signed-off-by: samuelkim7 --- go/internal/feast/registry/registry.go | 4 ++++ go/internal/feast/registry/registry_test.go | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/go/internal/feast/registry/registry.go b/go/internal/feast/registry/registry.go index 51aa031bbda..3ff94807049 100644 --- a/go/internal/feast/registry/registry.go +++ b/go/internal/feast/registry/registry.go @@ -81,6 +81,10 @@ func (r *Registry) InitializeRegistry() error { } func (r *Registry) RefreshRegistryOnInterval() { + if r.cachedRegistryProtoTtl <= 0 { + log.Info().Msg("Registry cache TTL is non-positive; skipping periodic refresh") + return + } ticker := time.NewTicker(r.cachedRegistryProtoTtl) for ; true; <-ticker.C { err := r.refresh() diff --git a/go/internal/feast/registry/registry_test.go b/go/internal/feast/registry/registry_test.go index 6f75dbbbeb2..0f5d1c20ea7 100644 --- a/go/internal/feast/registry/registry_test.go +++ b/go/internal/feast/registry/registry_test.go @@ -10,6 +10,7 @@ import ( "time" "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/stretchr/testify/assert" ) func TestCloudRegistryStores(t *testing.T) { @@ -99,6 +100,24 @@ func TestCloudRegistryStores(t *testing.T) { } } +func TestRefreshRegistryOnIntervalNonPositiveTTL(t *testing.T) { + tests := []struct { + name string + ttl time.Duration + }{ + {name: "zero ttl", ttl: 0}, + {name: "negative ttl", ttl: -1 * time.Second}, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + r := &Registry{cachedRegistryProtoTtl: test.ttl} + assert.NotPanics(t, func() { + r.RefreshRegistryOnInterval() + }) + }) + } +} + // MockS3Client is mock client for testing S3 registry store type MockS3Client struct { GetObjectFn func(ctx context.Context, params *s3.GetObjectInput, optFns ...func(*s3.Options)) (*s3.GetObjectOutput, error) From c9ae2b41cf44fd8d17b9d55191a66c4d210b2292 Mon Sep 17 00:00:00 2001 From: Igor Kvachenok <116455436+tmvfb@users.noreply.github.com> Date: Fri, 22 May 2026 14:14:05 +0200 Subject: [PATCH 32/59] fix(operator): Set appProtocol: grpc on registry gRPC Service (#6367) * fix(operator): set appProtocol: grpc on registry gRPC Service Signed-off-by: Igor Kvachenok * test(operator): add unit tests for getServiceAppProtocol Signed-off-by: Igor Kvachenok * chore: update secrets baseline for shifted line number in services.go Signed-off-by: Igor Kvachenok --------- Signed-off-by: Igor Kvachenok --- .secrets.baseline | 4 +- .../internal/controller/services/services.go | 21 +++- .../controller/services/services_test.go | 112 ++++++++++++++++++ 3 files changed, 131 insertions(+), 6 deletions(-) diff --git a/.secrets.baseline b/.secrets.baseline index 0197e0a1f3d..74979b4f91b 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -1156,7 +1156,7 @@ "filename": "infra/feast-operator/internal/controller/services/services.go", "hashed_secret": "36dc326eb15c7bdd8d91a6b87905bcea20b637d1", "is_verified": false, - "line_number": 179 + "line_number": 180 } ], "infra/feast-operator/internal/controller/services/tls_test.go": [ @@ -1539,5 +1539,5 @@ } ] }, - "generated_at": "2026-05-20T07:55:48Z" + "generated_at": "2026-05-22T11:36:48Z" } diff --git a/infra/feast-operator/internal/controller/services/services.go b/infra/feast-operator/internal/controller/services/services.go index 47226d460aa..4acb8504d4e 100644 --- a/infra/feast-operator/internal/controller/services/services.go +++ b/infra/feast-operator/internal/controller/services/services.go @@ -32,6 +32,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/log" @@ -768,6 +769,17 @@ func (feast *FeastServices) setInitContainer(podSpec *corev1.PodSpec, fsYamlB64 } } +// getServiceAppProtocol returns the appProtocol for a Service port. +// The registry gRPC service uses the gRPC protocol, which requires HTTP/2. +// Setting appProtocol allows service meshes (e.g. Istio) and load balancers +// to correctly classify the traffic and avoid downgrading to HTTP/1.1. +func (feast *FeastServices) getServiceAppProtocol(feastType FeastServiceType, isRestService bool) *string { + if feastType == RegistryFeastType && !isRestService && feast.isRegistryGrpcEnabled() { + return ptr.To("grpc") + } + return nil +} + func (feast *FeastServices) setService(svc *corev1.Service, feastType FeastServiceType, isRestService bool) error { svc.Labels = feast.getFeastTypeLabels(feastType) if feast.isOpenShiftTls(feastType) { @@ -829,10 +841,11 @@ func (feast *FeastServices) setService(svc *corev1.Service, feastType FeastServi Type: corev1.ServiceTypeClusterIP, Ports: []corev1.ServicePort{ { - Name: scheme, - Port: port, - Protocol: corev1.ProtocolTCP, - TargetPort: intstr.FromInt(int(targetPort)), + Name: scheme, + Port: port, + Protocol: corev1.ProtocolTCP, + TargetPort: intstr.FromInt(int(targetPort)), + AppProtocol: feast.getServiceAppProtocol(feastType, isRestService), }, }, } diff --git a/infra/feast-operator/internal/controller/services/services_test.go b/infra/feast-operator/internal/controller/services/services_test.go index 4b7b4343216..7cabc1d596d 100644 --- a/infra/feast-operator/internal/controller/services/services_test.go +++ b/infra/feast-operator/internal/controller/services/services_test.go @@ -632,6 +632,118 @@ var _ = Describe("Registry Service", func() { }) }) +var _ = Describe("Service AppProtocol Configuration", func() { + var ( + featureStore *feastdevv1.FeatureStore + feast *FeastServices + ctx context.Context + ) + + BeforeEach(func() { + ctx = context.Background() + featureStore = &feastdevv1.FeatureStore{ + ObjectMeta: metav1.ObjectMeta{ + Name: "testfeaturestore-approtocol", + Namespace: "default", + }, + Spec: feastdevv1.FeatureStoreSpec{ + FeastProject: "testproject", + Services: &feastdevv1.FeatureStoreServices{ + Registry: &feastdevv1.Registry{ + Local: &feastdevv1.LocalRegistryConfig{ + Server: &feastdevv1.RegistryServerConfigs{ + ServerConfigs: feastdevv1.ServerConfigs{ + ContainerConfigs: feastdevv1.ContainerConfigs{ + DefaultCtrConfigs: feastdevv1.DefaultCtrConfigs{ + Image: ptr.To("test-image"), + }, + }, + }, + GRPC: ptr.To(true), + RestAPI: ptr.To(false), + }, + }, + }, + }, + }, + } + Expect(k8sClient.Create(ctx, featureStore)).To(Succeed()) + applySpecToStatus(featureStore) + feast = &FeastServices{ + Handler: handler.FeastHandler{ + Client: k8sClient, + Context: ctx, + Scheme: k8sClient.Scheme(), + FeatureStore: featureStore, + }, + } + Expect(feast.ApplyDefaults()).To(Succeed()) + applySpecToStatus(featureStore) + }) + + AfterEach(func() { + Expect(k8sClient.Delete(ctx, featureStore)).To(Succeed()) + }) + + It("should return grpc appProtocol for the registry gRPC service", func() { + Expect(feast.isRegistryGrpcEnabled()).To(BeTrue()) + Expect(feast.getServiceAppProtocol(RegistryFeastType, false)).To(Equal(ptr.To("grpc"))) + }) + + It("should return nil appProtocol for the registry REST service", func() { + featureStore.Spec.Services.Registry.Local.Server.RestAPI = ptr.To(true) + Expect(k8sClient.Update(ctx, featureStore)).To(Succeed()) + Expect(feast.ApplyDefaults()).To(Succeed()) + applySpecToStatus(featureStore) + + Expect(feast.getServiceAppProtocol(RegistryFeastType, true)).To(BeNil()) + }) + + It("should return nil appProtocol for the online store service", func() { + Expect(feast.getServiceAppProtocol(OnlineFeastType, false)).To(BeNil()) + }) + + It("should return nil appProtocol for the offline store service", func() { + Expect(feast.getServiceAppProtocol(OfflineFeastType, false)).To(BeNil()) + }) + + It("should return nil appProtocol when registry gRPC is disabled", func() { + featureStore.Spec.Services.Registry.Local.Server.GRPC = ptr.To(false) + featureStore.Spec.Services.Registry.Local.Server.RestAPI = ptr.To(true) + Expect(k8sClient.Update(ctx, featureStore)).To(Succeed()) + Expect(feast.ApplyDefaults()).To(Succeed()) + applySpecToStatus(featureStore) + + Expect(feast.isRegistryGrpcEnabled()).To(BeFalse()) + Expect(feast.getServiceAppProtocol(RegistryFeastType, false)).To(BeNil()) + }) + + It("should set grpc appProtocol on the registry gRPC Service port", func() { + Expect(feast.deployFeastServiceByType(RegistryFeastType)).To(Succeed()) + svc := feast.initFeastSvc(RegistryFeastType) + Expect(svc).NotTo(BeNil()) + Expect(feast.setService(svc, RegistryFeastType, false)).To(Succeed()) + + Expect(svc.Spec.Ports).To(HaveLen(1)) + Expect(svc.Spec.Ports[0].AppProtocol).To(Equal(ptr.To("grpc"))) + }) + + It("should not set appProtocol on the registry REST Service port", func() { + featureStore.Spec.Services.Registry.Local.Server.RestAPI = ptr.To(true) + Expect(k8sClient.Update(ctx, featureStore)).To(Succeed()) + Expect(feast.ApplyDefaults()).To(Succeed()) + applySpecToStatus(featureStore) + + Expect(feast.deployFeastServiceByType(RegistryFeastType)).To(Succeed()) + restSvc := feast.initFeastRestSvc(RegistryFeastType) + Expect(restSvc).NotTo(BeNil()) + Expect(feast.setService(restSvc, RegistryFeastType, true)).To(Succeed()) + + Expect(restSvc.Spec.Ports).To(HaveLen(1)) + Expect(restSvc.Spec.Ports[0].AppProtocol).To(BeNil()) + }) +}) + var _ = Describe("Pod Container Failure Messages", func() { It("should detect init container in CrashLoopBackOff", func() { pod := &corev1.Pod{ From 5f1fa0d98961509a0393bad0d1ef47ce03f8638a Mon Sep 17 00:00:00 2001 From: Rutuja Pathade <73137503+rpathade@users.noreply.github.com> Date: Fri, 22 May 2026 21:15:11 -0700 Subject: [PATCH 33/59] feat: Add enabled/disabled toggle for feature views (#6401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add enabled/disabled toggle for feature views Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat: Add demo noteboooks for users Signed-off-by: ntkathole Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat: Add CLI enable/disable commands and registry metadata support Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * Added features Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix(compute-engine/local): Honor field_mapping on join keys in dedup + join nodes (#6395) * fix: Apply field mapping to join keys in local compute engine nodes When a batch source defines a `field_mapping` that renames an entity join key (e.g. `USERID` -> `user_id`), the source-read node renames the columns on the pulled Arrow table to their mapped names. Downstream `LocalDedupNode` and `LocalJoinNode` then look up the *pre-mapping* names from `column_info.join_keys`, which raises `KeyError: Index(['USERID'])` during materialization (or returns an empty join). Add a `join_keys_columns` property on `ColumnInfo` that mirrors the existing `timestamp_column` / `created_timestamp_column` properties — returning join keys translated through `field_mapping` — and use it from the dedup and join nodes. Fixes #5942. Signed-off-by: 1fanwang <1fannnw@gmail.com> * test: also cover LocalJoinNode field_mapping case Signed-off-by: 1fanwang <1fannnw@gmail.com> --------- Signed-off-by: 1fanwang <1fannnw@gmail.com> Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat: Add Prometheus gauges for FeatureStore installation telemetry (#6354) Signed-off-by: ntkathole Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * docs: Rename Atlas Vector Search to MongoDB Vector Search and fix code examples Signed-off-by: jvincent-mongodb Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat(dynamodb): Use ProjectionExpression when requested_features is set The requested_features parameter was accepted by online_read and online_read_async but never used -- DynamoDB always fetched all features stored in the values map regardless. Add a ProjectionExpression to BatchGetItem requests when requested_features is provided, reducing data transfer, latency, and read costs. Fixes #6058 Signed-off-by: Jonathan Wrede Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix(dynamodb): Fix mypy type for _build_projection_expression return The return dict contains both str and Dict[str, str] values, so the return type must be Dict[str, Any] not Dict[str, str]. Signed-off-by: Jonathan Wrede Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix(bigquery): Enable list inference for parquet loads in offline_write_batch When pushing features with array/list types (e.g. STRING_LIST) to BigQuery via offline_write_batch, the data arrives as empty arrays because BigQuery's parquet loader does not infer list structure by default. Set parquet_options.enable_list_inference = True on the LoadJobConfig so array columns are written correctly. Fixes #5845 Signed-off-by: Jonathan Wrede Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix(trino): Clean up temporary entity tables after retrieval (#6381) * fix(trino): Clean up temporary entity tables after retrieval TrinoOfflineStore.get_historical_features() creates a temporary table for the entity DataFrame but never drops it, leaking tables indefinitely. Apply the same context manager pattern used by BigQuery, Redshift, and Athena offline stores: wrap the query in a generator that issues DROP TABLE IF EXISTS in a finally block. Fixes #6306 Signed-off-by: Jonathan Wrede * fix: sort imports for ruff compliance Signed-off-by: Jonathan Wrede * fix: decouple temp table cleanup from query access Avoid dropping the temporary entity table on to_sql() calls. Previously, every method used a context manager that dropped the table on exit, so calling to_sql() before to_df() would destroy the table and cause subsequent queries to fail. Now the query is stored as a plain string and cleanup is handled by a dedicated _drop_temp_table() method called only after query execution (to_df, to_trino). A __del__ fallback ensures cleanup if execution methods are never called. The _cleaned_up flag makes the drop idempotent. Signed-off-by: Jonathan Wrede --------- Signed-off-by: Jonathan Wrede Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat(bigquery): Support DATE-type event timestamp columns (#6362) * feat(bigquery): Support DATE-type event timestamp columns When the event_timestamp column in BigQuery is a DATE type, the generated SQL wraps comparison values in TIMESTAMP(), causing a type mismatch error. This adds a timestamp_field_type parameter to BigQuerySource that, when set to "DATE", generates DATE() comparisons instead. Closes #2530 (part 2) Signed-off-by: Jonathan Wrede * fix(bigquery): Use protobuf 4.25.x compatible generated code The proto files were regenerated with protobuf 6.31.1 / grpcio-tools 1.80.0, which imports runtime_version -- a module that does not exist in protobuf 4.25.x used by the project. Revert generated code to 4.25.1 format while keeping the new timestamp_field_type field. Signed-off-by: Jonathan Wrede * fix(bigquery): Add Literal type annotation for cast_style Mypy infers str from the ternary expression; annotate with the exact Literal union so the call to get_timestamp_filter_sql passes type checking. Signed-off-by: Jonathan Wrede * fix: Make timestamp_field_type default to None in FeatureViewQueryContext Callers that do not use DATE-typed timestamp fields (e.g. Spark offline store tests) should not be forced to pass timestamp_field_type. Adding a default keeps the new field backward-compatible. Signed-off-by: Jonathan Wrede * fix: Keep timestamp_field_type required in FeatureViewQueryContext A default value on timestamp_field_type breaks the SparkFeatureViewQueryContext subclass because its non-default fields (min_date_partition, max_date_partition) would follow a field with a default. Instead, keep it required and update the Spark test to pass it. Signed-off-by: Jonathan Wrede * fix: regenerate protos matching upstream mypy-protobuf style Reset all non-DataSource generated files to match master. Only DataSource_pb2.py and DataSource_pb2.pyi contain our timestamp_field_type additions (field 28). The .pyi stub is hand-edited to match the existing import style used on master. Signed-off-by: Jonathan Wrede --------- Signed-off-by: Jonathan Wrede Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Fixes for ray source Signed-off-by: ntkathole Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat: Expose registry endpoints on feature server for MCP access Mount the existing REST registry routers under /registry on the feature server so that fastapi_mcp automatically exposes registry introspection (list/get for entities, feature views, data sources, feature services, permissions, projects, saved datasets, lineage, search) as MCP tools. The RegistryServer is created in-process from store.registry — no external registry server is required. Auth is enforced via inject_user_details on every mounted router. Made-with: Cursor Signed-off-by: Chaitany patel Made-with: Cursor Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Revert state propagation to always update in _update_metadata_fields Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Recompile protos for protobuf 4.x compatibility and fix state machine to be opt-in Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat: Add unit tests for state machine and clean up lazy imports in registry Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Address review comments for feature view state management Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Resolve integration test failures in apply loop Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Resolve integration test failures in apply loop Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * Apply suggestion from @ntkathole Co-authored-by: Nikhil Kathole Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Resolve review comments for feature_store Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Resolve review comments for feature_views.py Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * feat: Add FeatureStore methods and update describe for enabled/state Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Add type: ignore comments for mypy on BaseFeatureView attr access Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> * fix: Remove REST API endpoints for enable/disable/set-state (deferred to follow-up PR) Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> --------- Signed-off-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> Signed-off-by: ntkathole Signed-off-by: 1fanwang <1fannnw@gmail.com> Signed-off-by: jvincent-mongodb Signed-off-by: Jonathan Wrede Signed-off-by: Chaitany patel Co-authored-by: RutujaPathade <73137503+RutujaPathade@users.noreply.github.com> Co-authored-by: ntkathole Co-authored-by: Stefan Wang <1fannnw@gmail.com> Co-authored-by: jvincent-mongodb Co-authored-by: Jonathan Wrede Co-authored-by: Jwrede <62910358+Jwrede@users.noreply.github.com> Co-authored-by: Chaitany patel --- protos/feast/core/FeatureView.proto | 28 + protos/feast/core/OnDemandFeatureView.proto | 8 + protos/feast/core/StreamFeatureView.proto | 5 + sdk/python/feast/__init__.py | 3 +- sdk/python/feast/cli/feature_views.py | 134 +- sdk/python/feast/feature_store.py | 119 +- sdk/python/feast/feature_view.py | 62 + sdk/python/feast/infra/registry/registry.py | 24 +- sdk/python/feast/on_demand_feature_view.py | 21 +- .../protos/feast/core/Aggregation_pb2.pyi | 65 +- .../protos/feast/core/DataFormat_pb2.pyi | 354 +-- .../protos/feast/core/DatastoreTable_pb2.pyi | 70 +- .../feast/protos/feast/core/Entity_pb2.pyi | 181 +- .../protos/feast/core/FeatureService_pb2.pyi | 444 ++- .../protos/feast/core/FeatureTable_pb2.pyi | 213 +- .../feast/core/FeatureViewProjection_pb2.pyi | 135 +- .../feast/core/FeatureViewVersion_pb2.pyi | 103 +- .../protos/feast/core/FeatureView_pb2.py | 22 +- .../protos/feast/core/FeatureView_pb2.pyi | 416 +-- .../feast/protos/feast/core/Feature_pb2.pyi | 99 +- .../protos/feast/core/InfraObject_pb2.pyi | 104 +- .../feast/core/OnDemandFeatureView_pb2.py | 28 +- .../feast/core/OnDemandFeatureView_pb2.pyi | 415 ++- .../protos/feast/core/Permission_pb2.pyi | 225 +- .../feast/protos/feast/core/Policy_pb2.pyi | 172 +- .../feast/protos/feast/core/Project_pb2.pyi | 143 +- .../feast/protos/feast/core/Registry_pb2.pyi | 224 +- .../protos/feast/core/SavedDataset_pb2.pyi | 299 +- .../protos/feast/core/SqliteTable_pb2.pyi | 38 +- .../feast/protos/feast/core/Store_pb2.pyi | 223 +- .../feast/core/StreamFeatureView_pb2.py | 8 +- .../feast/core/StreamFeatureView_pb2.pyi | 295 +- .../protos/feast/core/Transformation_pb2.pyi | 105 +- .../feast/core/ValidationProfile_pb2.pyi | 170 +- .../feast/registry/RegistryServer_pb2.pyi | 2812 ++++++++--------- .../protos/feast/serving/Connector_pb2.pyi | 133 +- .../protos/feast/serving/GrpcServer_pb2.pyi | 238 +- .../feast/serving/ServingService_pb2.pyi | 448 ++- .../serving/TransformationService_pb2.pyi | 145 +- .../feast/protos/feast/storage/Redis_pb2.pyi | 60 +- .../protos/feast/types/EntityKey_pb2.pyi | 48 +- .../feast/protos/feast/types/Field_pb2.pyi | 81 +- .../feast/protos/feast/types/Value_pb2.pyi | 856 +++-- sdk/python/feast/stream_feature_view.py | 10 + sdk/python/feast/utils.py | 20 + .../tests/unit/test_feature_view_state.py | 433 +++ 46 files changed, 5177 insertions(+), 5062 deletions(-) create mode 100644 sdk/python/tests/unit/test_feature_view_state.py diff --git a/protos/feast/core/FeatureView.proto b/protos/feast/core/FeatureView.proto index 90207928ed0..e9fab625bb4 100644 --- a/protos/feast/core/FeatureView.proto +++ b/protos/feast/core/FeatureView.proto @@ -28,6 +28,26 @@ import "feast/core/DataSource.proto"; import "feast/core/Feature.proto"; import "feast/core/Transformation.proto"; +// Lifecycle state of a feature view. +enum FeatureViewState { + // Default value for backward compatibility. Treated as AVAILABLE_ONLINE + // for existing feature views that predate the state machine. + STATE_UNSPECIFIED = 0; + + // Feature view has been registered via feast apply but no data is available. + CREATED = 1; + + // Feature engineering / offline data generation is complete. + // The feature view is ready to be materialized. + GENERATED = 2; + + // Materialization is currently in progress. + MATERIALIZING = 3; + + // Materialization completed. Features are available in the online store. + AVAILABLE_ONLINE = 4; +} + message FeatureView { // User-specified specifications of this feature view. FeatureViewSpec spec = 1; @@ -100,6 +120,11 @@ message FeatureViewSpec { // Organizational unit that owns this feature view (e.g. "ads", "search"). string org = 19; + + // Whether this feature view is disabled for serving and materialization. + // When true, the feature view will not serve online features or be materialized. + // Defaults to false (enabled) for backward compatibility. + bool disabled = 20; } message FeatureViewMeta { @@ -117,6 +142,9 @@ message FeatureViewMeta { // Auto-generated UUID identifying this specific version. string version_id = 5; + + // Lifecycle state of this feature view. + FeatureViewState state = 6; } message MaterializationInterval { diff --git a/protos/feast/core/OnDemandFeatureView.proto b/protos/feast/core/OnDemandFeatureView.proto index 87c6a0eabfb..47372af15b2 100644 --- a/protos/feast/core/OnDemandFeatureView.proto +++ b/protos/feast/core/OnDemandFeatureView.proto @@ -80,6 +80,11 @@ message OnDemandFeatureViewSpec { // Organizational unit that owns this feature view (e.g. "ads", "search"). string org = 18; + + // Whether this feature view is disabled for serving. + // When true, the feature view will not serve features. + // Defaults to false (enabled) for backward compatibility. + bool disabled = 19; } message OnDemandFeatureViewMeta { @@ -94,6 +99,9 @@ message OnDemandFeatureViewMeta { // Auto-generated UUID identifying this specific version. string version_id = 4; + + // Lifecycle state of this feature view. + FeatureViewState state = 5; } message OnDemandSource { diff --git a/protos/feast/core/StreamFeatureView.proto b/protos/feast/core/StreamFeatureView.proto index 4aff7cc37e7..8539e74bb6d 100644 --- a/protos/feast/core/StreamFeatureView.proto +++ b/protos/feast/core/StreamFeatureView.proto @@ -108,5 +108,10 @@ message StreamFeatureViewSpec { // Organizational unit that owns this stream feature view (e.g. "ads", "search"). string org = 22; + + // Whether this feature view is disabled for serving and materialization. + // When true, the feature view will not serve online features or be materialized. + // Defaults to false (enabled) for backward compatibility. + bool disabled = 23; } diff --git a/sdk/python/feast/__init__.py b/sdk/python/feast/__init__.py index b61bc2110ab..0af86f30a6d 100644 --- a/sdk/python/feast/__init__.py +++ b/sdk/python/feast/__init__.py @@ -24,7 +24,7 @@ from .feature import Feature from .feature_service import FeatureService from .feature_store import FeatureStore -from .feature_view import FeatureView +from .feature_view import FeatureView, FeatureViewState from .field import Field from .on_demand_feature_view import OnDemandFeatureView from .project import Project @@ -53,6 +53,7 @@ "FeatureService", "FeatureStore", "FeatureView", + "FeatureViewState", "OnDemandFeatureView", "RepoConfig", "StreamFeatureView", diff --git a/sdk/python/feast/cli/feature_views.py b/sdk/python/feast/cli/feature_views.py index 99de5e70be7..44357b0c1c1 100644 --- a/sdk/python/feast/cli/feature_views.py +++ b/sdk/python/feast/cli/feature_views.py @@ -1,10 +1,16 @@ +import sys + import click import yaml from feast import utils from feast.cli.cli_options import tagsOption from feast.errors import FeastObjectNotFoundException -from feast.feature_view import FeatureView +from feast.feature_view import ( + _VALID_STATE_TRANSITIONS, + FeatureView, + FeatureViewState, +) from feast.on_demand_feature_view import OnDemandFeatureView from feast.repo_operations import create_feature_store @@ -32,11 +38,13 @@ def feature_view_describe(ctx: click.Context, name: str): print(e) exit(1) - print( - yaml.dump( - yaml.safe_load(str(feature_view)), default_flow_style=False, sort_keys=False - ) - ) + data = yaml.safe_load(str(feature_view)) + # Always show enabled and state even when they are at default values. + if hasattr(feature_view, "enabled"): + data["enabled"] = feature_view.enabled + if hasattr(feature_view, "state"): + data["state"] = feature_view.state.name + print(yaml.dump(data, default_flow_style=False, sort_keys=False)) @feature_views_cmd.command(name="list") @@ -59,17 +67,129 @@ def feature_view_list(ctx: click.Context, tags: list[str]): elif isinstance(feature_view, OnDemandFeatureView): for backing_fv in feature_view.source_feature_view_projections.values(): entities.update(store.get_feature_view(backing_fv.name).entities) + enabled = getattr(feature_view, "enabled", True) + state = getattr(feature_view, "state", FeatureViewState.STATE_UNSPECIFIED) + state_display = ( + state.name if isinstance(state, FeatureViewState) else str(state) + ) table.append( [ feature_view.name, entities if len(entities) > 0 else "n/a", type(feature_view).__name__, + "Yes" if enabled else "No", + state_display, ] ) from tabulate import tabulate - print(tabulate(table, headers=["NAME", "ENTITIES", "TYPE"], tablefmt="plain")) + print( + tabulate( + table, + headers=["NAME", "ENTITIES", "TYPE", "ENABLED", "STATE"], + tablefmt="plain", + ) + ) + + +@feature_views_cmd.command("enable") +@click.argument("name", type=click.STRING) +@click.pass_context +def feature_view_enable(ctx: click.Context, name: str): + """ + Enable a feature view for serving and materialization. + """ + store = create_feature_store(ctx) + try: + fv = store.registry.get_any_feature_view(name, store.project) + except FeastObjectNotFoundException as e: + print(e) + sys.exit(1) + + if not isinstance(fv, (FeatureView, OnDemandFeatureView)): + print(f"Feature view '{name}' does not support enable/disable.") + return + + if fv.enabled: + print(f"Feature view '{name}' is already enabled.") + return + + fv.enabled = True + store.registry.apply_feature_view(fv, store.project) + print(f"Feature view '{name}' has been enabled.") + + +@feature_views_cmd.command("disable") +@click.argument("name", type=click.STRING) +@click.pass_context +def feature_view_disable(ctx: click.Context, name: str): + """ + Disable a feature view to prevent serving and materialization. + """ + store = create_feature_store(ctx) + try: + fv = store.registry.get_any_feature_view(name, store.project) + except FeastObjectNotFoundException as e: + print(e) + sys.exit(1) + + if not isinstance(fv, (FeatureView, OnDemandFeatureView)): + print(f"Feature view '{name}' does not support enable/disable.") + return + + if not fv.enabled: + print(f"Feature view '{name}' is already disabled.") + return + + fv.enabled = False + store.registry.apply_feature_view(fv, store.project) + print(f"Feature view '{name}' has been disabled.") + + +@feature_views_cmd.command("set-state") +@click.argument("name", type=click.STRING) +@click.argument( + "state", + type=click.Choice( + ["CREATED", "GENERATED", "MATERIALIZING", "AVAILABLE_ONLINE"], + case_sensitive=False, + ), +) +@click.pass_context +def feature_view_set_state(ctx: click.Context, name: str, state: str): + """ + Set the lifecycle state of a feature view. + """ + store = create_feature_store(ctx) + try: + fv = store.registry.get_any_feature_view(name, store.project) + except FeastObjectNotFoundException as e: + print(e) + sys.exit(1) + + if not isinstance(fv, (FeatureView, OnDemandFeatureView)): + print(f"Feature view '{name}' does not support state management.") + return + + new_state = FeatureViewState[state.upper()] + if fv.state == new_state: + print(f"Feature view '{name}' is already in state {new_state.name}.") + return + + if not fv.state.can_transition_to(new_state): + current = fv.state.name + allowed = _VALID_STATE_TRANSITIONS.get(fv.state, set()) + allowed_names = ", ".join(sorted(s.name for s in allowed)) or "none" + print( + f"Invalid state transition: {current} -> {new_state.name}. " + f"Allowed transitions from {current}: {allowed_names}." + ) + return + + fv.state = new_state + store.registry.apply_feature_view(fv, store.project) + print(f"Feature view '{name}' state set to {new_state.name}.") @feature_views_cmd.command("list-versions") diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index 9a0736ff6cd..765e22898b0 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -68,7 +68,12 @@ ) from feast.feast_object import FeastObject from feast.feature_service import FeatureService -from feast.feature_view import DUMMY_ENTITY, DUMMY_ENTITY_NAME, FeatureView +from feast.feature_view import ( + DUMMY_ENTITY, + DUMMY_ENTITY_NAME, + FeatureView, + FeatureViewState, +) from feast.inference import ( update_data_sources_with_inferred_event_timestamp_col, update_feature_views_with_inferred_features_and_entities, @@ -793,6 +798,44 @@ def delete_feature_view(self, name: str): """ return self.registry.delete_feature_view(name, self.project) + def enable_feature_view(self, name: str): + """ + Enable a feature view for serving and materialization. + + Args: + name: Name of feature view. + """ + fv = self.registry.get_any_feature_view(name, self.project) + fv.enabled = True # type: ignore[attr-defined] + self.registry.apply_feature_view(fv, self.project) + + def disable_feature_view(self, name: str): + """ + Disable a feature view to prevent serving and materialization. + + Args: + name: Name of feature view. + """ + fv = self.registry.get_any_feature_view(name, self.project) + fv.enabled = False # type: ignore[attr-defined] + self.registry.apply_feature_view(fv, self.project) + + def set_feature_view_state(self, name: str, state: FeatureViewState): + """ + Set the lifecycle state of a feature view. + + Args: + name: Name of feature view. + state: Target state. + """ + fv = self.registry.get_any_feature_view(name, self.project) + if not fv.state.can_transition_to(state): # type: ignore[attr-defined] + raise ValueError( + f"Invalid state transition: {fv.state.name} -> {state.name}." # type: ignore[attr-defined] + ) + fv.state = state # type: ignore[attr-defined] + self.registry.apply_feature_view(fv, self.project) + def delete_feature_service(self, name: str): """ Deletes a feature service. @@ -961,20 +1004,24 @@ def _get_feature_views_to_materialize( self.registry, self.project, hide_dummy_entity=False ) feature_views_to_materialize.extend( - [fv for fv in regular_feature_views if fv.online] + [fv for fv in regular_feature_views if fv.online and fv.enabled] ) stream_feature_views_to_materialize = self._list_stream_feature_views( hide_dummy_entity=False ) feature_views_to_materialize.extend( - [sfv for sfv in stream_feature_views_to_materialize if sfv.online] + [ + sfv + for sfv in stream_feature_views_to_materialize + if sfv.online and sfv.enabled + ] ) on_demand_feature_views_to_materialize = self.list_on_demand_feature_views() feature_views_to_materialize.extend( [ odfv for odfv in on_demand_feature_views_to_materialize - if odfv.write_to_online_store + if odfv.write_to_online_store and odfv.enabled ] ) else: @@ -1000,6 +1047,11 @@ def _get_feature_views_to_materialize( except FeatureViewNotFoundException: feature_view = self.get_on_demand_feature_view(name) + if hasattr(feature_view, "enabled") and not feature_view.enabled: + raise ValueError( + f"FeatureView {feature_view.name} is disabled. " + f"Enable it before materializing." + ) if hasattr(feature_view, "online") and not feature_view.online: raise ValueError( f"FeatureView {feature_view.name} is not configured to be served online." @@ -2038,6 +2090,25 @@ def tqdm_builder(length): start_date = utils.make_tzaware(start_date) end_date = utils.make_tzaware(end_date) or _utc_now() + # Transition state to MATERIALIZING before starting. + # Only enforce when the state machine is active (not STATE_UNSPECIFIED). + previous_state = getattr(feature_view, "state", None) + if ( + hasattr(feature_view, "state") + and feature_view.state != FeatureViewState.STATE_UNSPECIFIED + ): + if not feature_view.state.can_transition_to( + FeatureViewState.MATERIALIZING + ): + raise ValueError( + f"FeatureView {feature_view.name} cannot transition " + f"from {feature_view.state.name} to MATERIALIZING." + ) + feature_view.state = FeatureViewState.MATERIALIZING + self.registry.apply_feature_view( + feature_view, self.project, commit=True + ) + fv_start = time.monotonic() fv_success = True try: @@ -2052,6 +2123,16 @@ def tqdm_builder(length): ) except Exception: fv_success = False + # Roll back state to previous value on failure. + if ( + hasattr(feature_view, "state") + and previous_state is not None + and previous_state != FeatureViewState.STATE_UNSPECIFIED + ): + feature_view.state = previous_state + self.registry.apply_feature_view( + feature_view, self.project, commit=True + ) raise finally: _tracker = _get_track_materialization() @@ -2061,6 +2142,7 @@ def tqdm_builder(length): fv_success, time.monotonic() - fv_start, ) + if not isinstance(feature_view, OnDemandFeatureView): self.registry.apply_materialization( feature_view, @@ -2176,6 +2258,25 @@ def tqdm_builder(length): start_date = utils.make_tzaware(start_date) end_date = utils.make_tzaware(end_date) + # Transition state to MATERIALIZING before starting. + # Only enforce when the state machine is active (not STATE_UNSPECIFIED). + previous_state = getattr(feature_view, "state", None) + if ( + hasattr(feature_view, "state") + and feature_view.state != FeatureViewState.STATE_UNSPECIFIED + ): + if not feature_view.state.can_transition_to( + FeatureViewState.MATERIALIZING + ): + raise ValueError( + f"FeatureView {feature_view.name} cannot transition " + f"from {feature_view.state.name} to MATERIALIZING." + ) + feature_view.state = FeatureViewState.MATERIALIZING + self.registry.apply_feature_view( + feature_view, self.project, commit=True + ) + fv_start = time.monotonic() fv_success = True try: @@ -2191,6 +2292,16 @@ def tqdm_builder(length): ) except Exception: fv_success = False + # Roll back state to previous value on failure. + if ( + hasattr(feature_view, "state") + and previous_state is not None + and previous_state != FeatureViewState.STATE_UNSPECIFIED + ): + feature_view.state = previous_state + self.registry.apply_feature_view( + feature_view, self.project, commit=True + ) raise finally: _tracker = _get_track_materialization() diff --git a/sdk/python/feast/feature_view.py b/sdk/python/feast/feature_view.py index 149523eff66..a5d3c8d9537 100644 --- a/sdk/python/feast/feature_view.py +++ b/sdk/python/feast/feature_view.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import copy +import enum import warnings from datetime import datetime, timedelta from typing import Dict, List, Optional, Tuple, Type, Union @@ -48,6 +49,49 @@ warnings.simplefilter("once", DeprecationWarning) + +class FeatureViewState(enum.IntEnum): + """Lifecycle state of a feature view. + + Maps to the ``FeatureViewState`` proto enum defined in + ``protos/feast/core/FeatureView.proto``. + """ + + STATE_UNSPECIFIED = 0 + CREATED = 1 + GENERATED = 2 + MATERIALIZING = 3 + AVAILABLE_ONLINE = 4 + + def can_transition_to(self, target: "FeatureViewState") -> bool: + """Return True if transitioning from this state to *target* is allowed.""" + allowed = _VALID_STATE_TRANSITIONS.get(self, set()) + return target in allowed + + @classmethod + def from_proto(cls, proto_val: int) -> "FeatureViewState": + try: + return cls(proto_val) + except ValueError: + return cls.STATE_UNSPECIFIED + + def to_proto(self) -> int: + return self.value + + +# Valid state transitions: maps each state to the set of states it can move to. +_VALID_STATE_TRANSITIONS: dict[FeatureViewState, set[FeatureViewState]] = { + FeatureViewState.STATE_UNSPECIFIED: {FeatureViewState.CREATED}, + FeatureViewState.CREATED: {FeatureViewState.GENERATED}, + FeatureViewState.GENERATED: {FeatureViewState.MATERIALIZING}, + FeatureViewState.MATERIALIZING: { + FeatureViewState.AVAILABLE_ONLINE, + FeatureViewState.GENERATED, + }, + FeatureViewState.AVAILABLE_ONLINE: {FeatureViewState.MATERIALIZING}, +} + + # DUMMY_ENTITY is a placeholder entity used in entityless FeatureViews DUMMY_ENTITY_ID = "__dummy_id" DUMMY_ENTITY_NAME = "__dummy" @@ -113,6 +157,8 @@ class FeatureView(BaseFeatureView): materialization_intervals: List[Tuple[datetime, datetime]] mode: Optional[Union["TransformationMode", str]] enable_validation: bool + enabled: bool + state: FeatureViewState _raw_feature_transformation_proto: Optional[Message] = None def __init__( @@ -133,6 +179,7 @@ def __init__( mode: Optional[Union["TransformationMode", str]] = None, enable_validation: bool = False, version: str = "latest", + enabled: bool = True, ): """ Creates a FeatureView object. @@ -290,6 +337,8 @@ def __init__( self.offline = offline self.mode = mode self.materialization_intervals = [] + self.enabled = enabled + self.state = FeatureViewState.STATE_UNSPECIFIED def __hash__(self): return super().__hash__() @@ -311,6 +360,7 @@ def __copy__(self): description=self.description, owner=self.owner, org=self.org, + enabled=self.enabled, ) # This is deliberately set outside of the FV initialization as we do not have the Entity objects. @@ -318,6 +368,7 @@ def __copy__(self): fv.features = copy.copy(self.features) fv.entity_columns = copy.copy(self.entity_columns) fv.projection = copy.copy(self.projection) + fv.state = self.state return fv def _schema_or_udf_changed(self, other: "BaseFeatureView") -> bool: @@ -508,6 +559,7 @@ def to_proto_spec( mode=mode_to_string(self.mode), enable_validation=self.enable_validation, version=self.version, + disabled=not self.enabled, ) def to_proto_meta(self): @@ -523,6 +575,8 @@ def to_proto_meta(self): meta.materialization_intervals.append(interval_proto) if self.current_version_number is not None: meta.current_version_number = self.current_version_number + if self.state != FeatureViewState.STATE_UNSPECIFIED: + meta.state = self.state.to_proto() return meta def get_ttl_duration(self): @@ -694,6 +748,14 @@ def _from_proto_internal( # Restore enable_validation from proto field. feature_view.enable_validation = feature_view_proto.spec.enable_validation + # Restore enabled from proto's inverted 'disabled' field. + # Proto bool defaults to False, so old protos without this field + # will correctly default to enabled=True. + feature_view.enabled = not feature_view_proto.spec.disabled + + # Restore lifecycle state from meta. + feature_view.state = FeatureViewState.from_proto(feature_view_proto.meta.state) + # Restore version fields. spec_version = feature_view_proto.spec.version feature_view.version = spec_version or "latest" diff --git a/sdk/python/feast/infra/registry/registry.py b/sdk/python/feast/infra/registry/registry.py index c7d638af125..d658d68bc24 100644 --- a/sdk/python/feast/infra/registry/registry.py +++ b/sdk/python/feast/infra/registry/registry.py @@ -39,7 +39,7 @@ ValidationReferenceNotFound, ) from feast.feature_service import FeatureService -from feast.feature_view import FeatureView +from feast.feature_view import FeatureView, FeatureViewState from feast.importer import import_class from feast.infra.infra_object import Infra from feast.infra.registry import proto_registry_utils @@ -580,6 +580,20 @@ def _update_metadata_fields( updated_fv, "enable_validation" ) + # Enabled/disabled state + if hasattr(existing_proto.spec, "disabled") and hasattr(updated_fv, "enabled"): + existing_proto.spec.disabled = not getattr(updated_fv, "enabled") + + # Lifecycle state — skip STATE_UNSPECIFIED so that ``feast apply`` + # does not accidentally reset an AVAILABLE_ONLINE view. + if hasattr(existing_proto.meta, "state") and hasattr(updated_fv, "state"): + state_val = getattr(updated_fv, "state") + if ( + isinstance(state_val, FeatureViewState) + and state_val != FeatureViewState.STATE_UNSPECIFIED + ): + existing_proto.meta.state = state_val.to_proto() + # OnDemandFeatureView configuration if hasattr(existing_proto.spec, "write_to_online_store") and hasattr( updated_fv, "write_to_online_store" @@ -943,6 +957,9 @@ def apply_materialization( (start_date, end_date) ) existing_feature_view.last_updated_timestamp = _utc_now() + # Transition state to AVAILABLE_ONLINE after materialization. + if hasattr(existing_feature_view, "state"): + existing_feature_view.state = FeatureViewState.AVAILABLE_ONLINE feature_view_proto = existing_feature_view.to_proto() feature_view_proto.spec.project = project del self.cached_registry_proto.feature_views[idx] @@ -965,6 +982,11 @@ def apply_materialization( (start_date, end_date) ) existing_stream_feature_view.last_updated_timestamp = _utc_now() + # Transition state to AVAILABLE_ONLINE after materialization. + if hasattr(existing_stream_feature_view, "state"): + existing_stream_feature_view.state = ( + FeatureViewState.AVAILABLE_ONLINE + ) stream_feature_view_proto = existing_stream_feature_view.to_proto() stream_feature_view_proto.spec.project = project del self.cached_registry_proto.stream_feature_views[idx] diff --git a/sdk/python/feast/on_demand_feature_view.py b/sdk/python/feast/on_demand_feature_view.py index c69005478e0..bf2d34666cf 100644 --- a/sdk/python/feast/on_demand_feature_view.py +++ b/sdk/python/feast/on_demand_feature_view.py @@ -14,7 +14,7 @@ from feast.data_source import RequestSource from feast.entity import Entity from feast.errors import RegistryInferenceFailure, SpecifiedFeaturesNotPresentError -from feast.feature_view import DUMMY_ENTITY_NAME, FeatureView +from feast.feature_view import DUMMY_ENTITY_NAME, FeatureView, FeatureViewState from feast.feature_view_projection import FeatureViewProjection from feast.field import Field, from_value_type from feast.proto_utils import transformation_to_proto @@ -155,6 +155,8 @@ class OnDemandFeatureView(BaseFeatureView): udf: Optional[FunctionType] udf_string: Optional[str] aggregations: List[Aggregation] + enabled: bool + state: FeatureViewState _raw_feature_transformation_proto: Optional[Any] = None def __init__( # noqa: C901 @@ -178,6 +180,7 @@ def __init__( # noqa: C901 track_metrics: bool = False, aggregations: Optional[List[Aggregation]] = None, version: str = "latest", + enabled: bool = True, ): """ Creates an OnDemandFeatureView object. @@ -317,6 +320,9 @@ def __init__( # noqa: C901 ) self.track_metrics = track_metrics self.aggregations = aggregations or [] + self.enabled = enabled + + self.state = FeatureViewState.STATE_UNSPECIFIED if input_schema is not None and self.aggregations: input_field_names = {f.name for f in input_schema} @@ -403,6 +409,8 @@ def __copy__(self): fv.features = self.features fv.projection = copy.copy(self.projection) fv.entity_columns = copy.copy(self.entity_columns) + fv.enabled = self.enabled + fv.state = self.state return fv @@ -589,6 +597,8 @@ def to_proto(self) -> OnDemandFeatureViewProto: meta.last_updated_timestamp.FromDatetime(self.last_updated_timestamp) if self.current_version_number is not None: meta.current_version_number = self.current_version_number + if self.state != FeatureViewState.STATE_UNSPECIFIED: + meta.state = self.state.to_proto() sources = {} for source_name, fv_projection in self.source_feature_view_projections.items(): sources[source_name] = OnDemandSource( @@ -641,6 +651,7 @@ def to_proto(self) -> OnDemandFeatureViewProto: singleton=self.singleton or False, aggregations=[agg.to_proto() for agg in self.aggregations], version=self.version, + disabled=not self.enabled, ) return OnDemandFeatureViewProto(spec=spec, meta=meta) @@ -715,6 +726,14 @@ def from_proto( # Set additional attributes that aren't part of the constructor on_demand_feature_view_obj.entities = optional_fields["entities"] on_demand_feature_view_obj.entity_columns = optional_fields["entity_columns"] + on_demand_feature_view_obj.enabled = ( + not on_demand_feature_view_proto.spec.disabled + ) + + # Restore lifecycle state from meta. + on_demand_feature_view_obj.state = FeatureViewState.from_proto( + on_demand_feature_view_proto.meta.state + ) # FeatureViewProjections are not saved in the OnDemandFeatureView proto. # Create the default projection. diff --git a/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi b/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi index 4b5c1cac9a9..4c6bd7c089c 100644 --- a/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Aggregation_pb2.pyi @@ -2,49 +2,44 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from google.protobuf import descriptor as _descriptor -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import message as _message -import builtins as _builtins +import builtins +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Aggregation(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Aggregation(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - COLUMN_FIELD_NUMBER: _builtins.int - FUNCTION_FIELD_NUMBER: _builtins.int - TIME_WINDOW_FIELD_NUMBER: _builtins.int - SLIDE_INTERVAL_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - column: _builtins.str - function: _builtins.str - name: _builtins.str - @_builtins.property - def time_window(self) -> _duration_pb2.Duration: ... - @_builtins.property - def slide_interval(self) -> _duration_pb2.Duration: ... + COLUMN_FIELD_NUMBER: builtins.int + FUNCTION_FIELD_NUMBER: builtins.int + TIME_WINDOW_FIELD_NUMBER: builtins.int + SLIDE_INTERVAL_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + column: builtins.str + function: builtins.str + @property + def time_window(self) -> google.protobuf.duration_pb2.Duration: ... + @property + def slide_interval(self) -> google.protobuf.duration_pb2.Duration: ... + name: builtins.str def __init__( self, *, - column: _builtins.str = ..., - function: _builtins.str = ..., - time_window: _duration_pb2.Duration | None = ..., - slide_interval: _duration_pb2.Duration | None = ..., - name: _builtins.str = ..., + column: builtins.str = ..., + function: builtins.str = ..., + time_window: google.protobuf.duration_pb2.Duration | None = ..., + slide_interval: google.protobuf.duration_pb2.Duration | None = ..., + name: builtins.str = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["slide_interval", b"slide_interval", "time_window", b"time_window"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["column", b"column", "function", b"function", "name", b"name", "slide_interval", b"slide_interval", "time_window", b"time_window"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["slide_interval", b"slide_interval", "time_window", b"time_window"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["column", b"column", "function", b"function", "name", b"name", "slide_interval", b"slide_interval", "time_window", b"time_window"]) -> None: ... -Global___Aggregation: _TypeAlias = Aggregation # noqa: Y015 +global___Aggregation = Aggregation diff --git a/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi b/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi index fa5291fac26..193fb82a776 100644 --- a/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DataFormat_pb2.pyi @@ -16,318 +16,272 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing - -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias -else: - from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 13): - from warnings import deprecated as _deprecated +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import deprecated as _deprecated + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FileFormat(_message.Message): +class FileFormat(google.protobuf.message.Message): """Defines the file format encoding the features/entity data in files""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class ParquetFormat(_message.Message): + class ParquetFormat(google.protobuf.message.Message): """Defines options for the Parquet data format""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor def __init__( self, ) -> None: ... - PARQUET_FORMAT_FIELD_NUMBER: _builtins.int - DELTA_FORMAT_FIELD_NUMBER: _builtins.int - @_builtins.property - def parquet_format(self) -> Global___FileFormat.ParquetFormat: ... - @_builtins.property - @_deprecated("""This field has been marked as deprecated using proto field options.""") - def delta_format(self) -> Global___TableFormat.DeltaFormat: + PARQUET_FORMAT_FIELD_NUMBER: builtins.int + DELTA_FORMAT_FIELD_NUMBER: builtins.int + @property + def parquet_format(self) -> global___FileFormat.ParquetFormat: ... + @property + def delta_format(self) -> global___TableFormat.DeltaFormat: """Deprecated: Delta Lake is a table format, not a file format. Use TableFormat.DeltaFormat instead for Delta Lake support. """ - def __init__( self, *, - parquet_format: Global___FileFormat.ParquetFormat | None = ..., - delta_format: Global___TableFormat.DeltaFormat | None = ..., + parquet_format: global___FileFormat.ParquetFormat | None = ..., + delta_format: global___TableFormat.DeltaFormat | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["parquet_format", "delta_format"] # noqa: Y015 - _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... - -Global___FileFormat: _TypeAlias = FileFormat # noqa: Y015 - -@_typing.final -class TableFormat(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - @_typing.final - class IcebergFormat(_message.Message): + def HasField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "parquet_format", b"parquet_format"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["parquet_format", "delta_format"] | None: ... + +global___FileFormat = FileFormat + +class TableFormat(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class IcebergFormat(google.protobuf.message.Message): """Defines options for Apache Iceberg table format""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class PropertiesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class PropertiesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - CATALOG_FIELD_NUMBER: _builtins.int - NAMESPACE_FIELD_NUMBER: _builtins.int - PROPERTIES_FIELD_NUMBER: _builtins.int - catalog: _builtins.str + CATALOG_FIELD_NUMBER: builtins.int + NAMESPACE_FIELD_NUMBER: builtins.int + PROPERTIES_FIELD_NUMBER: builtins.int + catalog: builtins.str """Optional catalog name for the Iceberg table""" - namespace: _builtins.str + namespace: builtins.str """Optional namespace (schema/database) within the catalog""" - @_builtins.property - def properties(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """Additional properties for Iceberg configuration Examples: warehouse location, snapshot-id, as-of-timestamp, etc. """ - def __init__( self, *, - catalog: _builtins.str = ..., - namespace: _builtins.str = ..., - properties: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + catalog: builtins.str = ..., + namespace: builtins.str = ..., + properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["catalog", b"catalog", "namespace", b"namespace", "properties", b"properties"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["catalog", b"catalog", "namespace", b"namespace", "properties", b"properties"]) -> None: ... - @_typing.final - class DeltaFormat(_message.Message): + class DeltaFormat(google.protobuf.message.Message): """Defines options for Delta Lake table format""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class PropertiesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class PropertiesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - CHECKPOINT_LOCATION_FIELD_NUMBER: _builtins.int - PROPERTIES_FIELD_NUMBER: _builtins.int - checkpoint_location: _builtins.str + CHECKPOINT_LOCATION_FIELD_NUMBER: builtins.int + PROPERTIES_FIELD_NUMBER: builtins.int + checkpoint_location: builtins.str """Optional checkpoint location for Delta transaction logs""" - @_builtins.property - def properties(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """Additional properties for Delta configuration Examples: auto-optimize settings, vacuum settings, etc. """ - def __init__( self, *, - checkpoint_location: _builtins.str = ..., - properties: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + checkpoint_location: builtins.str = ..., + properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["checkpoint_location", b"checkpoint_location", "properties", b"properties"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["checkpoint_location", b"checkpoint_location", "properties", b"properties"]) -> None: ... - @_typing.final - class HudiFormat(_message.Message): + class HudiFormat(google.protobuf.message.Message): """Defines options for Apache Hudi table format""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class PropertiesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class PropertiesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - TABLE_TYPE_FIELD_NUMBER: _builtins.int - RECORD_KEY_FIELD_NUMBER: _builtins.int - PRECOMBINE_FIELD_FIELD_NUMBER: _builtins.int - PROPERTIES_FIELD_NUMBER: _builtins.int - table_type: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + TABLE_TYPE_FIELD_NUMBER: builtins.int + RECORD_KEY_FIELD_NUMBER: builtins.int + PRECOMBINE_FIELD_FIELD_NUMBER: builtins.int + PROPERTIES_FIELD_NUMBER: builtins.int + table_type: builtins.str """Type of Hudi table (COPY_ON_WRITE or MERGE_ON_READ)""" - record_key: _builtins.str + record_key: builtins.str """Field(s) that uniquely identify a record""" - precombine_field: _builtins.str + precombine_field: builtins.str """Field used to determine the latest version of a record""" - @_builtins.property - def properties(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def properties(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """Additional properties for Hudi configuration Examples: compaction strategy, indexing options, etc. """ - def __init__( self, *, - table_type: _builtins.str = ..., - record_key: _builtins.str = ..., - precombine_field: _builtins.str = ..., - properties: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + table_type: builtins.str = ..., + record_key: builtins.str = ..., + precombine_field: builtins.str = ..., + properties: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["precombine_field", b"precombine_field", "properties", b"properties", "record_key", b"record_key", "table_type", b"table_type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - ICEBERG_FORMAT_FIELD_NUMBER: _builtins.int - DELTA_FORMAT_FIELD_NUMBER: _builtins.int - HUDI_FORMAT_FIELD_NUMBER: _builtins.int - @_builtins.property - def iceberg_format(self) -> Global___TableFormat.IcebergFormat: ... - @_builtins.property - def delta_format(self) -> Global___TableFormat.DeltaFormat: ... - @_builtins.property - def hudi_format(self) -> Global___TableFormat.HudiFormat: ... + def ClearField(self, field_name: typing_extensions.Literal["precombine_field", b"precombine_field", "properties", b"properties", "record_key", b"record_key", "table_type", b"table_type"]) -> None: ... + + ICEBERG_FORMAT_FIELD_NUMBER: builtins.int + DELTA_FORMAT_FIELD_NUMBER: builtins.int + HUDI_FORMAT_FIELD_NUMBER: builtins.int + @property + def iceberg_format(self) -> global___TableFormat.IcebergFormat: ... + @property + def delta_format(self) -> global___TableFormat.DeltaFormat: ... + @property + def hudi_format(self) -> global___TableFormat.HudiFormat: ... def __init__( self, *, - iceberg_format: Global___TableFormat.IcebergFormat | None = ..., - delta_format: Global___TableFormat.DeltaFormat | None = ..., - hudi_format: Global___TableFormat.HudiFormat | None = ..., + iceberg_format: global___TableFormat.IcebergFormat | None = ..., + delta_format: global___TableFormat.DeltaFormat | None = ..., + hudi_format: global___TableFormat.HudiFormat | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["iceberg_format", "delta_format", "hudi_format"] # noqa: Y015 - _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... - -Global___TableFormat: _TypeAlias = TableFormat # noqa: Y015 - -@_typing.final -class StreamFormat(_message.Message): + def HasField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["delta_format", b"delta_format", "format", b"format", "hudi_format", b"hudi_format", "iceberg_format", b"iceberg_format"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["iceberg_format", "delta_format", "hudi_format"] | None: ... + +global___TableFormat = TableFormat + +class StreamFormat(google.protobuf.message.Message): """Defines the data format encoding features/entity data in data streams""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class ProtoFormat(_message.Message): + class ProtoFormat(google.protobuf.message.Message): """Defines options for the protobuf data format""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLASS_PATH_FIELD_NUMBER: _builtins.int - class_path: _builtins.str + CLASS_PATH_FIELD_NUMBER: builtins.int + class_path: builtins.str """Classpath to the generated Java Protobuf class that can be used to decode Feature data from the obtained stream message """ def __init__( self, *, - class_path: _builtins.str = ..., + class_path: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["class_path", b"class_path"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["class_path", b"class_path"]) -> None: ... - @_typing.final - class AvroFormat(_message.Message): + class AvroFormat(google.protobuf.message.Message): """Defines options for the avro data format""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCHEMA_JSON_FIELD_NUMBER: _builtins.int - schema_json: _builtins.str + SCHEMA_JSON_FIELD_NUMBER: builtins.int + schema_json: builtins.str """Optional if used in a File DataSource as schema is embedded in avro file. Specifies the schema of the Avro message as JSON string. """ def __init__( self, *, - schema_json: _builtins.str = ..., + schema_json: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["schema_json", b"schema_json"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["schema_json", b"schema_json"]) -> None: ... - @_typing.final - class JsonFormat(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class JsonFormat(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCHEMA_JSON_FIELD_NUMBER: _builtins.int - schema_json: _builtins.str + SCHEMA_JSON_FIELD_NUMBER: builtins.int + schema_json: builtins.str def __init__( self, *, - schema_json: _builtins.str = ..., + schema_json: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["schema_json", b"schema_json"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - AVRO_FORMAT_FIELD_NUMBER: _builtins.int - PROTO_FORMAT_FIELD_NUMBER: _builtins.int - JSON_FORMAT_FIELD_NUMBER: _builtins.int - @_builtins.property - def avro_format(self) -> Global___StreamFormat.AvroFormat: ... - @_builtins.property - def proto_format(self) -> Global___StreamFormat.ProtoFormat: ... - @_builtins.property - def json_format(self) -> Global___StreamFormat.JsonFormat: ... + def ClearField(self, field_name: typing_extensions.Literal["schema_json", b"schema_json"]) -> None: ... + + AVRO_FORMAT_FIELD_NUMBER: builtins.int + PROTO_FORMAT_FIELD_NUMBER: builtins.int + JSON_FORMAT_FIELD_NUMBER: builtins.int + @property + def avro_format(self) -> global___StreamFormat.AvroFormat: ... + @property + def proto_format(self) -> global___StreamFormat.ProtoFormat: ... + @property + def json_format(self) -> global___StreamFormat.JsonFormat: ... def __init__( self, *, - avro_format: Global___StreamFormat.AvroFormat | None = ..., - proto_format: Global___StreamFormat.ProtoFormat | None = ..., - json_format: Global___StreamFormat.JsonFormat | None = ..., + avro_format: global___StreamFormat.AvroFormat | None = ..., + proto_format: global___StreamFormat.ProtoFormat | None = ..., + json_format: global___StreamFormat.JsonFormat | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_format: _TypeAlias = _typing.Literal["avro_format", "proto_format", "json_format"] # noqa: Y015 - _WhichOneofArgType_format: _TypeAlias = _typing.Literal["format", b"format"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_format) -> _WhichOneofReturnType_format | None: ... - -Global___StreamFormat: _TypeAlias = StreamFormat # noqa: Y015 + def HasField(self, field_name: typing_extensions.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["avro_format", b"avro_format", "format", b"format", "json_format", b"json_format", "proto_format", b"proto_format"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["format", b"format"]) -> typing_extensions.Literal["avro_format", "proto_format", "json_format"] | None: ... + +global___StreamFormat = StreamFormat diff --git a/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi b/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi index f9a451e8560..6339a97536e 100644 --- a/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DatastoreTable_pb2.pyi @@ -16,60 +16,52 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import wrappers_pb2 as _wrappers_pb2 -import builtins as _builtins +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import google.protobuf.wrappers_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class DatastoreTable(_message.Message): +class DatastoreTable(google.protobuf.message.Message): """Represents a Datastore table""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - PROJECT_ID_FIELD_NUMBER: _builtins.int - NAMESPACE_FIELD_NUMBER: _builtins.int - DATABASE_FIELD_NUMBER: _builtins.int - project: _builtins.str + PROJECT_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + NAMESPACE_FIELD_NUMBER: builtins.int + DATABASE_FIELD_NUMBER: builtins.int + project: builtins.str """Feast project of the table""" - name: _builtins.str + name: builtins.str """Name of the table""" - @_builtins.property - def project_id(self) -> _wrappers_pb2.StringValue: + @property + def project_id(self) -> google.protobuf.wrappers_pb2.StringValue: """GCP project id""" - - @_builtins.property - def namespace(self) -> _wrappers_pb2.StringValue: + @property + def namespace(self) -> google.protobuf.wrappers_pb2.StringValue: """Datastore namespace""" - - @_builtins.property - def database(self) -> _wrappers_pb2.StringValue: + @property + def database(self) -> google.protobuf.wrappers_pb2.StringValue: """Firestore database""" - def __init__( self, *, - project: _builtins.str = ..., - name: _builtins.str = ..., - project_id: _wrappers_pb2.StringValue | None = ..., - namespace: _wrappers_pb2.StringValue | None = ..., - database: _wrappers_pb2.StringValue | None = ..., + project: builtins.str = ..., + name: builtins.str = ..., + project_id: google.protobuf.wrappers_pb2.StringValue | None = ..., + namespace: google.protobuf.wrappers_pb2.StringValue | None = ..., + database: google.protobuf.wrappers_pb2.StringValue | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "namespace", b"namespace", "project_id", b"project_id"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "name", b"name", "namespace", b"namespace", "project", b"project", "project_id", b"project_id"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["database", b"database", "namespace", b"namespace", "project_id", b"project_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "name", b"name", "namespace", b"namespace", "project", b"project", "project_id", b"project_id"]) -> None: ... -Global___DatastoreTable: _TypeAlias = DatastoreTable # noqa: Y015 +global___DatastoreTable = DatastoreTable diff --git a/sdk/python/feast/protos/feast/core/Entity_pb2.pyi b/sdk/python/feast/protos/feast/core/Entity_pb2.pyi index b88884b41c3..025817edfee 100644 --- a/sdk/python/feast/protos/feast/core/Entity_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Entity_pb2.pyi @@ -16,147 +16,130 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Entity(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Entity(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___EntitySpecV2: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___EntitySpecV2: """User-specified specifications of this entity.""" - - @_builtins.property - def meta(self) -> Global___EntityMeta: + @property + def meta(self) -> global___EntityMeta: """System-populated metadata for this entity.""" - def __init__( self, *, - spec: Global___EntitySpecV2 | None = ..., - meta: Global___EntityMeta | None = ..., + spec: global___EntitySpecV2 | None = ..., + meta: global___EntityMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___Entity: _TypeAlias = Entity # noqa: Y015 +global___Entity = Entity -@_typing.final -class EntitySpecV2(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class EntitySpecV2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - VALUE_TYPE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - JOIN_KEY_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + VALUE_TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + JOIN_KEY_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the entity.""" - project: _builtins.str + project: builtins.str """Name of Feast project that this feature table belongs to.""" - value_type: _Value_pb2.ValueType.Enum.ValueType + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType """Type of the entity.""" - description: _builtins.str + description: builtins.str """Description of the entity.""" - join_key: _builtins.str + join_key: builtins.str """Join key for the entity (i.e. name of the column the entity maps to).""" - owner: _builtins.str - """Owner of the entity.""" - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - + owner: builtins.str + """Owner of the entity.""" def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - value_type: _Value_pb2.ValueType.Enum.ValueType = ..., - description: _builtins.str = ..., - join_key: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - owner: _builtins.str = ..., + name: builtins.str = ..., + project: builtins.str = ..., + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., + description: builtins.str = ..., + join_key: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + owner: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "join_key", b"join_key", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags", "value_type", b"value_type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "join_key", b"join_key", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags", "value_type", b"value_type"]) -> None: ... -Global___EntitySpecV2: _TypeAlias = EntitySpecV2 # noqa: Y015 +global___EntitySpecV2 = EntitySpecV2 -@_typing.final -class EntityMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class EntityMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... -Global___EntityMeta: _TypeAlias = EntityMeta # noqa: Y015 +global___EntityMeta = EntityMeta -@_typing.final -class EntityList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class EntityList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITIES_FIELD_NUMBER: _builtins.int - @_builtins.property - def entities(self) -> _containers.RepeatedCompositeFieldContainer[Global___Entity]: ... + ENTITIES_FIELD_NUMBER: builtins.int + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Entity]: ... def __init__( self, *, - entities: _abc.Iterable[Global___Entity] | None = ..., + entities: collections.abc.Iterable[global___Entity] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entities", b"entities"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities"]) -> None: ... -Global___EntityList: _TypeAlias = EntityList # noqa: Y015 +global___EntityList = EntityList diff --git a/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi index 125c198db48..6d5879e52cb 100644 --- a/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi @@ -2,349 +2,305 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from feast.core import FeatureViewProjection_pb2 as _FeatureViewProjection_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.FeatureViewProjection_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FeatureService(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureService(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___FeatureServiceSpec: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___FeatureServiceSpec: """User-specified specifications of this feature service.""" - - @_builtins.property - def meta(self) -> Global___FeatureServiceMeta: + @property + def meta(self) -> global___FeatureServiceMeta: """System-populated metadata for this feature service.""" - def __init__( self, *, - spec: Global___FeatureServiceSpec | None = ..., - meta: Global___FeatureServiceMeta | None = ..., + spec: global___FeatureServiceSpec | None = ..., + meta: global___FeatureServiceMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___FeatureService: _TypeAlias = FeatureService # noqa: Y015 +global___FeatureService = FeatureService -@_typing.final -class FeatureServiceSpec(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureServiceSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - LOGGING_CONFIG_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + LOGGING_CONFIG_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the Feature Service. Must be unique. Not updated.""" - project: _builtins.str + project: builtins.str """Name of Feast project that this Feature Service belongs to.""" - description: _builtins.str - """Description of the feature service.""" - owner: _builtins.str - """Owner of the feature service.""" - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureViewProjection_pb2.FeatureViewProjection]: + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureViewProjection_pb2.FeatureViewProjection]: """Represents a projection that's to be applied on top of the FeatureView. Contains data such as the features to use from a FeatureView. """ - - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - - @_builtins.property - def logging_config(self) -> Global___LoggingConfig: + description: builtins.str + """Description of the feature service.""" + owner: builtins.str + """Owner of the feature service.""" + @property + def logging_config(self) -> global___LoggingConfig: """(optional) if provided logging will be enabled for this feature service.""" - def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - features: _abc.Iterable[_FeatureViewProjection_pb2.FeatureViewProjection] | None = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - description: _builtins.str = ..., - owner: _builtins.str = ..., - logging_config: Global___LoggingConfig | None = ..., + name: builtins.str = ..., + project: builtins.str = ..., + features: collections.abc.Iterable[feast.core.FeatureViewProjection_pb2.FeatureViewProjection] | None = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + description: builtins.str = ..., + owner: builtins.str = ..., + logging_config: global___LoggingConfig | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["logging_config", b"logging_config"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "features", b"features", "logging_config", b"logging_config", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["logging_config", b"logging_config"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "features", b"features", "logging_config", b"logging_config", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags"]) -> None: ... -Global___FeatureServiceSpec: _TypeAlias = FeatureServiceSpec # noqa: Y015 +global___FeatureServiceSpec = FeatureServiceSpec -@_typing.final -class FeatureServiceMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureServiceMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time where this Feature Service is created""" - - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time where this Feature Service is last updated""" - def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___FeatureServiceMeta: _TypeAlias = FeatureServiceMeta # noqa: Y015 - -@_typing.final -class LoggingConfig(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - @_typing.final - class FileDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - PATH_FIELD_NUMBER: _builtins.int - S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: _builtins.int - PARTITION_BY_FIELD_NUMBER: _builtins.int - path: _builtins.str - s3_endpoint_override: _builtins.str - @_builtins.property - def partition_by(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: - """column names to use for partitioning""" + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... + +global___FeatureServiceMeta = FeatureServiceMeta + +class LoggingConfig(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class FileDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + PATH_FIELD_NUMBER: builtins.int + S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: builtins.int + PARTITION_BY_FIELD_NUMBER: builtins.int + path: builtins.str + s3_endpoint_override: builtins.str + @property + def partition_by(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """column names to use for partitioning""" def __init__( self, *, - path: _builtins.str = ..., - s3_endpoint_override: _builtins.str = ..., - partition_by: _abc.Iterable[_builtins.str] | None = ..., + path: builtins.str = ..., + s3_endpoint_override: builtins.str = ..., + partition_by: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["partition_by", b"partition_by", "path", b"path", "s3_endpoint_override", b"s3_endpoint_override"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["partition_by", b"partition_by", "path", b"path", "s3_endpoint_override", b"s3_endpoint_override"]) -> None: ... - @_typing.final - class BigQueryDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class BigQueryDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_REF_FIELD_NUMBER: _builtins.int - table_ref: _builtins.str + TABLE_REF_FIELD_NUMBER: builtins.int + table_ref: builtins.str """Full table reference in the form of [project:dataset.table]""" def __init__( self, *, - table_ref: _builtins.str = ..., + table_ref: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["table_ref", b"table_ref"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["table_ref", b"table_ref"]) -> None: ... - @_typing.final - class RedshiftDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class RedshiftDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_NAME_FIELD_NUMBER: _builtins.int - table_name: _builtins.str + TABLE_NAME_FIELD_NUMBER: builtins.int + table_name: builtins.str """Destination table name. ClusterId and database will be taken from an offline store config""" def __init__( self, *, - table_name: _builtins.str = ..., + table_name: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["table_name", b"table_name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... - @_typing.final - class AthenaDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class AthenaDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_NAME_FIELD_NUMBER: _builtins.int - table_name: _builtins.str + TABLE_NAME_FIELD_NUMBER: builtins.int + table_name: builtins.str """Destination table name. data_source and database will be taken from an offline store config""" def __init__( self, *, - table_name: _builtins.str = ..., + table_name: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["table_name", b"table_name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... - @_typing.final - class SnowflakeDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class SnowflakeDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_NAME_FIELD_NUMBER: _builtins.int - table_name: _builtins.str + TABLE_NAME_FIELD_NUMBER: builtins.int + table_name: builtins.str """Destination table name. Schema and database will be taken from an offline store config""" def __init__( self, *, - table_name: _builtins.str = ..., + table_name: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["table_name", b"table_name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["table_name", b"table_name"]) -> None: ... - @_typing.final - class CustomDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class CustomDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class ConfigEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class ConfigEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - KIND_FIELD_NUMBER: _builtins.int - CONFIG_FIELD_NUMBER: _builtins.int - kind: _builtins.str - @_builtins.property - def config(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + KIND_FIELD_NUMBER: builtins.int + CONFIG_FIELD_NUMBER: builtins.int + kind: builtins.str + @property + def config(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... def __init__( self, *, - kind: _builtins.str = ..., - config: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + kind: builtins.str = ..., + config: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "kind", b"kind"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "kind", b"kind"]) -> None: ... - @_typing.final - class CouchbaseColumnarDestination(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class CouchbaseColumnarDestination(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATABASE_FIELD_NUMBER: _builtins.int - SCOPE_FIELD_NUMBER: _builtins.int - COLLECTION_FIELD_NUMBER: _builtins.int - database: _builtins.str + DATABASE_FIELD_NUMBER: builtins.int + SCOPE_FIELD_NUMBER: builtins.int + COLLECTION_FIELD_NUMBER: builtins.int + database: builtins.str """Destination database name""" - scope: _builtins.str + scope: builtins.str """Destination scope name""" - collection: _builtins.str + collection: builtins.str """Destination collection name""" def __init__( self, *, - database: _builtins.str = ..., - scope: _builtins.str = ..., - collection: _builtins.str = ..., + database: builtins.str = ..., + scope: builtins.str = ..., + collection: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["collection", b"collection", "database", b"database", "scope", b"scope"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - SAMPLE_RATE_FIELD_NUMBER: _builtins.int - FILE_DESTINATION_FIELD_NUMBER: _builtins.int - BIGQUERY_DESTINATION_FIELD_NUMBER: _builtins.int - REDSHIFT_DESTINATION_FIELD_NUMBER: _builtins.int - SNOWFLAKE_DESTINATION_FIELD_NUMBER: _builtins.int - CUSTOM_DESTINATION_FIELD_NUMBER: _builtins.int - ATHENA_DESTINATION_FIELD_NUMBER: _builtins.int - COUCHBASE_COLUMNAR_DESTINATION_FIELD_NUMBER: _builtins.int - sample_rate: _builtins.float - @_builtins.property - def file_destination(self) -> Global___LoggingConfig.FileDestination: ... - @_builtins.property - def bigquery_destination(self) -> Global___LoggingConfig.BigQueryDestination: ... - @_builtins.property - def redshift_destination(self) -> Global___LoggingConfig.RedshiftDestination: ... - @_builtins.property - def snowflake_destination(self) -> Global___LoggingConfig.SnowflakeDestination: ... - @_builtins.property - def custom_destination(self) -> Global___LoggingConfig.CustomDestination: ... - @_builtins.property - def athena_destination(self) -> Global___LoggingConfig.AthenaDestination: ... - @_builtins.property - def couchbase_columnar_destination(self) -> Global___LoggingConfig.CouchbaseColumnarDestination: ... + def ClearField(self, field_name: typing_extensions.Literal["collection", b"collection", "database", b"database", "scope", b"scope"]) -> None: ... + + SAMPLE_RATE_FIELD_NUMBER: builtins.int + FILE_DESTINATION_FIELD_NUMBER: builtins.int + BIGQUERY_DESTINATION_FIELD_NUMBER: builtins.int + REDSHIFT_DESTINATION_FIELD_NUMBER: builtins.int + SNOWFLAKE_DESTINATION_FIELD_NUMBER: builtins.int + CUSTOM_DESTINATION_FIELD_NUMBER: builtins.int + ATHENA_DESTINATION_FIELD_NUMBER: builtins.int + COUCHBASE_COLUMNAR_DESTINATION_FIELD_NUMBER: builtins.int + sample_rate: builtins.float + @property + def file_destination(self) -> global___LoggingConfig.FileDestination: ... + @property + def bigquery_destination(self) -> global___LoggingConfig.BigQueryDestination: ... + @property + def redshift_destination(self) -> global___LoggingConfig.RedshiftDestination: ... + @property + def snowflake_destination(self) -> global___LoggingConfig.SnowflakeDestination: ... + @property + def custom_destination(self) -> global___LoggingConfig.CustomDestination: ... + @property + def athena_destination(self) -> global___LoggingConfig.AthenaDestination: ... + @property + def couchbase_columnar_destination(self) -> global___LoggingConfig.CouchbaseColumnarDestination: ... def __init__( self, *, - sample_rate: _builtins.float = ..., - file_destination: Global___LoggingConfig.FileDestination | None = ..., - bigquery_destination: Global___LoggingConfig.BigQueryDestination | None = ..., - redshift_destination: Global___LoggingConfig.RedshiftDestination | None = ..., - snowflake_destination: Global___LoggingConfig.SnowflakeDestination | None = ..., - custom_destination: Global___LoggingConfig.CustomDestination | None = ..., - athena_destination: Global___LoggingConfig.AthenaDestination | None = ..., - couchbase_columnar_destination: Global___LoggingConfig.CouchbaseColumnarDestination | None = ..., + sample_rate: builtins.float = ..., + file_destination: global___LoggingConfig.FileDestination | None = ..., + bigquery_destination: global___LoggingConfig.BigQueryDestination | None = ..., + redshift_destination: global___LoggingConfig.RedshiftDestination | None = ..., + snowflake_destination: global___LoggingConfig.SnowflakeDestination | None = ..., + custom_destination: global___LoggingConfig.CustomDestination | None = ..., + athena_destination: global___LoggingConfig.AthenaDestination | None = ..., + couchbase_columnar_destination: global___LoggingConfig.CouchbaseColumnarDestination | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "snowflake_destination", b"snowflake_destination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "sample_rate", b"sample_rate", "snowflake_destination", b"snowflake_destination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_destination: _TypeAlias = _typing.Literal["file_destination", "bigquery_destination", "redshift_destination", "snowflake_destination", "custom_destination", "athena_destination", "couchbase_columnar_destination"] # noqa: Y015 - _WhichOneofArgType_destination: _TypeAlias = _typing.Literal["destination", b"destination"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_destination) -> _WhichOneofReturnType_destination | None: ... - -Global___LoggingConfig: _TypeAlias = LoggingConfig # noqa: Y015 - -@_typing.final -class FeatureServiceList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FEATURESERVICES_FIELD_NUMBER: _builtins.int - @_builtins.property - def featureservices(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureService]: ... + def HasField(self, field_name: typing_extensions.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "snowflake_destination", b"snowflake_destination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["athena_destination", b"athena_destination", "bigquery_destination", b"bigquery_destination", "couchbase_columnar_destination", b"couchbase_columnar_destination", "custom_destination", b"custom_destination", "destination", b"destination", "file_destination", b"file_destination", "redshift_destination", b"redshift_destination", "sample_rate", b"sample_rate", "snowflake_destination", b"snowflake_destination"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["destination", b"destination"]) -> typing_extensions.Literal["file_destination", "bigquery_destination", "redshift_destination", "snowflake_destination", "custom_destination", "athena_destination", "couchbase_columnar_destination"] | None: ... + +global___LoggingConfig = LoggingConfig + +class FeatureServiceList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURESERVICES_FIELD_NUMBER: builtins.int + @property + def featureservices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureService]: ... def __init__( self, *, - featureservices: _abc.Iterable[Global___FeatureService] | None = ..., + featureservices: collections.abc.Iterable[global___FeatureService] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["featureservices", b"featureservices"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["featureservices", b"featureservices"]) -> None: ... -Global___FeatureServiceList: _TypeAlias = FeatureServiceList # noqa: Y015 +global___FeatureServiceList = FeatureServiceList diff --git a/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi index c6ff726e507..dd41c2d214a 100644 --- a/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureTable_pb2.pyi @@ -16,174 +16,151 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import feast.core.Feature_pb2 +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FeatureTable(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureTable(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___FeatureTableSpec: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___FeatureTableSpec: """User-specified specifications of this feature table.""" - - @_builtins.property - def meta(self) -> Global___FeatureTableMeta: + @property + def meta(self) -> global___FeatureTableMeta: """System-populated metadata for this feature table.""" - def __init__( self, *, - spec: Global___FeatureTableSpec | None = ..., - meta: Global___FeatureTableMeta | None = ..., + spec: global___FeatureTableSpec | None = ..., + meta: global___FeatureTableMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___FeatureTable: _TypeAlias = FeatureTable # noqa: Y015 +global___FeatureTable = FeatureTable -@_typing.final -class FeatureTableSpec(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureTableSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class LabelsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class LabelsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ENTITIES_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - LABELS_FIELD_NUMBER: _builtins.int - MAX_AGE_FIELD_NUMBER: _builtins.int - BATCH_SOURCE_FIELD_NUMBER: _builtins.int - STREAM_SOURCE_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + LABELS_FIELD_NUMBER: builtins.int + MAX_AGE_FIELD_NUMBER: builtins.int + BATCH_SOURCE_FIELD_NUMBER: builtins.int + STREAM_SOURCE_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the feature table. Must be unique. Not updated.""" - project: _builtins.str + project: builtins.str """Name of Feast project that this feature table belongs to.""" - @_builtins.property - def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List names of entities to associate with the Features defined in this Feature Table. Not updatable. """ - - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of features specifications for each feature defined with this feature table.""" - - @_builtins.property - def labels(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - - @_builtins.property - def max_age(self) -> _duration_pb2.Duration: + @property + def max_age(self) -> google.protobuf.duration_pb2.Duration: """Features in this feature table can only be retrieved from online serving younger than max age. Age is measured as the duration of time between the feature's event timestamp and when the feature is retrieved Feature values outside max age will be returned as unset values and indicated to end user """ - - @_builtins.property - def batch_source(self) -> _DataSource_pb2.DataSource: + @property + def batch_source(self) -> feast.core.DataSource_pb2.DataSource: """Batch/Offline DataSource to source batch/offline feature data. Only batch DataSource can be specified (ie source type should start with 'BATCH_') """ - - @_builtins.property - def stream_source(self) -> _DataSource_pb2.DataSource: + @property + def stream_source(self) -> feast.core.DataSource_pb2.DataSource: """Stream/Online DataSource to source stream/online feature data. Only stream DataSource can be specified (ie source type should start with 'STREAM_') """ - def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - entities: _abc.Iterable[_builtins.str] | None = ..., - features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - labels: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - max_age: _duration_pb2.Duration | None = ..., - batch_source: _DataSource_pb2.DataSource | None = ..., - stream_source: _DataSource_pb2.DataSource | None = ..., + name: builtins.str = ..., + project: builtins.str = ..., + entities: collections.abc.Iterable[builtins.str] | None = ..., + features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + max_age: google.protobuf.duration_pb2.Duration | None = ..., + batch_source: feast.core.DataSource_pb2.DataSource | None = ..., + stream_source: feast.core.DataSource_pb2.DataSource | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "max_age", b"max_age", "stream_source", b"stream_source"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "entities", b"entities", "features", b"features", "labels", b"labels", "max_age", b"max_age", "name", b"name", "project", b"project", "stream_source", b"stream_source"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___FeatureTableSpec: _TypeAlias = FeatureTableSpec # noqa: Y015 - -@_typing.final -class FeatureTableMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - REVISION_FIELD_NUMBER: _builtins.int - HASH_FIELD_NUMBER: _builtins.int - revision: _builtins.int + def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "max_age", b"max_age", "stream_source", b"stream_source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "entities", b"entities", "features", b"features", "labels", b"labels", "max_age", b"max_age", "name", b"name", "project", b"project", "stream_source", b"stream_source"]) -> None: ... + +global___FeatureTableSpec = FeatureTableSpec + +class FeatureTableMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + REVISION_FIELD_NUMBER: builtins.int + HASH_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Time where this Feature Table is created""" + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Time where this Feature Table is last updated""" + revision: builtins.int """Auto incrementing revision no. of this Feature Table""" - hash: _builtins.str + hash: builtins.str """Hash entities, features, batch_source and stream_source to inform JobService if jobs should be restarted should hash change """ - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: - """Time where this Feature Table is created""" - - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: - """Time where this Feature Table is last updated""" - def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., - revision: _builtins.int = ..., - hash: _builtins.str = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + revision: builtins.int = ..., + hash: builtins.str = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "hash", b"hash", "last_updated_timestamp", b"last_updated_timestamp", "revision", b"revision"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "hash", b"hash", "last_updated_timestamp", b"last_updated_timestamp", "revision", b"revision"]) -> None: ... -Global___FeatureTableMeta: _TypeAlias = FeatureTableMeta # noqa: Y015 +global___FeatureTableMeta = FeatureTableMeta diff --git a/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi index b5b8c976400..6fd1010f2e4 100644 --- a/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureViewProjection_pb2.pyi @@ -2,104 +2,91 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import feast.core.Feature_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FeatureViewProjection(_message.Message): +class FeatureViewProjection(google.protobuf.message.Message): """A projection to be applied on top of a FeatureView. Contains the modifications to a FeatureView such as the features subset to use. """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class JoinKeyMapEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class JoinKeyMapEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_NAME_ALIAS_FIELD_NUMBER: _builtins.int - FEATURE_COLUMNS_FIELD_NUMBER: _builtins.int - JOIN_KEY_MAP_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_FIELD_NUMBER: _builtins.int - DATE_PARTITION_COLUMN_FIELD_NUMBER: _builtins.int - CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: _builtins.int - BATCH_SOURCE_FIELD_NUMBER: _builtins.int - STREAM_SOURCE_FIELD_NUMBER: _builtins.int - VERSION_TAG_FIELD_NUMBER: _builtins.int - feature_view_name: _builtins.str + FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int + FEATURE_VIEW_NAME_ALIAS_FIELD_NUMBER: builtins.int + FEATURE_COLUMNS_FIELD_NUMBER: builtins.int + JOIN_KEY_MAP_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_FIELD_NUMBER: builtins.int + DATE_PARTITION_COLUMN_FIELD_NUMBER: builtins.int + CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int + BATCH_SOURCE_FIELD_NUMBER: builtins.int + STREAM_SOURCE_FIELD_NUMBER: builtins.int + VERSION_TAG_FIELD_NUMBER: builtins.int + feature_view_name: builtins.str """The feature view name""" - feature_view_name_alias: _builtins.str + feature_view_name_alias: builtins.str """Alias for feature view name""" - timestamp_field: _builtins.str - date_partition_column: _builtins.str - created_timestamp_column: _builtins.str - version_tag: _builtins.int - """Optional version tag for version-qualified feature references (e.g., @v2).""" - @_builtins.property - def feature_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def feature_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """The features of the feature view that are a part of the feature reference.""" - - @_builtins.property - def join_key_map(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def join_key_map(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """Map for entity join_key overrides of feature data entity join_key to entity data join_key""" - - @_builtins.property - def batch_source(self) -> _DataSource_pb2.DataSource: + timestamp_field: builtins.str + date_partition_column: builtins.str + created_timestamp_column: builtins.str + @property + def batch_source(self) -> feast.core.DataSource_pb2.DataSource: """Batch/Offline DataSource where this view can retrieve offline feature data.""" - - @_builtins.property - def stream_source(self) -> _DataSource_pb2.DataSource: + @property + def stream_source(self) -> feast.core.DataSource_pb2.DataSource: """Streaming DataSource from where this view can consume "online" feature data.""" - + version_tag: builtins.int + """Optional version tag for version-qualified feature references (e.g., @v2).""" def __init__( self, *, - feature_view_name: _builtins.str = ..., - feature_view_name_alias: _builtins.str = ..., - feature_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - join_key_map: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - timestamp_field: _builtins.str = ..., - date_partition_column: _builtins.str = ..., - created_timestamp_column: _builtins.str = ..., - batch_source: _DataSource_pb2.DataSource | None = ..., - stream_source: _DataSource_pb2.DataSource | None = ..., - version_tag: _builtins.int | None = ..., + feature_view_name: builtins.str = ..., + feature_view_name_alias: builtins.str = ..., + feature_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + join_key_map: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + timestamp_field: builtins.str = ..., + date_partition_column: builtins.str = ..., + created_timestamp_column: builtins.str = ..., + batch_source: feast.core.DataSource_pb2.DataSource | None = ..., + stream_source: feast.core.DataSource_pb2.DataSource | None = ..., + version_tag: builtins.int | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "stream_source", b"stream_source", "version_tag", b"version_tag"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "created_timestamp_column", b"created_timestamp_column", "date_partition_column", b"date_partition_column", "feature_columns", b"feature_columns", "feature_view_name", b"feature_view_name", "feature_view_name_alias", b"feature_view_name_alias", "join_key_map", b"join_key_map", "stream_source", b"stream_source", "timestamp_field", b"timestamp_field", "version_tag", b"version_tag"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType__version_tag: _TypeAlias = _typing.Literal["version_tag"] # noqa: Y015 - _WhichOneofArgType__version_tag: _TypeAlias = _typing.Literal["_version_tag", b"_version_tag"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType__version_tag) -> _WhichOneofReturnType__version_tag | None: ... + def HasField(self, field_name: typing_extensions.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "stream_source", b"stream_source", "version_tag", b"version_tag"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_version_tag", b"_version_tag", "batch_source", b"batch_source", "created_timestamp_column", b"created_timestamp_column", "date_partition_column", b"date_partition_column", "feature_columns", b"feature_columns", "feature_view_name", b"feature_view_name", "feature_view_name_alias", b"feature_view_name_alias", "join_key_map", b"join_key_map", "stream_source", b"stream_source", "timestamp_field", b"timestamp_field", "version_tag", b"version_tag"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_version_tag", b"_version_tag"]) -> typing_extensions.Literal["version_tag"] | None: ... -Global___FeatureViewProjection: _TypeAlias = FeatureViewProjection # noqa: Y015 +global___FeatureViewProjection = FeatureViewProjection diff --git a/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi index fae1911f435..a6dba9d53d4 100644 --- a/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureViewVersion_pb2.pyi @@ -16,79 +16,72 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FeatureViewVersionRecord(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureViewVersionRecord(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int - PROJECT_ID_FIELD_NUMBER: _builtins.int - VERSION_NUMBER_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_TYPE_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_PROTO_FIELD_NUMBER: _builtins.int - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - VERSION_ID_FIELD_NUMBER: _builtins.int - feature_view_name: _builtins.str - project_id: _builtins.str - version_number: _builtins.int - feature_view_type: _builtins.str + FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int + PROJECT_ID_FIELD_NUMBER: builtins.int + VERSION_NUMBER_FIELD_NUMBER: builtins.int + FEATURE_VIEW_TYPE_FIELD_NUMBER: builtins.int + FEATURE_VIEW_PROTO_FIELD_NUMBER: builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + VERSION_ID_FIELD_NUMBER: builtins.int + feature_view_name: builtins.str + project_id: builtins.str + version_number: builtins.int + feature_view_type: builtins.str """"feature_view" | "stream_feature_view" | "on_demand_feature_view" """ - feature_view_proto: _builtins.bytes + feature_view_proto: builtins.bytes """serialized FV proto snapshot""" - description: _builtins.str - version_id: _builtins.str + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + description: builtins.str + version_id: builtins.str """auto-generated UUID for unique identification""" - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, - feature_view_name: _builtins.str = ..., - project_id: _builtins.str = ..., - version_number: _builtins.int = ..., - feature_view_type: _builtins.str = ..., - feature_view_proto: _builtins.bytes = ..., - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - description: _builtins.str = ..., - version_id: _builtins.str = ..., + feature_view_name: builtins.str = ..., + project_id: builtins.str = ..., + version_number: builtins.int = ..., + feature_view_type: builtins.str = ..., + feature_view_proto: builtins.bytes = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + description: builtins.str = ..., + version_id: builtins.str = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view_name", b"feature_view_name", "feature_view_proto", b"feature_view_proto", "feature_view_type", b"feature_view_type", "project_id", b"project_id", "version_id", b"version_id", "version_number", b"version_number"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view_name", b"feature_view_name", "feature_view_proto", b"feature_view_proto", "feature_view_type", b"feature_view_type", "project_id", b"project_id", "version_id", b"version_id", "version_number", b"version_number"]) -> None: ... -Global___FeatureViewVersionRecord: _TypeAlias = FeatureViewVersionRecord # noqa: Y015 +global___FeatureViewVersionRecord = FeatureViewVersionRecord -@_typing.final -class FeatureViewVersionHistory(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureViewVersionHistory(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - RECORDS_FIELD_NUMBER: _builtins.int - @_builtins.property - def records(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureViewVersionRecord]: ... + RECORDS_FIELD_NUMBER: builtins.int + @property + def records(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewVersionRecord]: ... def __init__( self, *, - records: _abc.Iterable[Global___FeatureViewVersionRecord] | None = ..., + records: collections.abc.Iterable[global___FeatureViewVersionRecord] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["records", b"records"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["records", b"records"]) -> None: ... -Global___FeatureViewVersionHistory: _TypeAlias = FeatureViewVersionHistory # noqa: Y015 +global___FeatureViewVersionHistory = FeatureViewVersionHistory diff --git a/sdk/python/feast/protos/feast/core/FeatureView_pb2.py b/sdk/python/feast/protos/feast/core/FeatureView_pb2.py index de3fb93cb1f..71766558c82 100644 --- a/sdk/python/feast/protos/feast/core/FeatureView_pb2.py +++ b/sdk/python/feast/protos/feast/core/FeatureView_pb2.py @@ -19,7 +19,7 @@ from feast.protos.feast.core import Transformation_pb2 as feast_dot_core_dot_Transformation__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66\x65\x61st/core/FeatureView.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1f\x66\x65\x61st/core/Transformation.proto\"c\n\x0b\x46\x65\x61tureView\x12)\n\x04spec\x18\x01 \x01(\x0b\x32\x1b.feast.core.FeatureViewSpec\x12)\n\x04meta\x18\x02 \x01(\x0b\x32\x1b.feast.core.FeatureViewMeta\"\x8d\x05\n\x0f\x46\x65\x61tureViewSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x10\n\x08\x65ntities\x18\x03 \x03(\t\x12+\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x33\n\x04tags\x18\x05 \x03(\x0b\x32%.feast.core.FeatureViewSpec.TagsEntry\x12&\n\x03ttl\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x0c\x62\x61tch_source\x18\x07 \x01(\x0b\x32\x16.feast.core.DataSource\x12\x0e\n\x06online\x18\x08 \x01(\x08\x12-\n\rstream_source\x18\t \x01(\x0b\x32\x16.feast.core.DataSource\x12\x13\n\x0b\x64\x65scription\x18\n \x01(\t\x12\r\n\x05owner\x18\x0b \x01(\t\x12\x31\n\x0e\x65ntity_columns\x18\x0c \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x0f\n\x07offline\x18\r \x01(\x08\x12\x31\n\x0csource_views\x18\x0e \x03(\x0b\x32\x1b.feast.core.FeatureViewSpec\x12\x43\n\x16\x66\x65\x61ture_transformation\x18\x0f \x01(\x0b\x32#.feast.core.FeatureTransformationV2\x12\x0c\n\x04mode\x18\x10 \x01(\t\x12\x19\n\x11\x65nable_validation\x18\x11 \x01(\x08\x12\x0f\n\x07version\x18\x12 \x01(\t\x12\x0b\n\x03org\x18\x13 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x80\x02\n\x0f\x46\x65\x61tureViewMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x46\n\x19materialization_intervals\x18\x03 \x03(\x0b\x32#.feast.core.MaterializationInterval\x12\x1e\n\x16\x63urrent_version_number\x18\x04 \x01(\x05\x12\x12\n\nversion_id\x18\x05 \x01(\t\"w\n\x17MaterializationInterval\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"@\n\x0f\x46\x65\x61tureViewList\x12-\n\x0c\x66\x65\x61tureviews\x18\x01 \x03(\x0b\x32\x17.feast.core.FeatureViewBU\n\x10\x66\x65\x61st.proto.coreB\x10\x46\x65\x61tureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66\x65\x61st/core/FeatureView.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1f\x66\x65\x61st/core/Transformation.proto\"c\n\x0b\x46\x65\x61tureView\x12)\n\x04spec\x18\x01 \x01(\x0b\x32\x1b.feast.core.FeatureViewSpec\x12)\n\x04meta\x18\x02 \x01(\x0b\x32\x1b.feast.core.FeatureViewMeta\"\x9f\x05\n\x0f\x46\x65\x61tureViewSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x10\n\x08\x65ntities\x18\x03 \x03(\t\x12+\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x33\n\x04tags\x18\x05 \x03(\x0b\x32%.feast.core.FeatureViewSpec.TagsEntry\x12&\n\x03ttl\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x0c\x62\x61tch_source\x18\x07 \x01(\x0b\x32\x16.feast.core.DataSource\x12\x0e\n\x06online\x18\x08 \x01(\x08\x12-\n\rstream_source\x18\t \x01(\x0b\x32\x16.feast.core.DataSource\x12\x13\n\x0b\x64\x65scription\x18\n \x01(\t\x12\r\n\x05owner\x18\x0b \x01(\t\x12\x31\n\x0e\x65ntity_columns\x18\x0c \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x0f\n\x07offline\x18\r \x01(\x08\x12\x31\n\x0csource_views\x18\x0e \x03(\x0b\x32\x1b.feast.core.FeatureViewSpec\x12\x43\n\x16\x66\x65\x61ture_transformation\x18\x0f \x01(\x0b\x32#.feast.core.FeatureTransformationV2\x12\x0c\n\x04mode\x18\x10 \x01(\t\x12\x19\n\x11\x65nable_validation\x18\x11 \x01(\x08\x12\x0f\n\x07version\x18\x12 \x01(\t\x12\x0b\n\x03org\x18\x13 \x01(\t\x12\x10\n\x08\x64isabled\x18\x14 \x01(\x08\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xad\x02\n\x0f\x46\x65\x61tureViewMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x46\n\x19materialization_intervals\x18\x03 \x03(\x0b\x32#.feast.core.MaterializationInterval\x12\x1e\n\x16\x63urrent_version_number\x18\x04 \x01(\x05\x12\x12\n\nversion_id\x18\x05 \x01(\t\x12+\n\x05state\x18\x06 \x01(\x0e\x32\x1c.feast.core.FeatureViewState\"w\n\x17MaterializationInterval\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"@\n\x0f\x46\x65\x61tureViewList\x12-\n\x0c\x66\x65\x61tureviews\x18\x01 \x03(\x0b\x32\x17.feast.core.FeatureView*n\n\x10\x46\x65\x61tureViewState\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43REATED\x10\x01\x12\r\n\tGENERATED\x10\x02\x12\x11\n\rMATERIALIZING\x10\x03\x12\x14\n\x10\x41VAILABLE_ONLINE\x10\x04\x42U\n\x10\x66\x65\x61st.proto.coreB\x10\x46\x65\x61tureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,16 +29,18 @@ _globals['DESCRIPTOR']._serialized_options = b'\n\020feast.proto.coreB\020FeatureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/core' _globals['_FEATUREVIEWSPEC_TAGSENTRY']._options = None _globals['_FEATUREVIEWSPEC_TAGSENTRY']._serialized_options = b'8\001' + _globals['_FEATUREVIEWSTATE']._serialized_start=1463 + _globals['_FEATUREVIEWSTATE']._serialized_end=1573 _globals['_FEATUREVIEW']._serialized_start=197 _globals['_FEATUREVIEW']._serialized_end=296 _globals['_FEATUREVIEWSPEC']._serialized_start=299 - _globals['_FEATUREVIEWSPEC']._serialized_end=952 - _globals['_FEATUREVIEWSPEC_TAGSENTRY']._serialized_start=909 - _globals['_FEATUREVIEWSPEC_TAGSENTRY']._serialized_end=952 - _globals['_FEATUREVIEWMETA']._serialized_start=955 - _globals['_FEATUREVIEWMETA']._serialized_end=1211 - _globals['_MATERIALIZATIONINTERVAL']._serialized_start=1213 - _globals['_MATERIALIZATIONINTERVAL']._serialized_end=1332 - _globals['_FEATUREVIEWLIST']._serialized_start=1334 - _globals['_FEATUREVIEWLIST']._serialized_end=1398 + _globals['_FEATUREVIEWSPEC']._serialized_end=970 + _globals['_FEATUREVIEWSPEC_TAGSENTRY']._serialized_start=927 + _globals['_FEATUREVIEWSPEC_TAGSENTRY']._serialized_end=970 + _globals['_FEATUREVIEWMETA']._serialized_start=973 + _globals['_FEATUREVIEWMETA']._serialized_end=1274 + _globals['_MATERIALIZATIONINTERVAL']._serialized_start=1276 + _globals['_MATERIALIZATIONINTERVAL']._serialized_end=1395 + _globals['_FEATUREVIEWLIST']._serialized_start=1397 + _globals['_FEATUREVIEWLIST']._serialized_end=1461 # @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi index 575b4dfedb1..e73bc66a555 100644 --- a/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureView_pb2.pyi @@ -16,269 +16,291 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from feast.core import Transformation_pb2 as _Transformation_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import feast.core.Feature_pb2 +import feast.core.Transformation_pb2 +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FeatureView(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class _FeatureViewState: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___FeatureViewSpec: - """User-specified specifications of this feature view.""" +class _FeatureViewStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FeatureViewState.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + STATE_UNSPECIFIED: _FeatureViewState.ValueType # 0 + """Default value for backward compatibility. Treated as AVAILABLE_ONLINE + for existing feature views that predate the state machine. + """ + CREATED: _FeatureViewState.ValueType # 1 + """Feature view has been registered via feast apply but no data is available.""" + GENERATED: _FeatureViewState.ValueType # 2 + """Feature engineering / offline data generation is complete. + The feature view is ready to be materialized. + """ + MATERIALIZING: _FeatureViewState.ValueType # 3 + """Materialization is currently in progress.""" + AVAILABLE_ONLINE: _FeatureViewState.ValueType # 4 + """Materialization completed. Features are available in the online store.""" - @_builtins.property - def meta(self) -> Global___FeatureViewMeta: - """System-populated metadata for this feature view.""" +class FeatureViewState(_FeatureViewState, metaclass=_FeatureViewStateEnumTypeWrapper): + """Lifecycle state of a feature view.""" +STATE_UNSPECIFIED: FeatureViewState.ValueType # 0 +"""Default value for backward compatibility. Treated as AVAILABLE_ONLINE +for existing feature views that predate the state machine. +""" +CREATED: FeatureViewState.ValueType # 1 +"""Feature view has been registered via feast apply but no data is available.""" +GENERATED: FeatureViewState.ValueType # 2 +"""Feature engineering / offline data generation is complete. +The feature view is ready to be materialized. +""" +MATERIALIZING: FeatureViewState.ValueType # 3 +"""Materialization is currently in progress.""" +AVAILABLE_ONLINE: FeatureViewState.ValueType # 4 +"""Materialization completed. Features are available in the online store.""" +global___FeatureViewState = FeatureViewState + +class FeatureView(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___FeatureViewSpec: + """User-specified specifications of this feature view.""" + @property + def meta(self) -> global___FeatureViewMeta: + """System-populated metadata for this feature view.""" def __init__( self, *, - spec: Global___FeatureViewSpec | None = ..., - meta: Global___FeatureViewMeta | None = ..., + spec: global___FeatureViewSpec | None = ..., + meta: global___FeatureViewMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___FeatureView: _TypeAlias = FeatureView # noqa: Y015 +global___FeatureView = FeatureView -@_typing.final -class FeatureViewSpec(_message.Message): +class FeatureViewSpec(google.protobuf.message.Message): """Next available id: 20 TODO(adchia): refactor common fields from this and ODFV into separate metadata proto """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ENTITIES_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - TTL_FIELD_NUMBER: _builtins.int - BATCH_SOURCE_FIELD_NUMBER: _builtins.int - ONLINE_FIELD_NUMBER: _builtins.int - STREAM_SOURCE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - ENTITY_COLUMNS_FIELD_NUMBER: _builtins.int - OFFLINE_FIELD_NUMBER: _builtins.int - SOURCE_VIEWS_FIELD_NUMBER: _builtins.int - FEATURE_TRANSFORMATION_FIELD_NUMBER: _builtins.int - MODE_FIELD_NUMBER: _builtins.int - ENABLE_VALIDATION_FIELD_NUMBER: _builtins.int - VERSION_FIELD_NUMBER: _builtins.int - ORG_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + TTL_FIELD_NUMBER: builtins.int + BATCH_SOURCE_FIELD_NUMBER: builtins.int + ONLINE_FIELD_NUMBER: builtins.int + STREAM_SOURCE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + ENTITY_COLUMNS_FIELD_NUMBER: builtins.int + OFFLINE_FIELD_NUMBER: builtins.int + SOURCE_VIEWS_FIELD_NUMBER: builtins.int + FEATURE_TRANSFORMATION_FIELD_NUMBER: builtins.int + MODE_FIELD_NUMBER: builtins.int + ENABLE_VALIDATION_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + ORG_FIELD_NUMBER: builtins.int + DISABLED_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the feature view. Must be unique. Not updated.""" - project: _builtins.str + project: builtins.str """Name of Feast project that this feature view belongs to.""" - online: _builtins.bool - """Whether these features should be served online or not - This is also used to determine whether the features should be written to the online store - """ - description: _builtins.str - """Description of the feature view.""" - owner: _builtins.str - """Owner of the feature view.""" - offline: _builtins.bool - """Whether these features should be written to the offline store""" - mode: _builtins.str - """The transformation mode (e.g., "python", "pandas", "spark", "sql", "ray")""" - enable_validation: _builtins.bool - """Whether schema validation is enabled during materialization""" - version: _builtins.str - """User-specified version pin (e.g. "latest", "v2", "version2")""" - org: _builtins.str - """Organizational unit that owns this feature view (e.g. "ads", "search").""" - @_builtins.property - def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of names of entities associated with this feature view.""" - - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of specifications for each feature defined as part of this feature view.""" - - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - - @_builtins.property - def ttl(self) -> _duration_pb2.Duration: + @property + def ttl(self) -> google.protobuf.duration_pb2.Duration: """Features in this feature view can only be retrieved from online serving younger than ttl. Ttl is measured as the duration of time between the feature's event timestamp and when the feature is retrieved Feature values outside ttl will be returned as unset values and indicated to end user """ - - @_builtins.property - def batch_source(self) -> _DataSource_pb2.DataSource: + @property + def batch_source(self) -> feast.core.DataSource_pb2.DataSource: """Batch/Offline DataSource where this view can retrieve offline feature data. Optional: if not set, the feature view has no associated batch data source (e.g. purely derived views). """ - - @_builtins.property - def stream_source(self) -> _DataSource_pb2.DataSource: + online: builtins.bool + """Whether these features should be served online or not + This is also used to determine whether the features should be written to the online store + """ + @property + def stream_source(self) -> feast.core.DataSource_pb2.DataSource: """Streaming DataSource from where this view can consume "online" feature data. Optional: only required for streaming feature views. """ - - @_builtins.property - def entity_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + description: builtins.str + """Description of the feature view.""" + owner: builtins.str + """Owner of the feature view.""" + @property + def entity_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of specifications for each entity defined as part of this feature view.""" - - @_builtins.property - def source_views(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureViewSpec]: ... - @_builtins.property - def feature_transformation(self) -> _Transformation_pb2.FeatureTransformationV2: + offline: builtins.bool + """Whether these features should be written to the offline store""" + @property + def source_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewSpec]: ... + @property + def feature_transformation(self) -> feast.core.Transformation_pb2.FeatureTransformationV2: """Feature transformation for batch feature views""" - + mode: builtins.str + """The transformation mode (e.g., "python", "pandas", "spark", "sql", "ray")""" + enable_validation: builtins.bool + """Whether schema validation is enabled during materialization""" + version: builtins.str + """User-specified version pin (e.g. "latest", "v2", "version2")""" + org: builtins.str + """Organizational unit that owns this feature view (e.g. "ads", "search").""" + disabled: builtins.bool + """Whether this feature view is disabled for serving and materialization. + When true, the feature view will not serve online features or be materialized. + Defaults to false (enabled) for backward compatibility. + """ def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - entities: _abc.Iterable[_builtins.str] | None = ..., - features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - ttl: _duration_pb2.Duration | None = ..., - batch_source: _DataSource_pb2.DataSource | None = ..., - online: _builtins.bool = ..., - stream_source: _DataSource_pb2.DataSource | None = ..., - description: _builtins.str = ..., - owner: _builtins.str = ..., - entity_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - offline: _builtins.bool = ..., - source_views: _abc.Iterable[Global___FeatureViewSpec] | None = ..., - feature_transformation: _Transformation_pb2.FeatureTransformationV2 | None = ..., - mode: _builtins.str = ..., - enable_validation: _builtins.bool = ..., - version: _builtins.str = ..., - org: _builtins.str = ..., + name: builtins.str = ..., + project: builtins.str = ..., + entities: collections.abc.Iterable[builtins.str] | None = ..., + features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ttl: google.protobuf.duration_pb2.Duration | None = ..., + batch_source: feast.core.DataSource_pb2.DataSource | None = ..., + online: builtins.bool = ..., + stream_source: feast.core.DataSource_pb2.DataSource | None = ..., + description: builtins.str = ..., + owner: builtins.str = ..., + entity_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + offline: builtins.bool = ..., + source_views: collections.abc.Iterable[global___FeatureViewSpec] | None = ..., + feature_transformation: feast.core.Transformation_pb2.FeatureTransformationV2 | None = ..., + mode: builtins.str = ..., + enable_validation: builtins.bool = ..., + version: builtins.str = ..., + org: builtins.str = ..., + disabled: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "ttl", b"ttl"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "description", b"description", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "offline", b"offline", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "source_views", b"source_views", "stream_source", b"stream_source", "tags", b"tags", "ttl", b"ttl", "version", b"version"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___FeatureViewSpec: _TypeAlias = FeatureViewSpec # noqa: Y015 - -@_typing.final -class FeatureViewMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - MATERIALIZATION_INTERVALS_FIELD_NUMBER: _builtins.int - CURRENT_VERSION_NUMBER_FIELD_NUMBER: _builtins.int - VERSION_ID_FIELD_NUMBER: _builtins.int - current_version_number: _builtins.int - """The current version number of this feature view in the version history.""" - version_id: _builtins.str - """Auto-generated UUID identifying this specific version.""" - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: + def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "ttl", b"ttl"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "description", b"description", "disabled", b"disabled", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "offline", b"offline", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "source_views", b"source_views", "stream_source", b"stream_source", "tags", b"tags", "ttl", b"ttl", "version", b"version"]) -> None: ... + +global___FeatureViewSpec = FeatureViewSpec + +class FeatureViewMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + MATERIALIZATION_INTERVALS_FIELD_NUMBER: builtins.int + CURRENT_VERSION_NUMBER_FIELD_NUMBER: builtins.int + VERSION_ID_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time where this Feature View is created""" - - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time where this Feature View is last updated""" - - @_builtins.property - def materialization_intervals(self) -> _containers.RepeatedCompositeFieldContainer[Global___MaterializationInterval]: + @property + def materialization_intervals(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MaterializationInterval]: """List of pairs (start_time, end_time) for which this feature view has been materialized.""" - + current_version_number: builtins.int + """The current version number of this feature view in the version history.""" + version_id: builtins.str + """Auto-generated UUID identifying this specific version.""" + state: global___FeatureViewState.ValueType + """Lifecycle state of this feature view.""" def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., - materialization_intervals: _abc.Iterable[Global___MaterializationInterval] | None = ..., - current_version_number: _builtins.int = ..., - version_id: _builtins.str = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + materialization_intervals: collections.abc.Iterable[global___MaterializationInterval] | None = ..., + current_version_number: builtins.int = ..., + version_id: builtins.str = ..., + state: global___FeatureViewState.ValueType = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "materialization_intervals", b"materialization_intervals", "version_id", b"version_id"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "materialization_intervals", b"materialization_intervals", "state", b"state", "version_id", b"version_id"]) -> None: ... -Global___FeatureViewMeta: _TypeAlias = FeatureViewMeta # noqa: Y015 +global___FeatureViewMeta = FeatureViewMeta -@_typing.final -class MaterializationInterval(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class MaterializationInterval(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_TIME_FIELD_NUMBER: _builtins.int - END_TIME_FIELD_NUMBER: _builtins.int - @_builtins.property - def start_time(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def end_time(self) -> _timestamp_pb2.Timestamp: ... + START_TIME_FIELD_NUMBER: builtins.int + END_TIME_FIELD_NUMBER: builtins.int + @property + def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ... def __init__( self, *, - start_time: _timestamp_pb2.Timestamp | None = ..., - end_time: _timestamp_pb2.Timestamp | None = ..., + start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., + end_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["end_time", b"end_time", "start_time", b"start_time"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["end_time", b"end_time", "start_time", b"start_time"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> None: ... -Global___MaterializationInterval: _TypeAlias = MaterializationInterval # noqa: Y015 +global___MaterializationInterval = MaterializationInterval -@_typing.final -class FeatureViewList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureViewList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATUREVIEWS_FIELD_NUMBER: _builtins.int - @_builtins.property - def featureviews(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureView]: ... + FEATUREVIEWS_FIELD_NUMBER: builtins.int + @property + def featureviews(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureView]: ... def __init__( self, *, - featureviews: _abc.Iterable[Global___FeatureView] | None = ..., + featureviews: collections.abc.Iterable[global___FeatureView] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["featureviews", b"featureviews"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["featureviews", b"featureviews"]) -> None: ... -Global___FeatureViewList: _TypeAlias = FeatureViewList # noqa: Y015 +global___FeatureViewList = FeatureViewList diff --git a/sdk/python/feast/protos/feast/core/Feature_pb2.pyi b/sdk/python/feast/protos/feast/core/Feature_pb2.pyi index 2355c4c10d4..aa56630424f 100644 --- a/sdk/python/feast/protos/feast/core/Feature_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Feature_pb2.pyi @@ -16,79 +16,72 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class FeatureSpecV2(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureSpecV2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - NAME_FIELD_NUMBER: _builtins.int - VALUE_TYPE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - VECTOR_INDEX_FIELD_NUMBER: _builtins.int - VECTOR_SEARCH_METRIC_FIELD_NUMBER: _builtins.int - VECTOR_LENGTH_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + VALUE_TYPE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + VECTOR_INDEX_FIELD_NUMBER: builtins.int + VECTOR_SEARCH_METRIC_FIELD_NUMBER: builtins.int + VECTOR_LENGTH_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the feature. Not updatable.""" - value_type: _Value_pb2.ValueType.Enum.ValueType + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType """Value type of the feature. Not updatable.""" - description: _builtins.str + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Tags for user defined metadata on a feature""" + description: builtins.str """Description of the feature.""" - vector_index: _builtins.bool + vector_index: builtins.bool """Field indicating the vector will be indexed for vector similarity search""" - vector_search_metric: _builtins.str + vector_search_metric: builtins.str """Metric used for vector similarity search.""" - vector_length: _builtins.int + vector_length: builtins.int """Field indicating the vector length""" - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: - """Tags for user defined metadata on a feature""" - def __init__( self, *, - name: _builtins.str = ..., - value_type: _Value_pb2.ValueType.Enum.ValueType = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - description: _builtins.str = ..., - vector_index: _builtins.bool = ..., - vector_search_metric: _builtins.str = ..., - vector_length: _builtins.int = ..., + name: builtins.str = ..., + value_type: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + description: builtins.str = ..., + vector_index: builtins.bool = ..., + vector_search_metric: builtins.str = ..., + vector_length: builtins.int = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "name", b"name", "tags", b"tags", "value_type", b"value_type", "vector_index", b"vector_index", "vector_length", b"vector_length", "vector_search_metric", b"vector_search_metric"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "tags", b"tags", "value_type", b"value_type", "vector_index", b"vector_index", "vector_length", b"vector_length", "vector_search_metric", b"vector_search_metric"]) -> None: ... -Global___FeatureSpecV2: _TypeAlias = FeatureSpecV2 # noqa: Y015 +global___FeatureSpecV2 = FeatureSpecV2 diff --git a/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi b/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi index cc9a4193181..f0a704c604a 100644 --- a/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/InfraObject_pb2.pyi @@ -16,93 +16,81 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from collections import abc as _abc -from feast.core import DatastoreTable_pb2 as _DatastoreTable_pb2 -from feast.core import SqliteTable_pb2 as _SqliteTable_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DatastoreTable_pb2 +import feast.core.SqliteTable_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Infra(_message.Message): +class Infra(google.protobuf.message.Message): """Represents a set of infrastructure objects managed by Feast""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - INFRA_OBJECTS_FIELD_NUMBER: _builtins.int - @_builtins.property - def infra_objects(self) -> _containers.RepeatedCompositeFieldContainer[Global___InfraObject]: + INFRA_OBJECTS_FIELD_NUMBER: builtins.int + @property + def infra_objects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___InfraObject]: """List of infrastructure objects managed by Feast""" - def __init__( self, *, - infra_objects: _abc.Iterable[Global___InfraObject] | None = ..., + infra_objects: collections.abc.Iterable[global___InfraObject] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["infra_objects", b"infra_objects"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["infra_objects", b"infra_objects"]) -> None: ... -Global___Infra: _TypeAlias = Infra # noqa: Y015 +global___Infra = Infra -@_typing.final -class InfraObject(_message.Message): +class InfraObject(google.protobuf.message.Message): """Represents a single infrastructure object managed by Feast""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class CustomInfra(_message.Message): + class CustomInfra(google.protobuf.message.Message): """Allows for custom infra objects to be added""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELD_FIELD_NUMBER: _builtins.int - field: _builtins.bytes + FIELD_FIELD_NUMBER: builtins.int + field: builtins.bytes def __init__( self, *, - field: _builtins.bytes = ..., + field: builtins.bytes = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["field", b"field"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["field", b"field"]) -> None: ... - INFRA_OBJECT_CLASS_TYPE_FIELD_NUMBER: _builtins.int - DATASTORE_TABLE_FIELD_NUMBER: _builtins.int - SQLITE_TABLE_FIELD_NUMBER: _builtins.int - CUSTOM_INFRA_FIELD_NUMBER: _builtins.int - infra_object_class_type: _builtins.str + INFRA_OBJECT_CLASS_TYPE_FIELD_NUMBER: builtins.int + DATASTORE_TABLE_FIELD_NUMBER: builtins.int + SQLITE_TABLE_FIELD_NUMBER: builtins.int + CUSTOM_INFRA_FIELD_NUMBER: builtins.int + infra_object_class_type: builtins.str """Represents the Python class for the infrastructure object""" - @_builtins.property - def datastore_table(self) -> _DatastoreTable_pb2.DatastoreTable: ... - @_builtins.property - def sqlite_table(self) -> _SqliteTable_pb2.SqliteTable: ... - @_builtins.property - def custom_infra(self) -> Global___InfraObject.CustomInfra: ... + @property + def datastore_table(self) -> feast.core.DatastoreTable_pb2.DatastoreTable: ... + @property + def sqlite_table(self) -> feast.core.SqliteTable_pb2.SqliteTable: ... + @property + def custom_infra(self) -> global___InfraObject.CustomInfra: ... def __init__( self, *, - infra_object_class_type: _builtins.str = ..., - datastore_table: _DatastoreTable_pb2.DatastoreTable | None = ..., - sqlite_table: _SqliteTable_pb2.SqliteTable | None = ..., - custom_infra: Global___InfraObject.CustomInfra | None = ..., + infra_object_class_type: builtins.str = ..., + datastore_table: feast.core.DatastoreTable_pb2.DatastoreTable | None = ..., + sqlite_table: feast.core.SqliteTable_pb2.SqliteTable | None = ..., + custom_infra: global___InfraObject.CustomInfra | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "sqlite_table", b"sqlite_table"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "infra_object_class_type", b"infra_object_class_type", "sqlite_table", b"sqlite_table"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_infra_object: _TypeAlias = _typing.Literal["datastore_table", "sqlite_table", "custom_infra"] # noqa: Y015 - _WhichOneofArgType_infra_object: _TypeAlias = _typing.Literal["infra_object", b"infra_object"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_infra_object) -> _WhichOneofReturnType_infra_object | None: ... + def HasField(self, field_name: typing_extensions.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "sqlite_table", b"sqlite_table"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["custom_infra", b"custom_infra", "datastore_table", b"datastore_table", "infra_object", b"infra_object", "infra_object_class_type", b"infra_object_class_type", "sqlite_table", b"sqlite_table"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["infra_object", b"infra_object"]) -> typing_extensions.Literal["datastore_table", "sqlite_table", "custom_infra"] | None: ... -Global___InfraObject: _TypeAlias = InfraObject # noqa: Y015 +global___InfraObject = InfraObject diff --git a/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.py b/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.py index 313d93ca38d..1c264ec06c5 100644 --- a/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.py +++ b/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.py @@ -21,7 +21,7 @@ from feast.protos.feast.core import Aggregation_pb2 as feast_dot_core_dot_Aggregation__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$feast/core/OnDemandFeatureView.proto\x12\nfeast.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1c\x66\x65\x61st/core/FeatureView.proto\x1a&feast/core/FeatureViewProjection.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x1f\x66\x65\x61st/core/Transformation.proto\x1a\x1c\x66\x65\x61st/core/Aggregation.proto\"{\n\x13OnDemandFeatureView\x12\x31\n\x04spec\x18\x01 \x01(\x0b\x32#.feast.core.OnDemandFeatureViewSpec\x12\x31\n\x04meta\x18\x02 \x01(\x0b\x32#.feast.core.OnDemandFeatureViewMeta\"\xdd\x05\n\x17OnDemandFeatureViewSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12+\n\x08\x66\x65\x61tures\x18\x03 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x41\n\x07sources\x18\x04 \x03(\x0b\x32\x30.feast.core.OnDemandFeatureViewSpec.SourcesEntry\x12\x42\n\x15user_defined_function\x18\x05 \x01(\x0b\x32\x1f.feast.core.UserDefinedFunctionB\x02\x18\x01\x12\x43\n\x16\x66\x65\x61ture_transformation\x18\n \x01(\x0b\x32#.feast.core.FeatureTransformationV2\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12;\n\x04tags\x18\x07 \x03(\x0b\x32-.feast.core.OnDemandFeatureViewSpec.TagsEntry\x12\r\n\x05owner\x18\x08 \x01(\t\x12\x0c\n\x04mode\x18\x0b \x01(\t\x12\x1d\n\x15write_to_online_store\x18\x0c \x01(\x08\x12\x10\n\x08\x65ntities\x18\r \x03(\t\x12\x31\n\x0e\x65ntity_columns\x18\x0e \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x11\n\tsingleton\x18\x0f \x01(\x08\x12-\n\x0c\x61ggregations\x18\x10 \x03(\x0b\x32\x17.feast.core.Aggregation\x12\x0f\n\x07version\x18\x11 \x01(\t\x12\x0b\n\x03org\x18\x12 \x01(\t\x1aJ\n\x0cSourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.feast.core.OnDemandSource:\x02\x38\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc0\x01\n\x17OnDemandFeatureViewMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63urrent_version_number\x18\x03 \x01(\x05\x12\x12\n\nversion_id\x18\x04 \x01(\t\"\xc8\x01\n\x0eOnDemandSource\x12/\n\x0c\x66\x65\x61ture_view\x18\x01 \x01(\x0b\x32\x17.feast.core.FeatureViewH\x00\x12\x44\n\x17\x66\x65\x61ture_view_projection\x18\x03 \x01(\x0b\x32!.feast.core.FeatureViewProjectionH\x00\x12\x35\n\x13request_data_source\x18\x02 \x01(\x0b\x32\x16.feast.core.DataSourceH\x00\x42\x08\n\x06source\"H\n\x13UserDefinedFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x62ody\x18\x02 \x01(\x0c\x12\x11\n\tbody_text\x18\x03 \x01(\t:\x02\x18\x01\"X\n\x17OnDemandFeatureViewList\x12=\n\x14ondemandfeatureviews\x18\x01 \x03(\x0b\x32\x1f.feast.core.OnDemandFeatureViewB]\n\x10\x66\x65\x61st.proto.coreB\x18OnDemandFeatureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$feast/core/OnDemandFeatureView.proto\x12\nfeast.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1c\x66\x65\x61st/core/FeatureView.proto\x1a&feast/core/FeatureViewProjection.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x1f\x66\x65\x61st/core/Transformation.proto\x1a\x1c\x66\x65\x61st/core/Aggregation.proto\"{\n\x13OnDemandFeatureView\x12\x31\n\x04spec\x18\x01 \x01(\x0b\x32#.feast.core.OnDemandFeatureViewSpec\x12\x31\n\x04meta\x18\x02 \x01(\x0b\x32#.feast.core.OnDemandFeatureViewMeta\"\xef\x05\n\x17OnDemandFeatureViewSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12+\n\x08\x66\x65\x61tures\x18\x03 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x41\n\x07sources\x18\x04 \x03(\x0b\x32\x30.feast.core.OnDemandFeatureViewSpec.SourcesEntry\x12\x42\n\x15user_defined_function\x18\x05 \x01(\x0b\x32\x1f.feast.core.UserDefinedFunctionB\x02\x18\x01\x12\x43\n\x16\x66\x65\x61ture_transformation\x18\n \x01(\x0b\x32#.feast.core.FeatureTransformationV2\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12;\n\x04tags\x18\x07 \x03(\x0b\x32-.feast.core.OnDemandFeatureViewSpec.TagsEntry\x12\r\n\x05owner\x18\x08 \x01(\t\x12\x0c\n\x04mode\x18\x0b \x01(\t\x12\x1d\n\x15write_to_online_store\x18\x0c \x01(\x08\x12\x10\n\x08\x65ntities\x18\r \x03(\t\x12\x31\n\x0e\x65ntity_columns\x18\x0e \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x11\n\tsingleton\x18\x0f \x01(\x08\x12-\n\x0c\x61ggregations\x18\x10 \x03(\x0b\x32\x17.feast.core.Aggregation\x12\x0f\n\x07version\x18\x11 \x01(\t\x12\x0b\n\x03org\x18\x12 \x01(\t\x12\x10\n\x08\x64isabled\x18\x13 \x01(\x08\x1aJ\n\x0cSourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.feast.core.OnDemandSource:\x02\x38\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xed\x01\n\x17OnDemandFeatureViewMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63urrent_version_number\x18\x03 \x01(\x05\x12\x12\n\nversion_id\x18\x04 \x01(\t\x12+\n\x05state\x18\x05 \x01(\x0e\x32\x1c.feast.core.FeatureViewState\"\xc8\x01\n\x0eOnDemandSource\x12/\n\x0c\x66\x65\x61ture_view\x18\x01 \x01(\x0b\x32\x17.feast.core.FeatureViewH\x00\x12\x44\n\x17\x66\x65\x61ture_view_projection\x18\x03 \x01(\x0b\x32!.feast.core.FeatureViewProjectionH\x00\x12\x35\n\x13request_data_source\x18\x02 \x01(\x0b\x32\x16.feast.core.DataSourceH\x00\x42\x08\n\x06source\"H\n\x13UserDefinedFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x62ody\x18\x02 \x01(\x0c\x12\x11\n\tbody_text\x18\x03 \x01(\t:\x02\x18\x01\"X\n\x17OnDemandFeatureViewList\x12=\n\x14ondemandfeatureviews\x18\x01 \x03(\x0b\x32\x1f.feast.core.OnDemandFeatureViewB]\n\x10\x66\x65\x61st.proto.coreB\x18OnDemandFeatureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,17 +40,17 @@ _globals['_ONDEMANDFEATUREVIEW']._serialized_start=273 _globals['_ONDEMANDFEATUREVIEW']._serialized_end=396 _globals['_ONDEMANDFEATUREVIEWSPEC']._serialized_start=399 - _globals['_ONDEMANDFEATUREVIEWSPEC']._serialized_end=1132 - _globals['_ONDEMANDFEATUREVIEWSPEC_SOURCESENTRY']._serialized_start=1013 - _globals['_ONDEMANDFEATUREVIEWSPEC_SOURCESENTRY']._serialized_end=1087 - _globals['_ONDEMANDFEATUREVIEWSPEC_TAGSENTRY']._serialized_start=1089 - _globals['_ONDEMANDFEATUREVIEWSPEC_TAGSENTRY']._serialized_end=1132 - _globals['_ONDEMANDFEATUREVIEWMETA']._serialized_start=1135 - _globals['_ONDEMANDFEATUREVIEWMETA']._serialized_end=1327 - _globals['_ONDEMANDSOURCE']._serialized_start=1330 - _globals['_ONDEMANDSOURCE']._serialized_end=1530 - _globals['_USERDEFINEDFUNCTION']._serialized_start=1532 - _globals['_USERDEFINEDFUNCTION']._serialized_end=1604 - _globals['_ONDEMANDFEATUREVIEWLIST']._serialized_start=1606 - _globals['_ONDEMANDFEATUREVIEWLIST']._serialized_end=1694 + _globals['_ONDEMANDFEATUREVIEWSPEC']._serialized_end=1150 + _globals['_ONDEMANDFEATUREVIEWSPEC_SOURCESENTRY']._serialized_start=1031 + _globals['_ONDEMANDFEATUREVIEWSPEC_SOURCESENTRY']._serialized_end=1105 + _globals['_ONDEMANDFEATUREVIEWSPEC_TAGSENTRY']._serialized_start=1107 + _globals['_ONDEMANDFEATUREVIEWSPEC_TAGSENTRY']._serialized_end=1150 + _globals['_ONDEMANDFEATUREVIEWMETA']._serialized_start=1153 + _globals['_ONDEMANDFEATUREVIEWMETA']._serialized_end=1390 + _globals['_ONDEMANDSOURCE']._serialized_start=1393 + _globals['_ONDEMANDSOURCE']._serialized_end=1593 + _globals['_USERDEFINEDFUNCTION']._serialized_start=1595 + _globals['_USERDEFINEDFUNCTION']._serialized_end=1667 + _globals['_ONDEMANDFEATUREVIEWLIST']._serialized_start=1669 + _globals['_ONDEMANDFEATUREVIEWLIST']._serialized_end=1757 # @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi b/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi index 289ffd07de3..9b5db304df7 100644 --- a/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/OnDemandFeatureView_pb2.pyi @@ -16,299 +16,268 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.core import Aggregation_pb2 as _Aggregation_pb2 -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import FeatureViewProjection_pb2 as _FeatureViewProjection_pb2 -from feast.core import FeatureView_pb2 as _FeatureView_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from feast.core import Transformation_pb2 as _Transformation_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.Aggregation_pb2 +import feast.core.DataSource_pb2 +import feast.core.FeatureViewProjection_pb2 +import feast.core.FeatureView_pb2 +import feast.core.Feature_pb2 +import feast.core.Transformation_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing - -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias -else: - from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 13): - from warnings import deprecated as _deprecated +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import deprecated as _deprecated + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class OnDemandFeatureView(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class OnDemandFeatureView(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___OnDemandFeatureViewSpec: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___OnDemandFeatureViewSpec: """User-specified specifications of this feature view.""" - - @_builtins.property - def meta(self) -> Global___OnDemandFeatureViewMeta: ... + @property + def meta(self) -> global___OnDemandFeatureViewMeta: ... def __init__( self, *, - spec: Global___OnDemandFeatureViewSpec | None = ..., - meta: Global___OnDemandFeatureViewMeta | None = ..., + spec: global___OnDemandFeatureViewSpec | None = ..., + meta: global___OnDemandFeatureViewMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___OnDemandFeatureView: _TypeAlias = OnDemandFeatureView # noqa: Y015 +global___OnDemandFeatureView = OnDemandFeatureView -@_typing.final -class OnDemandFeatureViewSpec(_message.Message): +class OnDemandFeatureViewSpec(google.protobuf.message.Message): """Next available id: 19""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class SourcesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class SourcesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> Global___OnDemandSource: ... + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> global___OnDemandSource: ... def __init__( self, *, - key: _builtins.str = ..., - value: Global___OnDemandSource | None = ..., + key: builtins.str = ..., + value: global___OnDemandSource | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - SOURCES_FIELD_NUMBER: _builtins.int - USER_DEFINED_FUNCTION_FIELD_NUMBER: _builtins.int - FEATURE_TRANSFORMATION_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - MODE_FIELD_NUMBER: _builtins.int - WRITE_TO_ONLINE_STORE_FIELD_NUMBER: _builtins.int - ENTITIES_FIELD_NUMBER: _builtins.int - ENTITY_COLUMNS_FIELD_NUMBER: _builtins.int - SINGLETON_FIELD_NUMBER: _builtins.int - AGGREGATIONS_FIELD_NUMBER: _builtins.int - VERSION_FIELD_NUMBER: _builtins.int - ORG_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + SOURCES_FIELD_NUMBER: builtins.int + USER_DEFINED_FUNCTION_FIELD_NUMBER: builtins.int + FEATURE_TRANSFORMATION_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + MODE_FIELD_NUMBER: builtins.int + WRITE_TO_ONLINE_STORE_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + ENTITY_COLUMNS_FIELD_NUMBER: builtins.int + SINGLETON_FIELD_NUMBER: builtins.int + AGGREGATIONS_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + ORG_FIELD_NUMBER: builtins.int + DISABLED_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the feature view. Must be unique. Not updated.""" - project: _builtins.str + project: builtins.str """Name of Feast project that this feature view belongs to.""" - description: _builtins.str - """Description of the on demand feature view.""" - owner: _builtins.str - """Owner of the on demand feature view.""" - mode: _builtins.str - write_to_online_store: _builtins.bool - singleton: _builtins.bool - version: _builtins.str - """User-specified version pin (e.g. "latest", "v2", "version2")""" - org: _builtins.str - """Organizational unit that owns this feature view (e.g. "ads", "search").""" - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of features specifications for each feature defined with this feature view.""" - - @_builtins.property - def sources(self) -> _containers.MessageMap[_builtins.str, Global___OnDemandSource]: + @property + def sources(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___OnDemandSource]: """Map of sources for this feature view.""" - - @_builtins.property - @_deprecated("""This field has been marked as deprecated using proto field options.""") - def user_defined_function(self) -> Global___UserDefinedFunction: ... - @_builtins.property - def feature_transformation(self) -> _Transformation_pb2.FeatureTransformationV2: + @property + def user_defined_function(self) -> global___UserDefinedFunction: ... + @property + def feature_transformation(self) -> feast.core.Transformation_pb2.FeatureTransformationV2: """Oneof with {user_defined_function, on_demand_substrait_transformation}""" - - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + description: builtins.str + """Description of the on demand feature view.""" + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata.""" - - @_builtins.property - def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + owner: builtins.str + """Owner of the on demand feature view.""" + mode: builtins.str + write_to_online_store: builtins.bool + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of names of entities associated with this feature view.""" - - @_builtins.property - def entity_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def entity_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of specifications for each entity defined as part of this feature view.""" - - @_builtins.property - def aggregations(self) -> _containers.RepeatedCompositeFieldContainer[_Aggregation_pb2.Aggregation]: + singleton: builtins.bool + @property + def aggregations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Aggregation_pb2.Aggregation]: """Aggregation definitions""" - + version: builtins.str + """User-specified version pin (e.g. "latest", "v2", "version2")""" + org: builtins.str + """Organizational unit that owns this feature view (e.g. "ads", "search").""" + disabled: builtins.bool + """Whether this feature view is disabled for serving. + When true, the feature view will not serve features. + Defaults to false (enabled) for backward compatibility. + """ def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - sources: _abc.Mapping[_builtins.str, Global___OnDemandSource] | None = ..., - user_defined_function: Global___UserDefinedFunction | None = ..., - feature_transformation: _Transformation_pb2.FeatureTransformationV2 | None = ..., - description: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - owner: _builtins.str = ..., - mode: _builtins.str = ..., - write_to_online_store: _builtins.bool = ..., - entities: _abc.Iterable[_builtins.str] | None = ..., - entity_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - singleton: _builtins.bool = ..., - aggregations: _abc.Iterable[_Aggregation_pb2.Aggregation] | None = ..., - version: _builtins.str = ..., - org: _builtins.str = ..., + name: builtins.str = ..., + project: builtins.str = ..., + features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + sources: collections.abc.Mapping[builtins.str, global___OnDemandSource] | None = ..., + user_defined_function: global___UserDefinedFunction | None = ..., + feature_transformation: feast.core.Transformation_pb2.FeatureTransformationV2 | None = ..., + description: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + owner: builtins.str = ..., + mode: builtins.str = ..., + write_to_online_store: builtins.bool = ..., + entities: collections.abc.Iterable[builtins.str] | None = ..., + entity_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + singleton: builtins.bool = ..., + aggregations: collections.abc.Iterable[feast.core.Aggregation_pb2.Aggregation] | None = ..., + version: builtins.str = ..., + org: builtins.str = ..., + disabled: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feature_transformation", b"feature_transformation", "user_defined_function", b"user_defined_function"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["aggregations", b"aggregations", "description", b"description", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "org", b"org", "owner", b"owner", "project", b"project", "singleton", b"singleton", "sources", b"sources", "tags", b"tags", "user_defined_function", b"user_defined_function", "version", b"version", "write_to_online_store", b"write_to_online_store"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["feature_transformation", b"feature_transformation", "user_defined_function", b"user_defined_function"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["aggregations", b"aggregations", "description", b"description", "disabled", b"disabled", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "org", b"org", "owner", b"owner", "project", b"project", "singleton", b"singleton", "sources", b"sources", "tags", b"tags", "user_defined_function", b"user_defined_function", "version", b"version", "write_to_online_store", b"write_to_online_store"]) -> None: ... -Global___OnDemandFeatureViewSpec: _TypeAlias = OnDemandFeatureViewSpec # noqa: Y015 +global___OnDemandFeatureViewSpec = OnDemandFeatureViewSpec -@_typing.final -class OnDemandFeatureViewMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class OnDemandFeatureViewMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - CURRENT_VERSION_NUMBER_FIELD_NUMBER: _builtins.int - VERSION_ID_FIELD_NUMBER: _builtins.int - current_version_number: _builtins.int - """The current version number of this feature view in the version history.""" - version_id: _builtins.str - """Auto-generated UUID identifying this specific version.""" - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + CURRENT_VERSION_NUMBER_FIELD_NUMBER: builtins.int + VERSION_ID_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time where this Feature View is created""" - - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time where this Feature View is last updated""" - + current_version_number: builtins.int + """The current version number of this feature view in the version history.""" + version_id: builtins.str + """Auto-generated UUID identifying this specific version.""" + state: feast.core.FeatureView_pb2.FeatureViewState.ValueType + """Lifecycle state of this feature view.""" def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., - current_version_number: _builtins.int = ..., - version_id: _builtins.str = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + current_version_number: builtins.int = ..., + version_id: builtins.str = ..., + state: feast.core.FeatureView_pb2.FeatureViewState.ValueType = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "version_id", b"version_id"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___OnDemandFeatureViewMeta: _TypeAlias = OnDemandFeatureViewMeta # noqa: Y015 - -@_typing.final -class OnDemandSource(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_PROJECTION_FIELD_NUMBER: _builtins.int - REQUEST_DATA_SOURCE_FIELD_NUMBER: _builtins.int - @_builtins.property - def feature_view(self) -> _FeatureView_pb2.FeatureView: ... - @_builtins.property - def feature_view_projection(self) -> _FeatureViewProjection_pb2.FeatureViewProjection: ... - @_builtins.property - def request_data_source(self) -> _DataSource_pb2.DataSource: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "current_version_number", b"current_version_number", "last_updated_timestamp", b"last_updated_timestamp", "state", b"state", "version_id", b"version_id"]) -> None: ... + +global___OnDemandFeatureViewMeta = OnDemandFeatureViewMeta + +class OnDemandSource(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURE_VIEW_FIELD_NUMBER: builtins.int + FEATURE_VIEW_PROJECTION_FIELD_NUMBER: builtins.int + REQUEST_DATA_SOURCE_FIELD_NUMBER: builtins.int + @property + def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... + @property + def feature_view_projection(self) -> feast.core.FeatureViewProjection_pb2.FeatureViewProjection: ... + @property + def request_data_source(self) -> feast.core.DataSource_pb2.DataSource: ... def __init__( self, *, - feature_view: _FeatureView_pb2.FeatureView | None = ..., - feature_view_projection: _FeatureViewProjection_pb2.FeatureViewProjection | None = ..., - request_data_source: _DataSource_pb2.DataSource | None = ..., + feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., + feature_view_projection: feast.core.FeatureViewProjection_pb2.FeatureViewProjection | None = ..., + request_data_source: feast.core.DataSource_pb2.DataSource | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_source: _TypeAlias = _typing.Literal["feature_view", "feature_view_projection", "request_data_source"] # noqa: Y015 - _WhichOneofArgType_source: _TypeAlias = _typing.Literal["source", b"source"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_source) -> _WhichOneofReturnType_source | None: ... + def HasField(self, field_name: typing_extensions.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_view", b"feature_view", "feature_view_projection", b"feature_view_projection", "request_data_source", b"request_data_source", "source", b"source"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["source", b"source"]) -> typing_extensions.Literal["feature_view", "feature_view_projection", "request_data_source"] | None: ... -Global___OnDemandSource: _TypeAlias = OnDemandSource # noqa: Y015 +global___OnDemandSource = OnDemandSource -@_deprecated("""This message has been marked as deprecated using proto message options.""") -@_typing.final -class UserDefinedFunction(_message.Message): +class UserDefinedFunction(google.protobuf.message.Message): """Serialized representation of python function.""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - BODY_FIELD_NUMBER: _builtins.int - BODY_TEXT_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + BODY_FIELD_NUMBER: builtins.int + BODY_TEXT_FIELD_NUMBER: builtins.int + name: builtins.str """The function name""" - body: _builtins.bytes + body: builtins.bytes """The python-syntax function body (serialized by dill)""" - body_text: _builtins.str + body_text: builtins.str """The string representation of the udf""" def __init__( self, *, - name: _builtins.str = ..., - body: _builtins.bytes = ..., - body_text: _builtins.str = ..., + name: builtins.str = ..., + body: builtins.bytes = ..., + body_text: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "body_text", b"body_text", "name", b"name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "body_text", b"body_text", "name", b"name"]) -> None: ... -Global___UserDefinedFunction: _TypeAlias = UserDefinedFunction # noqa: Y015 +global___UserDefinedFunction = UserDefinedFunction -@_typing.final -class OnDemandFeatureViewList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class OnDemandFeatureViewList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ONDEMANDFEATUREVIEWS_FIELD_NUMBER: _builtins.int - @_builtins.property - def ondemandfeatureviews(self) -> _containers.RepeatedCompositeFieldContainer[Global___OnDemandFeatureView]: ... + ONDEMANDFEATUREVIEWS_FIELD_NUMBER: builtins.int + @property + def ondemandfeatureviews(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OnDemandFeatureView]: ... def __init__( self, *, - ondemandfeatureviews: _abc.Iterable[Global___OnDemandFeatureView] | None = ..., + ondemandfeatureviews: collections.abc.Iterable[global___OnDemandFeatureView] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["ondemandfeatureviews", b"ondemandfeatureviews"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["ondemandfeatureviews", b"ondemandfeatureviews"]) -> None: ... -Global___OnDemandFeatureViewList: _TypeAlias = OnDemandFeatureViewList # noqa: Y015 +global___OnDemandFeatureViewList = OnDemandFeatureViewList diff --git a/sdk/python/feast/protos/feast/core/Permission_pb2.pyi b/sdk/python/feast/protos/feast/core/Permission_pb2.pyi index 4acc8ac3e1e..b2387d29465 100644 --- a/sdk/python/feast/protos/feast/core/Permission_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Permission_pb2.pyi @@ -2,62 +2,55 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from feast.core import Policy_pb2 as _Policy_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -import builtins as _builtins +import builtins +import collections.abc +import feast.core.Policy_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Permission(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Permission(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___PermissionSpec: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___PermissionSpec: """User-specified specifications of this permission.""" - - @_builtins.property - def meta(self) -> Global___PermissionMeta: + @property + def meta(self) -> global___PermissionMeta: """System-populated metadata for this permission.""" - def __init__( self, *, - spec: Global___PermissionSpec | None = ..., - meta: Global___PermissionMeta | None = ..., + spec: global___PermissionSpec | None = ..., + meta: global___PermissionMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___Permission: _TypeAlias = Permission # noqa: Y015 +global___Permission = Permission -@_typing.final -class PermissionSpec(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class PermissionSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _AuthzedAction: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - class _AuthzedActionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[PermissionSpec._AuthzedAction.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor + class _AuthzedActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PermissionSpec._AuthzedAction.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor CREATE: PermissionSpec._AuthzedAction.ValueType # 0 DESCRIBE: PermissionSpec._AuthzedAction.ValueType # 1 UPDATE: PermissionSpec._AuthzedAction.ValueType # 2 @@ -78,11 +71,11 @@ class PermissionSpec(_message.Message): WRITE_OFFLINE: PermissionSpec.AuthzedAction.ValueType # 7 class _Type: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[PermissionSpec._Type.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor + class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PermissionSpec._Type.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor FEATURE_VIEW: PermissionSpec._Type.ValueType # 0 ON_DEMAND_FEATURE_VIEW: PermissionSpec._Type.ValueType # 1 BATCH_FEATURE_VIEW: PermissionSpec._Type.ValueType # 2 @@ -108,108 +101,96 @@ class PermissionSpec(_message.Message): PERMISSION: PermissionSpec.Type.ValueType # 9 PROJECT: PermissionSpec.Type.ValueType # 10 - @_typing.final - class RequiredTagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class RequiredTagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - TYPES_FIELD_NUMBER: _builtins.int - NAME_PATTERNS_FIELD_NUMBER: _builtins.int - REQUIRED_TAGS_FIELD_NUMBER: _builtins.int - ACTIONS_FIELD_NUMBER: _builtins.int - POLICY_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + TYPES_FIELD_NUMBER: builtins.int + NAME_PATTERNS_FIELD_NUMBER: builtins.int + REQUIRED_TAGS_FIELD_NUMBER: builtins.int + ACTIONS_FIELD_NUMBER: builtins.int + POLICY_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the permission. Must be unique. Not updated.""" - project: _builtins.str + project: builtins.str """Name of Feast project.""" - @_builtins.property - def types(self) -> _containers.RepeatedScalarFieldContainer[Global___PermissionSpec.Type.ValueType]: ... - @_builtins.property - def name_patterns(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @_builtins.property - def required_tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def actions(self) -> _containers.RepeatedScalarFieldContainer[Global___PermissionSpec.AuthzedAction.ValueType]: + @property + def types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___PermissionSpec.Type.ValueType]: ... + @property + def name_patterns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def required_tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def actions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___PermissionSpec.AuthzedAction.ValueType]: """List of actions.""" - - @_builtins.property - def policy(self) -> _Policy_pb2.Policy: + @property + def policy(self) -> feast.core.Policy_pb2.Policy: """the policy.""" - - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - types: _abc.Iterable[Global___PermissionSpec.Type.ValueType] | None = ..., - name_patterns: _abc.Iterable[_builtins.str] | None = ..., - required_tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - actions: _abc.Iterable[Global___PermissionSpec.AuthzedAction.ValueType] | None = ..., - policy: _Policy_pb2.Policy | None = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + name: builtins.str = ..., + project: builtins.str = ..., + types: collections.abc.Iterable[global___PermissionSpec.Type.ValueType] | None = ..., + name_patterns: collections.abc.Iterable[builtins.str] | None = ..., + required_tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + actions: collections.abc.Iterable[global___PermissionSpec.AuthzedAction.ValueType] | None = ..., + policy: feast.core.Policy_pb2.Policy | None = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["policy", b"policy"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["actions", b"actions", "name", b"name", "name_patterns", b"name_patterns", "policy", b"policy", "project", b"project", "required_tags", b"required_tags", "tags", b"tags", "types", b"types"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___PermissionSpec: _TypeAlias = PermissionSpec # noqa: Y015 - -@_typing.final -class PermissionMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... + def HasField(self, field_name: typing_extensions.Literal["policy", b"policy"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["actions", b"actions", "name", b"name", "name_patterns", b"name_patterns", "policy", b"policy", "project", b"project", "required_tags", b"required_tags", "tags", b"tags", "types", b"types"]) -> None: ... + +global___PermissionSpec = PermissionSpec + +class PermissionMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... -Global___PermissionMeta: _TypeAlias = PermissionMeta # noqa: Y015 +global___PermissionMeta = PermissionMeta diff --git a/sdk/python/feast/protos/feast/core/Policy_pb2.pyi b/sdk/python/feast/protos/feast/core/Policy_pb2.pyi index 6c8b6e49206..8410e396586 100644 --- a/sdk/python/feast/protos/feast/core/Policy_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Policy_pb2.pyi @@ -2,142 +2,122 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Policy(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Policy(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ROLE_BASED_POLICY_FIELD_NUMBER: _builtins.int - GROUP_BASED_POLICY_FIELD_NUMBER: _builtins.int - NAMESPACE_BASED_POLICY_FIELD_NUMBER: _builtins.int - COMBINED_GROUP_NAMESPACE_POLICY_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ROLE_BASED_POLICY_FIELD_NUMBER: builtins.int + GROUP_BASED_POLICY_FIELD_NUMBER: builtins.int + NAMESPACE_BASED_POLICY_FIELD_NUMBER: builtins.int + COMBINED_GROUP_NAMESPACE_POLICY_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the policy.""" - project: _builtins.str + project: builtins.str """Name of Feast project.""" - @_builtins.property - def role_based_policy(self) -> Global___RoleBasedPolicy: ... - @_builtins.property - def group_based_policy(self) -> Global___GroupBasedPolicy: ... - @_builtins.property - def namespace_based_policy(self) -> Global___NamespaceBasedPolicy: ... - @_builtins.property - def combined_group_namespace_policy(self) -> Global___CombinedGroupNamespacePolicy: ... + @property + def role_based_policy(self) -> global___RoleBasedPolicy: ... + @property + def group_based_policy(self) -> global___GroupBasedPolicy: ... + @property + def namespace_based_policy(self) -> global___NamespaceBasedPolicy: ... + @property + def combined_group_namespace_policy(self) -> global___CombinedGroupNamespacePolicy: ... def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - role_based_policy: Global___RoleBasedPolicy | None = ..., - group_based_policy: Global___GroupBasedPolicy | None = ..., - namespace_based_policy: Global___NamespaceBasedPolicy | None = ..., - combined_group_namespace_policy: Global___CombinedGroupNamespacePolicy | None = ..., + name: builtins.str = ..., + project: builtins.str = ..., + role_based_policy: global___RoleBasedPolicy | None = ..., + group_based_policy: global___GroupBasedPolicy | None = ..., + namespace_based_policy: global___NamespaceBasedPolicy | None = ..., + combined_group_namespace_policy: global___CombinedGroupNamespacePolicy | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "role_based_policy", b"role_based_policy"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "name", b"name", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "project", b"project", "role_based_policy", b"role_based_policy"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_policy_type: _TypeAlias = _typing.Literal["role_based_policy", "group_based_policy", "namespace_based_policy", "combined_group_namespace_policy"] # noqa: Y015 - _WhichOneofArgType_policy_type: _TypeAlias = _typing.Literal["policy_type", b"policy_type"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_policy_type) -> _WhichOneofReturnType_policy_type | None: ... - -Global___Policy: _TypeAlias = Policy # noqa: Y015 - -@_typing.final -class RoleBasedPolicy(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - ROLES_FIELD_NUMBER: _builtins.int - @_builtins.property - def roles(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: - """List of roles in this policy.""" + def HasField(self, field_name: typing_extensions.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "role_based_policy", b"role_based_policy"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["combined_group_namespace_policy", b"combined_group_namespace_policy", "group_based_policy", b"group_based_policy", "name", b"name", "namespace_based_policy", b"namespace_based_policy", "policy_type", b"policy_type", "project", b"project", "role_based_policy", b"role_based_policy"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["policy_type", b"policy_type"]) -> typing_extensions.Literal["role_based_policy", "group_based_policy", "namespace_based_policy", "combined_group_namespace_policy"] | None: ... + +global___Policy = Policy +class RoleBasedPolicy(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ROLES_FIELD_NUMBER: builtins.int + @property + def roles(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """List of roles in this policy.""" def __init__( self, *, - roles: _abc.Iterable[_builtins.str] | None = ..., + roles: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["roles", b"roles"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["roles", b"roles"]) -> None: ... -Global___RoleBasedPolicy: _TypeAlias = RoleBasedPolicy # noqa: Y015 +global___RoleBasedPolicy = RoleBasedPolicy -@_typing.final -class GroupBasedPolicy(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GroupBasedPolicy(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - GROUPS_FIELD_NUMBER: _builtins.int - @_builtins.property - def groups(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + GROUPS_FIELD_NUMBER: builtins.int + @property + def groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of groups in this policy.""" - def __init__( self, *, - groups: _abc.Iterable[_builtins.str] | None = ..., + groups: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["groups", b"groups"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["groups", b"groups"]) -> None: ... -Global___GroupBasedPolicy: _TypeAlias = GroupBasedPolicy # noqa: Y015 +global___GroupBasedPolicy = GroupBasedPolicy -@_typing.final -class NamespaceBasedPolicy(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class NamespaceBasedPolicy(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMESPACES_FIELD_NUMBER: _builtins.int - @_builtins.property - def namespaces(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + NAMESPACES_FIELD_NUMBER: builtins.int + @property + def namespaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of namespaces in this policy.""" - def __init__( self, *, - namespaces: _abc.Iterable[_builtins.str] | None = ..., + namespaces: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["namespaces", b"namespaces"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["namespaces", b"namespaces"]) -> None: ... -Global___NamespaceBasedPolicy: _TypeAlias = NamespaceBasedPolicy # noqa: Y015 +global___NamespaceBasedPolicy = NamespaceBasedPolicy -@_typing.final -class CombinedGroupNamespacePolicy(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class CombinedGroupNamespacePolicy(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - GROUPS_FIELD_NUMBER: _builtins.int - NAMESPACES_FIELD_NUMBER: _builtins.int - @_builtins.property - def groups(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + GROUPS_FIELD_NUMBER: builtins.int + NAMESPACES_FIELD_NUMBER: builtins.int + @property + def groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of groups in this policy.""" - - @_builtins.property - def namespaces(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + @property + def namespaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of namespaces in this policy.""" - def __init__( self, *, - groups: _abc.Iterable[_builtins.str] | None = ..., - namespaces: _abc.Iterable[_builtins.str] | None = ..., + groups: collections.abc.Iterable[builtins.str] | None = ..., + namespaces: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["groups", b"groups", "namespaces", b"namespaces"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["groups", b"groups", "namespaces", b"namespaces"]) -> None: ... -Global___CombinedGroupNamespacePolicy: _TypeAlias = CombinedGroupNamespacePolicy # noqa: Y015 +global___CombinedGroupNamespacePolicy = CombinedGroupNamespacePolicy diff --git a/sdk/python/feast/protos/feast/core/Project_pb2.pyi b/sdk/python/feast/protos/feast/core/Project_pb2.pyi index d3844463544..e3cce2ec425 100644 --- a/sdk/python/feast/protos/feast/core/Project_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Project_pb2.pyi @@ -16,121 +16,104 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Project(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Project(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___ProjectSpec: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___ProjectSpec: """User-specified specifications of this entity.""" - - @_builtins.property - def meta(self) -> Global___ProjectMeta: + @property + def meta(self) -> global___ProjectMeta: """System-populated metadata for this entity.""" - def __init__( self, *, - spec: Global___ProjectSpec | None = ..., - meta: Global___ProjectMeta | None = ..., + spec: global___ProjectSpec | None = ..., + meta: global___ProjectMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___Project: _TypeAlias = Project # noqa: Y015 +global___Project = Project -@_typing.final -class ProjectSpec(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ProjectSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - NAME_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the Project""" - description: _builtins.str + description: builtins.str """Description of the Project""" - owner: _builtins.str - """Owner of the Project""" - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - + owner: builtins.str + """Owner of the Project""" def __init__( self, *, - name: _builtins.str = ..., - description: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - owner: _builtins.str = ..., + name: builtins.str = ..., + description: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + owner: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "name", b"name", "owner", b"owner", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "owner", b"owner", "tags", b"tags"]) -> None: ... -Global___ProjectSpec: _TypeAlias = ProjectSpec # noqa: Y015 +global___ProjectSpec = ProjectSpec -@_typing.final -class ProjectMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ProjectMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time when the Project is created""" - - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time when the Project is last updated with registry changes (Apply stage)""" - def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> None: ... -Global___ProjectMeta: _TypeAlias = ProjectMeta # noqa: Y015 +global___ProjectMeta = ProjectMeta diff --git a/sdk/python/feast/protos/feast/core/Registry_pb2.pyi b/sdk/python/feast/protos/feast/core/Registry_pb2.pyi index 5aafdaf21fd..29bd76323e3 100644 --- a/sdk/python/feast/protos/feast/core/Registry_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Registry_pb2.pyi @@ -16,144 +16,130 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from collections import abc as _abc -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import Entity_pb2 as _Entity_pb2 -from feast.core import FeatureService_pb2 as _FeatureService_pb2 -from feast.core import FeatureTable_pb2 as _FeatureTable_pb2 -from feast.core import FeatureViewVersion_pb2 as _FeatureViewVersion_pb2 -from feast.core import FeatureView_pb2 as _FeatureView_pb2 -from feast.core import InfraObject_pb2 as _InfraObject_pb2 -from feast.core import OnDemandFeatureView_pb2 as _OnDemandFeatureView_pb2 -from feast.core import Permission_pb2 as _Permission_pb2 -from feast.core import Project_pb2 as _Project_pb2 -from feast.core import SavedDataset_pb2 as _SavedDataset_pb2 -from feast.core import StreamFeatureView_pb2 as _StreamFeatureView_pb2 -from feast.core import ValidationProfile_pb2 as _ValidationProfile_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import feast.core.Entity_pb2 +import feast.core.FeatureService_pb2 +import feast.core.FeatureTable_pb2 +import feast.core.FeatureViewVersion_pb2 +import feast.core.FeatureView_pb2 +import feast.core.InfraObject_pb2 +import feast.core.OnDemandFeatureView_pb2 +import feast.core.Permission_pb2 +import feast.core.Project_pb2 +import feast.core.SavedDataset_pb2 +import feast.core.StreamFeatureView_pb2 +import feast.core.ValidationProfile_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing - -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias -else: - from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 13): - from warnings import deprecated as _deprecated +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import deprecated as _deprecated + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Registry(_message.Message): +class Registry(google.protobuf.message.Message): """Next id: 19""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITIES_FIELD_NUMBER: _builtins.int - FEATURE_TABLES_FIELD_NUMBER: _builtins.int - FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - DATA_SOURCES_FIELD_NUMBER: _builtins.int - ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - STREAM_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - FEATURE_SERVICES_FIELD_NUMBER: _builtins.int - SAVED_DATASETS_FIELD_NUMBER: _builtins.int - VALIDATION_REFERENCES_FIELD_NUMBER: _builtins.int - INFRA_FIELD_NUMBER: _builtins.int - PROJECT_METADATA_FIELD_NUMBER: _builtins.int - REGISTRY_SCHEMA_VERSION_FIELD_NUMBER: _builtins.int - VERSION_ID_FIELD_NUMBER: _builtins.int - LAST_UPDATED_FIELD_NUMBER: _builtins.int - PERMISSIONS_FIELD_NUMBER: _builtins.int - PROJECTS_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_VERSION_HISTORY_FIELD_NUMBER: _builtins.int - registry_schema_version: _builtins.str + ENTITIES_FIELD_NUMBER: builtins.int + FEATURE_TABLES_FIELD_NUMBER: builtins.int + FEATURE_VIEWS_FIELD_NUMBER: builtins.int + DATA_SOURCES_FIELD_NUMBER: builtins.int + ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: builtins.int + STREAM_FEATURE_VIEWS_FIELD_NUMBER: builtins.int + FEATURE_SERVICES_FIELD_NUMBER: builtins.int + SAVED_DATASETS_FIELD_NUMBER: builtins.int + VALIDATION_REFERENCES_FIELD_NUMBER: builtins.int + INFRA_FIELD_NUMBER: builtins.int + PROJECT_METADATA_FIELD_NUMBER: builtins.int + REGISTRY_SCHEMA_VERSION_FIELD_NUMBER: builtins.int + VERSION_ID_FIELD_NUMBER: builtins.int + LAST_UPDATED_FIELD_NUMBER: builtins.int + PERMISSIONS_FIELD_NUMBER: builtins.int + PROJECTS_FIELD_NUMBER: builtins.int + FEATURE_VIEW_VERSION_HISTORY_FIELD_NUMBER: builtins.int + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Entity_pb2.Entity]: ... + @property + def feature_tables(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureTable_pb2.FeatureTable]: ... + @property + def feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureView_pb2.FeatureView]: ... + @property + def data_sources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.DataSource_pb2.DataSource]: ... + @property + def on_demand_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView]: ... + @property + def stream_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.StreamFeatureView_pb2.StreamFeatureView]: ... + @property + def feature_services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureService_pb2.FeatureService]: ... + @property + def saved_datasets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.SavedDataset_pb2.SavedDataset]: ... + @property + def validation_references(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.ValidationProfile_pb2.ValidationReference]: ... + @property + def infra(self) -> feast.core.InfraObject_pb2.Infra: ... + @property + def project_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProjectMetadata]: + """Tracking metadata of Feast by project""" + registry_schema_version: builtins.str """to support migrations; incremented when schema is changed""" - version_id: _builtins.str + version_id: builtins.str """version id, random string generated on each update of the data; now used only for debugging purposes""" - @_builtins.property - def entities(self) -> _containers.RepeatedCompositeFieldContainer[_Entity_pb2.Entity]: ... - @_builtins.property - def feature_tables(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureTable_pb2.FeatureTable]: ... - @_builtins.property - def feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureView_pb2.FeatureView]: ... - @_builtins.property - def data_sources(self) -> _containers.RepeatedCompositeFieldContainer[_DataSource_pb2.DataSource]: ... - @_builtins.property - def on_demand_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_OnDemandFeatureView_pb2.OnDemandFeatureView]: ... - @_builtins.property - def stream_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_StreamFeatureView_pb2.StreamFeatureView]: ... - @_builtins.property - def feature_services(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureService_pb2.FeatureService]: ... - @_builtins.property - def saved_datasets(self) -> _containers.RepeatedCompositeFieldContainer[_SavedDataset_pb2.SavedDataset]: ... - @_builtins.property - def validation_references(self) -> _containers.RepeatedCompositeFieldContainer[_ValidationProfile_pb2.ValidationReference]: ... - @_builtins.property - def infra(self) -> _InfraObject_pb2.Infra: ... - @_builtins.property - @_deprecated("""This field has been marked as deprecated using proto field options.""") - def project_metadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProjectMetadata]: - """Tracking metadata of Feast by project""" - - @_builtins.property - def last_updated(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def permissions(self) -> _containers.RepeatedCompositeFieldContainer[_Permission_pb2.Permission]: ... - @_builtins.property - def projects(self) -> _containers.RepeatedCompositeFieldContainer[_Project_pb2.Project]: ... - @_builtins.property - def feature_view_version_history(self) -> _FeatureViewVersion_pb2.FeatureViewVersionHistory: ... + @property + def last_updated(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Permission_pb2.Permission]: ... + @property + def projects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Project_pb2.Project]: ... + @property + def feature_view_version_history(self) -> feast.core.FeatureViewVersion_pb2.FeatureViewVersionHistory: ... def __init__( self, *, - entities: _abc.Iterable[_Entity_pb2.Entity] | None = ..., - feature_tables: _abc.Iterable[_FeatureTable_pb2.FeatureTable] | None = ..., - feature_views: _abc.Iterable[_FeatureView_pb2.FeatureView] | None = ..., - data_sources: _abc.Iterable[_DataSource_pb2.DataSource] | None = ..., - on_demand_feature_views: _abc.Iterable[_OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., - stream_feature_views: _abc.Iterable[_StreamFeatureView_pb2.StreamFeatureView] | None = ..., - feature_services: _abc.Iterable[_FeatureService_pb2.FeatureService] | None = ..., - saved_datasets: _abc.Iterable[_SavedDataset_pb2.SavedDataset] | None = ..., - validation_references: _abc.Iterable[_ValidationProfile_pb2.ValidationReference] | None = ..., - infra: _InfraObject_pb2.Infra | None = ..., - project_metadata: _abc.Iterable[Global___ProjectMetadata] | None = ..., - registry_schema_version: _builtins.str = ..., - version_id: _builtins.str = ..., - last_updated: _timestamp_pb2.Timestamp | None = ..., - permissions: _abc.Iterable[_Permission_pb2.Permission] | None = ..., - projects: _abc.Iterable[_Project_pb2.Project] | None = ..., - feature_view_version_history: _FeatureViewVersion_pb2.FeatureViewVersionHistory | None = ..., + entities: collections.abc.Iterable[feast.core.Entity_pb2.Entity] | None = ..., + feature_tables: collections.abc.Iterable[feast.core.FeatureTable_pb2.FeatureTable] | None = ..., + feature_views: collections.abc.Iterable[feast.core.FeatureView_pb2.FeatureView] | None = ..., + data_sources: collections.abc.Iterable[feast.core.DataSource_pb2.DataSource] | None = ..., + on_demand_feature_views: collections.abc.Iterable[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., + stream_feature_views: collections.abc.Iterable[feast.core.StreamFeatureView_pb2.StreamFeatureView] | None = ..., + feature_services: collections.abc.Iterable[feast.core.FeatureService_pb2.FeatureService] | None = ..., + saved_datasets: collections.abc.Iterable[feast.core.SavedDataset_pb2.SavedDataset] | None = ..., + validation_references: collections.abc.Iterable[feast.core.ValidationProfile_pb2.ValidationReference] | None = ..., + infra: feast.core.InfraObject_pb2.Infra | None = ..., + project_metadata: collections.abc.Iterable[global___ProjectMetadata] | None = ..., + registry_schema_version: builtins.str = ..., + version_id: builtins.str = ..., + last_updated: google.protobuf.timestamp_pb2.Timestamp | None = ..., + permissions: collections.abc.Iterable[feast.core.Permission_pb2.Permission] | None = ..., + projects: collections.abc.Iterable[feast.core.Project_pb2.Project] | None = ..., + feature_view_version_history: feast.core.FeatureViewVersion_pb2.FeatureViewVersionHistory | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feature_view_version_history", b"feature_view_version_history", "infra", b"infra", "last_updated", b"last_updated"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["data_sources", b"data_sources", "entities", b"entities", "feature_services", b"feature_services", "feature_tables", b"feature_tables", "feature_view_version_history", b"feature_view_version_history", "feature_views", b"feature_views", "infra", b"infra", "last_updated", b"last_updated", "on_demand_feature_views", b"on_demand_feature_views", "permissions", b"permissions", "project_metadata", b"project_metadata", "projects", b"projects", "registry_schema_version", b"registry_schema_version", "saved_datasets", b"saved_datasets", "stream_feature_views", b"stream_feature_views", "validation_references", b"validation_references", "version_id", b"version_id"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["feature_view_version_history", b"feature_view_version_history", "infra", b"infra", "last_updated", b"last_updated"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["data_sources", b"data_sources", "entities", b"entities", "feature_services", b"feature_services", "feature_tables", b"feature_tables", "feature_view_version_history", b"feature_view_version_history", "feature_views", b"feature_views", "infra", b"infra", "last_updated", b"last_updated", "on_demand_feature_views", b"on_demand_feature_views", "permissions", b"permissions", "project_metadata", b"project_metadata", "projects", b"projects", "registry_schema_version", b"registry_schema_version", "saved_datasets", b"saved_datasets", "stream_feature_views", b"stream_feature_views", "validation_references", b"validation_references", "version_id", b"version_id"]) -> None: ... -Global___Registry: _TypeAlias = Registry # noqa: Y015 +global___Registry = Registry -@_typing.final -class ProjectMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ProjectMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - PROJECT_UUID_FIELD_NUMBER: _builtins.int - project: _builtins.str - project_uuid: _builtins.str + PROJECT_FIELD_NUMBER: builtins.int + PROJECT_UUID_FIELD_NUMBER: builtins.int + project: builtins.str + project_uuid: builtins.str def __init__( self, *, - project: _builtins.str = ..., - project_uuid: _builtins.str = ..., + project: builtins.str = ..., + project_uuid: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["project", b"project", "project_uuid", b"project_uuid"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project", "project_uuid", b"project_uuid"]) -> None: ... -Global___ProjectMetadata: _TypeAlias = ProjectMetadata # noqa: Y015 +global___ProjectMetadata = ProjectMetadata diff --git a/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi b/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi index e2c1fb27c4f..47525b64ede 100644 --- a/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/SavedDataset_pb2.pyi @@ -16,202 +16,177 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.core import DataSource_pb2 as _DataSource_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class SavedDatasetSpec(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class SavedDatasetSpec(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - JOIN_KEYS_FIELD_NUMBER: _builtins.int - FULL_FEATURE_NAMES_FIELD_NUMBER: _builtins.int - STORAGE_FIELD_NUMBER: _builtins.int - FEATURE_SERVICE_NAME_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + JOIN_KEYS_FIELD_NUMBER: builtins.int + FULL_FEATURE_NAMES_FIELD_NUMBER: builtins.int + STORAGE_FIELD_NUMBER: builtins.int + FEATURE_SERVICE_NAME_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the dataset. Must be unique since it's possible to overwrite dataset by name""" - project: _builtins.str + project: builtins.str """Name of Feast project that this Dataset belongs to.""" - full_feature_names: _builtins.bool - """Whether full feature names are used in stored data""" - feature_service_name: _builtins.str - """Optional and only populated if generated from a feature service fetch""" - @_builtins.property - def features(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + @property + def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """list of feature references with format ":" """ - - @_builtins.property - def join_keys(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + @property + def join_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """entity columns + request columns from all feature views used during retrieval""" - - @_builtins.property - def storage(self) -> Global___SavedDatasetStorage: ... - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + full_feature_names: builtins.bool + """Whether full feature names are used in stored data""" + @property + def storage(self) -> global___SavedDatasetStorage: ... + feature_service_name: builtins.str + """Optional and only populated if generated from a feature service fetch""" + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - features: _abc.Iterable[_builtins.str] | None = ..., - join_keys: _abc.Iterable[_builtins.str] | None = ..., - full_feature_names: _builtins.bool = ..., - storage: Global___SavedDatasetStorage | None = ..., - feature_service_name: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + name: builtins.str = ..., + project: builtins.str = ..., + features: collections.abc.Iterable[builtins.str] | None = ..., + join_keys: collections.abc.Iterable[builtins.str] | None = ..., + full_feature_names: builtins.bool = ..., + storage: global___SavedDatasetStorage | None = ..., + feature_service_name: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["storage", b"storage"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_service_name", b"feature_service_name", "features", b"features", "full_feature_names", b"full_feature_names", "join_keys", b"join_keys", "name", b"name", "project", b"project", "storage", b"storage", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___SavedDatasetSpec: _TypeAlias = SavedDatasetSpec # noqa: Y015 - -@_typing.final -class SavedDatasetStorage(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FILE_STORAGE_FIELD_NUMBER: _builtins.int - BIGQUERY_STORAGE_FIELD_NUMBER: _builtins.int - REDSHIFT_STORAGE_FIELD_NUMBER: _builtins.int - SNOWFLAKE_STORAGE_FIELD_NUMBER: _builtins.int - TRINO_STORAGE_FIELD_NUMBER: _builtins.int - SPARK_STORAGE_FIELD_NUMBER: _builtins.int - CUSTOM_STORAGE_FIELD_NUMBER: _builtins.int - ATHENA_STORAGE_FIELD_NUMBER: _builtins.int - @_builtins.property - def file_storage(self) -> _DataSource_pb2.DataSource.FileOptions: ... - @_builtins.property - def bigquery_storage(self) -> _DataSource_pb2.DataSource.BigQueryOptions: ... - @_builtins.property - def redshift_storage(self) -> _DataSource_pb2.DataSource.RedshiftOptions: ... - @_builtins.property - def snowflake_storage(self) -> _DataSource_pb2.DataSource.SnowflakeOptions: ... - @_builtins.property - def trino_storage(self) -> _DataSource_pb2.DataSource.TrinoOptions: ... - @_builtins.property - def spark_storage(self) -> _DataSource_pb2.DataSource.SparkOptions: ... - @_builtins.property - def custom_storage(self) -> _DataSource_pb2.DataSource.CustomSourceOptions: ... - @_builtins.property - def athena_storage(self) -> _DataSource_pb2.DataSource.AthenaOptions: ... + def HasField(self, field_name: typing_extensions.Literal["storage", b"storage"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_service_name", b"feature_service_name", "features", b"features", "full_feature_names", b"full_feature_names", "join_keys", b"join_keys", "name", b"name", "project", b"project", "storage", b"storage", "tags", b"tags"]) -> None: ... + +global___SavedDatasetSpec = SavedDatasetSpec + +class SavedDatasetStorage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILE_STORAGE_FIELD_NUMBER: builtins.int + BIGQUERY_STORAGE_FIELD_NUMBER: builtins.int + REDSHIFT_STORAGE_FIELD_NUMBER: builtins.int + SNOWFLAKE_STORAGE_FIELD_NUMBER: builtins.int + TRINO_STORAGE_FIELD_NUMBER: builtins.int + SPARK_STORAGE_FIELD_NUMBER: builtins.int + CUSTOM_STORAGE_FIELD_NUMBER: builtins.int + ATHENA_STORAGE_FIELD_NUMBER: builtins.int + @property + def file_storage(self) -> feast.core.DataSource_pb2.DataSource.FileOptions: ... + @property + def bigquery_storage(self) -> feast.core.DataSource_pb2.DataSource.BigQueryOptions: ... + @property + def redshift_storage(self) -> feast.core.DataSource_pb2.DataSource.RedshiftOptions: ... + @property + def snowflake_storage(self) -> feast.core.DataSource_pb2.DataSource.SnowflakeOptions: ... + @property + def trino_storage(self) -> feast.core.DataSource_pb2.DataSource.TrinoOptions: ... + @property + def spark_storage(self) -> feast.core.DataSource_pb2.DataSource.SparkOptions: ... + @property + def custom_storage(self) -> feast.core.DataSource_pb2.DataSource.CustomSourceOptions: ... + @property + def athena_storage(self) -> feast.core.DataSource_pb2.DataSource.AthenaOptions: ... def __init__( self, *, - file_storage: _DataSource_pb2.DataSource.FileOptions | None = ..., - bigquery_storage: _DataSource_pb2.DataSource.BigQueryOptions | None = ..., - redshift_storage: _DataSource_pb2.DataSource.RedshiftOptions | None = ..., - snowflake_storage: _DataSource_pb2.DataSource.SnowflakeOptions | None = ..., - trino_storage: _DataSource_pb2.DataSource.TrinoOptions | None = ..., - spark_storage: _DataSource_pb2.DataSource.SparkOptions | None = ..., - custom_storage: _DataSource_pb2.DataSource.CustomSourceOptions | None = ..., - athena_storage: _DataSource_pb2.DataSource.AthenaOptions | None = ..., + file_storage: feast.core.DataSource_pb2.DataSource.FileOptions | None = ..., + bigquery_storage: feast.core.DataSource_pb2.DataSource.BigQueryOptions | None = ..., + redshift_storage: feast.core.DataSource_pb2.DataSource.RedshiftOptions | None = ..., + snowflake_storage: feast.core.DataSource_pb2.DataSource.SnowflakeOptions | None = ..., + trino_storage: feast.core.DataSource_pb2.DataSource.TrinoOptions | None = ..., + spark_storage: feast.core.DataSource_pb2.DataSource.SparkOptions | None = ..., + custom_storage: feast.core.DataSource_pb2.DataSource.CustomSourceOptions | None = ..., + athena_storage: feast.core.DataSource_pb2.DataSource.AthenaOptions | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_kind: _TypeAlias = _typing.Literal["file_storage", "bigquery_storage", "redshift_storage", "snowflake_storage", "trino_storage", "spark_storage", "custom_storage", "athena_storage"] # noqa: Y015 - _WhichOneofArgType_kind: _TypeAlias = _typing.Literal["kind", b"kind"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_kind) -> _WhichOneofReturnType_kind | None: ... - -Global___SavedDatasetStorage: _TypeAlias = SavedDatasetStorage # noqa: Y015 - -@_typing.final -class SavedDatasetMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - MIN_EVENT_TIMESTAMP_FIELD_NUMBER: _builtins.int - MAX_EVENT_TIMESTAMP_FIELD_NUMBER: _builtins.int - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: - """Time when this saved dataset is created""" + def HasField(self, field_name: typing_extensions.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["athena_storage", b"athena_storage", "bigquery_storage", b"bigquery_storage", "custom_storage", b"custom_storage", "file_storage", b"file_storage", "kind", b"kind", "redshift_storage", b"redshift_storage", "snowflake_storage", b"snowflake_storage", "spark_storage", b"spark_storage", "trino_storage", b"trino_storage"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["file_storage", "bigquery_storage", "redshift_storage", "snowflake_storage", "trino_storage", "spark_storage", "custom_storage", "athena_storage"] | None: ... - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: - """Time when this saved dataset is last updated""" +global___SavedDatasetStorage = SavedDatasetStorage - @_builtins.property - def min_event_timestamp(self) -> _timestamp_pb2.Timestamp: - """Min timestamp in the dataset (needed for retrieval)""" +class SavedDatasetMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_builtins.property - def max_event_timestamp(self) -> _timestamp_pb2.Timestamp: + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + MIN_EVENT_TIMESTAMP_FIELD_NUMBER: builtins.int + MAX_EVENT_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Time when this saved dataset is created""" + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Time when this saved dataset is last updated""" + @property + def min_event_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Min timestamp in the dataset (needed for retrieval)""" + @property + def max_event_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Max timestamp in the dataset (needed for retrieval)""" - def __init__( self, *, - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., - min_event_timestamp: _timestamp_pb2.Timestamp | None = ..., - max_event_timestamp: _timestamp_pb2.Timestamp | None = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + min_event_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + max_event_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___SavedDatasetMeta: _TypeAlias = SavedDatasetMeta # noqa: Y015 - -@_typing.final -class SavedDataset(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___SavedDatasetSpec: ... - @_builtins.property - def meta(self) -> Global___SavedDatasetMeta: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp", "max_event_timestamp", b"max_event_timestamp", "min_event_timestamp", b"min_event_timestamp"]) -> None: ... + +global___SavedDatasetMeta = SavedDatasetMeta + +class SavedDataset(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___SavedDatasetSpec: ... + @property + def meta(self) -> global___SavedDatasetMeta: ... def __init__( self, *, - spec: Global___SavedDatasetSpec | None = ..., - meta: Global___SavedDatasetMeta | None = ..., + spec: global___SavedDatasetSpec | None = ..., + meta: global___SavedDatasetMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___SavedDataset: _TypeAlias = SavedDataset # noqa: Y015 +global___SavedDataset = SavedDataset diff --git a/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi b/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi index 43d97f7d188..10ecebf362b 100644 --- a/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/SqliteTable_pb2.pyi @@ -16,39 +16,35 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -import builtins as _builtins +import builtins +import google.protobuf.descriptor +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class SqliteTable(_message.Message): +class SqliteTable(google.protobuf.message.Message): """Represents a Sqlite table""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - path: _builtins.str + PATH_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + path: builtins.str """Absolute path of the table""" - name: _builtins.str + name: builtins.str """Name of the table""" def __init__( self, *, - path: _builtins.str = ..., - name: _builtins.str = ..., + path: builtins.str = ..., + name: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "path", b"path"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "path", b"path"]) -> None: ... -Global___SqliteTable: _TypeAlias = SqliteTable # noqa: Y015 +global___SqliteTable = SqliteTable diff --git a/sdk/python/feast/protos/feast/core/Store_pb2.pyi b/sdk/python/feast/protos/feast/core/Store_pb2.pyi index 718654b267c..5ee957d184f 100644 --- a/sdk/python/feast/protos/feast/core/Store_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Store_pb2.pyi @@ -16,39 +16,37 @@ isort:skip_file * See the License for the specific language governing permissions and * limitations under the License. """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Store(_message.Message): +class Store(google.protobuf.message.Message): """Store provides a location where Feast reads and writes feature values. Feature values will be written to the Store in the form of FeatureRow elements. The way FeatureRow is encoded and decoded when it is written to and read from the Store depends on the type of the Store. """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _StoreType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - class _StoreTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Store._StoreType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor + class _StoreTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Store._StoreType.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor INVALID: Store._StoreType.ValueType # 0 REDIS: Store._StoreType.ValueType # 1 """Redis stores a FeatureRow element as a key, value pair. @@ -78,51 +76,48 @@ class Store(_message.Message): """ REDIS_CLUSTER: Store.StoreType.ValueType # 4 - @_typing.final - class RedisConfig(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - HOST_FIELD_NUMBER: _builtins.int - PORT_FIELD_NUMBER: _builtins.int - INITIAL_BACKOFF_MS_FIELD_NUMBER: _builtins.int - MAX_RETRIES_FIELD_NUMBER: _builtins.int - FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: _builtins.int - SSL_FIELD_NUMBER: _builtins.int - host: _builtins.str - port: _builtins.int - initial_backoff_ms: _builtins.int + class RedisConfig(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HOST_FIELD_NUMBER: builtins.int + PORT_FIELD_NUMBER: builtins.int + INITIAL_BACKOFF_MS_FIELD_NUMBER: builtins.int + MAX_RETRIES_FIELD_NUMBER: builtins.int + FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: builtins.int + SSL_FIELD_NUMBER: builtins.int + host: builtins.str + port: builtins.int + initial_backoff_ms: builtins.int """Optional. The number of milliseconds to wait before retrying failed Redis connection. By default, Feast uses exponential backoff policy and "initial_backoff_ms" sets the initial wait duration. """ - max_retries: _builtins.int + max_retries: builtins.int """Optional. Maximum total number of retries for connecting to Redis. Default to zero retries.""" - flush_frequency_seconds: _builtins.int + flush_frequency_seconds: builtins.int """Optional. How often flush data to redis""" - ssl: _builtins.bool + ssl: builtins.bool """Optional. Connect over SSL.""" def __init__( self, *, - host: _builtins.str = ..., - port: _builtins.int = ..., - initial_backoff_ms: _builtins.int = ..., - max_retries: _builtins.int = ..., - flush_frequency_seconds: _builtins.int = ..., - ssl: _builtins.bool = ..., + host: builtins.str = ..., + port: builtins.int = ..., + initial_backoff_ms: builtins.int = ..., + max_retries: builtins.int = ..., + flush_frequency_seconds: builtins.int = ..., + ssl: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["flush_frequency_seconds", b"flush_frequency_seconds", "host", b"host", "initial_backoff_ms", b"initial_backoff_ms", "max_retries", b"max_retries", "port", b"port", "ssl", b"ssl"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["flush_frequency_seconds", b"flush_frequency_seconds", "host", b"host", "initial_backoff_ms", b"initial_backoff_ms", "max_retries", b"max_retries", "port", b"port", "ssl", b"ssl"]) -> None: ... - @_typing.final - class RedisClusterConfig(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class RedisClusterConfig(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ReadFrom: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - class _ReadFromEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Store.RedisClusterConfig._ReadFrom.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor + class _ReadFromEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Store.RedisClusterConfig._ReadFrom.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor MASTER: Store.RedisClusterConfig._ReadFrom.ValueType # 0 MASTER_PREFERRED: Store.RedisClusterConfig._ReadFrom.ValueType # 1 REPLICA: Store.RedisClusterConfig._ReadFrom.ValueType # 2 @@ -136,52 +131,50 @@ class Store(_message.Message): REPLICA: Store.RedisClusterConfig.ReadFrom.ValueType # 2 REPLICA_PREFERRED: Store.RedisClusterConfig.ReadFrom.ValueType # 3 - CONNECTION_STRING_FIELD_NUMBER: _builtins.int - INITIAL_BACKOFF_MS_FIELD_NUMBER: _builtins.int - MAX_RETRIES_FIELD_NUMBER: _builtins.int - FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: _builtins.int - KEY_PREFIX_FIELD_NUMBER: _builtins.int - ENABLE_FALLBACK_FIELD_NUMBER: _builtins.int - FALLBACK_PREFIX_FIELD_NUMBER: _builtins.int - READ_FROM_FIELD_NUMBER: _builtins.int - connection_string: _builtins.str + CONNECTION_STRING_FIELD_NUMBER: builtins.int + INITIAL_BACKOFF_MS_FIELD_NUMBER: builtins.int + MAX_RETRIES_FIELD_NUMBER: builtins.int + FLUSH_FREQUENCY_SECONDS_FIELD_NUMBER: builtins.int + KEY_PREFIX_FIELD_NUMBER: builtins.int + ENABLE_FALLBACK_FIELD_NUMBER: builtins.int + FALLBACK_PREFIX_FIELD_NUMBER: builtins.int + READ_FROM_FIELD_NUMBER: builtins.int + connection_string: builtins.str """List of Redis Uri for all the nodes in Redis Cluster, comma separated. Eg. host1:6379, host2:6379""" - initial_backoff_ms: _builtins.int - max_retries: _builtins.int - flush_frequency_seconds: _builtins.int + initial_backoff_ms: builtins.int + max_retries: builtins.int + flush_frequency_seconds: builtins.int """Optional. How often flush data to redis""" - key_prefix: _builtins.str + key_prefix: builtins.str """Optional. Append a prefix to the Redis Key""" - enable_fallback: _builtins.bool + enable_fallback: builtins.bool """Optional. Enable fallback to another key prefix if the original key is not present. Useful for migrating key prefix without re-ingestion. Disabled by default. """ - fallback_prefix: _builtins.str + fallback_prefix: builtins.str """Optional. This would be the fallback prefix to use if enable_fallback is true.""" - read_from: Global___Store.RedisClusterConfig.ReadFrom.ValueType + read_from: global___Store.RedisClusterConfig.ReadFrom.ValueType def __init__( self, *, - connection_string: _builtins.str = ..., - initial_backoff_ms: _builtins.int = ..., - max_retries: _builtins.int = ..., - flush_frequency_seconds: _builtins.int = ..., - key_prefix: _builtins.str = ..., - enable_fallback: _builtins.bool = ..., - fallback_prefix: _builtins.str = ..., - read_from: Global___Store.RedisClusterConfig.ReadFrom.ValueType = ..., + connection_string: builtins.str = ..., + initial_backoff_ms: builtins.int = ..., + max_retries: builtins.int = ..., + flush_frequency_seconds: builtins.int = ..., + key_prefix: builtins.str = ..., + enable_fallback: builtins.bool = ..., + fallback_prefix: builtins.str = ..., + read_from: global___Store.RedisClusterConfig.ReadFrom.ValueType = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["connection_string", b"connection_string", "enable_fallback", b"enable_fallback", "fallback_prefix", b"fallback_prefix", "flush_frequency_seconds", b"flush_frequency_seconds", "initial_backoff_ms", b"initial_backoff_ms", "key_prefix", b"key_prefix", "max_retries", b"max_retries", "read_from", b"read_from"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["connection_string", b"connection_string", "enable_fallback", b"enable_fallback", "fallback_prefix", b"fallback_prefix", "flush_frequency_seconds", b"flush_frequency_seconds", "initial_backoff_ms", b"initial_backoff_ms", "key_prefix", b"key_prefix", "max_retries", b"max_retries", "read_from", b"read_from"]) -> None: ... - @_typing.final - class Subscription(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class Subscription(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - EXCLUDE_FIELD_NUMBER: _builtins.int - project: _builtins.str + PROJECT_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + EXCLUDE_FIELD_NUMBER: builtins.int + project: builtins.str """Name of project that the feature sets belongs to. This can be one of - [project_name] - * @@ -189,7 +182,7 @@ class Store(_message.Message): be matched. It is NOT possible to provide an asterisk with a string in order to do pattern matching. """ - name: _builtins.str + name: builtins.str """Name of the desired feature set. Asterisks can be used as wildcards in the name. Matching on names is only permitted if a specific project is defined. It is disallowed If the project name is set to "*" @@ -198,50 +191,44 @@ class Store(_message.Message): - my-feature-set* can be used to match all features prefixed by "my-feature-set" - my-feature-set-6 can be used to select a single feature set """ - exclude: _builtins.bool + exclude: builtins.bool """All matches with exclude enabled will be filtered out instead of added""" def __init__( self, *, - project: _builtins.str = ..., - name: _builtins.str = ..., - exclude: _builtins.bool = ..., + project: builtins.str = ..., + name: builtins.str = ..., + exclude: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["exclude", b"exclude", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - SUBSCRIPTIONS_FIELD_NUMBER: _builtins.int - REDIS_CONFIG_FIELD_NUMBER: _builtins.int - REDIS_CLUSTER_CONFIG_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["exclude", b"exclude", "name", b"name", "project", b"project"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + SUBSCRIPTIONS_FIELD_NUMBER: builtins.int + REDIS_CONFIG_FIELD_NUMBER: builtins.int + REDIS_CLUSTER_CONFIG_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the store.""" - type: Global___Store.StoreType.ValueType + type: global___Store.StoreType.ValueType """Type of store.""" - @_builtins.property - def subscriptions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Store.Subscription]: + @property + def subscriptions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Store.Subscription]: """Feature sets to subscribe to.""" - - @_builtins.property - def redis_config(self) -> Global___Store.RedisConfig: ... - @_builtins.property - def redis_cluster_config(self) -> Global___Store.RedisClusterConfig: ... + @property + def redis_config(self) -> global___Store.RedisConfig: ... + @property + def redis_cluster_config(self) -> global___Store.RedisClusterConfig: ... def __init__( self, *, - name: _builtins.str = ..., - type: Global___Store.StoreType.ValueType = ..., - subscriptions: _abc.Iterable[Global___Store.Subscription] | None = ..., - redis_config: Global___Store.RedisConfig | None = ..., - redis_cluster_config: Global___Store.RedisClusterConfig | None = ..., + name: builtins.str = ..., + type: global___Store.StoreType.ValueType = ..., + subscriptions: collections.abc.Iterable[global___Store.Subscription] | None = ..., + redis_config: global___Store.RedisConfig | None = ..., + redis_cluster_config: global___Store.RedisClusterConfig | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "name", b"name", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config", "subscriptions", b"subscriptions", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_config: _TypeAlias = _typing.Literal["redis_config", "redis_cluster_config"] # noqa: Y015 - _WhichOneofArgType_config: _TypeAlias = _typing.Literal["config", b"config"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_config) -> _WhichOneofReturnType_config | None: ... - -Global___Store: _TypeAlias = Store # noqa: Y015 + def HasField(self, field_name: typing_extensions.Literal["config", b"config", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "name", b"name", "redis_cluster_config", b"redis_cluster_config", "redis_config", b"redis_config", "subscriptions", b"subscriptions", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["config", b"config"]) -> typing_extensions.Literal["redis_config", "redis_cluster_config"] | None: ... + +global___Store = Store diff --git a/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.py b/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.py index 85a61d06005..9222c1bd2ae 100644 --- a/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.py +++ b/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.py @@ -21,7 +21,7 @@ from feast.protos.feast.core import Transformation_pb2 as feast_dot_core_dot_Transformation__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"feast/core/StreamFeatureView.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a$feast/core/OnDemandFeatureView.proto\x1a\x1c\x66\x65\x61st/core/FeatureView.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x1c\x66\x65\x61st/core/Aggregation.proto\x1a\x1f\x66\x65\x61st/core/Transformation.proto\"o\n\x11StreamFeatureView\x12/\n\x04spec\x18\x01 \x01(\x0b\x32!.feast.core.StreamFeatureViewSpec\x12)\n\x04meta\x18\x02 \x01(\x0b\x32\x1b.feast.core.FeatureViewMeta\"\xac\x06\n\x15StreamFeatureViewSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x10\n\x08\x65ntities\x18\x03 \x03(\t\x12+\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x31\n\x0e\x65ntity_columns\x18\x05 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x39\n\x04tags\x18\x07 \x03(\x0b\x32+.feast.core.StreamFeatureViewSpec.TagsEntry\x12\r\n\x05owner\x18\x08 \x01(\t\x12&\n\x03ttl\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x0c\x62\x61tch_source\x18\n \x01(\x0b\x32\x16.feast.core.DataSource\x12-\n\rstream_source\x18\x0b \x01(\x0b\x32\x16.feast.core.DataSource\x12\x0e\n\x06online\x18\x0c \x01(\x08\x12\x42\n\x15user_defined_function\x18\r \x01(\x0b\x32\x1f.feast.core.UserDefinedFunctionB\x02\x18\x01\x12\x0c\n\x04mode\x18\x0e \x01(\t\x12-\n\x0c\x61ggregations\x18\x0f \x03(\x0b\x32\x17.feast.core.Aggregation\x12\x17\n\x0ftimestamp_field\x18\x10 \x01(\t\x12\x43\n\x16\x66\x65\x61ture_transformation\x18\x11 \x01(\x0b\x32#.feast.core.FeatureTransformationV2\x12\x15\n\renable_tiling\x18\x12 \x01(\x08\x12\x32\n\x0ftiling_hop_size\x18\x13 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11\x65nable_validation\x18\x14 \x01(\x08\x12\x0f\n\x07version\x18\x15 \x01(\t\x12\x0b\n\x03org\x18\x16 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42[\n\x10\x66\x65\x61st.proto.coreB\x16StreamFeatureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"feast/core/StreamFeatureView.proto\x12\nfeast.core\x1a\x1egoogle/protobuf/duration.proto\x1a$feast/core/OnDemandFeatureView.proto\x1a\x1c\x66\x65\x61st/core/FeatureView.proto\x1a\x18\x66\x65\x61st/core/Feature.proto\x1a\x1b\x66\x65\x61st/core/DataSource.proto\x1a\x1c\x66\x65\x61st/core/Aggregation.proto\x1a\x1f\x66\x65\x61st/core/Transformation.proto\"o\n\x11StreamFeatureView\x12/\n\x04spec\x18\x01 \x01(\x0b\x32!.feast.core.StreamFeatureViewSpec\x12)\n\x04meta\x18\x02 \x01(\x0b\x32\x1b.feast.core.FeatureViewMeta\"\xbe\x06\n\x15StreamFeatureViewSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x10\n\x08\x65ntities\x18\x03 \x03(\t\x12+\n\x08\x66\x65\x61tures\x18\x04 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x31\n\x0e\x65ntity_columns\x18\x05 \x03(\x0b\x32\x19.feast.core.FeatureSpecV2\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x39\n\x04tags\x18\x07 \x03(\x0b\x32+.feast.core.StreamFeatureViewSpec.TagsEntry\x12\r\n\x05owner\x18\x08 \x01(\t\x12&\n\x03ttl\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x0c\x62\x61tch_source\x18\n \x01(\x0b\x32\x16.feast.core.DataSource\x12-\n\rstream_source\x18\x0b \x01(\x0b\x32\x16.feast.core.DataSource\x12\x0e\n\x06online\x18\x0c \x01(\x08\x12\x42\n\x15user_defined_function\x18\r \x01(\x0b\x32\x1f.feast.core.UserDefinedFunctionB\x02\x18\x01\x12\x0c\n\x04mode\x18\x0e \x01(\t\x12-\n\x0c\x61ggregations\x18\x0f \x03(\x0b\x32\x17.feast.core.Aggregation\x12\x17\n\x0ftimestamp_field\x18\x10 \x01(\t\x12\x43\n\x16\x66\x65\x61ture_transformation\x18\x11 \x01(\x0b\x32#.feast.core.FeatureTransformationV2\x12\x15\n\renable_tiling\x18\x12 \x01(\x08\x12\x32\n\x0ftiling_hop_size\x18\x13 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11\x65nable_validation\x18\x14 \x01(\x08\x12\x0f\n\x07version\x18\x15 \x01(\t\x12\x0b\n\x03org\x18\x16 \x01(\t\x12\x10\n\x08\x64isabled\x18\x17 \x01(\x08\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42[\n\x10\x66\x65\x61st.proto.coreB\x16StreamFeatureViewProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -36,7 +36,7 @@ _globals['_STREAMFEATUREVIEW']._serialized_start=268 _globals['_STREAMFEATUREVIEW']._serialized_end=379 _globals['_STREAMFEATUREVIEWSPEC']._serialized_start=382 - _globals['_STREAMFEATUREVIEWSPEC']._serialized_end=1194 - _globals['_STREAMFEATUREVIEWSPEC_TAGSENTRY']._serialized_start=1151 - _globals['_STREAMFEATUREVIEWSPEC_TAGSENTRY']._serialized_end=1194 + _globals['_STREAMFEATUREVIEWSPEC']._serialized_end=1212 + _globals['_STREAMFEATUREVIEWSPEC_TAGSENTRY']._serialized_start=1169 + _globals['_STREAMFEATUREVIEWSPEC_TAGSENTRY']._serialized_end=1212 # @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi b/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi index 3fafb889540..3fa504654f4 100644 --- a/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/StreamFeatureView_pb2.pyi @@ -16,206 +16,185 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.core import Aggregation_pb2 as _Aggregation_pb2 -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import FeatureView_pb2 as _FeatureView_pb2 -from feast.core import Feature_pb2 as _Feature_pb2 -from feast.core import OnDemandFeatureView_pb2 as _OnDemandFeatureView_pb2 -from feast.core import Transformation_pb2 as _Transformation_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.Aggregation_pb2 +import feast.core.DataSource_pb2 +import feast.core.FeatureView_pb2 +import feast.core.Feature_pb2 +import feast.core.OnDemandFeatureView_pb2 +import feast.core.Transformation_pb2 +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing - -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias -else: - from typing_extensions import TypeAlias as _TypeAlias -if sys.version_info >= (3, 13): - from warnings import deprecated as _deprecated +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import deprecated as _deprecated + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class StreamFeatureView(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class StreamFeatureView(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SPEC_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - @_builtins.property - def spec(self) -> Global___StreamFeatureViewSpec: + SPEC_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + @property + def spec(self) -> global___StreamFeatureViewSpec: """User-specified specifications of this feature view.""" - - @_builtins.property - def meta(self) -> _FeatureView_pb2.FeatureViewMeta: ... + @property + def meta(self) -> feast.core.FeatureView_pb2.FeatureViewMeta: ... def __init__( self, *, - spec: Global___StreamFeatureViewSpec | None = ..., - meta: _FeatureView_pb2.FeatureViewMeta | None = ..., + spec: global___StreamFeatureViewSpec | None = ..., + meta: feast.core.FeatureView_pb2.FeatureViewMeta | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "spec", b"spec"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "spec", b"spec"]) -> None: ... -Global___StreamFeatureView: _TypeAlias = StreamFeatureView # noqa: Y015 +global___StreamFeatureView = StreamFeatureView -@_typing.final -class StreamFeatureViewSpec(_message.Message): +class StreamFeatureViewSpec(google.protobuf.message.Message): """Next available id: 23""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ENTITIES_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - ENTITY_COLUMNS_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - TTL_FIELD_NUMBER: _builtins.int - BATCH_SOURCE_FIELD_NUMBER: _builtins.int - STREAM_SOURCE_FIELD_NUMBER: _builtins.int - ONLINE_FIELD_NUMBER: _builtins.int - USER_DEFINED_FUNCTION_FIELD_NUMBER: _builtins.int - MODE_FIELD_NUMBER: _builtins.int - AGGREGATIONS_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_FIELD_NUMBER: _builtins.int - FEATURE_TRANSFORMATION_FIELD_NUMBER: _builtins.int - ENABLE_TILING_FIELD_NUMBER: _builtins.int - TILING_HOP_SIZE_FIELD_NUMBER: _builtins.int - ENABLE_VALIDATION_FIELD_NUMBER: _builtins.int - VERSION_FIELD_NUMBER: _builtins.int - ORG_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + ENTITY_COLUMNS_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + TTL_FIELD_NUMBER: builtins.int + BATCH_SOURCE_FIELD_NUMBER: builtins.int + STREAM_SOURCE_FIELD_NUMBER: builtins.int + ONLINE_FIELD_NUMBER: builtins.int + USER_DEFINED_FUNCTION_FIELD_NUMBER: builtins.int + MODE_FIELD_NUMBER: builtins.int + AGGREGATIONS_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_FIELD_NUMBER: builtins.int + FEATURE_TRANSFORMATION_FIELD_NUMBER: builtins.int + ENABLE_TILING_FIELD_NUMBER: builtins.int + TILING_HOP_SIZE_FIELD_NUMBER: builtins.int + ENABLE_VALIDATION_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + ORG_FIELD_NUMBER: builtins.int + DISABLED_FIELD_NUMBER: builtins.int + name: builtins.str """Name of the feature view. Must be unique. Not updated.""" - project: _builtins.str + project: builtins.str """Name of Feast project that this feature view belongs to.""" - description: _builtins.str - """Description of the feature view.""" - owner: _builtins.str - """Owner of the feature view.""" - online: _builtins.bool - """Whether these features should be served online or not""" - mode: _builtins.str - """Mode of execution""" - timestamp_field: _builtins.str - """Timestamp field for aggregation""" - enable_tiling: _builtins.bool - """Enable tiling for efficient window aggregation""" - enable_validation: _builtins.bool - """Whether schema validation is enabled during materialization""" - version: _builtins.str - """User-specified version pin (e.g. "latest", "v2", "version2")""" - org: _builtins.str - """Organizational unit that owns this stream feature view (e.g. "ads", "search").""" - @_builtins.property - def entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of names of entities associated with this feature view.""" - - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of specifications for each feature defined as part of this feature view.""" - - @_builtins.property - def entity_columns(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: + @property + def entity_columns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: """List of specifications for each entity defined as part of this feature view.""" - - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + description: builtins.str + """Description of the feature view.""" + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - - @_builtins.property - def ttl(self) -> _duration_pb2.Duration: + owner: builtins.str + """Owner of the feature view.""" + @property + def ttl(self) -> google.protobuf.duration_pb2.Duration: """Features in this feature view can only be retrieved from online serving younger than ttl. Ttl is measured as the duration of time between the feature's event timestamp and when the feature is retrieved Feature values outside ttl will be returned as unset values and indicated to end user """ - - @_builtins.property - def batch_source(self) -> _DataSource_pb2.DataSource: + @property + def batch_source(self) -> feast.core.DataSource_pb2.DataSource: """Batch/Offline DataSource where this view can retrieve offline feature data.""" - - @_builtins.property - def stream_source(self) -> _DataSource_pb2.DataSource: + @property + def stream_source(self) -> feast.core.DataSource_pb2.DataSource: """Streaming DataSource from where this view can consume "online" feature data.""" - - @_builtins.property - @_deprecated("""This field has been marked as deprecated using proto field options.""") - def user_defined_function(self) -> _OnDemandFeatureView_pb2.UserDefinedFunction: + online: builtins.bool + """Whether these features should be served online or not""" + @property + def user_defined_function(self) -> feast.core.OnDemandFeatureView_pb2.UserDefinedFunction: """Serialized function that is encoded in the streamfeatureview""" - - @_builtins.property - def aggregations(self) -> _containers.RepeatedCompositeFieldContainer[_Aggregation_pb2.Aggregation]: + mode: builtins.str + """Mode of execution""" + @property + def aggregations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Aggregation_pb2.Aggregation]: """Aggregation definitions""" - - @_builtins.property - def feature_transformation(self) -> _Transformation_pb2.FeatureTransformationV2: + timestamp_field: builtins.str + """Timestamp field for aggregation""" + @property + def feature_transformation(self) -> feast.core.Transformation_pb2.FeatureTransformationV2: """Oneof with {user_defined_function, on_demand_substrait_transformation}""" - - @_builtins.property - def tiling_hop_size(self) -> _duration_pb2.Duration: + enable_tiling: builtins.bool + """Enable tiling for efficient window aggregation""" + @property + def tiling_hop_size(self) -> google.protobuf.duration_pb2.Duration: """Hop size for tiling (e.g., 5 minutes). Determines the granularity of pre-aggregated tiles. If not specified, defaults to 5 minutes. Only used when enable_tiling is true. """ - + enable_validation: builtins.bool + """Whether schema validation is enabled during materialization""" + version: builtins.str + """User-specified version pin (e.g. "latest", "v2", "version2")""" + org: builtins.str + """Organizational unit that owns this stream feature view (e.g. "ads", "search").""" + disabled: builtins.bool + """Whether this feature view is disabled for serving and materialization. + When true, the feature view will not serve online features or be materialized. + Defaults to false (enabled) for backward compatibility. + """ def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - entities: _abc.Iterable[_builtins.str] | None = ..., - features: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - entity_columns: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., - description: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - owner: _builtins.str = ..., - ttl: _duration_pb2.Duration | None = ..., - batch_source: _DataSource_pb2.DataSource | None = ..., - stream_source: _DataSource_pb2.DataSource | None = ..., - online: _builtins.bool = ..., - user_defined_function: _OnDemandFeatureView_pb2.UserDefinedFunction | None = ..., - mode: _builtins.str = ..., - aggregations: _abc.Iterable[_Aggregation_pb2.Aggregation] | None = ..., - timestamp_field: _builtins.str = ..., - feature_transformation: _Transformation_pb2.FeatureTransformationV2 | None = ..., - enable_tiling: _builtins.bool = ..., - tiling_hop_size: _duration_pb2.Duration | None = ..., - enable_validation: _builtins.bool = ..., - version: _builtins.str = ..., - org: _builtins.str = ..., + name: builtins.str = ..., + project: builtins.str = ..., + entities: collections.abc.Iterable[builtins.str] | None = ..., + features: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + entity_columns: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., + description: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + owner: builtins.str = ..., + ttl: google.protobuf.duration_pb2.Duration | None = ..., + batch_source: feast.core.DataSource_pb2.DataSource | None = ..., + stream_source: feast.core.DataSource_pb2.DataSource | None = ..., + online: builtins.bool = ..., + user_defined_function: feast.core.OnDemandFeatureView_pb2.UserDefinedFunction | None = ..., + mode: builtins.str = ..., + aggregations: collections.abc.Iterable[feast.core.Aggregation_pb2.Aggregation] | None = ..., + timestamp_field: builtins.str = ..., + feature_transformation: feast.core.Transformation_pb2.FeatureTransformationV2 | None = ..., + enable_tiling: builtins.bool = ..., + tiling_hop_size: google.protobuf.duration_pb2.Duration | None = ..., + enable_validation: builtins.bool = ..., + version: builtins.str = ..., + org: builtins.str = ..., + disabled: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "tiling_hop_size", b"tiling_hop_size", "ttl", b"ttl", "user_defined_function", b"user_defined_function"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["aggregations", b"aggregations", "batch_source", b"batch_source", "description", b"description", "enable_tiling", b"enable_tiling", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "stream_source", b"stream_source", "tags", b"tags", "tiling_hop_size", b"tiling_hop_size", "timestamp_field", b"timestamp_field", "ttl", b"ttl", "user_defined_function", b"user_defined_function", "version", b"version"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["batch_source", b"batch_source", "feature_transformation", b"feature_transformation", "stream_source", b"stream_source", "tiling_hop_size", b"tiling_hop_size", "ttl", b"ttl", "user_defined_function", b"user_defined_function"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["aggregations", b"aggregations", "batch_source", b"batch_source", "description", b"description", "disabled", b"disabled", "enable_tiling", b"enable_tiling", "enable_validation", b"enable_validation", "entities", b"entities", "entity_columns", b"entity_columns", "feature_transformation", b"feature_transformation", "features", b"features", "mode", b"mode", "name", b"name", "online", b"online", "org", b"org", "owner", b"owner", "project", b"project", "stream_source", b"stream_source", "tags", b"tags", "tiling_hop_size", b"tiling_hop_size", "timestamp_field", b"timestamp_field", "ttl", b"ttl", "user_defined_function", b"user_defined_function", "version", b"version"]) -> None: ... -Global___StreamFeatureViewSpec: _TypeAlias = StreamFeatureViewSpec # noqa: Y015 +global___StreamFeatureViewSpec = StreamFeatureViewSpec diff --git a/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi b/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi index d8aacf9f812..fb56ab5bc73 100644 --- a/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/Transformation_pb2.pyi @@ -2,94 +2,83 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -import builtins as _builtins +import builtins +import google.protobuf.descriptor +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class UserDefinedFunctionV2(_message.Message): +class UserDefinedFunctionV2(google.protobuf.message.Message): """Serialized representation of python function.""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - BODY_FIELD_NUMBER: _builtins.int - BODY_TEXT_FIELD_NUMBER: _builtins.int - MODE_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + BODY_FIELD_NUMBER: builtins.int + BODY_TEXT_FIELD_NUMBER: builtins.int + MODE_FIELD_NUMBER: builtins.int + name: builtins.str """The function name""" - body: _builtins.bytes + body: builtins.bytes """The python-syntax function body (serialized by dill)""" - body_text: _builtins.str + body_text: builtins.str """The string representation of the udf""" - mode: _builtins.str + mode: builtins.str """The transformation mode (e.g., "python", "pandas", "ray", "spark", "sql")""" def __init__( self, *, - name: _builtins.str = ..., - body: _builtins.bytes = ..., - body_text: _builtins.str = ..., - mode: _builtins.str = ..., + name: builtins.str = ..., + body: builtins.bytes = ..., + body_text: builtins.str = ..., + mode: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body", "body_text", b"body_text", "mode", b"mode", "name", b"name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "body_text", b"body_text", "mode", b"mode", "name", b"name"]) -> None: ... -Global___UserDefinedFunctionV2: _TypeAlias = UserDefinedFunctionV2 # noqa: Y015 +global___UserDefinedFunctionV2 = UserDefinedFunctionV2 -@_typing.final -class FeatureTransformationV2(_message.Message): +class FeatureTransformationV2(google.protobuf.message.Message): """A feature transformation executed as a user-defined function""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - USER_DEFINED_FUNCTION_FIELD_NUMBER: _builtins.int - SUBSTRAIT_TRANSFORMATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def user_defined_function(self) -> Global___UserDefinedFunctionV2: ... - @_builtins.property - def substrait_transformation(self) -> Global___SubstraitTransformationV2: ... + USER_DEFINED_FUNCTION_FIELD_NUMBER: builtins.int + SUBSTRAIT_TRANSFORMATION_FIELD_NUMBER: builtins.int + @property + def user_defined_function(self) -> global___UserDefinedFunctionV2: ... + @property + def substrait_transformation(self) -> global___SubstraitTransformationV2: ... def __init__( self, *, - user_defined_function: Global___UserDefinedFunctionV2 | None = ..., - substrait_transformation: Global___SubstraitTransformationV2 | None = ..., + user_defined_function: global___UserDefinedFunctionV2 | None = ..., + substrait_transformation: global___SubstraitTransformationV2 | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_transformation: _TypeAlias = _typing.Literal["user_defined_function", "substrait_transformation"] # noqa: Y015 - _WhichOneofArgType_transformation: _TypeAlias = _typing.Literal["transformation", b"transformation"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_transformation) -> _WhichOneofReturnType_transformation | None: ... + def HasField(self, field_name: typing_extensions.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["substrait_transformation", b"substrait_transformation", "transformation", b"transformation", "user_defined_function", b"user_defined_function"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["transformation", b"transformation"]) -> typing_extensions.Literal["user_defined_function", "substrait_transformation"] | None: ... -Global___FeatureTransformationV2: _TypeAlias = FeatureTransformationV2 # noqa: Y015 +global___FeatureTransformationV2 = FeatureTransformationV2 -@_typing.final -class SubstraitTransformationV2(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class SubstraitTransformationV2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUBSTRAIT_PLAN_FIELD_NUMBER: _builtins.int - IBIS_FUNCTION_FIELD_NUMBER: _builtins.int - substrait_plan: _builtins.bytes - ibis_function: _builtins.bytes + SUBSTRAIT_PLAN_FIELD_NUMBER: builtins.int + IBIS_FUNCTION_FIELD_NUMBER: builtins.int + substrait_plan: builtins.bytes + ibis_function: builtins.bytes def __init__( self, *, - substrait_plan: _builtins.bytes = ..., - ibis_function: _builtins.bytes = ..., + substrait_plan: builtins.bytes = ..., + ibis_function: builtins.bytes = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["ibis_function", b"ibis_function", "substrait_plan", b"substrait_plan"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["ibis_function", b"ibis_function", "substrait_plan", b"substrait_plan"]) -> None: ... -Global___SubstraitTransformationV2: _TypeAlias = SubstraitTransformationV2 # noqa: Y015 +global___SubstraitTransformationV2 = SubstraitTransformationV2 diff --git a/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi b/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi index 16cc081f054..93da1e0f5e8 100644 --- a/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/ValidationProfile_pb2.pyi @@ -16,139 +16,121 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing +import typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class GEValidationProfiler(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GEValidationProfiler(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class UserDefinedProfiler(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class UserDefinedProfiler(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - BODY_FIELD_NUMBER: _builtins.int - body: _builtins.bytes + BODY_FIELD_NUMBER: builtins.int + body: builtins.bytes """The python-syntax function body (serialized by dill)""" def __init__( self, *, - body: _builtins.bytes = ..., + body: builtins.bytes = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["body", b"body"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["body", b"body"]) -> None: ... - PROFILER_FIELD_NUMBER: _builtins.int - @_builtins.property - def profiler(self) -> Global___GEValidationProfiler.UserDefinedProfiler: ... + PROFILER_FIELD_NUMBER: builtins.int + @property + def profiler(self) -> global___GEValidationProfiler.UserDefinedProfiler: ... def __init__( self, *, - profiler: Global___GEValidationProfiler.UserDefinedProfiler | None = ..., + profiler: global___GEValidationProfiler.UserDefinedProfiler | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["profiler", b"profiler"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["profiler", b"profiler"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["profiler", b"profiler"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["profiler", b"profiler"]) -> None: ... -Global___GEValidationProfiler: _TypeAlias = GEValidationProfiler # noqa: Y015 +global___GEValidationProfiler = GEValidationProfiler -@_typing.final -class GEValidationProfile(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GEValidationProfile(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXPECTATION_SUITE_FIELD_NUMBER: _builtins.int - expectation_suite: _builtins.bytes + EXPECTATION_SUITE_FIELD_NUMBER: builtins.int + expectation_suite: builtins.bytes """JSON-serialized ExpectationSuite object""" def __init__( self, *, - expectation_suite: _builtins.bytes = ..., + expectation_suite: builtins.bytes = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["expectation_suite", b"expectation_suite"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["expectation_suite", b"expectation_suite"]) -> None: ... -Global___GEValidationProfile: _TypeAlias = GEValidationProfile # noqa: Y015 +global___GEValidationProfile = GEValidationProfile -@_typing.final -class ValidationReference(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ValidationReference(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - REFERENCE_DATASET_NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - GE_PROFILER_FIELD_NUMBER: _builtins.int - GE_PROFILE_FIELD_NUMBER: _builtins.int - name: _builtins.str + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + REFERENCE_DATASET_NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + GE_PROFILER_FIELD_NUMBER: builtins.int + GE_PROFILE_FIELD_NUMBER: builtins.int + name: builtins.str """Unique name of validation reference within the project""" - reference_dataset_name: _builtins.str + reference_dataset_name: builtins.str """Name of saved dataset used as reference dataset""" - project: _builtins.str + project: builtins.str """Name of Feast project that this object source belongs to""" - description: _builtins.str + description: builtins.str """Description of the validation reference""" - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """User defined metadata""" - - @_builtins.property - def ge_profiler(self) -> Global___GEValidationProfiler: ... - @_builtins.property - def ge_profile(self) -> Global___GEValidationProfile: ... + @property + def ge_profiler(self) -> global___GEValidationProfiler: ... + @property + def ge_profile(self) -> global___GEValidationProfile: ... def __init__( self, *, - name: _builtins.str = ..., - reference_dataset_name: _builtins.str = ..., - project: _builtins.str = ..., - description: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - ge_profiler: Global___GEValidationProfiler | None = ..., - ge_profile: Global___GEValidationProfile | None = ..., + name: builtins.str = ..., + reference_dataset_name: builtins.str = ..., + project: builtins.str = ..., + description: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ge_profiler: global___GEValidationProfiler | None = ..., + ge_profile: global___GEValidationProfile | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["cached_profile", b"cached_profile", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "profiler", b"profiler"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["cached_profile", b"cached_profile", "description", b"description", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "name", b"name", "profiler", b"profiler", "project", b"project", "reference_dataset_name", b"reference_dataset_name", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_cached_profile: _TypeAlias = _typing.Literal["ge_profile"] # noqa: Y015 - _WhichOneofArgType_cached_profile: _TypeAlias = _typing.Literal["cached_profile", b"cached_profile"] # noqa: Y015 - _WhichOneofReturnType_profiler: _TypeAlias = _typing.Literal["ge_profiler"] # noqa: Y015 - _WhichOneofArgType_profiler: _TypeAlias = _typing.Literal["profiler", b"profiler"] # noqa: Y015 - @_typing.overload - def WhichOneof(self, oneof_group: _WhichOneofArgType_cached_profile) -> _WhichOneofReturnType_cached_profile | None: ... - @_typing.overload - def WhichOneof(self, oneof_group: _WhichOneofArgType_profiler) -> _WhichOneofReturnType_profiler | None: ... - -Global___ValidationReference: _TypeAlias = ValidationReference # noqa: Y015 + def HasField(self, field_name: typing_extensions.Literal["cached_profile", b"cached_profile", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "profiler", b"profiler"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["cached_profile", b"cached_profile", "description", b"description", "ge_profile", b"ge_profile", "ge_profiler", b"ge_profiler", "name", b"name", "profiler", b"profiler", "project", b"project", "reference_dataset_name", b"reference_dataset_name", "tags", b"tags"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["cached_profile", b"cached_profile"]) -> typing_extensions.Literal["ge_profile"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["profiler", b"profiler"]) -> typing_extensions.Literal["ge_profiler"] | None: ... + +global___ValidationReference = ValidationReference diff --git a/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi b/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi index 7dd137bc89e..a1f1b99365d 100644 --- a/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi +++ b/sdk/python/feast/protos/feast/registry/RegistryServer_pb2.pyi @@ -2,2053 +2,1841 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from feast.core import DataSource_pb2 as _DataSource_pb2 -from feast.core import Entity_pb2 as _Entity_pb2 -from feast.core import FeatureService_pb2 as _FeatureService_pb2 -from feast.core import FeatureView_pb2 as _FeatureView_pb2 -from feast.core import InfraObject_pb2 as _InfraObject_pb2 -from feast.core import OnDemandFeatureView_pb2 as _OnDemandFeatureView_pb2 -from feast.core import Permission_pb2 as _Permission_pb2 -from feast.core import Project_pb2 as _Project_pb2 -from feast.core import Registry_pb2 as _Registry_pb2 -from feast.core import SavedDataset_pb2 as _SavedDataset_pb2 -from feast.core import StreamFeatureView_pb2 as _StreamFeatureView_pb2 -from feast.core import ValidationProfile_pb2 as _ValidationProfile_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataSource_pb2 +import feast.core.Entity_pb2 +import feast.core.FeatureService_pb2 +import feast.core.FeatureView_pb2 +import feast.core.InfraObject_pb2 +import feast.core.OnDemandFeatureView_pb2 +import feast.core.Permission_pb2 +import feast.core.Project_pb2 +import feast.core.Registry_pb2 +import feast.core.SavedDataset_pb2 +import feast.core.StreamFeatureView_pb2 +import feast.core.ValidationProfile_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class PaginationParams(_message.Message): +class PaginationParams(google.protobuf.message.Message): """Common pagination and sorting messages""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PAGE_FIELD_NUMBER: _builtins.int - LIMIT_FIELD_NUMBER: _builtins.int - page: _builtins.int + PAGE_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + page: builtins.int """1-based page number""" - limit: _builtins.int + limit: builtins.int """Number of items per page""" def __init__( self, *, - page: _builtins.int = ..., - limit: _builtins.int = ..., + page: builtins.int = ..., + limit: builtins.int = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["limit", b"limit", "page", b"page"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["limit", b"limit", "page", b"page"]) -> None: ... -Global___PaginationParams: _TypeAlias = PaginationParams # noqa: Y015 +global___PaginationParams = PaginationParams -@_typing.final -class SortingParams(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class SortingParams(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SORT_BY_FIELD_NUMBER: _builtins.int - SORT_ORDER_FIELD_NUMBER: _builtins.int - sort_by: _builtins.str + SORT_BY_FIELD_NUMBER: builtins.int + SORT_ORDER_FIELD_NUMBER: builtins.int + sort_by: builtins.str """Field to sort by (supports dot notation)""" - sort_order: _builtins.str + sort_order: builtins.str """"asc" or "desc" """ def __init__( self, *, - sort_by: _builtins.str = ..., - sort_order: _builtins.str = ..., + sort_by: builtins.str = ..., + sort_order: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["sort_by", b"sort_by", "sort_order", b"sort_order"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["sort_by", b"sort_by", "sort_order", b"sort_order"]) -> None: ... -Global___SortingParams: _TypeAlias = SortingParams # noqa: Y015 +global___SortingParams = SortingParams -@_typing.final -class PaginationMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class PaginationMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PAGE_FIELD_NUMBER: _builtins.int - LIMIT_FIELD_NUMBER: _builtins.int - TOTAL_COUNT_FIELD_NUMBER: _builtins.int - TOTAL_PAGES_FIELD_NUMBER: _builtins.int - HAS_NEXT_FIELD_NUMBER: _builtins.int - HAS_PREVIOUS_FIELD_NUMBER: _builtins.int - page: _builtins.int - limit: _builtins.int - total_count: _builtins.int - total_pages: _builtins.int - has_next: _builtins.bool - has_previous: _builtins.bool + PAGE_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + TOTAL_COUNT_FIELD_NUMBER: builtins.int + TOTAL_PAGES_FIELD_NUMBER: builtins.int + HAS_NEXT_FIELD_NUMBER: builtins.int + HAS_PREVIOUS_FIELD_NUMBER: builtins.int + page: builtins.int + limit: builtins.int + total_count: builtins.int + total_pages: builtins.int + has_next: builtins.bool + has_previous: builtins.bool def __init__( self, *, - page: _builtins.int = ..., - limit: _builtins.int = ..., - total_count: _builtins.int = ..., - total_pages: _builtins.int = ..., - has_next: _builtins.bool = ..., - has_previous: _builtins.bool = ..., + page: builtins.int = ..., + limit: builtins.int = ..., + total_count: builtins.int = ..., + total_pages: builtins.int = ..., + has_next: builtins.bool = ..., + has_previous: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["has_next", b"has_next", "has_previous", b"has_previous", "limit", b"limit", "page", b"page", "total_count", b"total_count", "total_pages", b"total_pages"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["has_next", b"has_next", "has_previous", b"has_previous", "limit", b"limit", "page", b"page", "total_count", b"total_count", "total_pages", b"total_pages"]) -> None: ... -Global___PaginationMetadata: _TypeAlias = PaginationMetadata # noqa: Y015 +global___PaginationMetadata = PaginationMetadata -@_typing.final -class RefreshRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class RefreshRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - project: _builtins.str + PROJECT_FIELD_NUMBER: builtins.int + project: builtins.str def __init__( self, *, - project: _builtins.str = ..., + project: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project", b"project"]) -> None: ... -Global___RefreshRequest: _TypeAlias = RefreshRequest # noqa: Y015 +global___RefreshRequest = RefreshRequest -@_typing.final -class UpdateInfraRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class UpdateInfraRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - INFRA_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def infra(self) -> _InfraObject_pb2.Infra: ... + INFRA_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def infra(self) -> feast.core.InfraObject_pb2.Infra: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - infra: _InfraObject_pb2.Infra | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + infra: feast.core.InfraObject_pb2.Infra | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["infra", b"infra"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "infra", b"infra", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["infra", b"infra"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "infra", b"infra", "project", b"project"]) -> None: ... -Global___UpdateInfraRequest: _TypeAlias = UpdateInfraRequest # noqa: Y015 +global___UpdateInfraRequest = UpdateInfraRequest -@_typing.final -class GetInfraRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetInfraRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "project", b"project"]) -> None: ... -Global___GetInfraRequest: _TypeAlias = GetInfraRequest # noqa: Y015 +global___GetInfraRequest = GetInfraRequest -@_typing.final -class ListProjectMetadataRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListProjectMetadataRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "project", b"project"]) -> None: ... -Global___ListProjectMetadataRequest: _TypeAlias = ListProjectMetadataRequest # noqa: Y015 +global___ListProjectMetadataRequest = ListProjectMetadataRequest -@_typing.final -class ListProjectMetadataResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListProjectMetadataResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_METADATA_FIELD_NUMBER: _builtins.int - @_builtins.property - def project_metadata(self) -> _containers.RepeatedCompositeFieldContainer[_Registry_pb2.ProjectMetadata]: ... + PROJECT_METADATA_FIELD_NUMBER: builtins.int + @property + def project_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Registry_pb2.ProjectMetadata]: ... def __init__( self, *, - project_metadata: _abc.Iterable[_Registry_pb2.ProjectMetadata] | None = ..., + project_metadata: collections.abc.Iterable[feast.core.Registry_pb2.ProjectMetadata] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["project_metadata", b"project_metadata"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["project_metadata", b"project_metadata"]) -> None: ... -Global___ListProjectMetadataResponse: _TypeAlias = ListProjectMetadataResponse # noqa: Y015 +global___ListProjectMetadataResponse = ListProjectMetadataResponse -@_typing.final -class ApplyMaterializationRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ApplyMaterializationRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - START_DATE_FIELD_NUMBER: _builtins.int - END_DATE_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def feature_view(self) -> _FeatureView_pb2.FeatureView: ... - @_builtins.property - def start_date(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def end_date(self) -> _timestamp_pb2.Timestamp: ... + FEATURE_VIEW_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + START_DATE_FIELD_NUMBER: builtins.int + END_DATE_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... + project: builtins.str + @property + def start_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def end_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + commit: builtins.bool def __init__( self, *, - feature_view: _FeatureView_pb2.FeatureView | None = ..., - project: _builtins.str = ..., - start_date: _timestamp_pb2.Timestamp | None = ..., - end_date: _timestamp_pb2.Timestamp | None = ..., - commit: _builtins.bool = ..., + feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., + project: builtins.str = ..., + start_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + end_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["end_date", b"end_date", "feature_view", b"feature_view", "start_date", b"start_date"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "end_date", b"end_date", "feature_view", b"feature_view", "project", b"project", "start_date", b"start_date"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["end_date", b"end_date", "feature_view", b"feature_view", "start_date", b"start_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "end_date", b"end_date", "feature_view", b"feature_view", "project", b"project", "start_date", b"start_date"]) -> None: ... -Global___ApplyMaterializationRequest: _TypeAlias = ApplyMaterializationRequest # noqa: Y015 +global___ApplyMaterializationRequest = ApplyMaterializationRequest -@_typing.final -class ApplyEntityRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ApplyEntityRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITY_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def entity(self) -> _Entity_pb2.Entity: ... + ENTITY_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def entity(self) -> feast.core.Entity_pb2.Entity: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - entity: _Entity_pb2.Entity | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + entity: feast.core.Entity_pb2.Entity | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["entity", b"entity"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "entity", b"entity", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "entity", b"entity", "project", b"project"]) -> None: ... -Global___ApplyEntityRequest: _TypeAlias = ApplyEntityRequest # noqa: Y015 +global___ApplyEntityRequest = ApplyEntityRequest -@_typing.final -class GetEntityRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetEntityRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetEntityRequest: _TypeAlias = GetEntityRequest # noqa: Y015 +global___GetEntityRequest = GetEntityRequest -@_typing.final -class ListEntitiesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListEntitiesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListEntitiesRequest: _TypeAlias = ListEntitiesRequest # noqa: Y015 +global___ListEntitiesRequest = ListEntitiesRequest -@_typing.final -class ListEntitiesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListEntitiesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITIES_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def entities(self) -> _containers.RepeatedCompositeFieldContainer[_Entity_pb2.Entity]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + ENTITIES_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Entity_pb2.Entity]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - entities: _abc.Iterable[_Entity_pb2.Entity] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + entities: collections.abc.Iterable[feast.core.Entity_pb2.Entity] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entities", b"entities", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities", "pagination", b"pagination"]) -> None: ... -Global___ListEntitiesResponse: _TypeAlias = ListEntitiesResponse # noqa: Y015 +global___ListEntitiesResponse = ListEntitiesResponse -@_typing.final -class DeleteEntityRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteEntityRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeleteEntityRequest: _TypeAlias = DeleteEntityRequest # noqa: Y015 +global___DeleteEntityRequest = DeleteEntityRequest -@_typing.final -class ApplyDataSourceRequest(_message.Message): +class ApplyDataSourceRequest(google.protobuf.message.Message): """DataSources""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_SOURCE_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def data_source(self) -> _DataSource_pb2.DataSource: ... + DATA_SOURCE_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def data_source(self) -> feast.core.DataSource_pb2.DataSource: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - data_source: _DataSource_pb2.DataSource | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + data_source: feast.core.DataSource_pb2.DataSource | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["data_source", b"data_source"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "data_source", b"data_source", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["data_source", b"data_source"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "data_source", b"data_source", "project", b"project"]) -> None: ... -Global___ApplyDataSourceRequest: _TypeAlias = ApplyDataSourceRequest # noqa: Y015 +global___ApplyDataSourceRequest = ApplyDataSourceRequest -@_typing.final -class GetDataSourceRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetDataSourceRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetDataSourceRequest: _TypeAlias = GetDataSourceRequest # noqa: Y015 +global___GetDataSourceRequest = GetDataSourceRequest -@_typing.final -class ListDataSourcesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListDataSourcesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListDataSourcesRequest: _TypeAlias = ListDataSourcesRequest # noqa: Y015 +global___ListDataSourcesRequest = ListDataSourcesRequest -@_typing.final -class ListDataSourcesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListDataSourcesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_SOURCES_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def data_sources(self) -> _containers.RepeatedCompositeFieldContainer[_DataSource_pb2.DataSource]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + DATA_SOURCES_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def data_sources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.DataSource_pb2.DataSource]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - data_sources: _abc.Iterable[_DataSource_pb2.DataSource] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + data_sources: collections.abc.Iterable[feast.core.DataSource_pb2.DataSource] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["data_sources", b"data_sources", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["data_sources", b"data_sources", "pagination", b"pagination"]) -> None: ... -Global___ListDataSourcesResponse: _TypeAlias = ListDataSourcesResponse # noqa: Y015 +global___ListDataSourcesResponse = ListDataSourcesResponse -@_typing.final -class DeleteDataSourceRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteDataSourceRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeleteDataSourceRequest: _TypeAlias = DeleteDataSourceRequest # noqa: Y015 +global___DeleteDataSourceRequest = DeleteDataSourceRequest -@_typing.final -class ApplyFeatureViewRequest(_message.Message): +class ApplyFeatureViewRequest(google.protobuf.message.Message): """FeatureViews""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: _builtins.int - STREAM_FEATURE_VIEW_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def feature_view(self) -> _FeatureView_pb2.FeatureView: ... - @_builtins.property - def on_demand_feature_view(self) -> _OnDemandFeatureView_pb2.OnDemandFeatureView: ... - @_builtins.property - def stream_feature_view(self) -> _StreamFeatureView_pb2.StreamFeatureView: ... + FEATURE_VIEW_FIELD_NUMBER: builtins.int + ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: builtins.int + STREAM_FEATURE_VIEW_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... + @property + def on_demand_feature_view(self) -> feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView: ... + @property + def stream_feature_view(self) -> feast.core.StreamFeatureView_pb2.StreamFeatureView: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - feature_view: _FeatureView_pb2.FeatureView | None = ..., - on_demand_feature_view: _OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., - stream_feature_view: _StreamFeatureView_pb2.StreamFeatureView | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., + on_demand_feature_view: feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., + stream_feature_view: feast.core.StreamFeatureView_pb2.StreamFeatureView | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["base_feature_view", b"base_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["base_feature_view", b"base_feature_view", "commit", b"commit", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "project", b"project", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_base_feature_view: _TypeAlias = _typing.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] # noqa: Y015 - _WhichOneofArgType_base_feature_view: _TypeAlias = _typing.Literal["base_feature_view", b"base_feature_view"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_base_feature_view) -> _WhichOneofReturnType_base_feature_view | None: ... + def HasField(self, field_name: typing_extensions.Literal["base_feature_view", b"base_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["base_feature_view", b"base_feature_view", "commit", b"commit", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "project", b"project", "stream_feature_view", b"stream_feature_view"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["base_feature_view", b"base_feature_view"]) -> typing_extensions.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] | None: ... -Global___ApplyFeatureViewRequest: _TypeAlias = ApplyFeatureViewRequest # noqa: Y015 +global___ApplyFeatureViewRequest = ApplyFeatureViewRequest -@_typing.final -class GetFeatureViewRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetFeatureViewRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetFeatureViewRequest: _TypeAlias = GetFeatureViewRequest # noqa: Y015 +global___GetFeatureViewRequest = GetFeatureViewRequest -@_typing.final -class ListFeatureViewsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListFeatureViewsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListFeatureViewsRequest: _TypeAlias = ListFeatureViewsRequest # noqa: Y015 +global___ListFeatureViewsRequest = ListFeatureViewsRequest -@_typing.final -class ListFeatureViewsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListFeatureViewsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureView_pb2.FeatureView]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + FEATURE_VIEWS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureView_pb2.FeatureView]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - feature_views: _abc.Iterable[_FeatureView_pb2.FeatureView] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + feature_views: collections.abc.Iterable[feast.core.FeatureView_pb2.FeatureView] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_views", b"feature_views", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_views", b"feature_views", "pagination", b"pagination"]) -> None: ... -Global___ListFeatureViewsResponse: _TypeAlias = ListFeatureViewsResponse # noqa: Y015 +global___ListFeatureViewsResponse = ListFeatureViewsResponse -@_typing.final -class DeleteFeatureViewRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteFeatureViewRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeleteFeatureViewRequest: _TypeAlias = DeleteFeatureViewRequest # noqa: Y015 +global___DeleteFeatureViewRequest = DeleteFeatureViewRequest -@_typing.final -class AnyFeatureView(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class AnyFeatureView(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: _builtins.int - STREAM_FEATURE_VIEW_FIELD_NUMBER: _builtins.int - @_builtins.property - def feature_view(self) -> _FeatureView_pb2.FeatureView: ... - @_builtins.property - def on_demand_feature_view(self) -> _OnDemandFeatureView_pb2.OnDemandFeatureView: ... - @_builtins.property - def stream_feature_view(self) -> _StreamFeatureView_pb2.StreamFeatureView: ... + FEATURE_VIEW_FIELD_NUMBER: builtins.int + ON_DEMAND_FEATURE_VIEW_FIELD_NUMBER: builtins.int + STREAM_FEATURE_VIEW_FIELD_NUMBER: builtins.int + @property + def feature_view(self) -> feast.core.FeatureView_pb2.FeatureView: ... + @property + def on_demand_feature_view(self) -> feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView: ... + @property + def stream_feature_view(self) -> feast.core.StreamFeatureView_pb2.StreamFeatureView: ... def __init__( self, *, - feature_view: _FeatureView_pb2.FeatureView | None = ..., - on_demand_feature_view: _OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., - stream_feature_view: _StreamFeatureView_pb2.StreamFeatureView | None = ..., + feature_view: feast.core.FeatureView_pb2.FeatureView | None = ..., + on_demand_feature_view: feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView | None = ..., + stream_feature_view: feast.core.StreamFeatureView_pb2.StreamFeatureView | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_any_feature_view: _TypeAlias = _typing.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] # noqa: Y015 - _WhichOneofArgType_any_feature_view: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_any_feature_view) -> _WhichOneofReturnType_any_feature_view | None: ... + def HasField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view", "feature_view", b"feature_view", "on_demand_feature_view", b"on_demand_feature_view", "stream_feature_view", b"stream_feature_view"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["any_feature_view", b"any_feature_view"]) -> typing_extensions.Literal["feature_view", "on_demand_feature_view", "stream_feature_view"] | None: ... -Global___AnyFeatureView: _TypeAlias = AnyFeatureView # noqa: Y015 +global___AnyFeatureView = AnyFeatureView -@_typing.final -class GetAnyFeatureViewRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetAnyFeatureViewRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetAnyFeatureViewRequest: _TypeAlias = GetAnyFeatureViewRequest # noqa: Y015 +global___GetAnyFeatureViewRequest = GetAnyFeatureViewRequest -@_typing.final -class GetAnyFeatureViewResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetAnyFeatureViewResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ANY_FEATURE_VIEW_FIELD_NUMBER: _builtins.int - @_builtins.property - def any_feature_view(self) -> Global___AnyFeatureView: ... + ANY_FEATURE_VIEW_FIELD_NUMBER: builtins.int + @property + def any_feature_view(self) -> global___AnyFeatureView: ... def __init__( self, *, - any_feature_view: Global___AnyFeatureView | None = ..., + any_feature_view: global___AnyFeatureView | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["any_feature_view", b"any_feature_view"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["any_feature_view", b"any_feature_view"]) -> None: ... -Global___GetAnyFeatureViewResponse: _TypeAlias = GetAnyFeatureViewResponse # noqa: Y015 +global___GetAnyFeatureViewResponse = GetAnyFeatureViewResponse -@_typing.final -class ListAllFeatureViewsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListAllFeatureViewsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - ENTITY_FIELD_NUMBER: _builtins.int - FEATURE_FIELD_NUMBER: _builtins.int - FEATURE_SERVICE_FIELD_NUMBER: _builtins.int - DATA_SOURCE_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - entity: _builtins.str - feature: _builtins.str - feature_service: _builtins.str - data_source: _builtins.str - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... - def __init__( - self, - *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - entity: _builtins.str = ..., - feature: _builtins.str = ..., - feature_service: _builtins.str = ..., - data_source: _builtins.str = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "data_source", b"data_source", "entity", b"entity", "feature", b"feature", "feature_service", b"feature_service", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___ListAllFeatureViewsRequest: _TypeAlias = ListAllFeatureViewsRequest # noqa: Y015 - -@_typing.final -class ListAllFeatureViewsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def feature_views(self) -> _containers.RepeatedCompositeFieldContainer[Global___AnyFeatureView]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... - def __init__( - self, - *, - feature_views: _abc.Iterable[Global___AnyFeatureView] | None = ..., - pagination: Global___PaginationMetadata | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_views", b"feature_views", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___ListAllFeatureViewsResponse: _TypeAlias = ListAllFeatureViewsResponse # noqa: Y015 - -@_typing.final -class GetStreamFeatureViewRequest(_message.Message): + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + ENTITY_FIELD_NUMBER: builtins.int + FEATURE_FIELD_NUMBER: builtins.int + FEATURE_SERVICE_FIELD_NUMBER: builtins.int + DATA_SOURCE_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + entity: builtins.str + feature: builtins.str + feature_service: builtins.str + data_source: builtins.str + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... + def __init__( + self, + *, + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + entity: builtins.str = ..., + feature: builtins.str = ..., + feature_service: builtins.str = ..., + data_source: builtins.str = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "data_source", b"data_source", "entity", b"entity", "feature", b"feature", "feature_service", b"feature_service", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... + +global___ListAllFeatureViewsRequest = ListAllFeatureViewsRequest + +class ListAllFeatureViewsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURE_VIEWS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AnyFeatureView]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... + def __init__( + self, + *, + feature_views: collections.abc.Iterable[global___AnyFeatureView] | None = ..., + pagination: global___PaginationMetadata | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_views", b"feature_views", "pagination", b"pagination"]) -> None: ... + +global___ListAllFeatureViewsResponse = ListAllFeatureViewsResponse + +class GetStreamFeatureViewRequest(google.protobuf.message.Message): """StreamFeatureView""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetStreamFeatureViewRequest: _TypeAlias = GetStreamFeatureViewRequest # noqa: Y015 +global___GetStreamFeatureViewRequest = GetStreamFeatureViewRequest -@_typing.final -class ListStreamFeatureViewsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListStreamFeatureViewsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListStreamFeatureViewsRequest: _TypeAlias = ListStreamFeatureViewsRequest # noqa: Y015 +global___ListStreamFeatureViewsRequest = ListStreamFeatureViewsRequest -@_typing.final -class ListStreamFeatureViewsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListStreamFeatureViewsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - STREAM_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def stream_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_StreamFeatureView_pb2.StreamFeatureView]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + STREAM_FEATURE_VIEWS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def stream_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.StreamFeatureView_pb2.StreamFeatureView]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - stream_feature_views: _abc.Iterable[_StreamFeatureView_pb2.StreamFeatureView] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + stream_feature_views: collections.abc.Iterable[feast.core.StreamFeatureView_pb2.StreamFeatureView] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "stream_feature_views", b"stream_feature_views"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "stream_feature_views", b"stream_feature_views"]) -> None: ... -Global___ListStreamFeatureViewsResponse: _TypeAlias = ListStreamFeatureViewsResponse # noqa: Y015 +global___ListStreamFeatureViewsResponse = ListStreamFeatureViewsResponse -@_typing.final -class GetOnDemandFeatureViewRequest(_message.Message): +class GetOnDemandFeatureViewRequest(google.protobuf.message.Message): """OnDemandFeatureView""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetOnDemandFeatureViewRequest: _TypeAlias = GetOnDemandFeatureViewRequest # noqa: Y015 +global___GetOnDemandFeatureViewRequest = GetOnDemandFeatureViewRequest -@_typing.final -class ListOnDemandFeatureViewsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListOnDemandFeatureViewsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListOnDemandFeatureViewsRequest: _TypeAlias = ListOnDemandFeatureViewsRequest # noqa: Y015 +global___ListOnDemandFeatureViewsRequest = ListOnDemandFeatureViewsRequest -@_typing.final -class ListOnDemandFeatureViewsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListOnDemandFeatureViewsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def on_demand_feature_views(self) -> _containers.RepeatedCompositeFieldContainer[_OnDemandFeatureView_pb2.OnDemandFeatureView]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + ON_DEMAND_FEATURE_VIEWS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def on_demand_feature_views(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - on_demand_feature_views: _abc.Iterable[_OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + on_demand_feature_views: collections.abc.Iterable[feast.core.OnDemandFeatureView_pb2.OnDemandFeatureView] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["on_demand_feature_views", b"on_demand_feature_views", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["on_demand_feature_views", b"on_demand_feature_views", "pagination", b"pagination"]) -> None: ... -Global___ListOnDemandFeatureViewsResponse: _TypeAlias = ListOnDemandFeatureViewsResponse # noqa: Y015 +global___ListOnDemandFeatureViewsResponse = ListOnDemandFeatureViewsResponse -@_typing.final -class ApplyFeatureServiceRequest(_message.Message): +class ApplyFeatureServiceRequest(google.protobuf.message.Message): """FeatureServices""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_SERVICE_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def feature_service(self) -> _FeatureService_pb2.FeatureService: ... + FEATURE_SERVICE_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def feature_service(self) -> feast.core.FeatureService_pb2.FeatureService: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - feature_service: _FeatureService_pb2.FeatureService | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + feature_service: feast.core.FeatureService_pb2.FeatureService | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feature_service", b"feature_service"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "feature_service", b"feature_service", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["feature_service", b"feature_service"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "feature_service", b"feature_service", "project", b"project"]) -> None: ... -Global___ApplyFeatureServiceRequest: _TypeAlias = ApplyFeatureServiceRequest # noqa: Y015 +global___ApplyFeatureServiceRequest = ApplyFeatureServiceRequest -@_typing.final -class GetFeatureServiceRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetFeatureServiceRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetFeatureServiceRequest: _TypeAlias = GetFeatureServiceRequest # noqa: Y015 +global___GetFeatureServiceRequest = GetFeatureServiceRequest -@_typing.final -class ListFeatureServicesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListFeatureServicesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - feature_view: _builtins.str - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + FEATURE_VIEW_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + feature_view: builtins.str + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - feature_view: _builtins.str = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + feature_view: builtins.str = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListFeatureServicesRequest: _TypeAlias = ListFeatureServicesRequest # noqa: Y015 +global___ListFeatureServicesRequest = ListFeatureServicesRequest -@_typing.final -class ListFeatureServicesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListFeatureServicesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_SERVICES_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def feature_services(self) -> _containers.RepeatedCompositeFieldContainer[_FeatureService_pb2.FeatureService]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + FEATURE_SERVICES_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def feature_services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.FeatureService_pb2.FeatureService]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - feature_services: _abc.Iterable[_FeatureService_pb2.FeatureService] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + feature_services: collections.abc.Iterable[feast.core.FeatureService_pb2.FeatureService] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_services", b"feature_services", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_services", b"feature_services", "pagination", b"pagination"]) -> None: ... -Global___ListFeatureServicesResponse: _TypeAlias = ListFeatureServicesResponse # noqa: Y015 +global___ListFeatureServicesResponse = ListFeatureServicesResponse -@_typing.final -class DeleteFeatureServiceRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteFeatureServiceRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeleteFeatureServiceRequest: _TypeAlias = DeleteFeatureServiceRequest # noqa: Y015 +global___DeleteFeatureServiceRequest = DeleteFeatureServiceRequest -@_typing.final -class ApplySavedDatasetRequest(_message.Message): +class ApplySavedDatasetRequest(google.protobuf.message.Message): """SavedDataset""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SAVED_DATASET_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def saved_dataset(self) -> _SavedDataset_pb2.SavedDataset: ... + SAVED_DATASET_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def saved_dataset(self) -> feast.core.SavedDataset_pb2.SavedDataset: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - saved_dataset: _SavedDataset_pb2.SavedDataset | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + saved_dataset: feast.core.SavedDataset_pb2.SavedDataset | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["saved_dataset", b"saved_dataset"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "project", b"project", "saved_dataset", b"saved_dataset"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["saved_dataset", b"saved_dataset"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "project", b"project", "saved_dataset", b"saved_dataset"]) -> None: ... -Global___ApplySavedDatasetRequest: _TypeAlias = ApplySavedDatasetRequest # noqa: Y015 +global___ApplySavedDatasetRequest = ApplySavedDatasetRequest -@_typing.final -class GetSavedDatasetRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetSavedDatasetRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetSavedDatasetRequest: _TypeAlias = GetSavedDatasetRequest # noqa: Y015 +global___GetSavedDatasetRequest = GetSavedDatasetRequest -@_typing.final -class ListSavedDatasetsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListSavedDatasetsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListSavedDatasetsRequest: _TypeAlias = ListSavedDatasetsRequest # noqa: Y015 +global___ListSavedDatasetsRequest = ListSavedDatasetsRequest -@_typing.final -class ListSavedDatasetsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListSavedDatasetsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - SAVED_DATASETS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def saved_datasets(self) -> _containers.RepeatedCompositeFieldContainer[_SavedDataset_pb2.SavedDataset]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + SAVED_DATASETS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def saved_datasets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.SavedDataset_pb2.SavedDataset]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - saved_datasets: _abc.Iterable[_SavedDataset_pb2.SavedDataset] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + saved_datasets: collections.abc.Iterable[feast.core.SavedDataset_pb2.SavedDataset] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "saved_datasets", b"saved_datasets"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "saved_datasets", b"saved_datasets"]) -> None: ... -Global___ListSavedDatasetsResponse: _TypeAlias = ListSavedDatasetsResponse # noqa: Y015 +global___ListSavedDatasetsResponse = ListSavedDatasetsResponse -@_typing.final -class DeleteSavedDatasetRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteSavedDatasetRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeleteSavedDatasetRequest: _TypeAlias = DeleteSavedDatasetRequest # noqa: Y015 +global___DeleteSavedDatasetRequest = DeleteSavedDatasetRequest -@_typing.final -class ApplyValidationReferenceRequest(_message.Message): +class ApplyValidationReferenceRequest(google.protobuf.message.Message): """ValidationReference""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALIDATION_REFERENCE_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def validation_reference(self) -> _ValidationProfile_pb2.ValidationReference: ... + VALIDATION_REFERENCE_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def validation_reference(self) -> feast.core.ValidationProfile_pb2.ValidationReference: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - validation_reference: _ValidationProfile_pb2.ValidationReference | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + validation_reference: feast.core.ValidationProfile_pb2.ValidationReference | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["validation_reference", b"validation_reference"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "project", b"project", "validation_reference", b"validation_reference"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["validation_reference", b"validation_reference"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "project", b"project", "validation_reference", b"validation_reference"]) -> None: ... -Global___ApplyValidationReferenceRequest: _TypeAlias = ApplyValidationReferenceRequest # noqa: Y015 +global___ApplyValidationReferenceRequest = ApplyValidationReferenceRequest -@_typing.final -class GetValidationReferenceRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetValidationReferenceRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetValidationReferenceRequest: _TypeAlias = GetValidationReferenceRequest # noqa: Y015 +global___GetValidationReferenceRequest = GetValidationReferenceRequest -@_typing.final -class ListValidationReferencesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListValidationReferencesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListValidationReferencesRequest: _TypeAlias = ListValidationReferencesRequest # noqa: Y015 +global___ListValidationReferencesRequest = ListValidationReferencesRequest -@_typing.final -class ListValidationReferencesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListValidationReferencesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALIDATION_REFERENCES_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def validation_references(self) -> _containers.RepeatedCompositeFieldContainer[_ValidationProfile_pb2.ValidationReference]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + VALIDATION_REFERENCES_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def validation_references(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.ValidationProfile_pb2.ValidationReference]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - validation_references: _abc.Iterable[_ValidationProfile_pb2.ValidationReference] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + validation_references: collections.abc.Iterable[feast.core.ValidationProfile_pb2.ValidationReference] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "validation_references", b"validation_references"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "validation_references", b"validation_references"]) -> None: ... -Global___ListValidationReferencesResponse: _TypeAlias = ListValidationReferencesResponse # noqa: Y015 +global___ListValidationReferencesResponse = ListValidationReferencesResponse -@_typing.final -class DeleteValidationReferenceRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteValidationReferenceRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeleteValidationReferenceRequest: _TypeAlias = DeleteValidationReferenceRequest # noqa: Y015 +global___DeleteValidationReferenceRequest = DeleteValidationReferenceRequest -@_typing.final -class ApplyPermissionRequest(_message.Message): +class ApplyPermissionRequest(google.protobuf.message.Message): """Permissions""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PERMISSION_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - project: _builtins.str - commit: _builtins.bool - @_builtins.property - def permission(self) -> _Permission_pb2.Permission: ... + PERMISSION_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def permission(self) -> feast.core.Permission_pb2.Permission: ... + project: builtins.str + commit: builtins.bool def __init__( self, *, - permission: _Permission_pb2.Permission | None = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + permission: feast.core.Permission_pb2.Permission | None = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["permission", b"permission"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "permission", b"permission", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["permission", b"permission"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "permission", b"permission", "project", b"project"]) -> None: ... -Global___ApplyPermissionRequest: _TypeAlias = ApplyPermissionRequest # noqa: Y015 +global___ApplyPermissionRequest = ApplyPermissionRequest -@_typing.final -class GetPermissionRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetPermissionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name", "project", b"project"]) -> None: ... -Global___GetPermissionRequest: _TypeAlias = GetPermissionRequest # noqa: Y015 +global___GetPermissionRequest = GetPermissionRequest -@_typing.final -class ListPermissionsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListPermissionsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "project", b"project", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListPermissionsRequest: _TypeAlias = ListPermissionsRequest # noqa: Y015 +global___ListPermissionsRequest = ListPermissionsRequest -@_typing.final -class ListPermissionsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListPermissionsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PERMISSIONS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def permissions(self) -> _containers.RepeatedCompositeFieldContainer[_Permission_pb2.Permission]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + PERMISSIONS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Permission_pb2.Permission]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - permissions: _abc.Iterable[_Permission_pb2.Permission] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + permissions: collections.abc.Iterable[feast.core.Permission_pb2.Permission] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "permissions", b"permissions"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "permissions", b"permissions"]) -> None: ... -Global___ListPermissionsResponse: _TypeAlias = ListPermissionsResponse # noqa: Y015 +global___ListPermissionsResponse = ListPermissionsResponse -@_typing.final -class DeletePermissionRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeletePermissionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - project: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + project: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + project: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name", "project", b"project"]) -> None: ... -Global___DeletePermissionRequest: _TypeAlias = DeletePermissionRequest # noqa: Y015 +global___DeletePermissionRequest = DeletePermissionRequest -@_typing.final -class ApplyProjectRequest(_message.Message): +class ApplyProjectRequest(google.protobuf.message.Message): """Projects""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - commit: _builtins.bool - @_builtins.property - def project(self) -> _Project_pb2.Project: ... + PROJECT_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + @property + def project(self) -> feast.core.Project_pb2.Project: ... + commit: builtins.bool def __init__( self, *, - project: _Project_pb2.Project | None = ..., - commit: _builtins.bool = ..., + project: feast.core.Project_pb2.Project | None = ..., + commit: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["project", b"project"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["project", b"project"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "project", b"project"]) -> None: ... -Global___ApplyProjectRequest: _TypeAlias = ApplyProjectRequest # noqa: Y015 +global___ApplyProjectRequest = ApplyProjectRequest -@_typing.final -class GetProjectRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetProjectRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - name: _builtins.str - allow_cache: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + name: builtins.str + allow_cache: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + name: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "name", b"name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "name", b"name"]) -> None: ... -Global___GetProjectRequest: _TypeAlias = GetProjectRequest # noqa: Y015 +global___GetProjectRequest = GetProjectRequest -@_typing.final -class ListProjectsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListProjectsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - allow_cache: _builtins.bool - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + ALLOW_CACHE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + allow_cache: builtins.bool + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - allow_cache: _builtins.bool = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + allow_cache: builtins.bool = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "sorting", b"sorting", "tags", b"tags"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "pagination", b"pagination", "sorting", b"sorting", "tags", b"tags"]) -> None: ... -Global___ListProjectsRequest: _TypeAlias = ListProjectsRequest # noqa: Y015 +global___ListProjectsRequest = ListProjectsRequest -@_typing.final -class ListProjectsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ListProjectsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECTS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def projects(self) -> _containers.RepeatedCompositeFieldContainer[_Project_pb2.Project]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... + PROJECTS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def projects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Project_pb2.Project]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - projects: _abc.Iterable[_Project_pb2.Project] | None = ..., - pagination: Global___PaginationMetadata | None = ..., + projects: collections.abc.Iterable[feast.core.Project_pb2.Project] | None = ..., + pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "projects", b"projects"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "projects", b"projects"]) -> None: ... -Global___ListProjectsResponse: _TypeAlias = ListProjectsResponse # noqa: Y015 +global___ListProjectsResponse = ListProjectsResponse -@_typing.final -class DeleteProjectRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DeleteProjectRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - COMMIT_FIELD_NUMBER: _builtins.int - name: _builtins.str - commit: _builtins.bool + NAME_FIELD_NUMBER: builtins.int + COMMIT_FIELD_NUMBER: builtins.int + name: builtins.str + commit: builtins.bool def __init__( self, *, - name: _builtins.str = ..., - commit: _builtins.bool = ..., + name: builtins.str = ..., + commit: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["commit", b"commit", "name", b"name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "name", b"name"]) -> None: ... -Global___DeleteProjectRequest: _TypeAlias = DeleteProjectRequest # noqa: Y015 +global___DeleteProjectRequest = DeleteProjectRequest -@_typing.final -class EntityReference(_message.Message): +class EntityReference(google.protobuf.message.Message): """Lineage""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - type: _builtins.str + TYPE_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + type: builtins.str """"dataSource", "entity", "featureView", "featureService" """ - name: _builtins.str + name: builtins.str def __init__( self, *, - type: _builtins.str = ..., - name: _builtins.str = ..., + type: builtins.str = ..., + name: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "type", b"type"]) -> None: ... + +global___EntityReference = EntityReference -Global___EntityReference: _TypeAlias = EntityReference # noqa: Y015 +class EntityRelation(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor -@_typing.final -class EntityRelation(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - SOURCE_FIELD_NUMBER: _builtins.int - TARGET_FIELD_NUMBER: _builtins.int - @_builtins.property - def source(self) -> Global___EntityReference: ... - @_builtins.property - def target(self) -> Global___EntityReference: ... + SOURCE_FIELD_NUMBER: builtins.int + TARGET_FIELD_NUMBER: builtins.int + @property + def source(self) -> global___EntityReference: ... + @property + def target(self) -> global___EntityReference: ... def __init__( self, *, - source: Global___EntityReference | None = ..., - target: Global___EntityReference | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["source", b"source", "target", b"target"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["source", b"source", "target", b"target"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___EntityRelation: _TypeAlias = EntityRelation # noqa: Y015 - -@_typing.final -class GetRegistryLineageRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + source: global___EntityReference | None = ..., + target: global___EntityReference | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["source", b"source", "target", b"target"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["source", b"source", "target", b"target"]) -> None: ... + +global___EntityRelation = EntityRelation + +class GetRegistryLineageRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROJECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - FILTER_OBJECT_TYPE_FIELD_NUMBER: _builtins.int - FILTER_OBJECT_NAME_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - allow_cache: _builtins.bool - filter_object_type: _builtins.str - filter_object_name: _builtins.str - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... + PROJECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + FILTER_OBJECT_TYPE_FIELD_NUMBER: builtins.int + FILTER_OBJECT_NAME_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + allow_cache: builtins.bool + filter_object_type: builtins.str + filter_object_name: builtins.str + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... def __init__( self, *, - project: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - filter_object_type: _builtins.str = ..., - filter_object_name: _builtins.str = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., + project: builtins.str = ..., + allow_cache: builtins.bool = ..., + filter_object_type: builtins.str = ..., + filter_object_name: builtins.str = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "filter_object_name", b"filter_object_name", "filter_object_type", b"filter_object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "filter_object_name", b"filter_object_name", "filter_object_type", b"filter_object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"]) -> None: ... -Global___GetRegistryLineageRequest: _TypeAlias = GetRegistryLineageRequest # noqa: Y015 +global___GetRegistryLineageRequest = GetRegistryLineageRequest -@_typing.final -class GetRegistryLineageResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetRegistryLineageResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - RELATIONSHIPS_FIELD_NUMBER: _builtins.int - INDIRECT_RELATIONSHIPS_FIELD_NUMBER: _builtins.int - RELATIONSHIPS_PAGINATION_FIELD_NUMBER: _builtins.int - INDIRECT_RELATIONSHIPS_PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def relationships(self) -> _containers.RepeatedCompositeFieldContainer[Global___EntityRelation]: ... - @_builtins.property - def indirect_relationships(self) -> _containers.RepeatedCompositeFieldContainer[Global___EntityRelation]: ... - @_builtins.property - def relationships_pagination(self) -> Global___PaginationMetadata: ... - @_builtins.property - def indirect_relationships_pagination(self) -> Global___PaginationMetadata: ... + RELATIONSHIPS_FIELD_NUMBER: builtins.int + INDIRECT_RELATIONSHIPS_FIELD_NUMBER: builtins.int + RELATIONSHIPS_PAGINATION_FIELD_NUMBER: builtins.int + INDIRECT_RELATIONSHIPS_PAGINATION_FIELD_NUMBER: builtins.int + @property + def relationships(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityRelation]: ... + @property + def indirect_relationships(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityRelation]: ... + @property + def relationships_pagination(self) -> global___PaginationMetadata: ... + @property + def indirect_relationships_pagination(self) -> global___PaginationMetadata: ... def __init__( self, *, - relationships: _abc.Iterable[Global___EntityRelation] | None = ..., - indirect_relationships: _abc.Iterable[Global___EntityRelation] | None = ..., - relationships_pagination: Global___PaginationMetadata | None = ..., - indirect_relationships_pagination: Global___PaginationMetadata | None = ..., + relationships: collections.abc.Iterable[global___EntityRelation] | None = ..., + indirect_relationships: collections.abc.Iterable[global___EntityRelation] | None = ..., + relationships_pagination: global___PaginationMetadata | None = ..., + indirect_relationships_pagination: global___PaginationMetadata | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships_pagination", b"relationships_pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["indirect_relationships", b"indirect_relationships", "indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships", b"relationships", "relationships_pagination", b"relationships_pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships_pagination", b"relationships_pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["indirect_relationships", b"indirect_relationships", "indirect_relationships_pagination", b"indirect_relationships_pagination", "relationships", b"relationships", "relationships_pagination", b"relationships_pagination"]) -> None: ... -Global___GetRegistryLineageResponse: _TypeAlias = GetRegistryLineageResponse # noqa: Y015 +global___GetRegistryLineageResponse = GetRegistryLineageResponse -@_typing.final -class GetObjectRelationshipsRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - PROJECT_FIELD_NUMBER: _builtins.int - OBJECT_TYPE_FIELD_NUMBER: _builtins.int - OBJECT_NAME_FIELD_NUMBER: _builtins.int - INCLUDE_INDIRECT_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - object_type: _builtins.str - object_name: _builtins.str - include_indirect: _builtins.bool - allow_cache: _builtins.bool - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... - def __init__( - self, - *, - project: _builtins.str = ..., - object_type: _builtins.str = ..., - object_name: _builtins.str = ..., - include_indirect: _builtins.bool = ..., - allow_cache: _builtins.bool = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "include_indirect", b"include_indirect", "object_name", b"object_name", "object_type", b"object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GetObjectRelationshipsRequest: _TypeAlias = GetObjectRelationshipsRequest # noqa: Y015 - -@_typing.final -class GetObjectRelationshipsResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - RELATIONSHIPS_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def relationships(self) -> _containers.RepeatedCompositeFieldContainer[Global___EntityRelation]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... - def __init__( - self, - *, - relationships: _abc.Iterable[Global___EntityRelation] | None = ..., - pagination: Global___PaginationMetadata | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "relationships", b"relationships"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GetObjectRelationshipsResponse: _TypeAlias = GetObjectRelationshipsResponse # noqa: Y015 - -@_typing.final -class Feature(_message.Message): +class GetObjectRelationshipsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + OBJECT_TYPE_FIELD_NUMBER: builtins.int + OBJECT_NAME_FIELD_NUMBER: builtins.int + INCLUDE_INDIRECT_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + object_type: builtins.str + object_name: builtins.str + include_indirect: builtins.bool + allow_cache: builtins.bool + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... + def __init__( + self, + *, + project: builtins.str = ..., + object_type: builtins.str = ..., + object_name: builtins.str = ..., + include_indirect: builtins.bool = ..., + allow_cache: builtins.bool = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "include_indirect", b"include_indirect", "object_name", b"object_name", "object_type", b"object_type", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"]) -> None: ... + +global___GetObjectRelationshipsRequest = GetObjectRelationshipsRequest + +class GetObjectRelationshipsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RELATIONSHIPS_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def relationships(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityRelation]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... + def __init__( + self, + *, + relationships: collections.abc.Iterable[global___EntityRelation] | None = ..., + pagination: global___PaginationMetadata | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "relationships", b"relationships"]) -> None: ... + +global___GetObjectRelationshipsResponse = GetObjectRelationshipsResponse + +class Feature(google.protobuf.message.Message): """Feature messages""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - NAME_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - name: _builtins.str - feature_view: _builtins.str - type: _builtins.str - description: _builtins.str - owner: _builtins.str - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - def __init__( - self, - *, - name: _builtins.str = ..., - feature_view: _builtins.str = ..., - type: _builtins.str = ..., - description: _builtins.str = ..., - owner: _builtins.str = ..., - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view", b"feature_view", "last_updated_timestamp", b"last_updated_timestamp", "name", b"name", "owner", b"owner", "tags", b"tags", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___Feature: _TypeAlias = Feature # noqa: Y015 - -@_typing.final -class ListFeaturesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - PROJECT_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - SORTING_FIELD_NUMBER: _builtins.int - project: _builtins.str - feature_view: _builtins.str - name: _builtins.str - allow_cache: _builtins.bool - @_builtins.property - def pagination(self) -> Global___PaginationParams: ... - @_builtins.property - def sorting(self) -> Global___SortingParams: ... - def __init__( - self, - *, - project: _builtins.str = ..., - feature_view: _builtins.str = ..., - name: _builtins.str = ..., - allow_cache: _builtins.bool = ..., - pagination: Global___PaginationParams | None = ..., - sorting: Global___SortingParams | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination", "sorting", b"sorting"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___ListFeaturesRequest: _TypeAlias = ListFeaturesRequest # noqa: Y015 - -@_typing.final -class ListFeaturesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - FEATURES_FIELD_NUMBER: _builtins.int - PAGINATION_FIELD_NUMBER: _builtins.int - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[Global___Feature]: ... - @_builtins.property - def pagination(self) -> Global___PaginationMetadata: ... - def __init__( - self, - *, - features: _abc.Iterable[Global___Feature] | None = ..., - pagination: Global___PaginationMetadata | None = ..., - ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["pagination", b"pagination"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["features", b"features", "pagination", b"pagination"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___ListFeaturesResponse: _TypeAlias = ListFeaturesResponse # noqa: Y015 - -@_typing.final -class GetFeatureRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - PROJECT_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_FIELD_NUMBER: _builtins.int - NAME_FIELD_NUMBER: _builtins.int - ALLOW_CACHE_FIELD_NUMBER: _builtins.int - project: _builtins.str - feature_view: _builtins.str - name: _builtins.str - allow_cache: _builtins.bool - def __init__( - self, - *, - project: _builtins.str = ..., - feature_view: _builtins.str = ..., - name: _builtins.str = ..., - allow_cache: _builtins.bool = ..., + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + NAME_FIELD_NUMBER: builtins.int + FEATURE_VIEW_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + name: builtins.str + feature_view: builtins.str + type: builtins.str + description: builtins.str + owner: builtins.str + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + name: builtins.str = ..., + feature_view: builtins.str = ..., + type: builtins.str = ..., + description: builtins.str = ..., + owner: builtins.str = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "last_updated_timestamp", b"last_updated_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "description", b"description", "feature_view", b"feature_view", "last_updated_timestamp", b"last_updated_timestamp", "name", b"name", "owner", b"owner", "tags", b"tags", "type", b"type"]) -> None: ... + +global___Feature = Feature + +class ListFeaturesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + FEATURE_VIEW_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + SORTING_FIELD_NUMBER: builtins.int + project: builtins.str + feature_view: builtins.str + name: builtins.str + allow_cache: builtins.bool + @property + def pagination(self) -> global___PaginationParams: ... + @property + def sorting(self) -> global___SortingParams: ... + def __init__( + self, + *, + project: builtins.str = ..., + feature_view: builtins.str = ..., + name: builtins.str = ..., + allow_cache: builtins.bool = ..., + pagination: global___PaginationParams | None = ..., + sorting: global___SortingParams | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "sorting", b"sorting"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "pagination", b"pagination", "project", b"project", "sorting", b"sorting"]) -> None: ... + +global___ListFeaturesRequest = ListFeaturesRequest + +class ListFeaturesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURES_FIELD_NUMBER: builtins.int + PAGINATION_FIELD_NUMBER: builtins.int + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Feature]: ... + @property + def pagination(self) -> global___PaginationMetadata: ... + def __init__( + self, + *, + features: collections.abc.Iterable[global___Feature] | None = ..., + pagination: global___PaginationMetadata | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["features", b"features", "pagination", b"pagination"]) -> None: ... + +global___ListFeaturesResponse = ListFeaturesResponse + +class GetFeatureRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + FEATURE_VIEW_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + ALLOW_CACHE_FIELD_NUMBER: builtins.int + project: builtins.str + feature_view: builtins.str + name: builtins.str + allow_cache: builtins.bool + def __init__( + self, + *, + project: builtins.str = ..., + feature_view: builtins.str = ..., + name: builtins.str = ..., + allow_cache: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_cache", b"allow_cache", "feature_view", b"feature_view", "name", b"name", "project", b"project"]) -> None: ... -Global___GetFeatureRequest: _TypeAlias = GetFeatureRequest # noqa: Y015 +global___GetFeatureRequest = GetFeatureRequest diff --git a/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi b/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi index 4e40abd912f..f87109e0fa5 100644 --- a/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/Connector_pb2.pyi @@ -2,107 +2,96 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from feast.serving import ServingService_pb2 as _ServingService_pb2 # type: ignore[attr-defined] -from feast.types import EntityKey_pb2 as _EntityKey_pb2 # type: ignore[attr-defined] -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.serving.ServingService_pb2 +import feast.types.EntityKey_pb2 +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class ConnectorFeature(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ConnectorFeature(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - REFERENCE_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - @_builtins.property - def reference(self) -> _ServingService_pb2.FeatureReferenceV2: ... - @_builtins.property - def timestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def value(self) -> _Value_pb2.Value: ... + REFERENCE_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + @property + def reference(self) -> feast.serving.ServingService_pb2.FeatureReferenceV2: ... + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def value(self) -> feast.types.Value_pb2.Value: ... def __init__( self, *, - reference: _ServingService_pb2.FeatureReferenceV2 | None = ..., - timestamp: _timestamp_pb2.Timestamp | None = ..., - value: _Value_pb2.Value | None = ..., + reference: feast.serving.ServingService_pb2.FeatureReferenceV2 | None = ..., + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + value: feast.types.Value_pb2.Value | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["reference", b"reference", "timestamp", b"timestamp", "value", b"value"]) -> None: ... -Global___ConnectorFeature: _TypeAlias = ConnectorFeature # noqa: Y015 +global___ConnectorFeature = ConnectorFeature -@_typing.final -class ConnectorFeatureList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ConnectorFeatureList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURELIST_FIELD_NUMBER: _builtins.int - @_builtins.property - def featureList(self) -> _containers.RepeatedCompositeFieldContainer[Global___ConnectorFeature]: ... + FEATURELIST_FIELD_NUMBER: builtins.int + @property + def featureList(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectorFeature]: ... def __init__( self, *, - featureList: _abc.Iterable[Global___ConnectorFeature] | None = ..., + featureList: collections.abc.Iterable[global___ConnectorFeature] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["featureList", b"featureList"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["featureList", b"featureList"]) -> None: ... -Global___ConnectorFeatureList: _TypeAlias = ConnectorFeatureList # noqa: Y015 +global___ConnectorFeatureList = ConnectorFeatureList -@_typing.final -class OnlineReadRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class OnlineReadRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITYKEYS_FIELD_NUMBER: _builtins.int - VIEW_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - view: _builtins.str - @_builtins.property - def entityKeys(self) -> _containers.RepeatedCompositeFieldContainer[_EntityKey_pb2.EntityKey]: ... - @_builtins.property - def features(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + ENTITYKEYS_FIELD_NUMBER: builtins.int + VIEW_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + @property + def entityKeys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.EntityKey_pb2.EntityKey]: ... + view: builtins.str + @property + def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... def __init__( self, *, - entityKeys: _abc.Iterable[_EntityKey_pb2.EntityKey] | None = ..., - view: _builtins.str = ..., - features: _abc.Iterable[_builtins.str] | None = ..., + entityKeys: collections.abc.Iterable[feast.types.EntityKey_pb2.EntityKey] | None = ..., + view: builtins.str = ..., + features: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entityKeys", b"entityKeys", "features", b"features", "view", b"view"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entityKeys", b"entityKeys", "features", b"features", "view", b"view"]) -> None: ... -Global___OnlineReadRequest: _TypeAlias = OnlineReadRequest # noqa: Y015 +global___OnlineReadRequest = OnlineReadRequest -@_typing.final -class OnlineReadResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class OnlineReadResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESULTS_FIELD_NUMBER: _builtins.int - @_builtins.property - def results(self) -> _containers.RepeatedCompositeFieldContainer[Global___ConnectorFeatureList]: ... + RESULTS_FIELD_NUMBER: builtins.int + @property + def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectorFeatureList]: ... def __init__( self, *, - results: _abc.Iterable[Global___ConnectorFeatureList] | None = ..., + results: collections.abc.Iterable[global___ConnectorFeatureList] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["results", b"results"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... -Global___OnlineReadResponse: _TypeAlias = OnlineReadResponse # noqa: Y015 +global___OnlineReadResponse = OnlineReadResponse diff --git a/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi b/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi index f63321d5d36..a83cd87a16e 100644 --- a/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/GrpcServer_pb2.pyi @@ -2,182 +2,162 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class PushRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class PushRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class FeaturesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class FeaturesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class TypedFeaturesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> _Value_pb2.Value: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + class TypedFeaturesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> feast.types.Value_pb2.Value: ... def __init__( self, *, - key: _builtins.str = ..., - value: _Value_pb2.Value | None = ..., + key: builtins.str = ..., + value: feast.types.Value_pb2.Value | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - FEATURES_FIELD_NUMBER: _builtins.int - STREAM_FEATURE_VIEW_FIELD_NUMBER: _builtins.int - ALLOW_REGISTRY_CACHE_FIELD_NUMBER: _builtins.int - TO_FIELD_NUMBER: _builtins.int - TYPED_FEATURES_FIELD_NUMBER: _builtins.int - stream_feature_view: _builtins.str - allow_registry_cache: _builtins.bool - to: _builtins.str - @_builtins.property - def features(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def typed_features(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.Value]: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + FEATURES_FIELD_NUMBER: builtins.int + STREAM_FEATURE_VIEW_FIELD_NUMBER: builtins.int + ALLOW_REGISTRY_CACHE_FIELD_NUMBER: builtins.int + TO_FIELD_NUMBER: builtins.int + TYPED_FEATURES_FIELD_NUMBER: builtins.int + @property + def features(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + stream_feature_view: builtins.str + allow_registry_cache: builtins.bool + to: builtins.str + @property + def typed_features(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: ... def __init__( self, *, - features: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - stream_feature_view: _builtins.str = ..., - allow_registry_cache: _builtins.bool = ..., - to: _builtins.str = ..., - typed_features: _abc.Mapping[_builtins.str, _Value_pb2.Value] | None = ..., + features: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + stream_feature_view: builtins.str = ..., + allow_registry_cache: builtins.bool = ..., + to: builtins.str = ..., + typed_features: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_registry_cache", b"allow_registry_cache", "features", b"features", "stream_feature_view", b"stream_feature_view", "to", b"to", "typed_features", b"typed_features"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_registry_cache", b"allow_registry_cache", "features", b"features", "stream_feature_view", b"stream_feature_view", "to", b"to", "typed_features", b"typed_features"]) -> None: ... -Global___PushRequest: _TypeAlias = PushRequest # noqa: Y015 +global___PushRequest = PushRequest -@_typing.final -class PushResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class PushResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: _builtins.int - status: _builtins.bool + STATUS_FIELD_NUMBER: builtins.int + status: builtins.bool def __init__( self, *, - status: _builtins.bool = ..., + status: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["status", b"status"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ... -Global___PushResponse: _TypeAlias = PushResponse # noqa: Y015 +global___PushResponse = PushResponse -@_typing.final -class WriteToOnlineStoreRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class WriteToOnlineStoreRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class FeaturesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class FeaturesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class TypedFeaturesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> _Value_pb2.Value: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + class TypedFeaturesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> feast.types.Value_pb2.Value: ... def __init__( self, *, - key: _builtins.str = ..., - value: _Value_pb2.Value | None = ..., + key: builtins.str = ..., + value: feast.types.Value_pb2.Value | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - FEATURES_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int - ALLOW_REGISTRY_CACHE_FIELD_NUMBER: _builtins.int - TYPED_FEATURES_FIELD_NUMBER: _builtins.int - feature_view_name: _builtins.str - allow_registry_cache: _builtins.bool - @_builtins.property - def features(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def typed_features(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.Value]: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + FEATURES_FIELD_NUMBER: builtins.int + FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int + ALLOW_REGISTRY_CACHE_FIELD_NUMBER: builtins.int + TYPED_FEATURES_FIELD_NUMBER: builtins.int + @property + def features(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + feature_view_name: builtins.str + allow_registry_cache: builtins.bool + @property + def typed_features(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: ... def __init__( self, *, - features: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - feature_view_name: _builtins.str = ..., - allow_registry_cache: _builtins.bool = ..., - typed_features: _abc.Mapping[_builtins.str, _Value_pb2.Value] | None = ..., + features: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + feature_view_name: builtins.str = ..., + allow_registry_cache: builtins.bool = ..., + typed_features: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["allow_registry_cache", b"allow_registry_cache", "feature_view_name", b"feature_view_name", "features", b"features", "typed_features", b"typed_features"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allow_registry_cache", b"allow_registry_cache", "feature_view_name", b"feature_view_name", "features", b"features", "typed_features", b"typed_features"]) -> None: ... -Global___WriteToOnlineStoreRequest: _TypeAlias = WriteToOnlineStoreRequest # noqa: Y015 +global___WriteToOnlineStoreRequest = WriteToOnlineStoreRequest -@_typing.final -class WriteToOnlineStoreResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class WriteToOnlineStoreResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: _builtins.int - status: _builtins.bool + STATUS_FIELD_NUMBER: builtins.int + status: builtins.bool def __init__( self, *, - status: _builtins.bool = ..., + status: builtins.bool = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["status", b"status"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ... -Global___WriteToOnlineStoreResponse: _TypeAlias = WriteToOnlineStoreResponse # noqa: Y015 +global___WriteToOnlineStoreResponse = WriteToOnlineStoreResponse diff --git a/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi b/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi index 5aca6dc73ab..1804ce0428e 100644 --- a/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/ServingService_pb2.pyi @@ -16,31 +16,30 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class _FieldStatus: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType -class _FieldStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_FieldStatus.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor +class _FieldStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FieldStatus.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor INVALID: _FieldStatus.ValueType # 0 """Status is unset for this field.""" PRESENT: _FieldStatus.ValueType # 1 @@ -78,345 +77,300 @@ OUTSIDE_MAX_AGE: FieldStatus.ValueType # 4 """Values could be found for entity key, but field values are outside the maximum allowable range. """ -Global___FieldStatus: _TypeAlias = FieldStatus # noqa: Y015 +global___FieldStatus = FieldStatus -@_typing.final -class GetFeastServingInfoRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetFeastServingInfoRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor def __init__( self, ) -> None: ... -Global___GetFeastServingInfoRequest: _TypeAlias = GetFeastServingInfoRequest # noqa: Y015 +global___GetFeastServingInfoRequest = GetFeastServingInfoRequest -@_typing.final -class GetFeastServingInfoResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetFeastServingInfoResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: _builtins.int - version: _builtins.str + VERSION_FIELD_NUMBER: builtins.int + version: builtins.str """Feast version of this serving deployment.""" def __init__( self, *, - version: _builtins.str = ..., + version: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["version", b"version"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["version", b"version"]) -> None: ... -Global___GetFeastServingInfoResponse: _TypeAlias = GetFeastServingInfoResponse # noqa: Y015 +global___GetFeastServingInfoResponse = GetFeastServingInfoResponse -@_typing.final -class FeatureReferenceV2(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureReferenceV2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int - FEATURE_NAME_FIELD_NUMBER: _builtins.int - feature_view_name: _builtins.str + FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int + FEATURE_NAME_FIELD_NUMBER: builtins.int + feature_view_name: builtins.str """Name of the Feature View to retrieve the feature from.""" - feature_name: _builtins.str + feature_name: builtins.str """Name of the Feature to retrieve the feature from.""" def __init__( self, *, - feature_view_name: _builtins.str = ..., - feature_name: _builtins.str = ..., + feature_view_name: builtins.str = ..., + feature_name: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_name", b"feature_name", "feature_view_name", b"feature_view_name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_name", b"feature_name", "feature_view_name", b"feature_view_name"]) -> None: ... -Global___FeatureReferenceV2: _TypeAlias = FeatureReferenceV2 # noqa: Y015 +global___FeatureReferenceV2 = FeatureReferenceV2 -@_typing.final -class GetOnlineFeaturesRequestV2(_message.Message): +class GetOnlineFeaturesRequestV2(google.protobuf.message.Message): """ToDo (oleksii): remove this message (since it's not used) and move EntityRow on package level""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class EntityRow(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class EntityRow(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class FieldsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class FieldsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> _Value_pb2.Value: ... + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> feast.types.Value_pb2.Value: ... def __init__( self, *, - key: _builtins.str = ..., - value: _Value_pb2.Value | None = ..., + key: builtins.str = ..., + value: feast.types.Value_pb2.Value | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - TIMESTAMP_FIELD_NUMBER: _builtins.int - FIELDS_FIELD_NUMBER: _builtins.int - @_builtins.property - def timestamp(self) -> _timestamp_pb2.Timestamp: + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + TIMESTAMP_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: """Request timestamp of this row. This value will be used, together with maxAge, to determine feature staleness. """ - - @_builtins.property - def fields(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.Value]: + @property + def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.Value]: """Map containing mapping of entity name to entity value.""" - def __init__( self, *, - timestamp: _timestamp_pb2.Timestamp | None = ..., - fields: _abc.Mapping[_builtins.str, _Value_pb2.Value] | None = ..., + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + fields: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.Value] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["timestamp", b"timestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["fields", b"fields", "timestamp", b"timestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - FEATURES_FIELD_NUMBER: _builtins.int - ENTITY_ROWS_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - project: _builtins.str - """Optional field to specify project name override. If specified, uses the - given project for retrieval. Overrides the projects specified in - Feature References if both are specified. - """ - @_builtins.property - def features(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureReferenceV2]: + def HasField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "timestamp", b"timestamp"]) -> None: ... + + FEATURES_FIELD_NUMBER: builtins.int + ENTITY_ROWS_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + @property + def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureReferenceV2]: """List of features that are being retrieved""" - - @_builtins.property - def entity_rows(self) -> _containers.RepeatedCompositeFieldContainer[Global___GetOnlineFeaturesRequestV2.EntityRow]: + @property + def entity_rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesRequestV2.EntityRow]: """List of entity rows, containing entity id and timestamp data. Used during retrieval of feature rows and for joining feature rows into a final dataset """ - + project: builtins.str + """Optional field to specify project name override. If specified, uses the + given project for retrieval. Overrides the projects specified in + Feature References if both are specified. + """ def __init__( self, *, - features: _abc.Iterable[Global___FeatureReferenceV2] | None = ..., - entity_rows: _abc.Iterable[Global___GetOnlineFeaturesRequestV2.EntityRow] | None = ..., - project: _builtins.str = ..., + features: collections.abc.Iterable[global___FeatureReferenceV2] | None = ..., + entity_rows: collections.abc.Iterable[global___GetOnlineFeaturesRequestV2.EntityRow] | None = ..., + project: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entity_rows", b"entity_rows", "features", b"features", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entity_rows", b"entity_rows", "features", b"features", "project", b"project"]) -> None: ... -Global___GetOnlineFeaturesRequestV2: _TypeAlias = GetOnlineFeaturesRequestV2 # noqa: Y015 +global___GetOnlineFeaturesRequestV2 = GetOnlineFeaturesRequestV2 -@_typing.final -class FeatureList(_message.Message): +class FeatureList(google.protobuf.message.Message): """In JSON "val" field can be omitted""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.str] | None = ..., + val: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___FeatureList: _TypeAlias = FeatureList # noqa: Y015 +global___FeatureList = FeatureList -@_typing.final -class GetOnlineFeaturesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetOnlineFeaturesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class EntitiesEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class EntitiesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> _Value_pb2.RepeatedValue: ... + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> feast.types.Value_pb2.RepeatedValue: ... def __init__( self, *, - key: _builtins.str = ..., - value: _Value_pb2.RepeatedValue | None = ..., + key: builtins.str = ..., + value: feast.types.Value_pb2.RepeatedValue | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class RequestContextEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> _Value_pb2.RepeatedValue: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + class RequestContextEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> feast.types.Value_pb2.RepeatedValue: ... def __init__( self, *, - key: _builtins.str = ..., - value: _Value_pb2.RepeatedValue | None = ..., + key: builtins.str = ..., + value: feast.types.Value_pb2.RepeatedValue | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - FEATURE_SERVICE_FIELD_NUMBER: _builtins.int - FEATURES_FIELD_NUMBER: _builtins.int - ENTITIES_FIELD_NUMBER: _builtins.int - FULL_FEATURE_NAMES_FIELD_NUMBER: _builtins.int - REQUEST_CONTEXT_FIELD_NUMBER: _builtins.int - INCLUDE_FEATURE_VIEW_VERSION_METADATA_FIELD_NUMBER: _builtins.int - feature_service: _builtins.str - full_feature_names: _builtins.bool - include_feature_view_version_metadata: _builtins.bool - """Whether to include feature view version metadata in the response""" - @_builtins.property - def features(self) -> Global___FeatureList: ... - @_builtins.property - def entities(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.RepeatedValue]: + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + FEATURE_SERVICE_FIELD_NUMBER: builtins.int + FEATURES_FIELD_NUMBER: builtins.int + ENTITIES_FIELD_NUMBER: builtins.int + FULL_FEATURE_NAMES_FIELD_NUMBER: builtins.int + REQUEST_CONTEXT_FIELD_NUMBER: builtins.int + INCLUDE_FEATURE_VIEW_VERSION_METADATA_FIELD_NUMBER: builtins.int + feature_service: builtins.str + @property + def features(self) -> global___FeatureList: ... + @property + def entities(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.RepeatedValue]: """The entity data is specified in a columnar format A map of entity name -> list of values """ - - @_builtins.property - def request_context(self) -> _containers.MessageMap[_builtins.str, _Value_pb2.RepeatedValue]: + full_feature_names: builtins.bool + @property + def request_context(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, feast.types.Value_pb2.RepeatedValue]: """Context for OnDemand Feature Transformation (was moved to dedicated parameter to avoid unnecessary separation logic on serving side) A map of variable name -> list of values """ - + include_feature_view_version_metadata: builtins.bool + """Whether to include feature view version metadata in the response""" def __init__( self, *, - feature_service: _builtins.str = ..., - features: Global___FeatureList | None = ..., - entities: _abc.Mapping[_builtins.str, _Value_pb2.RepeatedValue] | None = ..., - full_feature_names: _builtins.bool = ..., - request_context: _abc.Mapping[_builtins.str, _Value_pb2.RepeatedValue] | None = ..., - include_feature_view_version_metadata: _builtins.bool = ..., + feature_service: builtins.str = ..., + features: global___FeatureList | None = ..., + entities: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.RepeatedValue] | None = ..., + full_feature_names: builtins.bool = ..., + request_context: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.RepeatedValue] | None = ..., + include_feature_view_version_metadata: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feature_service", b"feature_service", "features", b"features", "kind", b"kind"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entities", b"entities", "feature_service", b"feature_service", "features", b"features", "full_feature_names", b"full_feature_names", "include_feature_view_version_metadata", b"include_feature_view_version_metadata", "kind", b"kind", "request_context", b"request_context"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_kind: _TypeAlias = _typing.Literal["feature_service", "features"] # noqa: Y015 - _WhichOneofArgType_kind: _TypeAlias = _typing.Literal["kind", b"kind"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_kind) -> _WhichOneofReturnType_kind | None: ... - -Global___GetOnlineFeaturesRequest: _TypeAlias = GetOnlineFeaturesRequest # noqa: Y015 - -@_typing.final -class GetOnlineFeaturesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - @_typing.final - class FeatureVector(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - VALUES_FIELD_NUMBER: _builtins.int - STATUSES_FIELD_NUMBER: _builtins.int - EVENT_TIMESTAMPS_FIELD_NUMBER: _builtins.int - @_builtins.property - def values(self) -> _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value]: ... - @_builtins.property - def statuses(self) -> _containers.RepeatedScalarFieldContainer[Global___FieldStatus.ValueType]: ... - @_builtins.property - def event_timestamps(self) -> _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]: ... + def HasField(self, field_name: typing_extensions.Literal["feature_service", b"feature_service", "features", b"features", "kind", b"kind"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entities", b"entities", "feature_service", b"feature_service", "features", b"features", "full_feature_names", b"full_feature_names", "include_feature_view_version_metadata", b"include_feature_view_version_metadata", "kind", b"kind", "request_context", b"request_context"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["feature_service", "features"] | None: ... + +global___GetOnlineFeaturesRequest = GetOnlineFeaturesRequest + +class GetOnlineFeaturesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class FeatureVector(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + STATUSES_FIELD_NUMBER: builtins.int + EVENT_TIMESTAMPS_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... + @property + def statuses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___FieldStatus.ValueType]: ... + @property + def event_timestamps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: ... def __init__( self, *, - values: _abc.Iterable[_Value_pb2.Value] | None = ..., - statuses: _abc.Iterable[Global___FieldStatus.ValueType] | None = ..., - event_timestamps: _abc.Iterable[_timestamp_pb2.Timestamp] | None = ..., + values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., + statuses: collections.abc.Iterable[global___FieldStatus.ValueType] | None = ..., + event_timestamps: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["event_timestamps", b"event_timestamps", "statuses", b"statuses", "values", b"values"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - METADATA_FIELD_NUMBER: _builtins.int - RESULTS_FIELD_NUMBER: _builtins.int - STATUS_FIELD_NUMBER: _builtins.int - status: _builtins.bool - @_builtins.property - def metadata(self) -> Global___GetOnlineFeaturesResponseMetadata: ... - @_builtins.property - def results(self) -> _containers.RepeatedCompositeFieldContainer[Global___GetOnlineFeaturesResponse.FeatureVector]: + def ClearField(self, field_name: typing_extensions.Literal["event_timestamps", b"event_timestamps", "statuses", b"statuses", "values", b"values"]) -> None: ... + + METADATA_FIELD_NUMBER: builtins.int + RESULTS_FIELD_NUMBER: builtins.int + STATUS_FIELD_NUMBER: builtins.int + @property + def metadata(self) -> global___GetOnlineFeaturesResponseMetadata: ... + @property + def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetOnlineFeaturesResponse.FeatureVector]: """Length of "results" array should match length of requested features. We also preserve the same order of features here as in metadata.feature_names """ - + status: builtins.bool def __init__( self, *, - metadata: Global___GetOnlineFeaturesResponseMetadata | None = ..., - results: _abc.Iterable[Global___GetOnlineFeaturesResponse.FeatureVector] | None = ..., - status: _builtins.bool = ..., + metadata: global___GetOnlineFeaturesResponseMetadata | None = ..., + results: collections.abc.Iterable[global___GetOnlineFeaturesResponse.FeatureVector] | None = ..., + status: builtins.bool = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "results", b"results", "status", b"status"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["metadata", b"metadata"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "results", b"results", "status", b"status"]) -> None: ... -Global___GetOnlineFeaturesResponse: _TypeAlias = GetOnlineFeaturesResponse # noqa: Y015 +global___GetOnlineFeaturesResponse = GetOnlineFeaturesResponse -@_typing.final -class FeatureViewMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FeatureViewMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: _builtins.int - VERSION_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str """Feature view name (e.g., "driver_stats")""" - version: _builtins.int + version: builtins.int """Version number (e.g., 2)""" def __init__( self, *, - name: _builtins.str = ..., - version: _builtins.int = ..., + name: builtins.str = ..., + version: builtins.int = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "version", b"version"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "version", b"version"]) -> None: ... -Global___FeatureViewMetadata: _TypeAlias = FeatureViewMetadata # noqa: Y015 +global___FeatureViewMetadata = FeatureViewMetadata -@_typing.final -class GetOnlineFeaturesResponseMetadata(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetOnlineFeaturesResponseMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FEATURE_NAMES_FIELD_NUMBER: _builtins.int - FEATURE_VIEW_METADATA_FIELD_NUMBER: _builtins.int - @_builtins.property - def feature_names(self) -> Global___FeatureList: + FEATURE_NAMES_FIELD_NUMBER: builtins.int + FEATURE_VIEW_METADATA_FIELD_NUMBER: builtins.int + @property + def feature_names(self) -> global___FeatureList: """Clean feature names without @v2 syntax""" - - @_builtins.property - def feature_view_metadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___FeatureViewMetadata]: + @property + def feature_view_metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewMetadata]: """Only populated when requested""" - def __init__( self, *, - feature_names: Global___FeatureList | None = ..., - feature_view_metadata: _abc.Iterable[Global___FeatureViewMetadata] | None = ..., + feature_names: global___FeatureList | None = ..., + feature_view_metadata: collections.abc.Iterable[global___FeatureViewMetadata] | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["feature_names", b"feature_names"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["feature_names", b"feature_names", "feature_view_metadata", b"feature_view_metadata"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["feature_names", b"feature_names"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_names", b"feature_names", "feature_view_metadata", b"feature_view_metadata"]) -> None: ... -Global___GetOnlineFeaturesResponseMetadata: _TypeAlias = GetOnlineFeaturesResponseMetadata # noqa: Y015 +global___GetOnlineFeaturesResponseMetadata = GetOnlineFeaturesResponseMetadata diff --git a/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi b/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi index f21ebfd05f8..3e0752b7bdd 100644 --- a/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi +++ b/sdk/python/feast/protos/feast/serving/TransformationService_pb2.pyi @@ -16,27 +16,26 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -import builtins as _builtins +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class _TransformationServiceType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType -class _TransformationServiceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TransformationServiceType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor +class _TransformationServiceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransformationServiceType.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor TRANSFORMATION_SERVICE_TYPE_INVALID: _TransformationServiceType.ValueType # 0 TRANSFORMATION_SERVICE_TYPE_PYTHON: _TransformationServiceType.ValueType # 1 TRANSFORMATION_SERVICE_TYPE_CUSTOM: _TransformationServiceType.ValueType # 100 @@ -46,106 +45,92 @@ class TransformationServiceType(_TransformationServiceType, metaclass=_Transform TRANSFORMATION_SERVICE_TYPE_INVALID: TransformationServiceType.ValueType # 0 TRANSFORMATION_SERVICE_TYPE_PYTHON: TransformationServiceType.ValueType # 1 TRANSFORMATION_SERVICE_TYPE_CUSTOM: TransformationServiceType.ValueType # 100 -Global___TransformationServiceType: _TypeAlias = TransformationServiceType # noqa: Y015 +global___TransformationServiceType = TransformationServiceType -@_typing.final -class ValueType(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ValueType(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ARROW_VALUE_FIELD_NUMBER: _builtins.int - arrow_value: _builtins.bytes + ARROW_VALUE_FIELD_NUMBER: builtins.int + arrow_value: builtins.bytes """Having a oneOf provides forward compatibility if we need to support compound types that are not supported by arrow natively. """ def __init__( self, *, - arrow_value: _builtins.bytes = ..., + arrow_value: builtins.bytes = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["arrow_value", b"arrow_value", "value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["arrow_value", b"arrow_value", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_value: _TypeAlias = _typing.Literal["arrow_value"] # noqa: Y015 - _WhichOneofArgType_value: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_value) -> _WhichOneofReturnType_value | None: ... + def HasField(self, field_name: typing_extensions.Literal["arrow_value", b"arrow_value", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["arrow_value", b"arrow_value", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["arrow_value"] | None: ... -Global___ValueType: _TypeAlias = ValueType # noqa: Y015 +global___ValueType = ValueType -@_typing.final -class GetTransformationServiceInfoRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetTransformationServiceInfoRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor def __init__( self, ) -> None: ... -Global___GetTransformationServiceInfoRequest: _TypeAlias = GetTransformationServiceInfoRequest # noqa: Y015 +global___GetTransformationServiceInfoRequest = GetTransformationServiceInfoRequest -@_typing.final -class GetTransformationServiceInfoResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class GetTransformationServiceInfoResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - TRANSFORMATION_SERVICE_TYPE_DETAILS_FIELD_NUMBER: _builtins.int - version: _builtins.str + VERSION_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + TRANSFORMATION_SERVICE_TYPE_DETAILS_FIELD_NUMBER: builtins.int + version: builtins.str """Feast version of this transformation service deployment.""" - type: Global___TransformationServiceType.ValueType + type: global___TransformationServiceType.ValueType """Type of transformation service deployment. This is either Python, or custom""" - transformation_service_type_details: _builtins.str + transformation_service_type_details: builtins.str def __init__( self, *, - version: _builtins.str = ..., - type: Global___TransformationServiceType.ValueType = ..., - transformation_service_type_details: _builtins.str = ..., + version: builtins.str = ..., + type: global___TransformationServiceType.ValueType = ..., + transformation_service_type_details: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["transformation_service_type_details", b"transformation_service_type_details", "type", b"type", "version", b"version"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - -Global___GetTransformationServiceInfoResponse: _TypeAlias = GetTransformationServiceInfoResponse # noqa: Y015 - -@_typing.final -class TransformFeaturesRequest(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - ON_DEMAND_FEATURE_VIEW_NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - TRANSFORMATION_INPUT_FIELD_NUMBER: _builtins.int - on_demand_feature_view_name: _builtins.str - project: _builtins.str - @_builtins.property - def transformation_input(self) -> Global___ValueType: ... + def ClearField(self, field_name: typing_extensions.Literal["transformation_service_type_details", b"transformation_service_type_details", "type", b"type", "version", b"version"]) -> None: ... + +global___GetTransformationServiceInfoResponse = GetTransformationServiceInfoResponse + +class TransformFeaturesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ON_DEMAND_FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + TRANSFORMATION_INPUT_FIELD_NUMBER: builtins.int + on_demand_feature_view_name: builtins.str + project: builtins.str + @property + def transformation_input(self) -> global___ValueType: ... def __init__( self, *, - on_demand_feature_view_name: _builtins.str = ..., - project: _builtins.str = ..., - transformation_input: Global___ValueType | None = ..., + on_demand_feature_view_name: builtins.str = ..., + project: builtins.str = ..., + transformation_input: global___ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["transformation_input", b"transformation_input"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["on_demand_feature_view_name", b"on_demand_feature_view_name", "project", b"project", "transformation_input", b"transformation_input"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["transformation_input", b"transformation_input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["on_demand_feature_view_name", b"on_demand_feature_view_name", "project", b"project", "transformation_input", b"transformation_input"]) -> None: ... -Global___TransformFeaturesRequest: _TypeAlias = TransformFeaturesRequest # noqa: Y015 +global___TransformFeaturesRequest = TransformFeaturesRequest -@_typing.final -class TransformFeaturesResponse(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class TransformFeaturesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TRANSFORMATION_OUTPUT_FIELD_NUMBER: _builtins.int - @_builtins.property - def transformation_output(self) -> Global___ValueType: ... + TRANSFORMATION_OUTPUT_FIELD_NUMBER: builtins.int + @property + def transformation_output(self) -> global___ValueType: ... def __init__( self, *, - transformation_output: Global___ValueType | None = ..., + transformation_output: global___ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["transformation_output", b"transformation_output"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["transformation_output", b"transformation_output"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["transformation_output", b"transformation_output"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["transformation_output", b"transformation_output"]) -> None: ... -Global___TransformFeaturesResponse: _TypeAlias = TransformFeaturesResponse # noqa: Y015 +global___TransformFeaturesResponse = TransformFeaturesResponse diff --git a/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi b/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi index 4ff2f7c6d14..74cc2b07f0a 100644 --- a/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi +++ b/sdk/python/feast/protos/feast/storage/Redis_pb2.pyi @@ -16,43 +16,39 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias - -DESCRIPTOR: _descriptor.FileDescriptor - -@_typing.final -class RedisKeyV2(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - PROJECT_FIELD_NUMBER: _builtins.int - ENTITY_NAMES_FIELD_NUMBER: _builtins.int - ENTITY_VALUES_FIELD_NUMBER: _builtins.int - project: _builtins.str - @_builtins.property - def entity_names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @_builtins.property - def entity_values(self) -> _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value]: ... + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class RedisKeyV2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PROJECT_FIELD_NUMBER: builtins.int + ENTITY_NAMES_FIELD_NUMBER: builtins.int + ENTITY_VALUES_FIELD_NUMBER: builtins.int + project: builtins.str + @property + def entity_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def entity_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... def __init__( self, *, - project: _builtins.str = ..., - entity_names: _abc.Iterable[_builtins.str] | None = ..., - entity_values: _abc.Iterable[_Value_pb2.Value] | None = ..., + project: builtins.str = ..., + entity_names: collections.abc.Iterable[builtins.str] | None = ..., + entity_values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entity_names", b"entity_names", "entity_values", b"entity_values", "project", b"project"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entity_names", b"entity_names", "entity_values", b"entity_values", "project", b"project"]) -> None: ... -Global___RedisKeyV2: _TypeAlias = RedisKeyV2 # noqa: Y015 +global___RedisKeyV2 = RedisKeyV2 diff --git a/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi b/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi index b3c1c18549b..fe65e0c1b32 100644 --- a/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi +++ b/sdk/python/feast/protos/feast/types/EntityKey_pb2.pyi @@ -16,40 +16,36 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class EntityKey(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class EntityKey(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - JOIN_KEYS_FIELD_NUMBER: _builtins.int - ENTITY_VALUES_FIELD_NUMBER: _builtins.int - @_builtins.property - def join_keys(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @_builtins.property - def entity_values(self) -> _containers.RepeatedCompositeFieldContainer[_Value_pb2.Value]: ... + JOIN_KEYS_FIELD_NUMBER: builtins.int + ENTITY_VALUES_FIELD_NUMBER: builtins.int + @property + def join_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def entity_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: ... def __init__( self, *, - join_keys: _abc.Iterable[_builtins.str] | None = ..., - entity_values: _abc.Iterable[_Value_pb2.Value] | None = ..., + join_keys: collections.abc.Iterable[builtins.str] | None = ..., + entity_values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["entity_values", b"entity_values", "join_keys", b"join_keys"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entity_values", b"entity_values", "join_keys", b"join_keys"]) -> None: ... -Global___EntityKey: _TypeAlias = EntityKey # noqa: Y015 +global___EntityKey = EntityKey diff --git a/sdk/python/feast/protos/feast/types/Field_pb2.pyi b/sdk/python/feast/protos/feast/types/Field_pb2.pyi index 0a98517bec2..28a21942378 100644 --- a/sdk/python/feast/protos/feast/types/Field_pb2.pyi +++ b/sdk/python/feast/protos/feast/types/Field_pb2.pyi @@ -16,65 +16,58 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -import builtins as _builtins +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message import sys -import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 8): + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class Field(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Field(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - NAME_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - name: _builtins.str - value: _Value_pb2.ValueType.Enum.ValueType - description: _builtins.str - """Description of the field.""" - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: + NAME_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + name: builtins.str + value: feast.types.Value_pb2.ValueType.Enum.ValueType + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """Tags for user defined metadata on a field""" - + description: builtins.str + """Description of the field.""" def __init__( self, *, - name: _builtins.str = ..., - value: _Value_pb2.ValueType.Enum.ValueType = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - description: _builtins.str = ..., + name: builtins.str = ..., + value: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + description: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["description", b"description", "name", b"name", "tags", b"tags", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "tags", b"tags", "value", b"value"]) -> None: ... -Global___Field: _TypeAlias = Field # noqa: Y015 +global___Field = Field diff --git a/sdk/python/feast/protos/feast/types/Value_pb2.pyi b/sdk/python/feast/protos/feast/types/Value_pb2.pyi index 162f8829bc1..4c24284e1e4 100644 --- a/sdk/python/feast/protos/feast/types/Value_pb2.pyi +++ b/sdk/python/feast/protos/feast/types/Value_pb2.pyi @@ -16,46 +16,44 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -import builtins as _builtins +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class _Null: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType -class _NullEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Null.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor +class _NullEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Null.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor NULL: _Null.ValueType # 0 class Null(_Null, metaclass=_NullEnumTypeWrapper): ... NULL: Null.ValueType # 0 -Global___Null: _TypeAlias = Null # noqa: Y015 +global___Null = Null -@_typing.final -class ValueType(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class ValueType(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _Enum: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - class _EnumEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[ValueType._Enum.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor + class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ValueType._Enum.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor INVALID: ValueType._Enum.ValueType # 0 BYTES: ValueType._Enum.ValueType # 1 STRING: ValueType._Enum.ValueType # 2 @@ -151,588 +149,536 @@ class ValueType(_message.Message): self, ) -> None: ... -Global___ValueType: _TypeAlias = ValueType # noqa: Y015 - -@_typing.final -class Value(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - BYTES_VAL_FIELD_NUMBER: _builtins.int - STRING_VAL_FIELD_NUMBER: _builtins.int - INT32_VAL_FIELD_NUMBER: _builtins.int - INT64_VAL_FIELD_NUMBER: _builtins.int - DOUBLE_VAL_FIELD_NUMBER: _builtins.int - FLOAT_VAL_FIELD_NUMBER: _builtins.int - BOOL_VAL_FIELD_NUMBER: _builtins.int - UNIX_TIMESTAMP_VAL_FIELD_NUMBER: _builtins.int - BYTES_LIST_VAL_FIELD_NUMBER: _builtins.int - STRING_LIST_VAL_FIELD_NUMBER: _builtins.int - INT32_LIST_VAL_FIELD_NUMBER: _builtins.int - INT64_LIST_VAL_FIELD_NUMBER: _builtins.int - DOUBLE_LIST_VAL_FIELD_NUMBER: _builtins.int - FLOAT_LIST_VAL_FIELD_NUMBER: _builtins.int - BOOL_LIST_VAL_FIELD_NUMBER: _builtins.int - UNIX_TIMESTAMP_LIST_VAL_FIELD_NUMBER: _builtins.int - NULL_VAL_FIELD_NUMBER: _builtins.int - MAP_VAL_FIELD_NUMBER: _builtins.int - MAP_LIST_VAL_FIELD_NUMBER: _builtins.int - BYTES_SET_VAL_FIELD_NUMBER: _builtins.int - STRING_SET_VAL_FIELD_NUMBER: _builtins.int - INT32_SET_VAL_FIELD_NUMBER: _builtins.int - INT64_SET_VAL_FIELD_NUMBER: _builtins.int - DOUBLE_SET_VAL_FIELD_NUMBER: _builtins.int - FLOAT_SET_VAL_FIELD_NUMBER: _builtins.int - BOOL_SET_VAL_FIELD_NUMBER: _builtins.int - UNIX_TIMESTAMP_SET_VAL_FIELD_NUMBER: _builtins.int - JSON_VAL_FIELD_NUMBER: _builtins.int - JSON_LIST_VAL_FIELD_NUMBER: _builtins.int - STRUCT_VAL_FIELD_NUMBER: _builtins.int - STRUCT_LIST_VAL_FIELD_NUMBER: _builtins.int - UUID_VAL_FIELD_NUMBER: _builtins.int - TIME_UUID_VAL_FIELD_NUMBER: _builtins.int - UUID_LIST_VAL_FIELD_NUMBER: _builtins.int - TIME_UUID_LIST_VAL_FIELD_NUMBER: _builtins.int - UUID_SET_VAL_FIELD_NUMBER: _builtins.int - TIME_UUID_SET_VAL_FIELD_NUMBER: _builtins.int - LIST_VAL_FIELD_NUMBER: _builtins.int - SET_VAL_FIELD_NUMBER: _builtins.int - DECIMAL_VAL_FIELD_NUMBER: _builtins.int - DECIMAL_LIST_VAL_FIELD_NUMBER: _builtins.int - DECIMAL_SET_VAL_FIELD_NUMBER: _builtins.int - SCALAR_MAP_VAL_FIELD_NUMBER: _builtins.int - bytes_val: _builtins.bytes - string_val: _builtins.str - int32_val: _builtins.int - int64_val: _builtins.int - double_val: _builtins.float - float_val: _builtins.float - bool_val: _builtins.bool - unix_timestamp_val: _builtins.int - null_val: Global___Null.ValueType - json_val: _builtins.str - uuid_val: _builtins.str - time_uuid_val: _builtins.str - decimal_val: _builtins.str - @_builtins.property - def bytes_list_val(self) -> Global___BytesList: ... - @_builtins.property - def string_list_val(self) -> Global___StringList: ... - @_builtins.property - def int32_list_val(self) -> Global___Int32List: ... - @_builtins.property - def int64_list_val(self) -> Global___Int64List: ... - @_builtins.property - def double_list_val(self) -> Global___DoubleList: ... - @_builtins.property - def float_list_val(self) -> Global___FloatList: ... - @_builtins.property - def bool_list_val(self) -> Global___BoolList: ... - @_builtins.property - def unix_timestamp_list_val(self) -> Global___Int64List: ... - @_builtins.property - def map_val(self) -> Global___Map: ... - @_builtins.property - def map_list_val(self) -> Global___MapList: ... - @_builtins.property - def bytes_set_val(self) -> Global___BytesSet: ... - @_builtins.property - def string_set_val(self) -> Global___StringSet: ... - @_builtins.property - def int32_set_val(self) -> Global___Int32Set: ... - @_builtins.property - def int64_set_val(self) -> Global___Int64Set: ... - @_builtins.property - def double_set_val(self) -> Global___DoubleSet: ... - @_builtins.property - def float_set_val(self) -> Global___FloatSet: ... - @_builtins.property - def bool_set_val(self) -> Global___BoolSet: ... - @_builtins.property - def unix_timestamp_set_val(self) -> Global___Int64Set: ... - @_builtins.property - def json_list_val(self) -> Global___StringList: ... - @_builtins.property - def struct_val(self) -> Global___Map: ... - @_builtins.property - def struct_list_val(self) -> Global___MapList: ... - @_builtins.property - def uuid_list_val(self) -> Global___StringList: ... - @_builtins.property - def time_uuid_list_val(self) -> Global___StringList: ... - @_builtins.property - def uuid_set_val(self) -> Global___StringSet: ... - @_builtins.property - def time_uuid_set_val(self) -> Global___StringSet: ... - @_builtins.property - def list_val(self) -> Global___RepeatedValue: ... - @_builtins.property - def set_val(self) -> Global___RepeatedValue: ... - @_builtins.property - def decimal_list_val(self) -> Global___StringList: ... - @_builtins.property - def decimal_set_val(self) -> Global___StringSet: ... - @_builtins.property - def scalar_map_val(self) -> Global___ScalarMap: ... +global___ValueType = ValueType + +class Value(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BYTES_VAL_FIELD_NUMBER: builtins.int + STRING_VAL_FIELD_NUMBER: builtins.int + INT32_VAL_FIELD_NUMBER: builtins.int + INT64_VAL_FIELD_NUMBER: builtins.int + DOUBLE_VAL_FIELD_NUMBER: builtins.int + FLOAT_VAL_FIELD_NUMBER: builtins.int + BOOL_VAL_FIELD_NUMBER: builtins.int + UNIX_TIMESTAMP_VAL_FIELD_NUMBER: builtins.int + BYTES_LIST_VAL_FIELD_NUMBER: builtins.int + STRING_LIST_VAL_FIELD_NUMBER: builtins.int + INT32_LIST_VAL_FIELD_NUMBER: builtins.int + INT64_LIST_VAL_FIELD_NUMBER: builtins.int + DOUBLE_LIST_VAL_FIELD_NUMBER: builtins.int + FLOAT_LIST_VAL_FIELD_NUMBER: builtins.int + BOOL_LIST_VAL_FIELD_NUMBER: builtins.int + UNIX_TIMESTAMP_LIST_VAL_FIELD_NUMBER: builtins.int + NULL_VAL_FIELD_NUMBER: builtins.int + MAP_VAL_FIELD_NUMBER: builtins.int + MAP_LIST_VAL_FIELD_NUMBER: builtins.int + BYTES_SET_VAL_FIELD_NUMBER: builtins.int + STRING_SET_VAL_FIELD_NUMBER: builtins.int + INT32_SET_VAL_FIELD_NUMBER: builtins.int + INT64_SET_VAL_FIELD_NUMBER: builtins.int + DOUBLE_SET_VAL_FIELD_NUMBER: builtins.int + FLOAT_SET_VAL_FIELD_NUMBER: builtins.int + BOOL_SET_VAL_FIELD_NUMBER: builtins.int + UNIX_TIMESTAMP_SET_VAL_FIELD_NUMBER: builtins.int + JSON_VAL_FIELD_NUMBER: builtins.int + JSON_LIST_VAL_FIELD_NUMBER: builtins.int + STRUCT_VAL_FIELD_NUMBER: builtins.int + STRUCT_LIST_VAL_FIELD_NUMBER: builtins.int + UUID_VAL_FIELD_NUMBER: builtins.int + TIME_UUID_VAL_FIELD_NUMBER: builtins.int + UUID_LIST_VAL_FIELD_NUMBER: builtins.int + TIME_UUID_LIST_VAL_FIELD_NUMBER: builtins.int + UUID_SET_VAL_FIELD_NUMBER: builtins.int + TIME_UUID_SET_VAL_FIELD_NUMBER: builtins.int + LIST_VAL_FIELD_NUMBER: builtins.int + SET_VAL_FIELD_NUMBER: builtins.int + DECIMAL_VAL_FIELD_NUMBER: builtins.int + DECIMAL_LIST_VAL_FIELD_NUMBER: builtins.int + DECIMAL_SET_VAL_FIELD_NUMBER: builtins.int + SCALAR_MAP_VAL_FIELD_NUMBER: builtins.int + bytes_val: builtins.bytes + string_val: builtins.str + int32_val: builtins.int + int64_val: builtins.int + double_val: builtins.float + float_val: builtins.float + bool_val: builtins.bool + unix_timestamp_val: builtins.int + @property + def bytes_list_val(self) -> global___BytesList: ... + @property + def string_list_val(self) -> global___StringList: ... + @property + def int32_list_val(self) -> global___Int32List: ... + @property + def int64_list_val(self) -> global___Int64List: ... + @property + def double_list_val(self) -> global___DoubleList: ... + @property + def float_list_val(self) -> global___FloatList: ... + @property + def bool_list_val(self) -> global___BoolList: ... + @property + def unix_timestamp_list_val(self) -> global___Int64List: ... + null_val: global___Null.ValueType + @property + def map_val(self) -> global___Map: ... + @property + def map_list_val(self) -> global___MapList: ... + @property + def bytes_set_val(self) -> global___BytesSet: ... + @property + def string_set_val(self) -> global___StringSet: ... + @property + def int32_set_val(self) -> global___Int32Set: ... + @property + def int64_set_val(self) -> global___Int64Set: ... + @property + def double_set_val(self) -> global___DoubleSet: ... + @property + def float_set_val(self) -> global___FloatSet: ... + @property + def bool_set_val(self) -> global___BoolSet: ... + @property + def unix_timestamp_set_val(self) -> global___Int64Set: ... + json_val: builtins.str + @property + def json_list_val(self) -> global___StringList: ... + @property + def struct_val(self) -> global___Map: ... + @property + def struct_list_val(self) -> global___MapList: ... + uuid_val: builtins.str + time_uuid_val: builtins.str + @property + def uuid_list_val(self) -> global___StringList: ... + @property + def time_uuid_list_val(self) -> global___StringList: ... + @property + def uuid_set_val(self) -> global___StringSet: ... + @property + def time_uuid_set_val(self) -> global___StringSet: ... + @property + def list_val(self) -> global___RepeatedValue: ... + @property + def set_val(self) -> global___RepeatedValue: ... + decimal_val: builtins.str + @property + def decimal_list_val(self) -> global___StringList: ... + @property + def decimal_set_val(self) -> global___StringSet: ... + @property + def scalar_map_val(self) -> global___ScalarMap: ... def __init__( self, *, - bytes_val: _builtins.bytes = ..., - string_val: _builtins.str = ..., - int32_val: _builtins.int = ..., - int64_val: _builtins.int = ..., - double_val: _builtins.float = ..., - float_val: _builtins.float = ..., - bool_val: _builtins.bool = ..., - unix_timestamp_val: _builtins.int = ..., - bytes_list_val: Global___BytesList | None = ..., - string_list_val: Global___StringList | None = ..., - int32_list_val: Global___Int32List | None = ..., - int64_list_val: Global___Int64List | None = ..., - double_list_val: Global___DoubleList | None = ..., - float_list_val: Global___FloatList | None = ..., - bool_list_val: Global___BoolList | None = ..., - unix_timestamp_list_val: Global___Int64List | None = ..., - null_val: Global___Null.ValueType = ..., - map_val: Global___Map | None = ..., - map_list_val: Global___MapList | None = ..., - bytes_set_val: Global___BytesSet | None = ..., - string_set_val: Global___StringSet | None = ..., - int32_set_val: Global___Int32Set | None = ..., - int64_set_val: Global___Int64Set | None = ..., - double_set_val: Global___DoubleSet | None = ..., - float_set_val: Global___FloatSet | None = ..., - bool_set_val: Global___BoolSet | None = ..., - unix_timestamp_set_val: Global___Int64Set | None = ..., - json_val: _builtins.str = ..., - json_list_val: Global___StringList | None = ..., - struct_val: Global___Map | None = ..., - struct_list_val: Global___MapList | None = ..., - uuid_val: _builtins.str = ..., - time_uuid_val: _builtins.str = ..., - uuid_list_val: Global___StringList | None = ..., - time_uuid_list_val: Global___StringList | None = ..., - uuid_set_val: Global___StringSet | None = ..., - time_uuid_set_val: Global___StringSet | None = ..., - list_val: Global___RepeatedValue | None = ..., - set_val: Global___RepeatedValue | None = ..., - decimal_val: _builtins.str = ..., - decimal_list_val: Global___StringList | None = ..., - decimal_set_val: Global___StringSet | None = ..., - scalar_map_val: Global___ScalarMap | None = ..., + bytes_val: builtins.bytes = ..., + string_val: builtins.str = ..., + int32_val: builtins.int = ..., + int64_val: builtins.int = ..., + double_val: builtins.float = ..., + float_val: builtins.float = ..., + bool_val: builtins.bool = ..., + unix_timestamp_val: builtins.int = ..., + bytes_list_val: global___BytesList | None = ..., + string_list_val: global___StringList | None = ..., + int32_list_val: global___Int32List | None = ..., + int64_list_val: global___Int64List | None = ..., + double_list_val: global___DoubleList | None = ..., + float_list_val: global___FloatList | None = ..., + bool_list_val: global___BoolList | None = ..., + unix_timestamp_list_val: global___Int64List | None = ..., + null_val: global___Null.ValueType = ..., + map_val: global___Map | None = ..., + map_list_val: global___MapList | None = ..., + bytes_set_val: global___BytesSet | None = ..., + string_set_val: global___StringSet | None = ..., + int32_set_val: global___Int32Set | None = ..., + int64_set_val: global___Int64Set | None = ..., + double_set_val: global___DoubleSet | None = ..., + float_set_val: global___FloatSet | None = ..., + bool_set_val: global___BoolSet | None = ..., + unix_timestamp_set_val: global___Int64Set | None = ..., + json_val: builtins.str = ..., + json_list_val: global___StringList | None = ..., + struct_val: global___Map | None = ..., + struct_list_val: global___MapList | None = ..., + uuid_val: builtins.str = ..., + time_uuid_val: builtins.str = ..., + uuid_list_val: global___StringList | None = ..., + time_uuid_list_val: global___StringList | None = ..., + uuid_set_val: global___StringSet | None = ..., + time_uuid_set_val: global___StringSet | None = ..., + list_val: global___RepeatedValue | None = ..., + set_val: global___RepeatedValue | None = ..., + decimal_val: builtins.str = ..., + decimal_list_val: global___StringList | None = ..., + decimal_set_val: global___StringSet | None = ..., + scalar_map_val: global___ScalarMap | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "scalar_map_val", b"scalar_map_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "scalar_map_val", b"scalar_map_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_val: _TypeAlias = _typing.Literal["bytes_val", "string_val", "int32_val", "int64_val", "double_val", "float_val", "bool_val", "unix_timestamp_val", "bytes_list_val", "string_list_val", "int32_list_val", "int64_list_val", "double_list_val", "float_list_val", "bool_list_val", "unix_timestamp_list_val", "null_val", "map_val", "map_list_val", "bytes_set_val", "string_set_val", "int32_set_val", "int64_set_val", "double_set_val", "float_set_val", "bool_set_val", "unix_timestamp_set_val", "json_val", "json_list_val", "struct_val", "struct_list_val", "uuid_val", "time_uuid_val", "uuid_list_val", "time_uuid_list_val", "uuid_set_val", "time_uuid_set_val", "list_val", "set_val", "decimal_val", "decimal_list_val", "decimal_set_val", "scalar_map_val"] # noqa: Y015 - _WhichOneofArgType_val: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_val) -> _WhichOneofReturnType_val | None: ... - -Global___Value: _TypeAlias = Value # noqa: Y015 - -@_typing.final -class BytesList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + def HasField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "scalar_map_val", b"scalar_map_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_set_val", b"bool_set_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_set_val", b"bytes_set_val", "bytes_val", b"bytes_val", "decimal_list_val", b"decimal_list_val", "decimal_set_val", b"decimal_set_val", "decimal_val", b"decimal_val", "double_list_val", b"double_list_val", "double_set_val", b"double_set_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_set_val", b"float_set_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_set_val", b"int32_set_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_set_val", b"int64_set_val", "int64_val", b"int64_val", "json_list_val", b"json_list_val", "json_val", b"json_val", "list_val", b"list_val", "map_list_val", b"map_list_val", "map_val", b"map_val", "null_val", b"null_val", "scalar_map_val", b"scalar_map_val", "set_val", b"set_val", "string_list_val", b"string_list_val", "string_set_val", b"string_set_val", "string_val", b"string_val", "struct_list_val", b"struct_list_val", "struct_val", b"struct_val", "time_uuid_list_val", b"time_uuid_list_val", "time_uuid_set_val", b"time_uuid_set_val", "time_uuid_val", b"time_uuid_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_set_val", b"unix_timestamp_set_val", "unix_timestamp_val", b"unix_timestamp_val", "uuid_list_val", b"uuid_list_val", "uuid_set_val", b"uuid_set_val", "uuid_val", b"uuid_val", "val", b"val"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["val", b"val"]) -> typing_extensions.Literal["bytes_val", "string_val", "int32_val", "int64_val", "double_val", "float_val", "bool_val", "unix_timestamp_val", "bytes_list_val", "string_list_val", "int32_list_val", "int64_list_val", "double_list_val", "float_list_val", "bool_list_val", "unix_timestamp_list_val", "null_val", "map_val", "map_list_val", "bytes_set_val", "string_set_val", "int32_set_val", "int64_set_val", "double_set_val", "float_set_val", "bool_set_val", "unix_timestamp_set_val", "json_val", "json_list_val", "struct_val", "struct_list_val", "uuid_val", "time_uuid_val", "uuid_list_val", "time_uuid_list_val", "uuid_set_val", "time_uuid_set_val", "list_val", "set_val", "decimal_val", "decimal_list_val", "decimal_set_val", "scalar_map_val"] | None: ... + +global___Value = Value + +class BytesList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.bytes] | None = ..., + val: collections.abc.Iterable[builtins.bytes] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___BytesList: _TypeAlias = BytesList # noqa: Y015 +global___BytesList = BytesList -@_typing.final -class StringList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class StringList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.str] | None = ..., + val: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___StringList: _TypeAlias = StringList # noqa: Y015 +global___StringList = StringList -@_typing.final -class Int32List(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Int32List(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.int] | None = ..., + val: collections.abc.Iterable[builtins.int] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___Int32List: _TypeAlias = Int32List # noqa: Y015 +global___Int32List = Int32List -@_typing.final -class Int64List(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Int64List(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.int] | None = ..., + val: collections.abc.Iterable[builtins.int] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___Int64List: _TypeAlias = Int64List # noqa: Y015 +global___Int64List = Int64List -@_typing.final -class DoubleList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DoubleList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.float] | None = ..., + val: collections.abc.Iterable[builtins.float] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___DoubleList: _TypeAlias = DoubleList # noqa: Y015 +global___DoubleList = DoubleList -@_typing.final -class FloatList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FloatList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.float] | None = ..., + val: collections.abc.Iterable[builtins.float] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___FloatList: _TypeAlias = FloatList # noqa: Y015 +global___FloatList = FloatList -@_typing.final -class BoolList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class BoolList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bool]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.bool] | None = ..., + val: collections.abc.Iterable[builtins.bool] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___BoolList: _TypeAlias = BoolList # noqa: Y015 +global___BoolList = BoolList -@_typing.final -class BytesSet(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class BytesSet(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.bytes] | None = ..., + val: collections.abc.Iterable[builtins.bytes] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___BytesSet: _TypeAlias = BytesSet # noqa: Y015 +global___BytesSet = BytesSet -@_typing.final -class StringSet(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class StringSet(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.str] | None = ..., + val: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___StringSet: _TypeAlias = StringSet # noqa: Y015 +global___StringSet = StringSet -@_typing.final -class Int32Set(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Int32Set(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.int] | None = ..., + val: collections.abc.Iterable[builtins.int] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___Int32Set: _TypeAlias = Int32Set # noqa: Y015 +global___Int32Set = Int32Set -@_typing.final -class Int64Set(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Int64Set(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.int] | None = ..., + val: collections.abc.Iterable[builtins.int] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___Int64Set: _TypeAlias = Int64Set # noqa: Y015 +global___Int64Set = Int64Set -@_typing.final -class DoubleSet(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class DoubleSet(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.float] | None = ..., + val: collections.abc.Iterable[builtins.float] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___DoubleSet: _TypeAlias = DoubleSet # noqa: Y015 +global___DoubleSet = DoubleSet -@_typing.final -class FloatSet(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class FloatSet(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.float] | None = ..., + val: collections.abc.Iterable[builtins.float] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___FloatSet: _TypeAlias = FloatSet # noqa: Y015 +global___FloatSet = FloatSet -@_typing.final -class BoolSet(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class BoolSet(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bool]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... def __init__( self, *, - val: _abc.Iterable[_builtins.bool] | None = ..., + val: collections.abc.Iterable[builtins.bool] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___BoolSet: _TypeAlias = BoolSet # noqa: Y015 +global___BoolSet = BoolSet -@_typing.final -class Map(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class Map(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class ValEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class ValEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - @_builtins.property - def value(self) -> Global___Value: ... + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> global___Value: ... def __init__( self, *, - key: _builtins.str = ..., - value: Global___Value | None = ..., + key: builtins.str = ..., + value: global___Value | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.MessageMap[_builtins.str, Global___Value]: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Value]: ... def __init__( self, *, - val: _abc.Mapping[_builtins.str, Global___Value] | None = ..., + val: collections.abc.Mapping[builtins.str, global___Value] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___Map: _TypeAlias = Map # noqa: Y015 +global___Map = Map -@_typing.final -class MapList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor +class MapList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedCompositeFieldContainer[Global___Map]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Map]: ... def __init__( self, *, - val: _abc.Iterable[Global___Map] | None = ..., + val: collections.abc.Iterable[global___Map] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___MapList: _TypeAlias = MapList # noqa: Y015 +global___MapList = MapList -@_typing.final -class RepeatedValue(_message.Message): +class RepeatedValue(google.protobuf.message.Message): """This is to avoid an issue of being unable to specify `repeated value` in oneofs or maps In JSON "val" field can be omitted """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedCompositeFieldContainer[Global___Value]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Value]: ... def __init__( self, *, - val: _abc.Iterable[Global___Value] | None = ..., + val: collections.abc.Iterable[global___Value] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___RepeatedValue: _TypeAlias = RepeatedValue # noqa: Y015 +global___RepeatedValue = RepeatedValue -@_typing.final -class MapKey(_message.Message): +class MapKey(google.protobuf.message.Message): """Map key for maps with non-string keys. Excludes string (handled by Map) and all collection types (not valid as keys). """ - DESCRIPTOR: _descriptor.Descriptor - - INT32_KEY_FIELD_NUMBER: _builtins.int - INT64_KEY_FIELD_NUMBER: _builtins.int - FLOAT_KEY_FIELD_NUMBER: _builtins.int - DOUBLE_KEY_FIELD_NUMBER: _builtins.int - BOOL_KEY_FIELD_NUMBER: _builtins.int - UNIX_TIMESTAMP_KEY_FIELD_NUMBER: _builtins.int - BYTES_KEY_FIELD_NUMBER: _builtins.int - UUID_KEY_FIELD_NUMBER: _builtins.int - TIME_UUID_KEY_FIELD_NUMBER: _builtins.int - DECIMAL_KEY_FIELD_NUMBER: _builtins.int - int32_key: _builtins.int - int64_key: _builtins.int - float_key: _builtins.float - double_key: _builtins.float - bool_key: _builtins.bool - unix_timestamp_key: _builtins.int - bytes_key: _builtins.bytes - uuid_key: _builtins.str - time_uuid_key: _builtins.str - decimal_key: _builtins.str + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + INT32_KEY_FIELD_NUMBER: builtins.int + INT64_KEY_FIELD_NUMBER: builtins.int + FLOAT_KEY_FIELD_NUMBER: builtins.int + DOUBLE_KEY_FIELD_NUMBER: builtins.int + BOOL_KEY_FIELD_NUMBER: builtins.int + UNIX_TIMESTAMP_KEY_FIELD_NUMBER: builtins.int + BYTES_KEY_FIELD_NUMBER: builtins.int + UUID_KEY_FIELD_NUMBER: builtins.int + TIME_UUID_KEY_FIELD_NUMBER: builtins.int + DECIMAL_KEY_FIELD_NUMBER: builtins.int + int32_key: builtins.int + int64_key: builtins.int + float_key: builtins.float + double_key: builtins.float + bool_key: builtins.bool + unix_timestamp_key: builtins.int + bytes_key: builtins.bytes + uuid_key: builtins.str + time_uuid_key: builtins.str + decimal_key: builtins.str def __init__( self, *, - int32_key: _builtins.int = ..., - int64_key: _builtins.int = ..., - float_key: _builtins.float = ..., - double_key: _builtins.float = ..., - bool_key: _builtins.bool = ..., - unix_timestamp_key: _builtins.int = ..., - bytes_key: _builtins.bytes = ..., - uuid_key: _builtins.str = ..., - time_uuid_key: _builtins.str = ..., - decimal_key: _builtins.str = ..., + int32_key: builtins.int = ..., + int64_key: builtins.int = ..., + float_key: builtins.float = ..., + double_key: builtins.float = ..., + bool_key: builtins.bool = ..., + unix_timestamp_key: builtins.int = ..., + bytes_key: builtins.bytes = ..., + uuid_key: builtins.str = ..., + time_uuid_key: builtins.str = ..., + decimal_key: builtins.str = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["bool_key", b"bool_key", "bytes_key", b"bytes_key", "decimal_key", b"decimal_key", "double_key", b"double_key", "float_key", b"float_key", "int32_key", b"int32_key", "int64_key", b"int64_key", "key", b"key", "time_uuid_key", b"time_uuid_key", "unix_timestamp_key", b"unix_timestamp_key", "uuid_key", b"uuid_key"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["bool_key", b"bool_key", "bytes_key", b"bytes_key", "decimal_key", b"decimal_key", "double_key", b"double_key", "float_key", b"float_key", "int32_key", b"int32_key", "int64_key", b"int64_key", "key", b"key", "time_uuid_key", b"time_uuid_key", "unix_timestamp_key", b"unix_timestamp_key", "uuid_key", b"uuid_key"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_key: _TypeAlias = _typing.Literal["int32_key", "int64_key", "float_key", "double_key", "bool_key", "unix_timestamp_key", "bytes_key", "uuid_key", "time_uuid_key", "decimal_key"] # noqa: Y015 - _WhichOneofArgType_key: _TypeAlias = _typing.Literal["key", b"key"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_key) -> _WhichOneofReturnType_key | None: ... - -Global___MapKey: _TypeAlias = MapKey # noqa: Y015 - -@_typing.final -class ScalarMapEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - @_builtins.property - def key(self) -> Global___MapKey: ... - @_builtins.property - def value(self) -> Global___Value: ... + def HasField(self, field_name: typing_extensions.Literal["bool_key", b"bool_key", "bytes_key", b"bytes_key", "decimal_key", b"decimal_key", "double_key", b"double_key", "float_key", b"float_key", "int32_key", b"int32_key", "int64_key", b"int64_key", "key", b"key", "time_uuid_key", b"time_uuid_key", "unix_timestamp_key", b"unix_timestamp_key", "uuid_key", b"uuid_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bool_key", b"bool_key", "bytes_key", b"bytes_key", "decimal_key", b"decimal_key", "double_key", b"double_key", "float_key", b"float_key", "int32_key", b"int32_key", "int64_key", b"int64_key", "key", b"key", "time_uuid_key", b"time_uuid_key", "unix_timestamp_key", b"unix_timestamp_key", "uuid_key", b"uuid_key"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["key", b"key"]) -> typing_extensions.Literal["int32_key", "int64_key", "float_key", "double_key", "bool_key", "unix_timestamp_key", "bytes_key", "uuid_key", "time_uuid_key", "decimal_key"] | None: ... + +global___MapKey = MapKey + +class ScalarMapEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + @property + def key(self) -> global___MapKey: ... + @property + def value(self) -> global___Value: ... def __init__( self, *, - key: Global___MapKey | None = ..., - value: Global___Value | None = ..., + key: global___MapKey | None = ..., + value: global___Value | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... -Global___ScalarMapEntry: _TypeAlias = ScalarMapEntry # noqa: Y015 +global___ScalarMapEntry = ScalarMapEntry -@_typing.final -class ScalarMap(_message.Message): +class ScalarMap(google.protobuf.message.Message): """Map with non-string keys. For string-keyed maps use Map.""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: _builtins.int - @_builtins.property - def val(self) -> _containers.RepeatedCompositeFieldContainer[Global___ScalarMapEntry]: ... + VAL_FIELD_NUMBER: builtins.int + @property + def val(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalarMapEntry]: ... def __init__( self, *, - val: _abc.Iterable[Global___ScalarMapEntry] | None = ..., + val: collections.abc.Iterable[global___ScalarMapEntry] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... -Global___ScalarMap: _TypeAlias = ScalarMap # noqa: Y015 +global___ScalarMap = ScalarMap diff --git a/sdk/python/feast/stream_feature_view.py b/sdk/python/feast/stream_feature_view.py index b461e85d50c..9ee07e6a199 100644 --- a/sdk/python/feast/stream_feature_view.py +++ b/sdk/python/feast/stream_feature_view.py @@ -328,6 +328,7 @@ def to_proto(self): tiling_hop_size=tiling_hop_size_duration, enable_validation=self.enable_validation, version=self.version, + disabled=not self.enabled, ) return StreamFeatureViewProto(spec=spec, meta=meta) @@ -410,6 +411,13 @@ def from_proto(cls, sfv_proto, skip_udf: bool = False): else: stream_feature_view.current_version_number = None + stream_feature_view.enabled = not sfv_proto.spec.disabled + + # Restore lifecycle state from meta (SFV uses FeatureViewMeta which has state). + from feast.feature_view import FeatureViewState + + stream_feature_view.state = FeatureViewState.from_proto(sfv_proto.meta.state) + if skip_udf and sfv_proto.spec.HasField("user_defined_function"): stream_feature_view._raw_udf_proto = sfv_proto.spec.user_defined_function if skip_udf and sfv_proto.spec.HasField("feature_transformation"): @@ -466,6 +474,8 @@ def __copy__(self): enable_validation=self.enable_validation, version=self.version, ) + fv.enabled = self.enabled + fv.state = self.state fv.entities = self.entities fv.features = copy.copy(self.features) fv.entity_columns = copy.copy(self.entity_columns) diff --git a/sdk/python/feast/utils.py b/sdk/python/feast/utils.py index 55ad6c6a0b8..b9b511de698 100644 --- a/sdk/python/feast/utils.py +++ b/sdk/python/feast/utils.py @@ -1246,6 +1246,26 @@ def _get_feature_views_to_use( else: fv = registry.get_any_feature_view(name, project, allow_cache) + if hasattr(fv, "enabled") and not fv.enabled: + raise ValueError( + f"Feature view '{name}' is disabled and cannot serve features. " + f"Enable it with `feast feature-views enable {name}` or set enabled=True." + ) + + # Enforce lifecycle state gate: only serve if state is AVAILABLE_ONLINE + # or STATE_UNSPECIFIED (backward compat for pre-state feature views). + if hasattr(fv, "state"): + from feast.feature_view import FeatureViewState + + if isinstance(fv.state, FeatureViewState) and fv.state not in ( + FeatureViewState.STATE_UNSPECIFIED, + FeatureViewState.AVAILABLE_ONLINE, + ): + raise ValueError( + f"Feature view '{name}' is in state '{fv.state.name}' " + f"and cannot serve features. Only AVAILABLE_ONLINE feature views can serve." + ) + if isinstance(fv, OnDemandFeatureView): od_fvs_to_use.append( fv.with_projection(copy.copy(projection)) if projection else fv diff --git a/sdk/python/tests/unit/test_feature_view_state.py b/sdk/python/tests/unit/test_feature_view_state.py new file mode 100644 index 00000000000..3af91b3b469 --- /dev/null +++ b/sdk/python/tests/unit/test_feature_view_state.py @@ -0,0 +1,433 @@ +import copy +from datetime import datetime, timedelta +from tempfile import mkstemp + +import pytest + +from feast.data_format import AvroFormat, ParquetFormat +from feast.data_source import KafkaSource +from feast.entity import Entity +from feast.feature_store import FeatureStore +from feast.feature_view import FeatureView, FeatureViewState +from feast.field import Field +from feast.infra.offline_stores.file_source import FileSource +from feast.infra.online_stores.sqlite import SqliteOnlineStoreConfig +from feast.on_demand_feature_view import OnDemandFeatureView +from feast.protos.feast.core.FeatureView_pb2 import FeatureView as FeatureViewProto +from feast.protos.feast.core.FeatureView_pb2 import ( + FeatureViewMeta as FeatureViewMetaProto, +) +from feast.protos.feast.core.FeatureView_pb2 import ( + FeatureViewSpec as FeatureViewSpecProto, +) +from feast.repo_config import RepoConfig +from feast.stream_feature_view import StreamFeatureView +from feast.types import Float32, Int64 + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + + +def _kafka_source(): + return KafkaSource( + name="kafka", + timestamp_field="event_timestamp", + kafka_bootstrap_servers="localhost:9092", + message_format=AvroFormat(""), + topic="topic", + batch_source=_batch_source(), + ) + + +def _batch_source(): + return FileSource( + file_format=ParquetFormat(), + path="file://feast/*", + timestamp_field="ts_col", + created_timestamp_column="timestamp", + ) + + +def _simple_feature_view(name="test_fv", enabled=True): + return FeatureView( + name=name, + entities=[], + schema=[Field(name="f1", dtype=Float32)], + source=_batch_source(), + ttl=timedelta(days=1), + enabled=enabled, + ) + + +@pytest.fixture +def local_feature_store(): + _, registry_path = mkstemp() + _, online_store_path = mkstemp() + return FeatureStore( + config=RepoConfig( + registry=registry_path, + project="default", + provider="local", + online_store=SqliteOnlineStoreConfig(path=online_store_path), + entity_key_serialization_version=3, + ) + ) + + +# --------------------------------------------------------------------------- +# FeatureViewState enum +# --------------------------------------------------------------------------- + + +class TestFeatureViewState: + def test_state_values(self): + assert FeatureViewState.STATE_UNSPECIFIED == 0 + assert FeatureViewState.CREATED == 1 + assert FeatureViewState.GENERATED == 2 + assert FeatureViewState.MATERIALIZING == 3 + assert FeatureViewState.AVAILABLE_ONLINE == 4 + + def test_from_proto_valid(self): + assert FeatureViewState.from_proto(0) == FeatureViewState.STATE_UNSPECIFIED + assert FeatureViewState.from_proto(4) == FeatureViewState.AVAILABLE_ONLINE + + def test_from_proto_invalid_falls_back(self): + assert FeatureViewState.from_proto(999) == FeatureViewState.STATE_UNSPECIFIED + + def test_to_proto_round_trip(self): + for state in FeatureViewState: + assert FeatureViewState.from_proto(state.to_proto()) == state + + def test_valid_transitions(self): + """Verify that valid transitions are accepted.""" + assert FeatureViewState.STATE_UNSPECIFIED.can_transition_to( + FeatureViewState.CREATED + ) + assert FeatureViewState.CREATED.can_transition_to(FeatureViewState.GENERATED) + assert FeatureViewState.GENERATED.can_transition_to( + FeatureViewState.MATERIALIZING + ) + assert FeatureViewState.MATERIALIZING.can_transition_to( + FeatureViewState.AVAILABLE_ONLINE + ) + assert FeatureViewState.MATERIALIZING.can_transition_to( + FeatureViewState.GENERATED + ) + assert FeatureViewState.AVAILABLE_ONLINE.can_transition_to( + FeatureViewState.MATERIALIZING + ) + + def test_invalid_transitions(self): + """Verify that invalid transitions are rejected.""" + assert not FeatureViewState.STATE_UNSPECIFIED.can_transition_to( + FeatureViewState.AVAILABLE_ONLINE + ) + assert not FeatureViewState.CREATED.can_transition_to( + FeatureViewState.MATERIALIZING + ) + assert not FeatureViewState.CREATED.can_transition_to( + FeatureViewState.AVAILABLE_ONLINE + ) + assert not FeatureViewState.GENERATED.can_transition_to( + FeatureViewState.AVAILABLE_ONLINE + ) + assert not FeatureViewState.AVAILABLE_ONLINE.can_transition_to( + FeatureViewState.CREATED + ) + + +# --------------------------------------------------------------------------- +# FeatureView enabled / state defaults +# --------------------------------------------------------------------------- + + +class TestFeatureViewDefaults: + def test_default_enabled_is_true(self): + fv = _simple_feature_view() + assert fv.enabled is True + + def test_default_state_is_unspecified(self): + fv = _simple_feature_view() + assert fv.state == FeatureViewState.STATE_UNSPECIFIED + + def test_enabled_false(self): + fv = _simple_feature_view(enabled=False) + assert fv.enabled is False + + +# --------------------------------------------------------------------------- +# Proto serialization round-trips +# --------------------------------------------------------------------------- + + +class TestFeatureViewProtoRoundTrip: + def test_enabled_true_round_trip(self): + fv = _simple_feature_view(enabled=True) + proto = fv.to_proto() + assert proto.spec.disabled is False + restored = FeatureView.from_proto(proto) + assert restored.enabled is True + + def test_enabled_false_round_trip(self): + fv = _simple_feature_view(enabled=False) + proto = fv.to_proto() + assert proto.spec.disabled is True + restored = FeatureView.from_proto(proto) + assert restored.enabled is False + + def test_state_round_trip(self): + fv = _simple_feature_view() + fv.state = FeatureViewState.AVAILABLE_ONLINE + proto = fv.to_proto() + assert proto.meta.state == FeatureViewState.AVAILABLE_ONLINE.value + restored = FeatureView.from_proto(proto) + assert restored.state == FeatureViewState.AVAILABLE_ONLINE + + def test_state_unspecified_not_written_to_proto(self): + fv = _simple_feature_view() + assert fv.state == FeatureViewState.STATE_UNSPECIFIED + proto = fv.to_proto() + assert proto.meta.state == 0 + + def test_backward_compat_old_proto_without_disabled_field(self): + """Old protos without `disabled` field default to False -> enabled=True.""" + spec = FeatureViewSpecProto() + spec.name = "legacy_fv" + proto = FeatureViewProto(spec=spec, meta=FeatureViewMetaProto()) + fv = FeatureView.from_proto(proto) + assert fv.enabled is True + + def test_backward_compat_old_proto_without_state_field(self): + """Old protos without `state` field default to 0 -> STATE_UNSPECIFIED.""" + spec = FeatureViewSpecProto() + spec.name = "legacy_fv" + proto = FeatureViewProto(spec=spec, meta=FeatureViewMetaProto()) + fv = FeatureView.from_proto(proto) + assert fv.state == FeatureViewState.STATE_UNSPECIFIED + + def test_all_states_round_trip(self): + for state in FeatureViewState: + fv = _simple_feature_view() + fv.state = state + restored = FeatureView.from_proto(fv.to_proto()) + assert restored.state == state + + +# --------------------------------------------------------------------------- +# copy.copy preserves enabled/state +# --------------------------------------------------------------------------- + + +class TestCopyPreservesState: + def test_feature_view_copy(self): + fv = _simple_feature_view(enabled=False) + fv.state = FeatureViewState.GENERATED + copied = copy.copy(fv) + assert copied.enabled is False + assert copied.state == FeatureViewState.GENERATED + + def test_on_demand_feature_view_copy(self): + source_fv = _simple_feature_view() + odfv = OnDemandFeatureView( + name="test_odfv", + sources=[source_fv], + schema=[Field(name="out", dtype=Float32)], + mode="python", + udf=lambda features: {"out": [1.0]}, + enabled=False, + ) + odfv.state = FeatureViewState.GENERATED + copied = copy.copy(odfv) + assert copied.enabled is False + assert copied.state == FeatureViewState.GENERATED + + def test_stream_feature_view_copy(self): + sfv = StreamFeatureView( + name="test_sfv", + entities=[], + schema=[Field(name="f1", dtype=Float32)], + source=_kafka_source(), + ttl=timedelta(days=1), + ) + sfv.enabled = False + sfv.state = FeatureViewState.AVAILABLE_ONLINE + copied = copy.copy(sfv) + assert copied.enabled is False + assert copied.state == FeatureViewState.AVAILABLE_ONLINE + + +# --------------------------------------------------------------------------- +# OnDemandFeatureView enabled / state +# --------------------------------------------------------------------------- + + +class TestOnDemandFeatureViewState: + def test_default_enabled(self): + source_fv = _simple_feature_view() + odfv = OnDemandFeatureView( + name="test_odfv", + sources=[source_fv], + schema=[Field(name="out", dtype=Float32)], + mode="python", + udf=lambda features: {"out": [1.0]}, + ) + assert odfv.enabled is True + assert odfv.state == FeatureViewState.STATE_UNSPECIFIED + + def test_disabled(self): + source_fv = _simple_feature_view() + odfv = OnDemandFeatureView( + name="test_odfv", + sources=[source_fv], + schema=[Field(name="out", dtype=Float32)], + mode="python", + udf=lambda features: {"out": [1.0]}, + enabled=False, + ) + assert odfv.enabled is False + + def test_proto_disabled_field(self): + """Verify the proto disabled field is set correctly without full round-trip.""" + source_fv = _simple_feature_view() + odfv = OnDemandFeatureView( + name="test_odfv", + sources=[source_fv], + schema=[Field(name="out", dtype=Float32)], + mode="python", + udf=lambda features: {"out": [1.0]}, + enabled=False, + ) + odfv.state = FeatureViewState.AVAILABLE_ONLINE + proto = odfv.to_proto() + assert proto.spec.disabled is True + assert proto.meta.state == FeatureViewState.AVAILABLE_ONLINE.value + + +# --------------------------------------------------------------------------- +# StreamFeatureView enabled / state +# --------------------------------------------------------------------------- + + +class TestStreamFeatureViewState: + def test_proto_round_trip(self): + sfv = StreamFeatureView( + name="test_sfv", + entities=[], + schema=[Field(name="f1", dtype=Float32)], + source=_kafka_source(), + ttl=timedelta(days=1), + ) + sfv.enabled = False + sfv.state = FeatureViewState.MATERIALIZING + proto = sfv.to_proto() + assert proto.spec.disabled is True + restored = StreamFeatureView.from_proto(proto) + assert restored.enabled is False + assert restored.state == FeatureViewState.MATERIALIZING + + +# --------------------------------------------------------------------------- +# Registry apply preserves enabled/state +# --------------------------------------------------------------------------- + + +class TestRegistryEnabledState: + def test_apply_and_retrieve_enabled(self, local_feature_store): + store = local_feature_store + fv = _simple_feature_view(enabled=True) + store.apply([fv]) + retrieved = store.get_feature_view("test_fv") + assert retrieved.enabled is True + store.teardown() + + def test_apply_and_retrieve_disabled(self, local_feature_store): + store = local_feature_store + fv = _simple_feature_view(enabled=False) + store.apply([fv]) + retrieved = store.get_feature_view("test_fv") + assert retrieved.enabled is False + store.teardown() + + def test_toggle_enabled_via_registry(self, local_feature_store): + store = local_feature_store + fv = _simple_feature_view(enabled=True) + store.apply([fv]) + + # Disable it + fv.enabled = False + store.registry.apply_feature_view(fv, store.project) + retrieved = store.get_feature_view("test_fv") + assert retrieved.enabled is False + + # Re-enable it + fv.enabled = True + store.registry.apply_feature_view(fv, store.project) + retrieved = store.get_feature_view("test_fv") + assert retrieved.enabled is True + store.teardown() + + def test_state_persists_through_registry(self, local_feature_store): + store = local_feature_store + fv = _simple_feature_view() + fv.state = FeatureViewState.GENERATED + store.apply([fv]) + + # State should be updated via registry apply + fv.state = FeatureViewState.AVAILABLE_ONLINE + store.registry.apply_feature_view(fv, store.project) + retrieved = store.get_feature_view("test_fv") + assert retrieved.state == FeatureViewState.AVAILABLE_ONLINE + store.teardown() + + def test_reapply_does_not_reset_state(self, local_feature_store): + """feast apply with a default-state FV must not reset an existing state.""" + store = local_feature_store + fv = _simple_feature_view() + store.apply([fv]) + + # Simulate materialization having moved state to AVAILABLE_ONLINE + fv.state = FeatureViewState.AVAILABLE_ONLINE + store.registry.apply_feature_view(fv, store.project) + retrieved = store.get_feature_view("test_fv") + assert retrieved.state == FeatureViewState.AVAILABLE_ONLINE + + # Re-apply with a fresh FV (default STATE_UNSPECIFIED) — should preserve state + fresh_fv = _simple_feature_view() + assert fresh_fv.state == FeatureViewState.STATE_UNSPECIFIED + store.apply([fresh_fv]) + retrieved = store.get_feature_view("test_fv") + assert retrieved.state == FeatureViewState.AVAILABLE_ONLINE + store.teardown() + + +# --------------------------------------------------------------------------- +# Materialization blocks disabled feature views +# --------------------------------------------------------------------------- + + +class TestMaterializationDisabledBlocking: + def test_materialize_disabled_fv_by_name_raises(self, local_feature_store): + store = local_feature_store + entity = Entity(name="entity_1", join_keys=["entity_id"]) + fv = FeatureView( + name="test_fv", + entities=[entity], + schema=[ + Field(name="f1", dtype=Float32), + Field(name="entity_id", dtype=Int64), + ], + source=_batch_source(), + ttl=timedelta(days=1), + online=True, + enabled=False, + ) + store.apply([entity, fv]) + + with pytest.raises(ValueError, match="disabled"): + store.materialize( + feature_views=["test_fv"], + start_date=datetime.utcnow() - timedelta(hours=1), + end_date=datetime.utcnow(), + ) + store.teardown() From dda43c2133c77c9ad4a91b88df1592b7cd5e852b Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Tue, 26 May 2026 23:07:35 -0400 Subject: [PATCH 34/59] chore: Split integration tests out of unit suite (#6358) chore: split integration tests out of unit suite Signed-off-by: Francisco Javier Arceo --- Makefile | 4 +- .../cli/test_cli_apply_duplicates.py | 4 + .../tests/integration/doctest/__init__.py | 0 .../{ => integration}/doctest/test_all.py | 4 + .../integration/local_feast_tests/__init__.py | 0 .../local_feast_tests/test_e2e_local.py | 2 + .../integration/offline_server/__init__.py | 0 .../offline_server/test_offline_server.py | 375 ++++++++++++++++++ .../online_store/test_hybrid_online_store.py | 2 + .../test_mongodb_online_retrieval.py | 165 ++++++++ .../tests/integration/permissions/__init__.py | 0 .../integration/permissions/auth/__init__.py | 0 .../integration/permissions/auth/conftest.py | 30 ++ .../permissions/auth/server/__init__.py | 0 .../auth/server/test_auth_registry_server.py | 10 +- .../integration/test_mcp_feature_server.py | 2 + .../test_mongodb_online_retrieval.py | 181 +-------- .../test_groups_namespaces_auth.py | 0 sdk/python/tests/unit/test_offline_server.py | 373 +---------------- 19 files changed, 599 insertions(+), 553 deletions(-) rename sdk/python/tests/{unit => integration}/cli/test_cli_apply_duplicates.py (99%) create mode 100644 sdk/python/tests/integration/doctest/__init__.py rename sdk/python/tests/{ => integration}/doctest/test_all.py (99%) create mode 100644 sdk/python/tests/integration/local_feast_tests/__init__.py rename sdk/python/tests/{unit => integration}/local_feast_tests/test_e2e_local.py (99%) create mode 100644 sdk/python/tests/integration/offline_server/__init__.py create mode 100644 sdk/python/tests/integration/offline_server/test_offline_server.py create mode 100644 sdk/python/tests/integration/online_store/test_mongodb_online_retrieval.py create mode 100644 sdk/python/tests/integration/permissions/__init__.py create mode 100644 sdk/python/tests/integration/permissions/auth/__init__.py create mode 100644 sdk/python/tests/integration/permissions/auth/conftest.py create mode 100644 sdk/python/tests/integration/permissions/auth/server/__init__.py rename sdk/python/tests/{unit => integration}/permissions/auth/server/test_auth_registry_server.py (96%) rename sdk/python/tests/{ => unit}/permissions/test_groups_namespaces_auth.py (100%) diff --git a/Makefile b/Makefile index 799bc9c42fc..42cdac3dc25 100644 --- a/Makefile +++ b/Makefile @@ -168,9 +168,7 @@ benchmark-python-local: ## Run integration + benchmark tests for Python (local d test-python-unit: ## Run Python unit tests (use pattern= to filter tests, e.g., pattern=milvus, pattern=test_online_retrieval.py, pattern=test_online_retrieval.py::test_get_online_features_milvus) uv run python -m pytest -n 8 --color=yes $(if $(pattern),-k "$(pattern)") \ - --ignore=sdk/python/tests/component/ray \ - --ignore=sdk/python/tests/component/spark \ - sdk/python/tests + sdk/python/tests/unit # Fast unit tests only test-python-unit-fast: ## Run fast unit tests only (no external dependencies) diff --git a/sdk/python/tests/unit/cli/test_cli_apply_duplicates.py b/sdk/python/tests/integration/cli/test_cli_apply_duplicates.py similarity index 99% rename from sdk/python/tests/unit/cli/test_cli_apply_duplicates.py rename to sdk/python/tests/integration/cli/test_cli_apply_duplicates.py index cf5b64dbd20..f29d07a67c1 100644 --- a/sdk/python/tests/unit/cli/test_cli_apply_duplicates.py +++ b/sdk/python/tests/integration/cli/test_cli_apply_duplicates.py @@ -2,8 +2,12 @@ from pathlib import Path from textwrap import dedent +import pytest + from tests.utils.cli_repo_creator import CliRunner, get_example_repo +pytestmark = pytest.mark.integration + def test_cli_apply_duplicated_featureview_names() -> None: run_simple_apply_test( diff --git a/sdk/python/tests/integration/doctest/__init__.py b/sdk/python/tests/integration/doctest/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/tests/doctest/test_all.py b/sdk/python/tests/integration/doctest/test_all.py similarity index 99% rename from sdk/python/tests/doctest/test_all.py rename to sdk/python/tests/integration/doctest/test_all.py index bf9e63be6e2..9620aabf55b 100644 --- a/sdk/python/tests/doctest/test_all.py +++ b/sdk/python/tests/integration/doctest/test_all.py @@ -5,9 +5,13 @@ import traceback import unittest +import pytest + import feast from feast.utils import _utc_now +pytestmark = pytest.mark.integration + FILES_TO_IGNORE = {"app"} diff --git a/sdk/python/tests/integration/local_feast_tests/__init__.py b/sdk/python/tests/integration/local_feast_tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/tests/unit/local_feast_tests/test_e2e_local.py b/sdk/python/tests/integration/local_feast_tests/test_e2e_local.py similarity index 99% rename from sdk/python/tests/unit/local_feast_tests/test_e2e_local.py rename to sdk/python/tests/integration/local_feast_tests/test_e2e_local.py index ef11c8cccfa..cee295775b1 100644 --- a/sdk/python/tests/unit/local_feast_tests/test_e2e_local.py +++ b/sdk/python/tests/integration/local_feast_tests/test_e2e_local.py @@ -18,6 +18,8 @@ from tests.utils.cli_repo_creator import CliRunner, get_example_repo from tests.utils.feature_records import validate_online_features +pytestmark = pytest.mark.integration + @pytest.mark.skipif( platform.system() == "Darwin" and os.environ.get("CI") == "true", diff --git a/sdk/python/tests/integration/offline_server/__init__.py b/sdk/python/tests/integration/offline_server/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/tests/integration/offline_server/test_offline_server.py b/sdk/python/tests/integration/offline_server/test_offline_server.py new file mode 100644 index 00000000000..8069326bb43 --- /dev/null +++ b/sdk/python/tests/integration/offline_server/test_offline_server.py @@ -0,0 +1,375 @@ +import os +import tempfile +from datetime import datetime, timedelta +from unittest.mock import patch + +import assertpy +import pandas as pd +import pyarrow as pa +import pyarrow.flight as flight +import pytest + +from feast import FeatureStore, FeatureView, FileSource +from feast.errors import FeatureViewNotFoundException +from feast.feature_logging import FeatureServiceLoggingSource +from feast.infra.offline_stores.remote import ( + RemoteOfflineStore, + RemoteOfflineStoreConfig, +) +from feast.offline_server import OfflineServer, _init_auth_manager +from feast.repo_config import RepoConfig +from feast.torch_wrapper import get_torch +from tests.utils.cli_repo_creator import CliRunner + +pytestmark = pytest.mark.integration + +PROJECT_NAME = "test_remote_offline" + + +@pytest.fixture +def empty_offline_server(environment): + store = environment.feature_store + + location = "grpc+tcp://localhost:0" + _init_auth_manager(store=store) + return OfflineServer(store=store, location=location) + + +@pytest.fixture +def arrow_client(empty_offline_server): + return flight.FlightClient(f"grpc://localhost:{empty_offline_server.port}") + + +def test_offline_server_is_alive(environment, empty_offline_server, arrow_client): + server = empty_offline_server + client = arrow_client + + assertpy.assert_that(server).is_not_none() + assertpy.assert_that(server.port).is_not_equal_to(0) + + actions = list(client.list_actions()) + flights = list(client.list_flights()) + + assertpy.assert_that(actions).is_equal_to( + [ + ( + "offline_write_batch", + "Writes the specified arrow table to the data source underlying the specified feature view.", + ), + ( + "write_logged_features", + "Writes logged features to a specified destination in the offline store.", + ), + ( + "persist", + "Synchronously executes the underlying query and persists the result in the same offline store at the " + "specified destination.", + ), + ] + ) + assertpy.assert_that(flights).is_empty() + + +def default_store(temp_dir): + runner = CliRunner() + result = runner.run(["init", PROJECT_NAME], cwd=temp_dir) + repo_path = os.path.join(temp_dir, PROJECT_NAME, "feature_repo") + assert result.returncode == 0 + + result = runner.run(["--chdir", repo_path, "apply"], cwd=temp_dir) + assert result.returncode == 0 + + fs = FeatureStore(repo_path=repo_path) + return fs + + +def remote_feature_store(offline_server): + offline_config = RemoteOfflineStoreConfig( + type="remote", host="0.0.0.0", port=offline_server.port + ) + + registry_path = os.path.join( + str(offline_server.store.repo_path), + offline_server.store.config.registry.path, + ) + store = FeatureStore( + config=RepoConfig( + project=PROJECT_NAME, + registry=registry_path, + provider="local", + offline_store=offline_config, + entity_key_serialization_version=3, + # repo_config = + ) + ) + return store + + +def test_remote_offline_store_apis(): + with tempfile.TemporaryDirectory() as temp_dir: + store = default_store(str(temp_dir)) + location = "grpc+tcp://localhost:0" + + _init_auth_manager(store=store) + server = OfflineServer(store=store, location=location) + + assertpy.assert_that(server).is_not_none() + assertpy.assert_that(server.port).is_not_equal_to(0) + + fs = remote_feature_store(server) + + _test_get_historical_features_returns_data(fs) + _test_get_historical_features_to_tensor(fs) + _test_get_historical_features_returns_nan(fs) + _test_get_historical_features_to_tensor_with_nan(fs) + _test_offline_write_batch(str(temp_dir), fs) + _test_write_logged_features(str(temp_dir), fs) + _test_pull_latest_from_table_or_query(str(temp_dir), fs) + _test_pull_all_from_table_or_query(str(temp_dir), fs) + + +def test_remote_offline_store_exception_handling(): + with tempfile.TemporaryDirectory() as temp_dir: + store = default_store(str(temp_dir)) + location = "grpc+tcp://localhost:0" + + _init_auth_manager(store=store) + server = OfflineServer(store=store, location=location) + + assertpy.assert_that(server).is_not_none() + assertpy.assert_that(server.port).is_not_equal_to(0) + + fs = remote_feature_store(server) + data_file = os.path.join( + temp_dir, fs.project, "feature_repo/data/driver_stats.parquet" + ) + data_df = pd.read_parquet(data_file) + + with pytest.raises( + FeatureViewNotFoundException, + match="Feature view test does not exist in project test_remote_offline", + ): + RemoteOfflineStore.offline_write_batch( + fs.config, + FeatureView(name="test", source=FileSource(path="test")), + pa.Table.from_pandas(data_df), + progress=None, + ) + + +def _test_get_historical_features_returns_data(fs: FeatureStore): + entity_df = pd.DataFrame.from_dict( + { + "driver_id": [1001, 1002, 1003], + "event_timestamp": [ + datetime(2021, 4, 12, 10, 59, 42), + datetime(2021, 4, 12, 8, 12, 10), + datetime(2021, 4, 12, 16, 40, 26), + ], + "label_driver_reported_satisfaction": [1, 5, 3], + "val_to_add": [1, 2, 3], + "val_to_add_2": [10, 20, 30], + } + ) + + features = [ + "driver_hourly_stats:conv_rate", + "driver_hourly_stats:acc_rate", + "driver_hourly_stats:avg_daily_trips", + "transformed_conv_rate:conv_rate_plus_val1", + "transformed_conv_rate:conv_rate_plus_val2", + ] + + training_df = fs.get_historical_features(entity_df, features).to_df() + + assertpy.assert_that(training_df).is_not_none() + assertpy.assert_that(len(training_df)).is_equal_to(3) + + for index, driver_id in enumerate(entity_df["driver_id"]): + assertpy.assert_that(training_df["driver_id"][index]).is_equal_to(driver_id) + for feature in features: + column_id = feature.split(":")[1] + value = training_df[column_id][index] + assertpy.assert_that(value).is_not_nan() + + +def _test_get_historical_features_to_tensor(fs: FeatureStore): + entity_df = pd.DataFrame.from_dict( + { + "driver_id": [1001, 1002, 1003], + "event_timestamp": [ + datetime(2021, 4, 12, 10, 59, 42), + datetime(2021, 4, 12, 8, 12, 10), + datetime(2021, 4, 12, 16, 40, 26), + ], + "label_driver_reported_satisfaction": [1, 5, 3], + "val_to_add": [1, 2, 3], + "val_to_add_2": [10, 20, 30], + } + ) + + features = [ + "driver_hourly_stats:conv_rate", + "driver_hourly_stats:acc_rate", + "driver_hourly_stats:avg_daily_trips", + "transformed_conv_rate:conv_rate_plus_val1", + "transformed_conv_rate:conv_rate_plus_val2", + ] + + job = fs.get_historical_features(entity_df, features) + tensor_data = job.to_tensor() + + assertpy.assert_that(tensor_data).is_not_none() + assertpy.assert_that(tensor_data["driver_id"].shape[0]).is_equal_to(3) + torch = get_torch() + for key, values in tensor_data.items(): + if isinstance(values, torch.Tensor): + assertpy.assert_that(values.shape[0]).is_equal_to(3) + for val in values: + val_float = val.item() + assertpy.assert_that(val_float).is_instance_of((float, int)) + assertpy.assert_that(val_float).is_not_nan() + + +def _test_get_historical_features_returns_nan(fs: FeatureStore): + entity_df = pd.DataFrame.from_dict( + { + "driver_id": [1, 2, 3], + "event_timestamp": [ + datetime(2021, 4, 12, 10, 59, 42), + datetime(2021, 4, 12, 8, 12, 10), + datetime(2021, 4, 12, 16, 40, 26), + ], + "label_driver_reported_satisfaction": [1, 5, 3], + "val_to_add": [1, 2, 3], + "val_to_add_2": [10, 20, 30], + } + ) + + features = [ + "driver_hourly_stats:conv_rate", + "driver_hourly_stats:acc_rate", + "driver_hourly_stats:avg_daily_trips", + "transformed_conv_rate:conv_rate_plus_val1", + "transformed_conv_rate:conv_rate_plus_val2", + ] + + training_df = fs.get_historical_features(entity_df, features).to_df() + + assertpy.assert_that(training_df).is_not_none() + assertpy.assert_that(len(training_df)).is_equal_to(3) + + for index, driver_id in enumerate(entity_df["driver_id"]): + assertpy.assert_that(training_df["driver_id"][index]).is_equal_to(driver_id) + for feature in features: + column_id = feature.split(":")[1] + value = training_df[column_id][index] + assertpy.assert_that(value).is_nan() + + +def _test_get_historical_features_to_tensor_with_nan(fs: FeatureStore): + entity_df = pd.DataFrame.from_dict( + { + "driver_id": [9991, 9992], # IDs with no matching features + "event_timestamp": [ + datetime(2021, 4, 12, 10, 59, 42), + datetime(2021, 4, 12, 10, 59, 42), + ], + } + ) + features = ["driver_hourly_stats:conv_rate"] + job = fs.get_historical_features(entity_df, features) + tensor_data = job.to_tensor() + assert "conv_rate" in tensor_data + values = tensor_data["conv_rate"] + # conv_rate is a float feature, missing values should be NaN + torch = get_torch() + for val in values: + assert isinstance(val, torch.Tensor) or torch.is_tensor(val) + assertpy.assert_that(torch.isnan(val).item()).is_true() + + +def _test_offline_write_batch(temp_dir, fs: FeatureStore): + data_file = os.path.join( + temp_dir, fs.project, "feature_repo/data/driver_stats.parquet" + ) + data_df = pd.read_parquet(data_file) + feature_view = fs.get_feature_view("driver_hourly_stats") + + RemoteOfflineStore.offline_write_batch( + fs.config, feature_view, pa.Table.from_pandas(data_df), progress=None + ) + + +def _test_write_logged_features(temp_dir, fs: FeatureStore): + data_file = os.path.join( + temp_dir, fs.project, "feature_repo/data/driver_stats.parquet" + ) + data_df = pd.read_parquet(data_file) + feature_service = fs.get_feature_service("driver_activity_v1") + + RemoteOfflineStore.write_logged_features( + config=fs.config, + data=pa.Table.from_pandas(data_df), + source=FeatureServiceLoggingSource(feature_service, fs.config.project), + logging_config=feature_service.logging_config, + registry=fs.registry, + ) + + +def _test_pull_latest_from_table_or_query(temp_dir, fs: FeatureStore): + data_source = fs.get_data_source("driver_hourly_stats_source") + + end_date = datetime.now().replace(microsecond=0, second=0, minute=0) + start_date = end_date - timedelta(days=15) + RemoteOfflineStore.pull_latest_from_table_or_query( + config=fs.config, + data_source=data_source, + join_key_columns=[], + feature_name_columns=[], + timestamp_field="event_timestamp", + created_timestamp_column="created", + start_date=start_date, + end_date=end_date, + ).to_df() + + +def _test_pull_all_from_table_or_query(temp_dir, fs: FeatureStore): + data_source = fs.get_data_source("driver_hourly_stats_source") + + end_date = datetime.now().replace(microsecond=0, second=0, minute=0) + start_date = end_date - timedelta(days=15) + RemoteOfflineStore.pull_all_from_table_or_query( + config=fs.config, + data_source=data_source, + join_key_columns=[], + feature_name_columns=[], + timestamp_field="event_timestamp", + start_date=start_date, + end_date=end_date, + ).to_df() + + +def test_get_feature_view_by_name_propagates_transient_errors(): + """Transient registry errors must not be swallowed and misreported as + FeatureViewNotFoundException.""" + with tempfile.TemporaryDirectory() as temp_dir: + store = default_store(str(temp_dir)) + location = "grpc+tcp://localhost:0" + + _init_auth_manager(store=store) + server = OfflineServer(store=store, location=location) + + transient_error = ConnectionError("registry temporarily unavailable") + + with patch.object( + server.store.registry, + "get_feature_view", + side_effect=transient_error, + ): + with pytest.raises(ConnectionError, match="registry temporarily"): + server.get_feature_view_by_name( + fv_name="driver_hourly_stats", + name_alias=None, + project=PROJECT_NAME, + ) diff --git a/sdk/python/tests/integration/online_store/test_hybrid_online_store.py b/sdk/python/tests/integration/online_store/test_hybrid_online_store.py index 4b9dad05ff8..26f07c54b14 100644 --- a/sdk/python/tests/integration/online_store/test_hybrid_online_store.py +++ b/sdk/python/tests/integration/online_store/test_hybrid_online_store.py @@ -12,6 +12,8 @@ from feast.protos.feast.types.Value_pb2 import Value from feast.types import PrimitiveFeastType +pytestmark = pytest.mark.integration + @pytest.fixture def sample_entity(): diff --git a/sdk/python/tests/integration/online_store/test_mongodb_online_retrieval.py b/sdk/python/tests/integration/online_store/test_mongodb_online_retrieval.py new file mode 100644 index 00000000000..9c198d9a617 --- /dev/null +++ b/sdk/python/tests/integration/online_store/test_mongodb_online_retrieval.py @@ -0,0 +1,165 @@ +"""MongoDB online store integration tests.""" + +import pytest + +from feast.protos.feast.types.EntityKey_pb2 import ( + EntityKey as EntityKeyProto, +) +from feast.protos.feast.types.Value_pb2 import Value as ValueProto +from feast.utils import _utc_now +from tests.universal.feature_repos.universal.feature_views import TAGS +from tests.utils.cli_repo_creator import CliRunner, get_example_repo + +pytestmark = pytest.mark.integration +pytest.importorskip("pymongo") + +docker_available = False +try: + import docker + from testcontainers.mongodb import MongoDbContainer + + try: + client = docker.from_env() + client.ping() + docker_available = True + except Exception: + pass +except ImportError: + pass + +_requires_docker = pytest.mark.skipif( + not docker_available, + reason="Docker is not available or not running. Start Docker daemon to run these tests.", +) + + +@pytest.fixture(scope="module") +def mongodb_container(): + container = MongoDbContainer( + "mongo:latest", + username="test", + password="test", # pragma: allowlist secret + ).with_exposed_ports(27017) + container.start() + yield container + container.stop() + + +@pytest.fixture +def mongodb_connection_string(mongodb_container): + exposed_port = mongodb_container.get_exposed_port(27017) + return f"mongodb://test:test@localhost:{exposed_port}" # pragma: allowlist secret + + +@_requires_docker +def test_mongodb_online_features(mongodb_connection_string): + runner = CliRunner() + with runner.local_repo( + get_example_repo("example_feature_repo_1.py"), + offline_store="file", + online_store="mongodb", + teardown=False, + ) as store: + store.config.online_store.connection_string = mongodb_connection_string + + driver_locations_fv = store.get_feature_view(name="driver_locations") + customer_profile_fv = store.get_feature_view(name="customer_profile") + customer_driver_combined_fv = store.get_feature_view( + name="customer_driver_combined" + ) + + provider = store._get_provider() + + driver_key = EntityKeyProto( + join_keys=["driver_id"], entity_values=[ValueProto(int64_val=1)] + ) + provider.online_write_batch( + config=store.config, + table=driver_locations_fv, + data=[ + ( + driver_key, + { + "lat": ValueProto(double_val=0.1), + "lon": ValueProto(string_val="1.0"), + }, + _utc_now(), + _utc_now(), + ) + ], + progress=None, + ) + + customer_key = EntityKeyProto( + join_keys=["customer_id"], entity_values=[ValueProto(string_val="5")] + ) + provider.online_write_batch( + config=store.config, + table=customer_profile_fv, + data=[ + ( + customer_key, + { + "avg_orders_day": ValueProto(float_val=1.0), + "name": ValueProto(string_val="John"), + "age": ValueProto(int64_val=3), + }, + _utc_now(), + _utc_now(), + ) + ], + progress=None, + ) + + customer_key = EntityKeyProto( + join_keys=["customer_id", "driver_id"], + entity_values=[ValueProto(string_val="5"), ValueProto(int64_val=1)], + ) + provider.online_write_batch( + config=store.config, + table=customer_driver_combined_fv, + data=[ + ( + customer_key, + {"trips": ValueProto(int64_val=7)}, + _utc_now(), + _utc_now(), + ) + ], + progress=None, + ) + + assert len(store.list_entities()) == 3 + assert len(store.list_entities(tags=TAGS)) == 2 + + result = store.get_online_features( + features=[ + "driver_locations:lon", + "customer_profile:avg_orders_day", + "customer_profile:name", + "customer_driver_combined:trips", + ], + entity_rows=[ + {"driver_id": 1, "customer_id": "5"}, + {"driver_id": 1, "customer_id": 5}, + ], + full_feature_names=False, + ).to_dict() + + assert "lon" in result + assert "avg_orders_day" in result + assert "name" in result + assert result["driver_id"] == [1, 1] + assert result["customer_id"] == ["5", "5"] + assert result["lon"] == ["1.0", "1.0"] + assert result["avg_orders_day"] == [1.0, 1.0] + assert result["name"] == ["John", "John"] + assert result["trips"] == [7, 7] + + result = store.get_online_features( + features=["customer_driver_combined:trips"], + entity_rows=[{"driver_id": 0, "customer_id": 0}], + full_feature_names=False, + ).to_dict() + + assert result["trips"] == [None] diff --git a/sdk/python/tests/integration/permissions/__init__.py b/sdk/python/tests/integration/permissions/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/tests/integration/permissions/auth/__init__.py b/sdk/python/tests/integration/permissions/auth/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/tests/integration/permissions/auth/conftest.py b/sdk/python/tests/integration/permissions/auth/conftest.py new file mode 100644 index 00000000000..81b4faa7af0 --- /dev/null +++ b/sdk/python/tests/integration/permissions/auth/conftest.py @@ -0,0 +1,30 @@ +import pytest + +from tests.unit.permissions.auth.server.test_utils import ( + invalid_list_entities_perm, + read_entities_perm, + read_fv_perm, + read_odfv_perm, + read_permissions_perm, + read_projects_perm, + read_sfv_perm, +) + + +@pytest.fixture( + scope="module", + params=[ + [], + [invalid_list_entities_perm], + [ + read_entities_perm, + read_permissions_perm, + read_fv_perm, + read_odfv_perm, + read_sfv_perm, + read_projects_perm, + ], + ], +) +def applied_permissions(request): + return request.param diff --git a/sdk/python/tests/integration/permissions/auth/server/__init__.py b/sdk/python/tests/integration/permissions/auth/server/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py b/sdk/python/tests/integration/permissions/auth/server/test_auth_registry_server.py similarity index 96% rename from sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py rename to sdk/python/tests/integration/permissions/auth/server/test_auth_registry_server.py index e0f75d1d3d8..40b506cd4db 100644 --- a/sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py +++ b/sdk/python/tests/integration/permissions/auth/server/test_auth_registry_server.py @@ -11,7 +11,9 @@ FeastPermissionError, FeatureViewNotFoundException, ) +from feast.permissions.auth.auth_manager import AllowAll, set_auth_manager from feast.permissions.permission import Permission +from feast.permissions.security_manager import no_security_manager from feast.registry_server import start_server from feast.wait import wait_retry_backoff # noqa: E402 from tests.unit.permissions.auth.server import mock_utils @@ -27,6 +29,8 @@ from tests.utils.auth_permissions_util import get_remote_registry_store from tests.utils.http_server import check_port_open # noqa: E402 +pytestmark = [pytest.mark.integration, pytest.mark.rbac_remote_integration_test] + @pytest.fixture def start_registry_server( @@ -71,7 +75,11 @@ def start_registry_server( yield server print("Stopping server") - server.stop(grace=None) # Teardown server + try: + server.stop(grace=None) # Teardown server + finally: + no_security_manager() + set_auth_manager(AllowAll()) @pytest.mark.parametrize( diff --git a/sdk/python/tests/integration/test_mcp_feature_server.py b/sdk/python/tests/integration/test_mcp_feature_server.py index 0e59a71dfae..61f45e37314 100644 --- a/sdk/python/tests/integration/test_mcp_feature_server.py +++ b/sdk/python/tests/integration/test_mcp_feature_server.py @@ -9,6 +9,8 @@ from feast.feature_store import FeatureStore from feast.infra.mcp_servers.mcp_config import McpFeatureServerConfig +pytestmark = pytest.mark.integration + class TestMCPFeatureServerIntegration(unittest.TestCase): """Integration tests for MCP feature server functionality.""" diff --git a/sdk/python/tests/unit/online_store/test_mongodb_online_retrieval.py b/sdk/python/tests/unit/online_store/test_mongodb_online_retrieval.py index 029746cf442..485ab2dce08 100644 --- a/sdk/python/tests/unit/online_store/test_mongodb_online_retrieval.py +++ b/sdk/python/tests/unit/online_store/test_mongodb_online_retrieval.py @@ -1,9 +1,6 @@ -""" -Unit tests for MongoDB online store. +"""Pure unit tests for MongoDB online store helpers.""" -Docker-dependent tests are marked with ``@_requires_docker`` and are skipped when -Docker is unavailable. Pure Python tests (no container needed) run in all environments. -""" +# ruff: noqa: E402 from datetime import datetime, timedelta, timezone @@ -15,182 +12,8 @@ from feast.infra.online_stores.mongodb_online_store.mongodb import ( # noqa: E402 MongoDBOnlineStore, ) -from feast.protos.feast.types.EntityKey_pb2 import EntityKey as EntityKeyProto from feast.protos.feast.types.Value_pb2 import Value as ValueProto from feast.types import Array, Float32, Int64, String -from feast.utils import _utc_now -from tests.universal.feature_repos.universal.feature_views import TAGS -from tests.utils.cli_repo_creator import CliRunner, get_example_repo - -# Check if Docker is available -docker_available = False -try: - import docker - from testcontainers.mongodb import MongoDbContainer - - # Try to connect to Docker daemon - try: - client = docker.from_env() - client.ping() - docker_available = True - except Exception: - pass -except ImportError: - pass - -# Applied per-test so that pure Python tests still run without Docker. -_requires_docker = pytest.mark.skipif( - not docker_available, - reason="Docker is not available or not running. Start Docker daemon to run these tests.", -) - - -@pytest.fixture(scope="module") -def mongodb_container(): - """Start a MongoDB container for testing.""" - container = MongoDbContainer( - "mongo:latest", - username="test", - password="test", # pragma: allowlist secret - ).with_exposed_ports(27017) - container.start() - yield container - container.stop() - - -@pytest.fixture -def mongodb_connection_string(mongodb_container): - """Get MongoDB connection string from the container.""" - exposed_port = mongodb_container.get_exposed_port(27017) - return f"mongodb://test:test@localhost:{exposed_port}" # pragma: allowlist secret - - -@_requires_docker -def test_mongodb_online_features(mongodb_connection_string): - """ - Test reading from MongoDB online store using testcontainers. - """ - runner = CliRunner() - with ( - runner.local_repo( - get_example_repo("example_feature_repo_1.py"), - offline_store="file", - online_store="mongodb", - teardown=False, # Disable CLI teardown since container will be stopped by fixture - ) as store - ): - # Update the connection string to use the test container - store.config.online_store.connection_string = mongodb_connection_string - - # Write some data to two tables - driver_locations_fv = store.get_feature_view(name="driver_locations") - customer_profile_fv = store.get_feature_view(name="customer_profile") - customer_driver_combined_fv = store.get_feature_view( - name="customer_driver_combined" - ) - - provider = store._get_provider() - - driver_key = EntityKeyProto( - join_keys=["driver_id"], entity_values=[ValueProto(int64_val=1)] - ) - provider.online_write_batch( - config=store.config, - table=driver_locations_fv, - data=[ - ( - driver_key, - { - "lat": ValueProto(double_val=0.1), - "lon": ValueProto(string_val="1.0"), - }, - _utc_now(), - _utc_now(), - ) - ], - progress=None, - ) - - customer_key = EntityKeyProto( - join_keys=["customer_id"], entity_values=[ValueProto(string_val="5")] - ) - provider.online_write_batch( - config=store.config, - table=customer_profile_fv, - data=[ - ( - customer_key, - { - "avg_orders_day": ValueProto(float_val=1.0), - "name": ValueProto(string_val="John"), - "age": ValueProto(int64_val=3), - }, - _utc_now(), - _utc_now(), - ) - ], - progress=None, - ) - - customer_key = EntityKeyProto( - join_keys=["customer_id", "driver_id"], - entity_values=[ValueProto(string_val="5"), ValueProto(int64_val=1)], - ) - provider.online_write_batch( - config=store.config, - table=customer_driver_combined_fv, - data=[ - ( - customer_key, - {"trips": ValueProto(int64_val=7)}, - _utc_now(), - _utc_now(), - ) - ], - progress=None, - ) - - assert len(store.list_entities()) == 3 - assert len(store.list_entities(tags=TAGS)) == 2 - - # Retrieve features using two keys - result = store.get_online_features( - features=[ - "driver_locations:lon", - "customer_profile:avg_orders_day", - "customer_profile:name", - "customer_driver_combined:trips", - ], - entity_rows=[ - {"driver_id": 1, "customer_id": "5"}, - {"driver_id": 1, "customer_id": 5}, - ], - full_feature_names=False, - ).to_dict() - - assert "lon" in result - assert "avg_orders_day" in result - assert "name" in result - assert result["driver_id"] == [1, 1] - assert result["customer_id"] == ["5", "5"] - assert result["lon"] == ["1.0", "1.0"] - assert result["avg_orders_day"] == [1.0, 1.0] - assert result["name"] == ["John", "John"] - assert result["trips"] == [7, 7] - - # Ensure features are still in result when keys not found - result = store.get_online_features( - features=["customer_driver_combined:trips"], - entity_rows=[{"driver_id": 0, "customer_id": 0}], - full_feature_names=False, - ).to_dict() - - assert result["trips"] == [None] - - -# --------------------------------------------------------------------------- -# Pure Python tests — no Docker required -# --------------------------------------------------------------------------- def _make_fv(*field_names: str) -> FeatureView: diff --git a/sdk/python/tests/permissions/test_groups_namespaces_auth.py b/sdk/python/tests/unit/permissions/test_groups_namespaces_auth.py similarity index 100% rename from sdk/python/tests/permissions/test_groups_namespaces_auth.py rename to sdk/python/tests/unit/permissions/test_groups_namespaces_auth.py diff --git a/sdk/python/tests/unit/test_offline_server.py b/sdk/python/tests/unit/test_offline_server.py index efa2aaa6af4..3e25e5c2061 100644 --- a/sdk/python/tests/unit/test_offline_server.py +++ b/sdk/python/tests/unit/test_offline_server.py @@ -1,352 +1,13 @@ -import os -import tempfile -from datetime import datetime, timedelta from unittest.mock import MagicMock, patch import assertpy -import pandas as pd -import pyarrow as pa -import pyarrow.flight as flight -import pytest -from feast import FeatureStore, FeatureView, FileSource -from feast.errors import FeatureViewNotFoundException -from feast.feature_logging import FeatureServiceLoggingSource from feast.infra.offline_stores.remote import ( RemoteOfflineStore, RemoteOfflineStoreConfig, _create_retrieval_metadata, ) -from feast.offline_server import OfflineServer, _init_auth_manager -from feast.repo_config import RepoConfig -from feast.torch_wrapper import get_torch -from tests.utils.cli_repo_creator import CliRunner - -PROJECT_NAME = "test_remote_offline" - - -@pytest.fixture -def empty_offline_server(environment): - store = environment.feature_store - - location = "grpc+tcp://localhost:0" - _init_auth_manager(store=store) - return OfflineServer(store=store, location=location) - - -@pytest.fixture -def arrow_client(empty_offline_server): - return flight.FlightClient(f"grpc://localhost:{empty_offline_server.port}") - - -def test_offline_server_is_alive(environment, empty_offline_server, arrow_client): - server = empty_offline_server - client = arrow_client - - assertpy.assert_that(server).is_not_none - assertpy.assert_that(server.port).is_not_equal_to(0) - - actions = list(client.list_actions()) - flights = list(client.list_flights()) - - assertpy.assert_that(actions).is_equal_to( - [ - ( - "offline_write_batch", - "Writes the specified arrow table to the data source underlying the specified feature view.", - ), - ( - "write_logged_features", - "Writes logged features to a specified destination in the offline store.", - ), - ( - "persist", - "Synchronously executes the underlying query and persists the result in the same offline store at the " - "specified destination.", - ), - ] - ) - assertpy.assert_that(flights).is_empty() - - -def default_store(temp_dir): - runner = CliRunner() - result = runner.run(["init", PROJECT_NAME], cwd=temp_dir) - repo_path = os.path.join(temp_dir, PROJECT_NAME, "feature_repo") - assert result.returncode == 0 - - result = runner.run(["--chdir", repo_path, "apply"], cwd=temp_dir) - assert result.returncode == 0 - - fs = FeatureStore(repo_path=repo_path) - return fs - - -def remote_feature_store(offline_server): - offline_config = RemoteOfflineStoreConfig( - type="remote", host="0.0.0.0", port=offline_server.port - ) - - registry_path = os.path.join( - str(offline_server.store.repo_path), - offline_server.store.config.registry.path, - ) - store = FeatureStore( - config=RepoConfig( - project=PROJECT_NAME, - registry=registry_path, - provider="local", - offline_store=offline_config, - entity_key_serialization_version=3, - # repo_config = - ) - ) - return store - - -def test_remote_offline_store_apis(): - with tempfile.TemporaryDirectory() as temp_dir: - store = default_store(str(temp_dir)) - location = "grpc+tcp://localhost:0" - - _init_auth_manager(store=store) - server = OfflineServer(store=store, location=location) - - assertpy.assert_that(server).is_not_none - assertpy.assert_that(server.port).is_not_equal_to(0) - - fs = remote_feature_store(server) - - _test_get_historical_features_returns_data(fs) - _test_get_historical_features_to_tensor(fs) - _test_get_historical_features_returns_nan(fs) - _test_get_historical_features_to_tensor_with_nan(fs) - _test_offline_write_batch(str(temp_dir), fs) - _test_write_logged_features(str(temp_dir), fs) - _test_pull_latest_from_table_or_query(str(temp_dir), fs) - _test_pull_all_from_table_or_query(str(temp_dir), fs) - - -def test_remote_offline_store_exception_handling(): - with tempfile.TemporaryDirectory() as temp_dir: - store = default_store(str(temp_dir)) - location = "grpc+tcp://localhost:0" - - _init_auth_manager(store=store) - server = OfflineServer(store=store, location=location) - - assertpy.assert_that(server).is_not_none - assertpy.assert_that(server.port).is_not_equal_to(0) - - fs = remote_feature_store(server) - data_file = os.path.join( - temp_dir, fs.project, "feature_repo/data/driver_stats.parquet" - ) - data_df = pd.read_parquet(data_file) - - with pytest.raises( - FeatureViewNotFoundException, - match="Feature view test does not exist in project test_remote_offline", - ): - RemoteOfflineStore.offline_write_batch( - fs.config, - FeatureView(name="test", source=FileSource(path="test")), - pa.Table.from_pandas(data_df), - progress=None, - ) - - -def _test_get_historical_features_returns_data(fs: FeatureStore): - entity_df = pd.DataFrame.from_dict( - { - "driver_id": [1001, 1002, 1003], - "event_timestamp": [ - datetime(2021, 4, 12, 10, 59, 42), - datetime(2021, 4, 12, 8, 12, 10), - datetime(2021, 4, 12, 16, 40, 26), - ], - "label_driver_reported_satisfaction": [1, 5, 3], - "val_to_add": [1, 2, 3], - "val_to_add_2": [10, 20, 30], - } - ) - - features = [ - "driver_hourly_stats:conv_rate", - "driver_hourly_stats:acc_rate", - "driver_hourly_stats:avg_daily_trips", - "transformed_conv_rate:conv_rate_plus_val1", - "transformed_conv_rate:conv_rate_plus_val2", - ] - - training_df = fs.get_historical_features(entity_df, features).to_df() - - assertpy.assert_that(training_df).is_not_none() - assertpy.assert_that(len(training_df)).is_equal_to(3) - - for index, driver_id in enumerate(entity_df["driver_id"]): - assertpy.assert_that(training_df["driver_id"][index]).is_equal_to(driver_id) - for feature in features: - column_id = feature.split(":")[1] - value = training_df[column_id][index] - assertpy.assert_that(value).is_not_nan() - - -def _test_get_historical_features_to_tensor(fs: FeatureStore): - entity_df = pd.DataFrame.from_dict( - { - "driver_id": [1001, 1002, 1003], - "event_timestamp": [ - datetime(2021, 4, 12, 10, 59, 42), - datetime(2021, 4, 12, 8, 12, 10), - datetime(2021, 4, 12, 16, 40, 26), - ], - "label_driver_reported_satisfaction": [1, 5, 3], - "val_to_add": [1, 2, 3], - "val_to_add_2": [10, 20, 30], - } - ) - - features = [ - "driver_hourly_stats:conv_rate", - "driver_hourly_stats:acc_rate", - "driver_hourly_stats:avg_daily_trips", - "transformed_conv_rate:conv_rate_plus_val1", - "transformed_conv_rate:conv_rate_plus_val2", - ] - - job = fs.get_historical_features(entity_df, features) - tensor_data = job.to_tensor() - - assertpy.assert_that(tensor_data).is_not_none() - assertpy.assert_that(tensor_data["driver_id"].shape[0]).is_equal_to(3) - torch = get_torch() - for key, values in tensor_data.items(): - if isinstance(values, torch.Tensor): - assertpy.assert_that(values.shape[0]).is_equal_to(3) - for val in values: - val_float = val.item() - assertpy.assert_that(val_float).is_instance_of((float, int)) - assertpy.assert_that(val_float).is_not_nan() - - -def _test_get_historical_features_returns_nan(fs: FeatureStore): - entity_df = pd.DataFrame.from_dict( - { - "driver_id": [1, 2, 3], - "event_timestamp": [ - datetime(2021, 4, 12, 10, 59, 42), - datetime(2021, 4, 12, 8, 12, 10), - datetime(2021, 4, 12, 16, 40, 26), - ], - "label_driver_reported_satisfaction": [1, 5, 3], - "val_to_add": [1, 2, 3], - "val_to_add_2": [10, 20, 30], - } - ) - - features = [ - "driver_hourly_stats:conv_rate", - "driver_hourly_stats:acc_rate", - "driver_hourly_stats:avg_daily_trips", - "transformed_conv_rate:conv_rate_plus_val1", - "transformed_conv_rate:conv_rate_plus_val2", - ] - - training_df = fs.get_historical_features(entity_df, features).to_df() - - assertpy.assert_that(training_df).is_not_none() - assertpy.assert_that(len(training_df)).is_equal_to(3) - - for index, driver_id in enumerate(entity_df["driver_id"]): - assertpy.assert_that(training_df["driver_id"][index]).is_equal_to(driver_id) - for feature in features: - column_id = feature.split(":")[1] - value = training_df[column_id][index] - assertpy.assert_that(value).is_nan() - - -def _test_get_historical_features_to_tensor_with_nan(fs: FeatureStore): - entity_df = pd.DataFrame.from_dict( - { - "driver_id": [9991, 9992], # IDs with no matching features - "event_timestamp": [ - datetime(2021, 4, 12, 10, 59, 42), - datetime(2021, 4, 12, 10, 59, 42), - ], - } - ) - features = ["driver_hourly_stats:conv_rate"] - job = fs.get_historical_features(entity_df, features) - tensor_data = job.to_tensor() - assert "conv_rate" in tensor_data - values = tensor_data["conv_rate"] - # conv_rate is a float feature, missing values should be NaN - torch = get_torch() - for val in values: - assert isinstance(val, torch.Tensor) or torch.is_tensor(val) - assertpy.assert_that(torch.isnan(val).item()).is_true() - - -def _test_offline_write_batch(temp_dir, fs: FeatureStore): - data_file = os.path.join( - temp_dir, fs.project, "feature_repo/data/driver_stats.parquet" - ) - data_df = pd.read_parquet(data_file) - feature_view = fs.get_feature_view("driver_hourly_stats") - - RemoteOfflineStore.offline_write_batch( - fs.config, feature_view, pa.Table.from_pandas(data_df), progress=None - ) - - -def _test_write_logged_features(temp_dir, fs: FeatureStore): - data_file = os.path.join( - temp_dir, fs.project, "feature_repo/data/driver_stats.parquet" - ) - data_df = pd.read_parquet(data_file) - feature_service = fs.get_feature_service("driver_activity_v1") - - RemoteOfflineStore.write_logged_features( - config=fs.config, - data=pa.Table.from_pandas(data_df), - source=FeatureServiceLoggingSource(feature_service, fs.config.project), - logging_config=feature_service.logging_config, - registry=fs.registry, - ) - - -def _test_pull_latest_from_table_or_query(temp_dir, fs: FeatureStore): - data_source = fs.get_data_source("driver_hourly_stats_source") - - end_date = datetime.now().replace(microsecond=0, second=0, minute=0) - start_date = end_date - timedelta(days=15) - RemoteOfflineStore.pull_latest_from_table_or_query( - config=fs.config, - data_source=data_source, - join_key_columns=[], - feature_name_columns=[], - timestamp_field="event_timestamp", - created_timestamp_column="created", - start_date=start_date, - end_date=end_date, - ).to_df() - - -def _test_pull_all_from_table_or_query(temp_dir, fs: FeatureStore): - data_source = fs.get_data_source("driver_hourly_stats_source") - - end_date = datetime.now().replace(microsecond=0, second=0, minute=0) - start_date = end_date - timedelta(days=15) - RemoteOfflineStore.pull_all_from_table_or_query( - config=fs.config, - data_source=data_source, - join_key_columns=[], - feature_name_columns=[], - timestamp_field="event_timestamp", - start_date=start_date, - end_date=end_date, - ).to_df() +from feast.offline_server import OfflineServer def test_create_retrieval_metadata_with_sql_string(): @@ -364,8 +25,7 @@ def test_create_retrieval_metadata_with_sql_string(): def test_remote_offline_store_sql_entity_df_routing(): - """RemoteOfflineStore.get_historical_features must move a SQL string into - api_parameters['entity_df_sql'] and pass entity_df=None to RemoteRetrievalJob.""" + """RemoteOfflineStore.get_historical_features moves SQL into api_parameters.""" sql = "SELECT driver_id, event_timestamp FROM driver_stats" mock_client = MagicMock() @@ -394,8 +54,7 @@ def test_remote_offline_store_sql_entity_df_routing(): def test_offline_server_get_historical_features_passes_sql_to_store(): - """OfflineServer.get_historical_features must forward entity_df_sql from the - command dict as a SQL string to the backing offline store.""" + """OfflineServer forwards entity_df_sql to the backing offline store.""" sql = "SELECT driver_id, event_timestamp FROM driver_stats" mock_job = MagicMock() @@ -422,34 +81,8 @@ def test_offline_server_get_historical_features_passes_sql_to_store(): "entity_df_sql": sql, } - # Call the real method with the mock server as self result = OfflineServer.get_historical_features(server, command, key=None) assertpy.assert_that(result).is_equal_to(mock_job) _, kwargs = mock_offline_store.get_historical_features.call_args assertpy.assert_that(kwargs["entity_df"]).is_equal_to(sql) - - -def test_get_feature_view_by_name_propagates_transient_errors(): - """Transient registry errors must not be swallowed and misreported as - FeatureViewNotFoundException.""" - with tempfile.TemporaryDirectory() as temp_dir: - store = default_store(str(temp_dir)) - location = "grpc+tcp://localhost:0" - - _init_auth_manager(store=store) - server = OfflineServer(store=store, location=location) - - transient_error = ConnectionError("registry temporarily unavailable") - - with patch.object( - server.store.registry, - "get_feature_view", - side_effect=transient_error, - ): - with pytest.raises(ConnectionError, match="registry temporarily"): - server.get_feature_view_by_name( - fv_name="driver_hourly_stats", - name_alias=None, - project=PROJECT_NAME, - ) From 99020646118f2c723ab4afb5842055863605c05a Mon Sep 17 00:00:00 2001 From: Abhijeet Dhumal <84722973+abhijeet-dhumal@users.noreply.github.com> Date: Thu, 28 May 2026 06:17:06 +0530 Subject: [PATCH 35/59] perf: Replace MessageToDict with optimized custom dict builder (#6015) --- sdk/python/feast/feature_server.py | 16 +- sdk/python/feast/feature_server_utils.py | 141 ++++ .../tests/unit/test_feature_server_utils.py | 618 ++++++++++++++++++ 3 files changed, 764 insertions(+), 11 deletions(-) create mode 100644 sdk/python/feast/feature_server_utils.py create mode 100644 sdk/python/tests/unit/test_feature_server_utils.py diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index 43fb8485316..bca34e918e2 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -40,7 +40,6 @@ from fastapi.logger import logger from fastapi.responses import JSONResponse from fastapi.staticfiles import StaticFiles -from google.protobuf.json_format import MessageToDict from pydantic import BaseModel, field_validator import feast @@ -52,6 +51,7 @@ FeastError, ) from feast.feast_object import FeastObject +from feast.feature_server_utils import convert_response_to_dict from feast.feature_view_utils import get_feature_view_from_feature_store from feast.permissions.action import WRITE, AuthzedAction from feast.permissions.security_manager import assert_permissions @@ -392,12 +392,9 @@ async def get_online_features(request: GetOnlineFeaturesRequest) -> Any: ) response_dict = await run_in_threadpool( - MessageToDict, - response.proto, - preserving_proto_field_name=True, - float_precision=18, + convert_response_to_dict, response.proto ) - return response_dict + return JSONResponse(content=response_dict) @app.post( "/retrieve-online-documents", @@ -434,12 +431,9 @@ async def retrieve_online_documents( ) response_dict = await run_in_threadpool( - MessageToDict, - response.proto, - preserving_proto_field_name=True, - float_precision=18, + convert_response_to_dict, response.proto ) - return response_dict + return JSONResponse(content=response_dict) @app.post("/push", dependencies=[Depends(inject_user_details)]) async def push(request: PushFeaturesRequest) -> Response: diff --git a/sdk/python/feast/feature_server_utils.py b/sdk/python/feast/feature_server_utils.py new file mode 100644 index 00000000000..7d714ada3d0 --- /dev/null +++ b/sdk/python/feast/feature_server_utils.py @@ -0,0 +1,141 @@ +"""Fast serialization utilities for Feature Server responses. + +Matches the output format of MessageToDict with proto_json.patch() applied. +Values are serialized as native Python types (not wrapped dicts). +""" + +import base64 +import logging +from datetime import datetime, timezone +from typing import Any, Dict, Optional + +from feast.protos.feast.serving.ServingService_pb2 import GetOnlineFeaturesResponse +from feast.protos.feast.types.Value_pb2 import Value + +logger = logging.getLogger(__name__) + +# FieldStatus enum mapping (protos/feast/serving/ServingService.proto) +_STATUS_NAMES: Dict[int, str] = { + 0: "INVALID", + 1: "PRESENT", + 2: "NULL_VALUE", + 3: "NOT_FOUND", + 4: "OUTSIDE_MAX_AGE", +} + + +def convert_response_to_dict(response: GetOnlineFeaturesResponse) -> Dict[str, Any]: + """Convert GetOnlineFeaturesResponse to a JSON-serializable dict. + + Matches the structure produced by MessageToDict(proto, preserving_proto_field_name=True) + with proto_json.patch() applied, with one intentional difference: + + - double_val fields are returned as Python float objects (json.dumps uses Python 3.1+ + shortest round-trip form, ~15-17 sig digits) rather than 18 fixed significant digits + (float_precision=18). Values are numerically identical; only the JSON string length + may differ. This is safe for all ML feature types and avoids unnecessary precision + overhead. + """ + result: Dict[str, Any] = { + "results": [ + { + "values": [_value_to_native(v) for v in feature_vector.values], + "statuses": [ + _STATUS_NAMES.get(s, "INVALID") for s in feature_vector.statuses + ], + **( + { + "event_timestamps": [ + _timestamp_to_str(ts) + for ts in feature_vector.event_timestamps + ] + } + if feature_vector.event_timestamps + else {} + ), + } + for feature_vector in response.results + ] + } + + if response.HasField("metadata"): + result["metadata"] = _metadata_to_dict(response.metadata) + + if response.status: + result["status"] = response.status + + return result + + +def _value_to_native(v: Value) -> Optional[Any]: + """Convert a Value proto to a JSON-serializable Python type. + + bytes_val and bytes_list_val are base64-encoded (RFC 4648) so that + JSONResponse can serialize them without TypeError. This matches standard + protobuf JSON encoding for bytes fields and is safe for all HTTP clients. + """ + which = v.WhichOneof("val") + if which is None or which == "null_val": + return None + # bytes must be base64-encoded for JSON serialization + elif which == "bytes_val": + return base64.b64encode(v.bytes_val).decode("ascii") + # RepeatedValue — nested Values that must be recursively converted + elif which in ("list_val", "set_val"): + return [_value_to_native(nested) for nested in getattr(v, which).val] + # Map — recursively convert nested Values + elif which in ("map_val", "struct_val"): + return {k: _value_to_native(vv) for k, vv in getattr(v, which).val.items()} + # MapList — list of Map + elif which in ("map_list_val", "struct_list_val"): + return [ + {k: _value_to_native(vv) for k, vv in m.val.items()} + for m in getattr(v, which).val + ] + # scalar_map_val has non-string keys; full conversion requires extra work and + # this type is not returned by standard get_online_features paths today. + elif which == "scalar_map_val": + logger.warning( + "scalar_map_val is not yet supported by convert_response_to_dict; value will be None" + ) + return None + # bytes_list_val / bytes_set_val — base64-encode each element + elif which in ("bytes_list_val", "bytes_set_val"): + return [base64.b64encode(b).decode("ascii") for b in getattr(v, which).val] + # All other list/set types have scalar .val fields + elif "_list_" in which or "_set_" in which: + return list(getattr(v, which).val) + else: + return getattr(v, which) + + +def _timestamp_to_str(ts) -> str: + """Convert protobuf Timestamp to RFC 3339 format with Z suffix. + + Uses adaptive precision to match MessageToDict output: + - No fractional seconds when nanos == 0 + - 3 digits (milliseconds) when nanos % 1_000_000 == 0 + - 6 digits (microseconds) when nanos % 1_000 == 0 + - 9 digits (nanoseconds) otherwise + """ + if ts.seconds == 0 and ts.nanos == 0: + return "1970-01-01T00:00:00Z" + dt = datetime.fromtimestamp(ts.seconds, tz=timezone.utc) + base = dt.strftime("%Y-%m-%dT%H:%M:%S") + nanos = ts.nanos + if nanos == 0: + return base + "Z" + elif nanos % 1_000_000 == 0: + return base + ".%03dZ" % (nanos // 1_000_000) + elif nanos % 1_000 == 0: + return base + ".%06dZ" % (nanos // 1_000) + else: + return base + ".%09dZ" % nanos + + +def _metadata_to_dict(metadata) -> Dict[str, Any]: + """Convert FeatureResponseMeta to dict (matches proto_json.patch() format).""" + result: Dict[str, Any] = {} + if metadata.HasField("feature_names"): + result["feature_names"] = list(metadata.feature_names.val) + return result diff --git a/sdk/python/tests/unit/test_feature_server_utils.py b/sdk/python/tests/unit/test_feature_server_utils.py new file mode 100644 index 00000000000..2100afacb67 --- /dev/null +++ b/sdk/python/tests/unit/test_feature_server_utils.py @@ -0,0 +1,618 @@ +# Copyright 2025 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Unit tests for feature_server_utils.py + +Tests the optimized convert_response_to_dict function to ensure it matches +the output format of MessageToDict with proto_json.patch() applied. + +Related issue: https://github.com/feast-dev/feast/issues/6013 +""" + +import base64 +import json +import time + +import pytest +from google.protobuf.json_format import MessageToDict +from google.protobuf.timestamp_pb2 import Timestamp + +import feast.proto_json as proto_json +from feast.feature_server_utils import ( + _STATUS_NAMES, + _metadata_to_dict, + _timestamp_to_str, + _value_to_native, + convert_response_to_dict, +) +from feast.protos.feast.serving.ServingService_pb2 import ( + FieldStatus, + GetOnlineFeaturesResponse, + GetOnlineFeaturesResponseMetadata, +) +from feast.protos.feast.types.Value_pb2 import ( + BoolList, + BytesList, + DoubleList, + FloatList, + Int32List, + Int64List, + Int64Set, + Map, + RepeatedValue, + StringList, + StringSet, + Value, +) + + +class TestValueToNative: + """Tests for _value_to_native function (matches proto_json.patch() format).""" + + def test_null_value(self): + v = Value() + result = _value_to_native(v) + assert result is None + + def test_explicit_null_val(self): + v = Value(null_val=0) + result = _value_to_native(v) + assert result is None + + def test_double_val(self): + v = Value(double_val=3.14159) + result = _value_to_native(v) + assert result == 3.14159 + + def test_float_val(self): + v = Value(float_val=2.5) + result = _value_to_native(v) + assert result == 2.5 + + def test_int64_val(self): + v = Value(int64_val=9223372036854775807) + result = _value_to_native(v) + assert result == 9223372036854775807 + + def test_int32_val(self): + v = Value(int32_val=42) + result = _value_to_native(v) + assert result == 42 + + def test_string_val(self): + v = Value(string_val="hello feast") + result = _value_to_native(v) + assert result == "hello feast" + + def test_bool_val(self): + v = Value(bool_val=True) + result = _value_to_native(v) + assert result is True + + def test_bytes_val(self): + data = b"\x00\x01\x02\x03" + v = Value(bytes_val=data) + result = _value_to_native(v) + assert result == base64.b64encode(data).decode("ascii") + + def test_double_list_val(self): + v = Value(double_list_val=DoubleList(val=[1.1, 2.2, 3.3])) + result = _value_to_native(v) + assert result == [1.1, 2.2, 3.3] + + def test_float_list_val(self): + v = Value(float_list_val=FloatList(val=[1.5, 2.5])) + result = _value_to_native(v) + assert result == [1.5, 2.5] + + def test_int64_list_val(self): + v = Value(int64_list_val=Int64List(val=[100, 200, 300])) + result = _value_to_native(v) + assert result == [100, 200, 300] + + def test_int32_list_val(self): + v = Value(int32_list_val=Int32List(val=[1, 2, 3])) + result = _value_to_native(v) + assert result == [1, 2, 3] + + def test_string_list_val(self): + v = Value(string_list_val=StringList(val=["a", "b", "c"])) + result = _value_to_native(v) + assert result == ["a", "b", "c"] + + def test_bool_list_val(self): + v = Value(bool_list_val=BoolList(val=[True, False, True])) + result = _value_to_native(v) + assert result == [True, False, True] + + def test_unix_timestamp_val(self): + v = Value(unix_timestamp_val=1609459200) + result = _value_to_native(v) + assert result == 1609459200 + + def test_bytes_list_val(self): + v = Value(bytes_list_val=BytesList(val=[b"\x00\x01", b"\x02\x03"])) + result = _value_to_native(v) + assert result == [ + base64.b64encode(b"\x00\x01").decode("ascii"), + base64.b64encode(b"\x02\x03").decode("ascii"), + ] + + def test_unix_timestamp_list_val(self): + v = Value(unix_timestamp_list_val=Int64List(val=[1609459200, 1609545600])) + result = _value_to_native(v) + assert result == [1609459200, 1609545600] + + def test_string_set_val(self): + v = Value(string_set_val=StringSet(val=["x", "y", "z"])) + result = _value_to_native(v) + assert set(result) == {"x", "y", "z"} + + def test_int64_set_val(self): + v = Value(int64_set_val=Int64Set(val=[10, 20, 30])) + result = _value_to_native(v) + assert set(result) == {10, 20, 30} + + def test_list_val_nested_values(self): + inner = RepeatedValue() + inner.val.append(Value(int64_val=1)) + inner.val.append(Value(string_val="a")) + inner.val.append(Value()) + v = Value(list_val=inner) + result = _value_to_native(v) + assert result == [1, "a", None] + + def test_set_val_nested_values(self): + inner = RepeatedValue() + inner.val.append(Value(bool_val=True)) + inner.val.append(Value(double_val=3.14)) + v = Value(set_val=inner) + result = _value_to_native(v) + assert result == [True, 3.14] + + def test_map_val(self): + m = Map() + m.val["key1"].CopyFrom(Value(int64_val=42)) + m.val["key2"].CopyFrom(Value(string_val="hello")) + v = Value(map_val=m) + result = _value_to_native(v) + assert result == {"key1": 42, "key2": "hello"} + + def test_map_val_nested_null(self): + m = Map() + m.val["present"].CopyFrom(Value(int32_val=7)) + m.val["missing"].CopyFrom(Value()) + v = Value(map_val=m) + result = _value_to_native(v) + assert result["present"] == 7 + assert result["missing"] is None + + def test_json_val(self): + v = Value(json_val='{"foo": 1}') + result = _value_to_native(v) + assert result == '{"foo": 1}' + + +class TestTimestampToStr: + """Tests for _timestamp_to_str function.""" + + def test_zero_timestamp(self): + ts = Timestamp(seconds=0, nanos=0) + result = _timestamp_to_str(ts) + assert result == "1970-01-01T00:00:00Z" + + def test_valid_timestamp(self): + ts = Timestamp(seconds=1609459200, nanos=0) + result = _timestamp_to_str(ts) + assert result == "2021-01-01T00:00:00Z" + + def test_timestamp_with_millis(self): + ts = Timestamp(seconds=1609459200, nanos=500000000) + result = _timestamp_to_str(ts) + assert result == "2021-01-01T00:00:00.500Z" + + def test_timestamp_with_micros(self): + ts = Timestamp(seconds=1609459200, nanos=123456000) + result = _timestamp_to_str(ts) + assert result == "2021-01-01T00:00:00.123456Z" + + def test_timestamp_with_nanos(self): + ts = Timestamp(seconds=1609459200, nanos=123456789) + result = _timestamp_to_str(ts) + assert result == "2021-01-01T00:00:00.123456789Z" + + def test_timestamp_high_nanos_no_float_rounding(self): + ts = Timestamp(seconds=1609459200, nanos=999999999) + result = _timestamp_to_str(ts) + assert result == "2021-01-01T00:00:00.999999999Z" + + +class TestMetadataToDict: + """Tests for _metadata_to_dict function (matches proto_json.patch() format).""" + + def test_empty_metadata(self): + metadata = GetOnlineFeaturesResponseMetadata() + result = _metadata_to_dict(metadata) + assert result == {} + + def test_metadata_with_feature_names(self): + metadata = GetOnlineFeaturesResponseMetadata() + metadata.feature_names.val.extend(["feature1", "feature2", "feature3"]) + result = _metadata_to_dict(metadata) + assert result == {"feature_names": ["feature1", "feature2", "feature3"]} + + +class TestConvertResponseToDict: + """Tests for the main convert_response_to_dict function.""" + + def test_empty_response(self): + response = GetOnlineFeaturesResponse() + result = convert_response_to_dict(response) + assert result == {"results": []} + + def test_single_feature_vector(self): + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value(string_val="test")) + fv.statuses.append(FieldStatus.PRESENT) + + result = convert_response_to_dict(response) + + assert len(result["results"]) == 1 + assert result["results"][0]["values"] == ["test"] + assert result["results"][0]["statuses"] == ["PRESENT"] + + def test_multiple_feature_vectors(self): + response = GetOnlineFeaturesResponse() + + fv1 = response.results.add() + fv1.values.append(Value(int64_val=100)) + fv1.statuses.append(FieldStatus.PRESENT) + + fv2 = response.results.add() + fv2.values.append(Value(double_val=3.14)) + fv2.statuses.append(FieldStatus.NOT_FOUND) + + result = convert_response_to_dict(response) + + assert len(result["results"]) == 2 + assert result["results"][0]["values"] == [100] + assert result["results"][0]["statuses"] == ["PRESENT"] + assert result["results"][1]["values"] == [3.14] + assert result["results"][1]["statuses"] == ["NOT_FOUND"] + + def test_response_with_metadata(self): + response = GetOnlineFeaturesResponse() + response.metadata.feature_names.val.extend(["driver_id", "driver_rating"]) + + fv = response.results.add() + fv.values.append(Value(int64_val=123)) + fv.statuses.append(FieldStatus.PRESENT) + + result = convert_response_to_dict(response) + + assert "metadata" in result + assert result["metadata"]["feature_names"] == ["driver_id", "driver_rating"] + + def test_response_with_timestamps(self): + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value(string_val="test")) + fv.statuses.append(FieldStatus.PRESENT) + ts = fv.event_timestamps.add() + ts.seconds = 1609459200 + + result = convert_response_to_dict(response) + + assert len(result["results"][0]["event_timestamps"]) == 1 + assert "2021-01-01" in result["results"][0]["event_timestamps"][0] + + def test_all_status_types(self): + response = GetOnlineFeaturesResponse() + fv = response.results.add() + + for status in [ + FieldStatus.INVALID, + FieldStatus.PRESENT, + FieldStatus.NULL_VALUE, + FieldStatus.NOT_FOUND, + FieldStatus.OUTSIDE_MAX_AGE, + ]: + fv.values.append(Value(int32_val=1)) + fv.statuses.append(status) + + result = convert_response_to_dict(response) + + expected_statuses = [ + "INVALID", + "PRESENT", + "NULL_VALUE", + "NOT_FOUND", + "OUTSIDE_MAX_AGE", + ] + assert result["results"][0]["statuses"] == expected_statuses + + def test_status_field_included_when_true(self): + response = GetOnlineFeaturesResponse() + response.status = True + result = convert_response_to_dict(response) + assert result.get("status") is True + + def test_status_field_omitted_when_false(self): + response = GetOnlineFeaturesResponse() + result = convert_response_to_dict(response) + assert "status" not in result + + def test_null_values_become_none(self): + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value()) + fv.values.append(Value(null_val=0)) + fv.statuses.extend([FieldStatus.NULL_VALUE, FieldStatus.NULL_VALUE]) + + result = convert_response_to_dict(response) + + assert result["results"][0]["values"] == [None, None] + + def test_list_values_are_native_lists(self): + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value(int64_list_val=Int64List(val=[1, 2, 3]))) + fv.values.append(Value(string_list_val=StringList(val=["a", "b"]))) + fv.statuses.extend([FieldStatus.PRESENT, FieldStatus.PRESENT]) + + result = convert_response_to_dict(response) + + assert result["results"][0]["values"] == [[1, 2, 3], ["a", "b"]] + + +class TestConvertResponseToDictConsistency: + """Tests ensuring convert_response_to_dict matches MessageToDict with patch.""" + + @pytest.fixture(autouse=True) + def setup_proto_json_patch(self): + proto_json.patch() + + def _build_complex_response( + self, num_features: int = 10 + ) -> GetOnlineFeaturesResponse: + response = GetOnlineFeaturesResponse() + feature_names = [f"feature_{i}" for i in range(num_features)] + response.metadata.feature_names.val.extend(feature_names) + + for i in range(num_features): + fv = response.results.add() + if i % 4 == 0: + fv.values.append(Value(int64_val=i * 100)) + elif i % 4 == 1: + fv.values.append(Value(double_val=i * 0.1)) + elif i % 4 == 2: + fv.values.append(Value(string_val=f"value_{i}")) + else: + fv.values.append(Value()) + fv.statuses.append(FieldStatus.PRESENT) + + return response + + def test_values_match_patched_message_to_dict(self): + """Ensure value serialization matches proto_json.patch() format.""" + response = self._build_complex_response(8) + + fast_result = convert_response_to_dict(response) + standard_result = MessageToDict(response, preserving_proto_field_name=True) + + assert set(fast_result.keys()) == set(standard_result.keys()) + assert len(fast_result["results"]) == len(standard_result["results"]) + + for i in range(len(fast_result["results"])): + fast_values = fast_result["results"][i]["values"] + standard_values = standard_result["results"][i]["values"] + assert fast_values == standard_values, f"Mismatch at result {i}" + + def test_metadata_matches_patched_format(self): + """Ensure metadata format matches proto_json.patch() format.""" + response = self._build_complex_response(5) + + fast_result = convert_response_to_dict(response) + standard_result = MessageToDict(response, preserving_proto_field_name=True) + + if "metadata" in standard_result: + assert "metadata" in fast_result + assert ( + fast_result["metadata"]["feature_names"] + == standard_result["metadata"]["feature_names"] + ) + + def test_float_val_precision_matches_message_to_dict(self): + """float32 storage causes truncation; both paths must return identical values.""" + response = GetOnlineFeaturesResponse() + fv = response.results.add() + # 3.14 is not exactly representable as float32; both implementations + # should return the same truncated float64 representation + fv.values.append(Value(float_val=3.14)) + fv.statuses.append(FieldStatus.PRESENT) + + fast_result = convert_response_to_dict(response) + standard_result = MessageToDict(response, preserving_proto_field_name=True) + + assert ( + fast_result["results"][0]["values"] + == standard_result["results"][0]["values"] + ) + + def test_double_val_precision(self): + """double_val is returned as a Python float (shortest round-trip form). + + The upstream code passed float_precision=18 to MessageToDict, which forced 18 + significant digits for doubles. Our implementation returns native Python floats + serialized by json.dumps using Python 3.1+ shortest-round-trip representation + (~15–17 sig digits). The value is identical when round-tripped through float64; + the only difference is how many trailing digits appear in the JSON string. + This is an intentional trade-off for speed and is safe for all ML feature values. + """ + import struct + + # Use a value with many significant digits + pi = 3.141592653589793 + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value(double_val=pi)) + fv.statuses.append(FieldStatus.PRESENT) + + result = convert_response_to_dict(response) + value = result["results"][0]["values"][0] + + # Value must round-trip correctly through json.dumps + assert value == pi + round_tripped = json.loads(json.dumps(value)) + assert round_tripped == pi + # Verify it encodes as the same float64 bit pattern + assert struct.pack("d", value) == struct.pack("d", pi) + + def test_set_types_return_flat_list(self): + """set types (string_set_val, int64_set_val, etc.) return flat lists. + + Note: proto_json.patch() does not explicitly handle _set_ types — they fall + through to the else branch and return the raw proto object, which MessageToDict + then serializes as {"val": [...]}. Our implementation normalizes these to flat + lists, which is more useful for API consumers and consistent with list types. + """ + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value(string_set_val=StringSet(val=["a", "b", "c"]))) + fv.statuses.append(FieldStatus.PRESENT) + + result = convert_response_to_dict(response) + values = result["results"][0]["values"] + assert isinstance(values[0], list), "set type should be a flat list" + assert set(values[0]) == {"a", "b", "c"} + + def test_bytes_val_is_base64_encoded(self): + """bytes_val is base64-encoded so JSONResponse can serialize it. + + This intentionally differs from proto_json.patch() which returns raw bytes. + Raw bytes are not JSON-serializable; base64 is the standard protobuf JSON + encoding for bytes fields and is safe for all HTTP clients. + """ + response = GetOnlineFeaturesResponse() + fv = response.results.add() + data = b"\x00\x01\x02\xff" + fv.values.append(Value(bytes_val=data)) + fv.statuses.append(FieldStatus.PRESENT) + + result = convert_response_to_dict(response) + encoded = result["results"][0]["values"][0] + + assert encoded == base64.b64encode(data).decode("ascii") + # Must be JSON-serializable + assert json.dumps(encoded) + + +class TestJsonSerializability: + """Ensure convert_response_to_dict output is always JSON-serializable.""" + + def test_complex_types_are_json_serializable(self): + """map_val, list_val, set_val must not leave proto objects in the output.""" + response = GetOnlineFeaturesResponse() + fv = response.results.add() + + # map_val + m = Map() + m.val["k"].CopyFrom(Value(int64_val=1)) + fv.values.append(Value(map_val=m)) + + # list_val (RepeatedValue) + inner = RepeatedValue() + inner.val.append(Value(string_val="a")) + fv.values.append(Value(list_val=inner)) + + # int64_set_val + fv.values.append(Value(int64_set_val=Int64Set(val=[10, 20]))) + + fv.statuses.extend( + [FieldStatus.PRESENT, FieldStatus.PRESENT, FieldStatus.PRESENT] + ) + + result = convert_response_to_dict(response) + # must not raise + serialized = json.dumps(result) + assert serialized # non-empty + + +class TestPerformance: + """Performance tests to validate the optimization claim.""" + + def _build_large_response( + self, num_entities: int = 50, num_features: int = 100 + ) -> GetOnlineFeaturesResponse: + response = GetOnlineFeaturesResponse() + feature_names = [f"feature_{i}" for i in range(num_features)] + response.metadata.feature_names.val.extend(feature_names) + + for i in range(num_features): + fv = response.results.add() + for j in range(num_entities): + if i % 4 == 0: + fv.values.append(Value(int64_val=j * 100 + i)) + elif i % 4 == 1: + fv.values.append(Value(double_val=j * 0.1 + i)) + elif i % 4 == 2: + fv.values.append(Value(string_val=f"entity_{j}_feature_{i}")) + else: + fv.values.append(Value(bool_val=j % 2 == 0)) + fv.statuses.append(FieldStatus.PRESENT) + + return response + + @pytest.mark.slow + def test_faster_than_message_to_dict(self): + """Verify convert_response_to_dict is faster than MessageToDict.""" + proto_json.patch() + response = self._build_large_response(num_entities=50, num_features=100) + iterations = 100 + + for _ in range(10): + convert_response_to_dict(response) + MessageToDict(response, preserving_proto_field_name=True) + + start = time.perf_counter() + for _ in range(iterations): + convert_response_to_dict(response) + fast_time = time.perf_counter() - start + + start = time.perf_counter() + for _ in range(iterations): + MessageToDict(response, preserving_proto_field_name=True) + standard_time = time.perf_counter() - start + + speedup = standard_time / fast_time + print(f"\nPerformance: fast={fast_time:.3f}s, standard={standard_time:.3f}s") + print(f"Speedup: {speedup:.2f}x") + + assert speedup >= 1.5, f"Expected at least 1.5x speedup, got {speedup:.2f}x" + + +class TestStatusNames: + """Tests for the status name mapping.""" + + def test_all_status_codes_mapped(self): + assert 0 in _STATUS_NAMES # INVALID + assert 1 in _STATUS_NAMES # PRESENT + assert 2 in _STATUS_NAMES # NULL_VALUE + assert 3 in _STATUS_NAMES # NOT_FOUND + assert 4 in _STATUS_NAMES # OUTSIDE_MAX_AGE + + def test_unknown_status_returns_invalid(self): + assert _STATUS_NAMES.get(999, "INVALID") == "INVALID" From 1941d4d184a3e13eea1d47b1b35d3305c89ecf1c Mon Sep 17 00:00:00 2001 From: ntkathole Date: Wed, 13 May 2026 20:34:46 +0530 Subject: [PATCH 36/59] fix: Add missing feast init templates to operator CRD and enhance persistence documentation Signed-off-by: ntkathole --- .../feast-operator/02-persistence.md | 703 ++++++++++++++++++ .../api/v1/featurestore_types.go | 2 +- .../api/v1alpha1/featurestore_types.go | 2 +- .../manifests/feast.dev_featurestores.yaml | 16 + .../crd/bases/feast.dev_featurestores.yaml | 16 + infra/feast-operator/dist/install.yaml | 16 + 6 files changed, 753 insertions(+), 2 deletions(-) diff --git a/docs/how-to-guides/feast-operator/02-persistence.md b/docs/how-to-guides/feast-operator/02-persistence.md index 1097e68a6ce..fe8c445e77e 100644 --- a/docs/how-to-guides/feast-operator/02-persistence.md +++ b/docs/how-to-guides/feast-operator/02-persistence.md @@ -294,6 +294,709 @@ services: --- +## Overriding the Secret key name + +By default the operator looks up the Secret key that matches `persistence.store.type` (e.g. +`type: postgres` → key `postgres`). To use a different key, set `secretKeyName`: + +```yaml +services: + onlineStore: + persistence: + store: + type: postgres + secretRef: + name: feast-data-stores + secretKeyName: my_custom_key # reads key "my_custom_key" instead of "postgres" +``` + +This is useful when a single Secret holds configuration for multiple stores of the same type, +or when you want a more descriptive key name. + +--- + +## Validation rules + +The operator enforces these rules on Secret values at reconciliation time: + +1. The Secret key value must be **valid YAML** that deserializes to a map. +2. If the YAML contains a `type` field, its value **must match** the CR's `persistence.store.type`. + Otherwise the operator rejects it with an error. Best practice: omit `type` from the Secret. +3. If the YAML contains a `registry_type` field (for registry stores), the same matching rule applies. +4. The Secret must exist in the **same namespace** as the FeatureStore CR. +5. Only **one** of `file` or `store` may be set under each persistence block (enforced by CRD validation). + +--- + +## Complete Secret examples by store type + +Below are copy-paste-ready Secret YAML snippets for every operator-supported store type. +Each snippet shows the Secret data key and the YAML value the operator expects. + +> **Note**: omit the `type` field from Secret values — the operator injects it from +> `persistence.store.type`. Including a matching `type` value is tolerated but not +> recommended. + +### Online store Secrets + +#### Redis + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + redis: | + connection_string: redis.feast.svc.cluster.local:6379 +``` + +Redis Cluster with SSL: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + redis: | + redis_type: redis_cluster + connection_string: "redis1:6379,redis2:6379,ssl=true,password=my_password" +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: redis + secretRef: + name: feast-online-store +``` + +SDK reference: [Redis](../reference/online-stores/redis.md) + +--- + +#### Postgres + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + postgres: | + host: postgres.feast.svc.cluster.local + port: 5432 + database: feast + db_schema: public + user: feast + password: feast +``` + +With SSL: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + postgres: | + host: postgres.feast.svc.cluster.local + port: 5432 + database: feast + db_schema: public + user: feast + password: feast + sslmode: verify-ca + sslrootcert_path: /path/to/server-ca.pem +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: postgres + secretRef: + name: feast-online-store +``` + +SDK reference: [Postgres](../reference/online-stores/postgres.md) + +--- + +#### Cassandra + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + cassandra: | + hosts: + - 192.168.1.1 + - 192.168.1.2 + - 192.168.1.3 + keyspace: KeyspaceName + port: 9042 + username: user + password: secret + protocol_version: 5 + load_balancing: + local_dc: datacenter1 + load_balancing_policy: TokenAwarePolicy(DCAwareRoundRobinPolicy) + read_concurrency: 100 + write_concurrency: 100 +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: cassandra + secretRef: + name: feast-online-store +``` + +SDK reference: [Cassandra](../reference/online-stores/cassandra.md) + +--- + +#### Snowflake (online) + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + snowflake.online: | + account: snowflake_deployment.us-east-1 + user: user_login + password: user_password + role: SYSADMIN + warehouse: COMPUTE_WH + database: FEAST +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: snowflake.online + secretRef: + name: feast-online-store +``` + +SDK reference: [Snowflake](../reference/online-stores/snowflake.md) + +--- + +#### DynamoDB + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + dynamodb: | + region: us-west-2 + batch_size: 100 +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: dynamodb + secretRef: + name: feast-online-store +``` + +SDK reference: [DynamoDB](../reference/online-stores/dynamodb.md) + +--- + +#### Bigtable + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + bigtable: | + project_id: my_gcp_project + instance: my_bigtable_instance +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: bigtable + secretRef: + name: feast-online-store +``` + +SDK reference: [Bigtable](../reference/online-stores/bigtable.md) + +--- + +#### Datastore + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + datastore: | + project_id: my_gcp_project + namespace: my_datastore_namespace +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: datastore + secretRef: + name: feast-online-store +``` + +SDK reference: [Datastore](../reference/online-stores/datastore.md) + +--- + +#### MySQL + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + mysql: | + host: mysql.feast.svc.cluster.local + port: 3306 + database: feast + user: feast + password: feast +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: mysql + secretRef: + name: feast-online-store +``` + +SDK reference: [MySQL](../reference/online-stores/mysql.md) + +--- + +#### Hazelcast + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + hazelcast: | + cluster_name: dev + cluster_members: + - "localhost:5701" + key_ttl_seconds: 36000 +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: hazelcast + secretRef: + name: feast-online-store +``` + +SDK reference: [Hazelcast](../reference/online-stores/hazelcast.md) + +--- + +#### HBase + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-online-store +stringData: + hbase: | + host: hbase-thrift.feast.svc.cluster.local + port: "9090" + connection_pool_size: 4 +``` + +CR snippet: + +```yaml +services: + onlineStore: + persistence: + store: + type: hbase + secretRef: + name: feast-online-store +``` + +SDK reference: [HBase](../reference/online-stores/hbase.md) + +--- + +#### Other supported online store types + +The following types also use the same pattern (`persistence.store.type` + `secretRef`). +Place the driver-specific YAML keys from the SDK docs under the matching Secret key: + +| `type` | Secret key | SDK docs | +|--------|------------|----------| +| `sqlite` | `sqlite` | [SQLite](../reference/online-stores/sqlite.md) | +| `singlestore` | `singlestore` | [SingleStore](../reference/online-stores/singlestore.md) | +| `elasticsearch` | `elasticsearch` | [Elasticsearch](../reference/online-stores/elasticsearch.md) | +| `qdrant` | `qdrant` | [Qdrant](../reference/online-stores/qdrant.md) | +| `couchbase.online` | `couchbase.online` | [Couchbase](../reference/online-stores/couchbase.md) | +| `milvus` | `milvus` | [Milvus](../reference/online-stores/milvus.md) | +| `mongodb` | `mongodb` | [MongoDB](../reference/online-stores/mongodb.md) | +| `hybrid` | `hybrid` | [Hybrid](../reference/online-stores/hybrid.md) | + +--- + +### Offline store Secrets + +Offline DB stores follow the same pattern. The `type` field tells the operator which +store driver to use; the Secret value holds the connection parameters. + +#### Snowflake (offline) + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-offline-store +stringData: + snowflake.offline: | + account: snowflake_deployment.us-east-1 + user: user_login + password: user_password + role: SYSADMIN + warehouse: COMPUTE_WH + database: FEAST + schema: PUBLIC +``` + +CR snippet: + +```yaml +services: + offlineStore: + persistence: + store: + type: snowflake.offline + secretRef: + name: feast-offline-store +``` + +SDK reference: [Snowflake](../reference/offline-stores/snowflake.md) + +--- + +#### BigQuery + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-offline-store +stringData: + bigquery: | + dataset: feast_bq_dataset + project_id: my_gcp_project +``` + +CR snippet: + +```yaml +services: + offlineStore: + persistence: + store: + type: bigquery + secretRef: + name: feast-offline-store +``` + +SDK reference: [BigQuery](../reference/offline-stores/bigquery.md) + +--- + +#### Postgres (offline) + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-offline-store +stringData: + postgres: | + host: postgres.feast.svc.cluster.local + port: 5432 + database: feast + db_schema: public + user: feast + password: feast +``` + +CR snippet: + +```yaml +services: + offlineStore: + persistence: + store: + type: postgres + secretRef: + name: feast-offline-store +``` + +SDK reference: [Postgres](../reference/offline-stores/postgres.md) + +--- + +#### Other supported offline store types + +| `type` | Secret key | SDK docs | +|--------|------------|----------| +| `redshift` | `redshift` | [Redshift](../reference/offline-stores/redshift.md) | +| `spark` | `spark` | [Spark](../reference/offline-stores/spark.md) | +| `trino` | `trino` | [Trino](../reference/offline-stores/trino.md) | +| `athena` | `athena` | [Athena](../reference/offline-stores/athena.md) | +| `mssql` | `mssql` | [MSSQL](../reference/offline-stores/mssql.md) | +| `couchbase.offline` | `couchbase.offline` | [Couchbase](../reference/offline-stores/couchbase.md) | +| `clickhouse` | `clickhouse` | [ClickHouse](../reference/offline-stores/clickhouse.md) | +| `ray` | `ray` | [Ray](../reference/offline-stores/ray.md) | +| `oracle` | `oracle` | [Oracle](../reference/offline-stores/oracle.md) | + +--- + +### Registry Secrets + +#### SQL (SQLAlchemy) registry + +The most common production registry. Uses a SQLAlchemy URL to connect to PostgreSQL, +MySQL, or SQLite: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-registry-store +stringData: + sql: | + path: postgresql+psycopg://feast:feast@postgres.feast.svc.cluster.local:5432/feast #pragma: allowlist secret + cache_ttl_seconds: 60 + sqlalchemy_config_kwargs: + echo: false + pool_pre_ping: true +``` + +CR snippet: + +```yaml +services: + registry: + local: + persistence: + store: + type: sql + secretRef: + name: feast-registry-store +``` + +SDK reference: [SQL Registry](../reference/registries/sql.md) + +--- + +#### Snowflake registry + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-registry-store +stringData: + snowflake.registry: | + account: snowflake_deployment.us-east-1 + user: user_login + password: user_password + role: SYSADMIN + warehouse: COMPUTE_WH + database: FEAST + schema: PUBLIC + cache_ttl_seconds: 60 +``` + +CR snippet: + +```yaml +services: + registry: + local: + persistence: + store: + type: snowflake.registry + secretRef: + name: feast-registry-store +``` + +SDK reference: [Snowflake Registry](../reference/registries/snowflake.md) + +--- + +## Multi-store Secret (single Secret for all components) + +You can combine all store configurations into a single Secret: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: feast-data-stores +stringData: + redis: | + connection_string: redis.feast.svc.cluster.local:6379 + snowflake.offline: | + account: snowflake_deployment.us-east-1 + user: user_login + password: user_password + role: SYSADMIN + warehouse: COMPUTE_WH + database: FEAST + schema: PUBLIC + sql: | + path: postgresql+psycopg://feast:feast@postgres.feast.svc.cluster.local:5432/feast #pragma: allowlist secret + cache_ttl_seconds: 60 +--- +apiVersion: feast.dev/v1 +kind: FeatureStore +metadata: + name: production-store +spec: + feastProject: my_project + services: + onlineStore: + persistence: + store: + type: redis + secretRef: + name: feast-data-stores + offlineStore: + persistence: + store: + type: snowflake.offline + secretRef: + name: feast-data-stores + registry: + local: + persistence: + store: + type: sql + secretRef: + name: feast-data-stores +``` + +--- + +## ConfigMap usage (batch engine) + +The `batchEngine` is the only operator component that uses a **ConfigMap** rather than a +Secret for its configuration. The ConfigMap must contain a YAML value under key `config` +(default) or the key specified in `configMapKey`. + +Unlike store Secrets, the batch engine ConfigMap value **must include the `type` field**: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: feast-batch-engine +data: + config: | + type: spark + master: local + spark_conf: + spark.executor.memory: 4g +--- +apiVersion: feast.dev/v1 +kind: FeatureStore +metadata: + name: sample +spec: + feastProject: my_project + batchEngine: + configMapRef: + name: feast-batch-engine + # configMapKey: config # optional, defaults to "config" +``` + +See [Guide 6 — Batch & Jobs](06-batch-and-jobs.md) for full details. + +--- + +## Troubleshooting + +| Symptom | Likely cause | Fix | +|---------|-------------|-----| +| `secret key X doesn't exist in secret Y` | The Secret key name doesn't match the store `type` | Either rename the Secret key to match `type`, or set `secretKeyName` in the CR | +| `secret X contains invalid value` | The Secret value is not valid YAML | Check indentation and quoting in the `stringData` value | +| `contains tag named type with value X` | The Secret includes a `type` field that doesn't match the CR's `persistence.store.type` | Remove `type` from the Secret value, or correct it to match | +| `invalid secret X for offline store` | The referenced Secret doesn't exist | Create the Secret in the same namespace as the FeatureStore CR | +| `One selection required between file or store` | Both `file` and `store` are set under a persistence block | Keep only one — choose either `file` persistence or `store` (DB) persistence | + +--- + ## See also - [API reference — `OnlineStorePersistence`](https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/docs/api/markdown/ref.md#onlinestorepersistence) diff --git a/infra/feast-operator/api/v1/featurestore_types.go b/infra/feast-operator/api/v1/featurestore_types.go index 81e1dfa14c1..deeff9b4e52 100644 --- a/infra/feast-operator/api/v1/featurestore_types.go +++ b/infra/feast-operator/api/v1/featurestore_types.go @@ -170,7 +170,7 @@ type GitCloneOptions struct { type FeastInitOptions struct { Minimal bool `json:"minimal,omitempty"` // Template for the created project - // +kubebuilder:validation:Enum=local;gcp;aws;snowflake;spark;postgres;hbase;cassandra;hazelcast;couchbase;clickhouse + // +kubebuilder:validation:Enum=local;gcp;aws;snowflake;spark;postgres;hbase;cassandra;hazelcast;couchbase;clickhouse;milvus;ray;ray_rag;pytorch_nlp Template string `json:"template,omitempty"` } diff --git a/infra/feast-operator/api/v1alpha1/featurestore_types.go b/infra/feast-operator/api/v1alpha1/featurestore_types.go index d9c85c93136..87d13003805 100644 --- a/infra/feast-operator/api/v1alpha1/featurestore_types.go +++ b/infra/feast-operator/api/v1alpha1/featurestore_types.go @@ -105,7 +105,7 @@ type GitCloneOptions struct { type FeastInitOptions struct { Minimal bool `json:"minimal,omitempty"` // Template for the created project - // +kubebuilder:validation:Enum=local;gcp;aws;snowflake;spark;postgres;hbase;cassandra;hazelcast;couchbase;clickhouse + // +kubebuilder:validation:Enum=local;gcp;aws;snowflake;spark;postgres;hbase;cassandra;hazelcast;couchbase;clickhouse;milvus;ray;ray_rag;pytorch_nlp Template string `json:"template,omitempty"` } diff --git a/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml b/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml index 2241b4c5f2e..41651161cc4 100644 --- a/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml +++ b/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml @@ -735,6 +735,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -6693,6 +6697,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -12791,6 +12799,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -17054,6 +17066,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object diff --git a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml index e1a1adfabe8..4c09756f2c5 100644 --- a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml +++ b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml @@ -735,6 +735,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -6696,6 +6700,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -12797,6 +12805,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -17060,6 +17072,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml index c466442b8e8..a1fb4f75b98 100644 --- a/infra/feast-operator/dist/install.yaml +++ b/infra/feast-operator/dist/install.yaml @@ -743,6 +743,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -6704,6 +6708,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -12805,6 +12813,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object @@ -17068,6 +17080,10 @@ spec: - hazelcast - couchbase - clickhouse + - milvus + - ray + - ray_rag + - pytorch_nlp type: string type: object type: object From 55c2f185f015e4fc4052a828c9785a79b9819104 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 28 May 2026 18:09:50 +0530 Subject: [PATCH 37/59] perf: Cache feature view resolution in get_online_features to reduce per-request overhead Signed-off-by: ntkathole --- .../feast/infra/registry/base_registry.py | 10 + .../feast/infra/registry/caching_registry.py | 42 ++--- sdk/python/feast/infra/registry/registry.py | 11 ++ sdk/python/feast/utils.py | 116 ++++++++++-- .../unit/test_feature_resolution_cache.py | 171 ++++++++++++++++++ 5 files changed, 307 insertions(+), 43 deletions(-) create mode 100644 sdk/python/tests/unit/test_feature_resolution_cache.py diff --git a/sdk/python/feast/infra/registry/base_registry.py b/sdk/python/feast/infra/registry/base_registry.py index f0478312079..2ed640411fd 100644 --- a/sdk/python/feast/infra/registry/base_registry.py +++ b/sdk/python/feast/infra/registry/base_registry.py @@ -919,6 +919,16 @@ def refresh(self, project: Optional[str] = None): """Refreshes the state of the registry cache by fetching the registry state from the remote registry store.""" raise NotImplementedError + def is_cache_valid(self) -> bool: + """Check whether the registry's local cache is still within its TTL. + + Returns True if cached data can be used without a refresh. + Subclasses that support caching should override this. + Registries without caching always return False (every read goes + to the backing store). + """ + return False + # Lineage operations def get_registry_lineage( self, diff --git a/sdk/python/feast/infra/registry/caching_registry.py b/sdk/python/feast/infra/registry/caching_registry.py index 2e15272cf05..5e850647a72 100644 --- a/sdk/python/feast/infra/registry/caching_registry.py +++ b/sdk/python/feast/infra/registry/caching_registry.py @@ -442,32 +442,26 @@ def refresh(self, project: Optional[str] = None): except Exception as e: logger.debug(f"Error while refreshing registry: {e}", exc_info=True) + def is_cache_valid(self) -> bool: + if ( + self.cached_registry_proto is None + or self.cached_registry_proto == RegistryProto() + ): + return False + if ( + not hasattr(self, "cached_registry_proto_created") + or self.cached_registry_proto_created is None + ): + return False + if self.cached_registry_proto_ttl.total_seconds() > 0 and _utc_now() > ( + self.cached_registry_proto_created + self.cached_registry_proto_ttl + ): + return False + return True + def _refresh_cached_registry_if_necessary(self): if self.cache_mode == "sync": - - def is_cache_expired(): - if ( - self.cached_registry_proto is None - or self.cached_registry_proto == RegistryProto() - ): - return True - - # Cache is expired if creation time is None - if ( - not hasattr(self, "cached_registry_proto_created") - or self.cached_registry_proto_created is None - ): - return True - - # Cache is expired if TTL > 0 and current time exceeds creation + TTL - if self.cached_registry_proto_ttl.total_seconds() > 0 and _utc_now() > ( - self.cached_registry_proto_created + self.cached_registry_proto_ttl - ): - return True - - return False - - if is_cache_expired(): + if not self.is_cache_valid(): if not self._refresh_lock.acquire(blocking=False): logger.debug( "Skipping refresh if lock is already held by another thread" diff --git a/sdk/python/feast/infra/registry/registry.py b/sdk/python/feast/infra/registry/registry.py index d658d68bc24..f4ef66ef0f9 100644 --- a/sdk/python/feast/infra/registry/registry.py +++ b/sdk/python/feast/infra/registry/registry.py @@ -1287,6 +1287,17 @@ def refresh(self, project: Optional[str] = None): """Refreshes the state of the registry cache by fetching the registry state from the remote registry store.""" self._get_registry_proto(project=project, allow_cache=False) + def is_cache_valid(self) -> bool: + if self.cached_registry_proto_created is None: + return False + if ( + self.cached_registry_proto_ttl.total_seconds() > 0 + and _utc_now() + > self.cached_registry_proto_created + self.cached_registry_proto_ttl + ): + return False + return True + def teardown(self): """Tears down (removes) the registry.""" self._registry_store.teardown() diff --git a/sdk/python/feast/utils.py b/sdk/python/feast/utils.py index b9b511de698..4c10c1903e5 100644 --- a/sdk/python/feast/utils.py +++ b/sdk/python/feast/utils.py @@ -1,6 +1,8 @@ import copy import itertools +import logging import os +import threading import typing import warnings from collections import Counter, defaultdict @@ -1380,6 +1382,96 @@ def _get_online_request_context( ) +_feature_resolution_cache: Dict[tuple, tuple] = {} +_feature_resolution_cache_lock = threading.Lock() +_feature_resolution_registry_ts: Optional[datetime] = None + +_logger = logging.getLogger(__name__) + + +def _get_cached_request_context( + registry, + project: str, + features: Union[List[str], "FeatureService"], + full_feature_names: bool, +): + """Return the output of _get_online_request_context plus resolved ODFV + entity join keys, using a cache that is invalidated whenever the + registry refreshes or its cache TTL expires.""" + from feast.feature_service import FeatureService as _FS + + global _feature_resolution_cache, _feature_resolution_registry_ts + + registry_ts = getattr(registry, "cached_registry_proto_created", None) + + if isinstance(features, _FS): + features_key: tuple = ("__fs__", features.name) + else: + features_key = tuple(features) + + cache_key = (features_key, project, full_feature_names) + + is_cache_valid = getattr(registry, "is_cache_valid", None) + registry_cache_valid = is_cache_valid() if callable(is_cache_valid) else False + + if registry_ts is not None and registry_cache_valid: + with _feature_resolution_cache_lock: + if registry_ts != _feature_resolution_registry_ts: + _feature_resolution_cache.clear() + _feature_resolution_registry_ts = registry_ts + _logger.debug("Feature resolution cache cleared (registry refreshed)") + else: + cached = _feature_resolution_cache.get(cache_key) + if cached is not None: + return cached + + ctx = _get_online_request_context(registry, project, features, full_feature_names) + + ( + feature_refs, + requested_on_demand_feature_views, + entity_name_to_join_key_map, + entity_type_map, + join_keys_set, + grouped_refs, + requested_result_row_names, + needed_request_data, + entityless_case, + ) = ctx + + odfv_join_keys: set = set() + for on_demand_feature_view in requested_on_demand_feature_views: + entities_for_odfv = getattr(on_demand_feature_view, "entities", []) + if len(entities_for_odfv) > 0 and isinstance(entities_for_odfv[0], str): + entities_for_odfv = [ + registry.get_entity(entity_name, project, allow_cache=True) + for entity_name in entities_for_odfv + ] + odfv_join_keys.update(entities_for_odfv) + + result = ( + feature_refs, + requested_on_demand_feature_views, + entity_name_to_join_key_map, + entity_type_map, + join_keys_set | odfv_join_keys, + grouped_refs, + frozenset(requested_result_row_names), + needed_request_data, + entityless_case, + ) + + registry_ts_after = getattr(registry, "cached_registry_proto_created", None) + if registry_ts_after is not None: + with _feature_resolution_cache_lock: + if registry_ts_after != _feature_resolution_registry_ts: + _feature_resolution_cache.clear() + _feature_resolution_registry_ts = registry_ts_after + _feature_resolution_cache[cache_key] = result + + return result + + def _prepare_entities_to_read_from_online_store( registry, project, @@ -1399,10 +1491,13 @@ def _prepare_entities_to_read_from_online_store( entity_type_map, join_keys_set, grouped_refs, - requested_result_row_names, + requested_result_row_names_frozen, needed_request_data, entityless_case, - ) = _get_online_request_context(registry, project, features, full_feature_names) + ) = _get_cached_request_context(registry, project, features, full_feature_names) + + # Mutable copy — downstream code adds join keys to this set. + requested_result_row_names = set(requested_result_row_names_frozen) # Extract Sequence from RepeatedValue Protobuf. entity_value_lists: Dict[str, Union[List[Any], List[ValueProto]]] = { @@ -1424,23 +1519,6 @@ def _prepare_entities_to_read_from_online_store( num_rows = _validate_entity_values(entity_proto_values) - odfv_entities: List[Entity] = [] - request_source_keys: List[str] = [] - for on_demand_feature_view in requested_on_demand_feature_views: - entities_for_odfv = getattr(on_demand_feature_view, "entities", []) - if len(entities_for_odfv) > 0 and isinstance(entities_for_odfv[0], str): - entities_for_odfv = [ - registry.get_entity(entity_name, project, allow_cache=True) - for entity_name in entities_for_odfv - ] - odfv_entities.extend(entities_for_odfv) - for source in on_demand_feature_view.source_request_sources: - source_schema = on_demand_feature_view.source_request_sources[source].schema - for column in source_schema: - request_source_keys.append(column.name) - - join_keys_set.update(set(odfv_entities)) - join_key_values: Dict[str, List[ValueProto]] = {} request_data_features: Dict[str, List[ValueProto]] = {} # Entity rows may be either entities or request data. diff --git a/sdk/python/tests/unit/test_feature_resolution_cache.py b/sdk/python/tests/unit/test_feature_resolution_cache.py new file mode 100644 index 00000000000..f77a4c1e0ac --- /dev/null +++ b/sdk/python/tests/unit/test_feature_resolution_cache.py @@ -0,0 +1,171 @@ +"""Tests for the feature resolution cache in feast.utils._get_cached_request_context.""" + +from datetime import datetime, timedelta, timezone +from unittest.mock import MagicMock, patch + +import pytest + +import feast.utils as utils + + +@pytest.fixture(autouse=True) +def _clear_cache(): + """Reset the module-level cache before each test.""" + with utils._feature_resolution_cache_lock: + utils._feature_resolution_cache.clear() + utils._feature_resolution_registry_ts = None + yield + with utils._feature_resolution_cache_lock: + utils._feature_resolution_cache.clear() + utils._feature_resolution_registry_ts = None + + +def _make_registry(ts: datetime, ttl_seconds: int = 600, cache_valid: bool = True): + reg = MagicMock() + reg.cached_registry_proto_created = ts + reg.cached_registry_proto_ttl = timedelta(seconds=ttl_seconds) + reg.is_cache_valid.return_value = cache_valid + return reg + + +def _make_context(): + """Return a plausible fake context tuple matching _get_online_request_context output.""" + return ( + ["fv:feat1"], # feature_refs + [], # requested_on_demand_feature_views + {}, # entity_name_to_join_key_map + {}, # entity_type_map + {"user_id"}, # join_keys_set + [("fv_table", ["feat1"])], # grouped_refs + {"feat1"}, # requested_result_row_names + set(), # needed_request_data + False, # entityless_case + ) + + +class TestFeatureResolutionCache: + @patch("feast.utils._get_online_request_context") + def test_second_call_uses_cache(self, mock_ctx): + """Identical feature requests within the same registry generation + should only call _get_online_request_context once.""" + mock_ctx.return_value = _make_context() + now = datetime.now(tz=timezone.utc) + registry = _make_registry(now, ttl_seconds=600) + features = ["fv:feat1"] + + utils._get_cached_request_context(registry, "proj", features, False) + utils._get_cached_request_context(registry, "proj", features, False) + + mock_ctx.assert_called_once() + + @patch("feast.utils._get_online_request_context") + def test_different_features_are_separate_cache_entries(self, mock_ctx): + """Different feature lists should be cached independently.""" + mock_ctx.return_value = _make_context() + now = datetime.now(tz=timezone.utc) + registry = _make_registry(now, ttl_seconds=600) + + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + utils._get_cached_request_context(registry, "proj", ["fv:feat2"], False) + + assert mock_ctx.call_count == 2 + + @patch("feast.utils._get_online_request_context") + def test_cache_cleared_on_registry_refresh(self, mock_ctx): + """When registry.cached_registry_proto_created changes, the cache + must be cleared and _get_online_request_context called again.""" + mock_ctx.return_value = _make_context() + t1 = datetime.now(tz=timezone.utc) + t2 = t1 + timedelta(seconds=30) + + registry = _make_registry(t1, ttl_seconds=600) + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + assert mock_ctx.call_count == 1 + + registry.cached_registry_proto_created = t2 + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + assert mock_ctx.call_count == 2 + + @patch("feast.utils._get_online_request_context") + def test_cache_bypassed_when_registry_ttl_expired(self, mock_ctx): + """If the registry's own cache has expired (TTL), the feature + resolution cache must NOT be used even if the timestamp matches.""" + mock_ctx.return_value = _make_context() + past = datetime.now(tz=timezone.utc) - timedelta(seconds=120) + registry = _make_registry(past, ttl_seconds=60, cache_valid=False) + + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + + assert mock_ctx.call_count == 2 + + @patch("feast.utils._get_online_request_context") + def test_cache_works_with_infinite_ttl(self, mock_ctx): + """TTL of 0 means infinite cache — should cache normally.""" + mock_ctx.return_value = _make_context() + past = datetime.now(tz=timezone.utc) - timedelta(hours=24) + registry = _make_registry(past, ttl_seconds=0) + + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + + mock_ctx.assert_called_once() + + @patch("feast.utils._get_online_request_context") + def test_no_cache_without_registry_timestamp(self, mock_ctx): + """Registries without cached_registry_proto_created should bypass + caching entirely.""" + mock_ctx.return_value = _make_context() + registry = MagicMock(spec=[]) + + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + + assert mock_ctx.call_count == 2 + + @patch("feast.utils._get_online_request_context") + def test_returned_result_row_names_is_mutable_copy(self, mock_ctx): + """requested_result_row_names is stored as frozenset in cache; + each call to _prepare_entities_to_read_from_online_store should + get a fresh mutable copy so mutations don't leak between requests.""" + mock_ctx.return_value = _make_context() + now = datetime.now(tz=timezone.utc) + registry = _make_registry(now, ttl_seconds=600) + + r1 = utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + r2 = utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + + result_row_names_1 = r1[6] + result_row_names_2 = r2[6] + assert isinstance(result_row_names_1, frozenset) + assert result_row_names_1 == result_row_names_2 + + @patch("feast.utils._get_online_request_context") + def test_feature_service_cached_separately(self, mock_ctx): + """FeatureService objects should be cached by name.""" + mock_ctx.return_value = _make_context() + now = datetime.now(tz=timezone.utc) + registry = _make_registry(now, ttl_seconds=600) + + fs = MagicMock() + fs.name = "credit_scoring_v1" + + utils._get_cached_request_context(registry, "proj", fs, False) + utils._get_cached_request_context(registry, "proj", fs, False) + + mock_ctx.assert_called_once() + + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + assert mock_ctx.call_count == 2 + + @patch("feast.utils._get_online_request_context") + def test_full_feature_names_flag_is_cache_key(self, mock_ctx): + """full_feature_names=True vs False should be different cache entries.""" + mock_ctx.return_value = _make_context() + now = datetime.now(tz=timezone.utc) + registry = _make_registry(now, ttl_seconds=600) + + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], False) + utils._get_cached_request_context(registry, "proj", ["fv:feat1"], True) + + assert mock_ctx.call_count == 2 From bac790ecd9f836b8cf2c74d292fc782258569a45 Mon Sep 17 00:00:00 2001 From: Chaitany patel Date: Fri, 29 May 2026 11:53:12 +0530 Subject: [PATCH 38/59] chore(deps): bump starlette >= 1.0.1 to fix CVE-2026-48710 Pin starlette>=1.0.1 to address Host header validation bypass (CVE-2026-48710). Regenerated all 15 Python lock files and pixi.lock. Signed-off-by: Chaitany patel Co-authored-by: Cursor --- pixi.lock | 35 +- pyproject.toml | 1 + .../requirements/py3.10-ci-requirements.txt | 1213 +++++++------- .../py3.10-minimal-requirements.txt | 667 ++++---- ...y3.10-minimal-sdist-requirements-build.txt | 100 +- .../py3.10-minimal-sdist-requirements.txt | 819 ++++----- .../requirements/py3.10-requirements.txt | 276 ++-- .../requirements/py3.11-ci-requirements.txt | 1458 ++++++++-------- .../py3.11-minimal-requirements.txt | 914 +++++------ ...y3.11-minimal-sdist-requirements-build.txt | 100 +- .../py3.11-minimal-sdist-requirements.txt | 1066 ++++++------ .../requirements/py3.11-requirements.txt | 523 +++--- .../requirements/py3.12-ci-requirements.txt | 1461 +++++++++-------- .../py3.12-minimal-requirements.txt | 914 +++++------ ...y3.12-minimal-sdist-requirements-build.txt | 100 +- .../py3.12-minimal-sdist-requirements.txt | 1066 ++++++------ .../requirements/py3.12-requirements.txt | 523 +++--- 17 files changed, 5647 insertions(+), 5589 deletions(-) diff --git a/pixi.lock b/pixi.lock index e68b50d3b6d..a1ba2cf937a 100644 --- a/pixi.lock +++ b/pixi.lock @@ -81,7 +81,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2e/84/efc7c0bf3a1c5eef81d397f6fddac855becdbb11cb38ff957888603014a7/sqlalchemy-2.0.49-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl @@ -166,7 +166,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl @@ -249,7 +249,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/55/33/bf28f618c0a9597d14e0b9ee7d1e0622faff738d44fe986ee287cdf1b8d0/sqlalchemy-2.0.49-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl @@ -391,7 +391,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -522,7 +522,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -651,7 +651,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/88/4e/80705091aaf9c95e125d243f0aa871bc9f3670b4c9d963e6bad3b3dce8ff/sqlglot-30.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -806,7 +806,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -948,7 +948,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -1088,7 +1088,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -1279,7 +1279,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/19/e9/3a21c4c86abebc81d378c2b688bd8ca4a39d4ba69057b98c0ce746360d09/snowflake_connector_python-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/90/1e/410dd499c039deacff395eec01a9da057125fcd0c97e3badc252c6a2d6a7/sqlalchemy-2.0.49-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -1454,7 +1454,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/99/e7/f0ab30895256c4d8e0b6e33857150d10d465bdfaef3f0ed471ba83b1444f/snowflake_connector_python-4.5.0.tar.gz - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/30/8519fdde58a7bdf155b714359791ad1dc018b47d60269d5d160d311fdc36/sqlalchemy-2.0.49-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -1627,7 +1627,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/99/e7/f0ab30895256c4d8e0b6e33857150d10d465bdfaef3f0ed471ba83b1444f/snowflake_connector_python-4.5.0.tar.gz - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/76/f908955139842c362aa877848f42f9249642d5b69e06cee9eae5111da1bd/sqlalchemy-2.0.49-cp310-cp310-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/a6/5833ae272ae79dceeea58b6c7381c47cbcbd0113d0d0b04da8ae1ac45e48/testcontainers-4.15.0rc2-py3-none-any.whl @@ -2399,8 +2399,8 @@ packages: requires_python: '>=3.10' - pypi: ./ name: feast - version: 0.63.1.dev27+g05f6b7744.d20260520 - sha256: 3a305db9c20cf3c601182794290d19de440e728ba4706c24238ff9d8244c6a98 + version: 0.63.1.dev37+g55c2f185f.d20260529 + sha256: 0e2ee7ed164b2fd366ec4d7fca9b273e92393cf16030342ecc102585d1e8e037 requires_dist: - click>=7.0.0,<9.0.0 - colorama>=0.3.9,<1 @@ -2423,6 +2423,7 @@ packages: - tqdm>=4,<5 - typeguard>=4.0.0 - fastapi>=0.68.0 + - starlette>=1.0.1 - uvicorn[standard]>=0.30.6,<=0.34.0 - uvicorn-worker - gunicorn ; sys_platform != 'win32' @@ -7189,10 +7190,10 @@ packages: - sqlglotrs==0.13.0 ; extra == 'rs' - sqlglotc==30.8.0 ; python_full_version >= '3.10' and extra == 'rs' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/9f/85/492183764d5d01d4514be3730fdb8e228a80605783099551c51627578b5d/starlette-1.2.0-py3-none-any.whl name: starlette - version: 1.0.0 - sha256: d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b + version: 1.2.0 + sha256: 36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 requires_dist: - anyio>=3.6.2,<5 - typing-extensions>=4.10.0 ; python_full_version < '3.13' diff --git a/pyproject.toml b/pyproject.toml index daaecc11659..21c48dd09e1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,6 +35,7 @@ dependencies = [ "tqdm>=4,<5", "typeguard>=4.0.0", "fastapi>=0.68.0", + "starlette>=1.0.1", "uvicorn[standard]>=0.30.6,<=0.34.0", "uvicorn-worker", "gunicorn; platform_system != 'Windows'", diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 7806c7f4af7..0405d68d490 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -8,9 +8,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -136,6 +136,7 @@ aiohttp==3.13.5 \ # via # aiobotocore # fsspec + # kubernetes # mlflow aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -317,9 +318,9 @@ build==1.5.0 \ # feast (pyproject.toml) # pip-tools # singlestoredb -cachetools==7.1.3 \ - --hash=sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d \ - --hash=sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804 +cachetools==7.1.4 \ + --hash=sha256:323dc4127934744db5b54eb4924482d7edafbf9554e820d1531c2e08c0e4ef54 \ + --hash=sha256:437f55a4e0c1b01a4f3077cc470e6991d47430970e36fbcb77e2be0df4fc1cd6 # via # mlflow-skinny # mlflow-tracing @@ -351,9 +352,9 @@ cassandra-driver==3.30.0 \ --hash=sha256:e12dfcd3f0074c16f4bfe650242edb406b935864373ae86160e09e3f5e437e84 \ --hash=sha256:ff2e9fbdc1be54c1d041ea3f7d09812442f334be14bb5ad7aede175544765d25 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # clickhouse-connect # docling @@ -590,9 +591,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask @@ -604,61 +605,61 @@ click==8.4.0 \ # ray # typer # uvicorn -clickhouse-connect==1.0.0 \ - --hash=sha256:03ab4bda888575a2ea882ad4ed05bf9f5f15bb621209f6a4045231e3f26fedf7 \ - --hash=sha256:046f79215ebdd62192cc36e4d81b549570ca46e5b61e107b0d54cf7855b2ffff \ - --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ - --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ - --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ - --hash=sha256:0d4ed1e296c6e77dc0dbf486607cc39fc6e36866abb653543d5ad0a8426ea8f0 \ - --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ - --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ - --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ - --hash=sha256:20b76e54c9ea77e86c47b3194f1a9ff1833bd6fa34cb81bfcec621eff94ed033 \ - --hash=sha256:250826f2c3a8466faa51e03902f4c989be5da6f2ab6f74928afadd19ce1e2336 \ - --hash=sha256:29185891d5de03f60ff9da37dbe1e1e44bed8ef252d0d1281ddf3a450dfe5023 \ - --hash=sha256:295e6ff6e3f7fe71c28b1753967d8669ce12d924486150c74c892d8f67cba4d9 \ - --hash=sha256:298e7816ae3ecb7935bf1fe3fb8b8e9eb639e4e14516b87f01ef5a1c223b992c \ - --hash=sha256:2ff97a4a607eb525d9835c939a05ff63f0d3127f33afe1ed78b05d928f49c16c \ - --hash=sha256:320f0c53c4cb8b06732d875cabd35a357992a9e0fcf9f4a18b631ea7ce377ef1 \ - --hash=sha256:3222ae6bf39930a34ff4a483c6b34a1f3dab02d6743428b0383f4d47af7a48db \ - --hash=sha256:34557e29c4dfa0df1f6e26d053d6af1ae8d1444f4bd44a5c647dc7dd3bea22c0 \ - --hash=sha256:345838366b453a8c9c38366ac54493c2fb325982967d7bd0cde3ff619b66d9b7 \ - --hash=sha256:39315f2096809a08cdc75850b52a3675a0639525bbd634b87c4f188bfd875200 \ - --hash=sha256:40f9ade34a50ef2edfa0007d7b300a72fb4be239a0581b5ffc46f165b6a3d1a6 \ - --hash=sha256:444a735bf44390cbd0a81d84d3b20bd0c36084d2a8b9d030bc41b938c3dff1d1 \ - --hash=sha256:46b6dbabbda32e7e717b2732585ffbccf11815ad36987af57a068a66d1a0292c \ - --hash=sha256:4959f9b8915d5a64193523b9b25d7446c583befb5e339cbf45dba68eb2c4abbb \ - --hash=sha256:4964db35f9352452861e0d4d93ea4e7f41c77889e6f78092fe6c6cae5e09f478 \ - --hash=sha256:53f1f9cd31b1af371340f39923a08ba0aef57a7a85ef4a27376107f376c1efc3 \ - --hash=sha256:56a0d59bc1639827ac7ad14158ba557e5287f6cee1b6c942fc1747be12cbcc07 \ - --hash=sha256:5ce486901a4042f6fc6a76ad2961bf5be7c4d970fabecf99113f6cb49d936303 \ - --hash=sha256:6977afeabca17cdd3bc11215902f20e850eb1d71451d93eaee8ac26068a84af4 \ - --hash=sha256:715f50937fcafa849c53314d443b55fb5b04b938f2402ec135c41e515a8312af \ - --hash=sha256:77a5ce7880dea5deadd53d189cf690bdee14513c055343104f5ad3ddcfe25025 \ - --hash=sha256:80c455d0ce5d93c4a744911dcbfb37124c009a826727770fd86f21a47d654333 \ - --hash=sha256:8c4f5c8fa36b605435b32efea4f40ce11babb5f5afcec1e00f6a6cce81f81000 \ - --hash=sha256:8e74375b92cfa94cb4c944a393a027af5c5ed562fc6b862baf6288696bc48688 \ - --hash=sha256:965a496c770d17d061115ad096d2c966af3cee40c167b035afd0f3bd8037327b \ - --hash=sha256:98a3efce3af5308ba3ed140c20a4dc6bf175736e2803b5cb75838ee36365a4eb \ - --hash=sha256:9a2612b246bb9aa69419b8d24732df50e80579f0c43dea97db457cc15b39bfb2 \ - --hash=sha256:9c64f7a26f97eeca472dab6ca9baddc1e36fae1d1c244541926ada4fad14a99b \ - --hash=sha256:9ec2a93d353415951ab10da943f30f0038acc0a1ff82b3253d82a106f3065f34 \ - --hash=sha256:a763c1b1c7977fcab59d2d1d2f249a5231abf44f8a3aa5b0df06bb849b5d0f65 \ - --hash=sha256:a9e780a6d45025469d4e9cea5fec8b0ee55ef76bae867b2f255a106c0c720133 \ - --hash=sha256:ab0a095afd9a6353872a51304c795949fb31f8fdf7519a0f27d7c0fb255983d7 \ - --hash=sha256:aebf884c1aed8cf857d3323ac041e1cf636a865d231dc241543d9a68e82b553d \ - --hash=sha256:bbc6000c1c297b969b6d0a097e84a7bfa31931b0512e4eb1674c6c6d158ade0b \ - --hash=sha256:d84b8b799c71a88a600ca0455fed2d2edb320f510b04969bf04ca6f4807ab4fc \ - --hash=sha256:dae66adb575b7eb9626d84edad4481d5c3d93ca680766c3f1891c13694913bee \ - --hash=sha256:de4a5d1ffa12127f89b5308f95c6ef5da9b1c7f5d133a7d540c364bf259351fc \ - --hash=sha256:e7cfb81c08685ad721b30cb702324de8763f7e8ff8aa653d1c7b602363524cd9 \ - --hash=sha256:ede49d49101023f45d8cfb985719a9c20cf40ff4c60a9f895d48c17dac278448 \ - --hash=sha256:ef3b69da678fe40056f585c0a788356b6eeda04b751a3837ffe75340155ecfdb \ - --hash=sha256:ef8ba83257515fd38a7007a9ae1e8b70bf38d38f4bba34c3b7660af648f88cd2 \ - --hash=sha256:f61a6d42228694cbfcdf806061e752fc88511926389a271987d61c360029b72f \ - --hash=sha256:f8730073bc1adcee13b338b347f68fa0ec7b2460aecce227be2d5abb01ea7b8c \ - --hash=sha256:fc0801be2505b2e3d3b0337c875a624eab61912b8fd55218424ad52a69deab10 +clickhouse-connect==1.1.1 \ + --hash=sha256:0b602967810358408ebd55693fd582f3a20e08800f721fb72ae320f0f74686ff \ + --hash=sha256:0bb2c8f82bb2bd5f645c0114d5d766a95dc1e0dec33c07deafa5a68dbb75f898 \ + --hash=sha256:0e9e294601aac4de51ac7cd2423176fe5111da41b5d120047606eb855795853c \ + --hash=sha256:0ec2f574530c65412a490ac6a29445509ca6346dbb15d39a825e27c73d680f3a \ + --hash=sha256:10055ae880742ffc61244eb129bbbafa6fe97731aa959d717b16513b5094255a \ + --hash=sha256:10c0354b858f500f4f26195dc37cd6047eb4d324b0b08ca6873e2241ea4a2ea8 \ + --hash=sha256:11ca173d36405d446f97dfea0a3e1531389d90d23c686ec18ebcbc0eed17200e \ + --hash=sha256:1284cb2a73b6af208aac06ad04d9121a8aa33f4b971b9d5a65264d2137b5cf0f \ + --hash=sha256:1781f330cd0678b203dc35d5df85c3b212577412c0dcf664432edbfc71a20489 \ + --hash=sha256:1e2b000c55e698220cba80e660349c60d7acb3b82172c320a51519d191e24826 \ + --hash=sha256:22ed08e9a361e1d21762c68275610ee0e023f281fe9a1653763b62fc5585a6f0 \ + --hash=sha256:233cc6eae3dbec122ed7ff694f657aa9676b36c2acbcef64e97166e4f75f5040 \ + --hash=sha256:27b665a01711e9a5b08e4412d501baf76ce4ccbeb937ec67e73040094492adbc \ + --hash=sha256:2913a4c96c3aede2b39489731eb8c39e37792755df9b56548b162ab1e09df4f3 \ + --hash=sha256:2c9a1bdb1d9705a270ec8036cd89113db04f4437a4d3b5db0774312ec4d06e30 \ + --hash=sha256:3cdae5ce54cc7d5fdaced13857612b25ae58f0830987a4b17ebcf376d71df3b2 \ + --hash=sha256:43e1fb7d588a799a3e55a4982946d59484edf1e960abc9e7ac330a3330ee4fc5 \ + --hash=sha256:49cb0d82e3f68d7304275bf350419095c080ddd49f99704dd44a956273fa7c09 \ + --hash=sha256:4f0c6c52245322c04bdccc71565ac8db9731e1787c90665df9167928101f0b89 \ + --hash=sha256:4ff227719006516877b5152e89cba514ceee9807e6b030a1ddba8d9355b87412 \ + --hash=sha256:6062c400d67dd4ab03fc3f9473134fc0a240593c242998d032d32cb04a65f083 \ + --hash=sha256:646408372c2a4b0e4068145897a35100cefc6974a409c68b20ba22403665fe5a \ + --hash=sha256:68d6e245db80ea42c59c32dbed655f28e82337d61405dde6aa5e009c507a6eee \ + --hash=sha256:70b9dee3c4629e06f2b5788d02b6cded0a32d2509966bc293cf1c39abc395a29 \ + --hash=sha256:763f7fabc921ee9fb4c07d180447a6324980bfeb981c3f53065d04bda5f133b7 \ + --hash=sha256:770da683bf65d3536c46d564e5a9311d6cd40d191a0357a762ac702813774965 \ + --hash=sha256:784a1c9513a33f6f8df0c260e43ea5cdc5fde0a2c91bca7e69ce26bc4990abcd \ + --hash=sha256:7fb296b2c51e5ad8d7f677a08a093b3b122cd4411619678a968567f3b34bf075 \ + --hash=sha256:8857676711197c981afc317a38ad1b92aedcf81b7052e67098f40adcf4b5d4ba \ + --hash=sha256:8b0590065a4c6551d1145229adf3405befc053843f6b1ffeb3802ae7221d53dc \ + --hash=sha256:8f2f9029f6589d2d349912a94a17d9997c550a7f19dd5b747f6b452764dc0e54 \ + --hash=sha256:92d885943b1b0a1489501408d6af91ec2d96189dbc475f3552f22cd43c9c6270 \ + --hash=sha256:9de3999bad13146823e9c6811dbe9a66653bf5c71980472f8fe5165d186451ee \ + --hash=sha256:a4639a1c6291358a0dd40ba0a6a6059eb5fcc9acd6f4cd61eb52b3cb5165d37e \ + --hash=sha256:a4740e012dc4ed2fab769dba4b13be92142e2df2bfb0de547b0b73f13296bcb8 \ + --hash=sha256:a6c0a8f1c4e4954161051b26bee8d24f1e53254125d2bf6e18c9360cd41fe059 \ + --hash=sha256:a706631a540ac21aac4434a446d50263c0872c9507bc6a0ccfb51467c0ff74a4 \ + --hash=sha256:ad6b32a1bb391f15345c6af4ecee152e04362c6331cd93472f2fa5e64f8a9aaa \ + --hash=sha256:b1e83e71d5b0df09cb807657ab0457eb1fd116a331039d3c5d3051387092ff6a \ + --hash=sha256:c336452cd5aeada902ac41d57296498766f95a175cb1dcf13d48479b5b31ac6b \ + --hash=sha256:c54bdd8870a644a9baa7cd68fdfc5100f5b19aa246657be863788a6a7bf4052e \ + --hash=sha256:ca28e361a51afe2e7e2fcff47c1423fd61271d26af7d19e37f6ff0ab67bf086f \ + --hash=sha256:cd501e3ccee60d4cccf5cde4b4c92632b62763563b08aa07dbfd3e2583c12005 \ + --hash=sha256:d1df245b5c21fa7bd70193164cc97f3937ccee3087dbc7906daf2e97b226b2a8 \ + --hash=sha256:d3b3806986340192ed2b197241be193649717cc58f7ef9bdf86d119758289a0f \ + --hash=sha256:d4a5e4b36219d678d495120007d0ba8b7d1bf4c5105292b35fa4473038fc2892 \ + --hash=sha256:d749389301b201ae7329c8fc96599fc116de8aadc16a5a4416e399483c569ea9 \ + --hash=sha256:d84c8ed4cc26976d2cc6725e36b85d4e24f1c43c11d82483b3060116ac0bcfd4 \ + --hash=sha256:dcdfee2f707225bfbd80ba2da5c995a38393aa02920adf770264c6f5b041e9ed \ + --hash=sha256:e762f70ebf57cb43a6257daa6196f5beb574d69915dd06c29735d5811dfd8dce \ + --hash=sha256:ee7d8308c8a688c6851b19d2bc743a02ed5d6f8679203a13872a80cf4066dd57 \ + --hash=sha256:f205be896551d7ea0a0140a86e36d261e249f99541d68a3dfdd47dd8c7c2bbbb \ + --hash=sha256:f552668320b8c533b6f2b93d03dd4840cfe0e8f5f01c76ea0d2989e4127fa60e \ + --hash=sha256:f75e0d62bdb53ba72fa2aa962950c5c107627158c9fe8900ca14da557295bdb2 # via feast (pyproject.toml) cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -803,113 +804,113 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (pyproject.toml) -coverage[toml]==7.14.0 \ - --hash=sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74 \ - --hash=sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e \ - --hash=sha256:0a951308cde22cf77f953955a754d04dccb57fe3bb8e345d685778ed9fc1632a \ - --hash=sha256:0c451757d3fa2603354fdc789b5e58a0e327a117c370a40e3476ba4eabab228c \ - --hash=sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a \ - --hash=sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe \ - --hash=sha256:1733198802d71ec4c524f322e2867ee05c62e9e75df86bdca545407a221827d1 \ - --hash=sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db \ - --hash=sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9 \ - --hash=sha256:1c9ed6ef99f88fb8c14aa8e2bf8eb0fe55fa2edfea68f8675d78741df1a5ac0e \ - --hash=sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b \ - --hash=sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66 \ - --hash=sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644 \ - --hash=sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490 \ - --hash=sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5 \ - --hash=sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8 \ - --hash=sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f \ - --hash=sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212 \ - --hash=sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb \ - --hash=sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917 \ - --hash=sha256:3fd43f0616e765ab78d069cf8358def7363957a45cee446d65c502dcfeea7893 \ - --hash=sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c \ - --hash=sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90 \ - --hash=sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d \ - --hash=sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef \ - --hash=sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9 \ - --hash=sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087 \ - --hash=sha256:5904abf7e18cddc463219b17552229650c6b79e061d31a1059283051169cf7d5 \ - --hash=sha256:5ac83957a80d0701310e96d8bec68cdcf4f90a7674b7d13f15a344315b41ab27 \ - --hash=sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020 \ - --hash=sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3 \ - --hash=sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47 \ - --hash=sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca \ - --hash=sha256:65f267ca1370726ec2c1aa38bbe4df9a71a740f22878d2d4bf59d71a4cd8d323 \ - --hash=sha256:664123feb0929d7affc135717dbd70d61d98688a08ab1e5ba464739620c6252d \ - --hash=sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd \ - --hash=sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426 \ - --hash=sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828 \ - --hash=sha256:6a78e2a9d9c5e3b8d4ab9b9d28c985ea66fced0a7d7c2aec1f216e03a2011480 \ - --hash=sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97 \ - --hash=sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8 \ - --hash=sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899 \ - --hash=sha256:70390b0da32cb90b501953716302906e8bcce087cb283e70d8c97729f22e92b2 \ - --hash=sha256:72a305291fa8ee01332f1aaf38b348ca34097f6aa0b0ef627eef2837e57bbba5 \ - --hash=sha256:731dc15b385ac52289743d476245b61e1a2927e803bef655b52bc3b2a75a21f3 \ - --hash=sha256:731e535b1498b27d13594a0527a79b0510867b0ad891532be41cb883f2128e20 \ - --hash=sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436 \ - --hash=sha256:741f57cddc9004a8c81b084660215f33a6b597dbe62c31386b983ee26310e327 \ - --hash=sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b \ - --hash=sha256:7b2bb6c9d7e769360d0f20a0f219603fd64f0c8f97de17ab25853261602be0fb \ - --hash=sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe \ - --hash=sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab \ - --hash=sha256:7c843572c605ab51cfdb5c6b5f2586e2a8467c0d28eca4bdef4ec70c5fecbd82 \ - --hash=sha256:7ebb1c6df9f78046a1b1e0a89674cd4bf73b7c648914eebcf976a57fd99a5627 \ - --hash=sha256:7ffd19fc8aed057fd686a17a4935eef5f9859d69208f96310e893e64b9b6ccf5 \ - --hash=sha256:8231ade007f37959fbf58acc677f26b922c02eda6f0428ea307da0fd39681bf3 \ - --hash=sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477 \ - --hash=sha256:829994cfe1aeb773ca27bf246d4badc1e764893e3bfb98fff820fcecd1ca4662 \ - --hash=sha256:84c32d90bf4537f0e7b4dec9aaa9a938fb8205136b9d2ecf4d7629d5262dc075 \ - --hash=sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f \ - --hash=sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1 \ - --hash=sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7 \ - --hash=sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52 \ - --hash=sha256:91b993743d959b8be85b4abf9d5478216a69329c321efe5be0433c1a841d691d \ - --hash=sha256:92af52828e7f29d827346b0294e5a0853fa206db77db0395b282918d41e28db9 \ - --hash=sha256:9336e23e8bb3a3925398261385e2a1533957d3e760e91070dcb0e98bfa514eed \ - --hash=sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90 \ - --hash=sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1 \ - --hash=sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d \ - --hash=sha256:9cd1169b2230f9cbe9c638ba38022ed7a2b1e641cc07f7cea0365e4be2a74980 \ - --hash=sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca \ - --hash=sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa \ - --hash=sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6 \ - --hash=sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc \ - --hash=sha256:a1816c505187592dcd1c5a5f226601a549f70365fbd00930ac88b0c225b76bb4 \ - --hash=sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c \ - --hash=sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d \ - --hash=sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84 \ - --hash=sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2 \ - --hash=sha256:a93bac2cb577ef60074999ed56d8a1535894398e2ed920d4185c3ec0c8864742 \ - --hash=sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2 \ - --hash=sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb \ - --hash=sha256:b34ece8065914f938ed7f2c5872bb865336977a52919149846eac3744327267a \ - --hash=sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9 \ - --hash=sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96 \ - --hash=sha256:b4f07cf7edcb7ec39431a5074d7ea83b29a9f71fcfc494f0f40af4e65180420f \ - --hash=sha256:b812eb847b19876ebf33fb6c4f11819af05ab6050b0bfa1bc53412ae81779adb \ - --hash=sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63 \ - --hash=sha256:bcb2e855b87321259a037429288ae85216d191c74de3e79bf57cd2bc0761992c \ - --hash=sha256:bfb0ed8ec5d25e93face268115d7964db9df8b9aae8edcde9ec6b16c726a7cc1 \ - --hash=sha256:c7492f2d493b976941c7ca050f273cbda2f43c381124f7586a3e3c16d1804fec \ - --hash=sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367 \ - --hash=sha256:c83d2399a51bbec8429266905d33616f04bc5726b1138c35844d5fcd896b2e20 \ - --hash=sha256:ca3d9cf2c32b521bd9518385608787fa86f38daf993695307531822c3430ed67 \ - --hash=sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b \ - --hash=sha256:d128b1bba9361fbaaf6a19e179e6cfd6a9103ce0c0555876f72780acc93efd85 \ - --hash=sha256:d1bb3543b58fea74d2cd1abc4054cc927e4724687cb4560cd2ed88d2c7d820c0 \ - --hash=sha256:d8b013632cc1ce1d09dbe4f32667b4d320ec2f54fc326ebeffcd0b0bcc2bb6c4 \ - --hash=sha256:d8e1762f0e9cbc26ec315471e7b47855218e833cd5a032d706fbf43845d878c7 \ - --hash=sha256:d9c8ef6ed820c433de075657d72dda1f89a2984955e58b8a75feb3f184250218 \ - --hash=sha256:dc38367eaa2abb1b766ac333142bce7655335a73537f5c8b75aaa89c2b987757 \ - --hash=sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef \ - --hash=sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1 \ - --hash=sha256:fab3877e4ebb06bd9d4d4d00ee53309ee5478e66873c66a382272e3ee33eb7ea \ - --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ - --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 +coverage[toml]==7.14.1 \ + --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ + --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ + --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \ + --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \ + --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \ + --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \ + --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \ + --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \ + --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \ + --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \ + --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \ + --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \ + --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \ + --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \ + --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \ + --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \ + --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \ + --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \ + --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \ + --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \ + --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \ + --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \ + --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \ + --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \ + --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \ + --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \ + --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \ + --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \ + --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \ + --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \ + --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \ + --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \ + --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \ + --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \ + --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \ + --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \ + --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \ + --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \ + --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \ + --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \ + --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \ + --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \ + --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \ + --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \ + --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \ + --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \ + --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \ + --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \ + --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \ + --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \ + --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \ + --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \ + --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \ + --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \ + --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \ + --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \ + --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \ + --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \ + --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \ + --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \ + --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \ + --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \ + --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \ + --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \ + --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \ + --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \ + --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \ + --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \ + --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \ + --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \ + --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \ + --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \ + --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \ + --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \ + --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \ + --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \ + --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \ + --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \ + --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \ + --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \ + --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \ + --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \ + --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \ + --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \ + --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \ + --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \ + --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \ + --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \ + --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \ + --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \ + --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \ + --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \ + --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \ + --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \ + --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \ + --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \ + --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \ + --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \ + --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \ + --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \ + --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \ + --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \ + --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \ + --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ + --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ + --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c # via pytest-cov cryptography==46.0.7 \ --hash=sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65 \ @@ -985,9 +986,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -databricks-sdk==0.109.0 \ - --hash=sha256:46745a25324a5b36f01236760e44fc6e2bce3f051224e6f8aef7633477fcbec8 \ - --hash=sha256:96b90f5ee2e0fac89f351aa77348263e1e0ed5d4d867cdfaefd2e0acc01b1e81 +databricks-sdk==0.112.0 \ + --hash=sha256:2121c0852eef39c20d6381e6a2ac52f580610b268891722e39a3b53d92da78b7 \ + --hash=sha256:39ed2fc6a0a1110e64ad8903a471daea0570ca544811ba88163bbb199a67dea7 # via # mlflow-skinny # mlflow-tracing @@ -1059,9 +1060,7 @@ deltalake==0.25.5 \ deprecated==1.3.1 \ --hash=sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f \ --hash=sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223 - # via - # cassandra-driver - # opentelemetry-api + # via cassandra-driver deprecation==2.1.0 \ --hash=sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff \ --hash=sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a @@ -1093,9 +1092,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.76.0 \ - --hash=sha256:55af705c6d0755254afddb959fe5dea3a6d413d3ea7539e380bb008268806316 \ - --hash=sha256:e4f681ad434cb45ba93bd3afaab62c5d910bf9ac6b3fdb98b12ee2e476bb75a4 +docling-core[chunking]==2.77.1 \ + --hash=sha256:4e38df7143e2ecfe69ecf05278e8e25063a9ec1b6d0b5e28e3b8f1db7cc5ed72 \ + --hash=sha256:d93c7cdc0de4bbf36ef74fb4c3c3d49bb8420ff27201f3b66908672326835b47 # via # docling # docling-ibm-models @@ -1137,42 +1136,42 @@ docutils==0.19 \ --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc # via sphinx -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -1181,13 +1180,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.4.0 \ - --hash=sha256:2dbb907ededa14e6ff5be058f8737bbba3926bd1b1a40dbc98a471285fa2cb3c \ - --hash=sha256:4eff263c8011dd950451b72be567a2484b814a89c70081053d6ae6addeab52e2 +elastic-transport==9.4.1 \ + --hash=sha256:186a29e6c66ff269487e33f7b17176316e18b6061702c25eb0bb15681302e91d \ + --hash=sha256:d12c86ea73528690ebf63a488d9ae323292e6aa5ee55e1e29f14293472f4197f # via elasticsearch -elasticsearch==9.4.0 \ - --hash=sha256:95e38e130b1d01438b19343dfa0458e1857a7df8e2e30cbf23a72182b03f05ff \ - --hash=sha256:e20095ba40229f4562f7cc951883c7c62a017435f94dbe0c21526f58ba411885 +elasticsearch==9.4.1 \ + --hash=sha256:1d78fdfba97a903ec35a5eb5808a74e33392b7c620bd5f742d465a3a26c27d75 \ + --hash=sha256:71ab71c3d1b20fd88c2922fb82c3277cce7ea03c160686e7b9368b265c2b4cac # via feast (pyproject.toml) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1239,9 +1238,9 @@ faiss-cpu==1.10.0 \ --hash=sha256:e71f7e24d5b02d3a51df47b77bd10f394a1b48a8331d5c817e71e9e27a8a75ac \ --hash=sha256:f71c5860c860df2320299f9e4f2ca1725beb559c04acb1cf961ed24e6218277a # via feast (pyproject.toml) -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -1931,50 +1930,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx[http2]==0.27.2 \ --hash=sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0 \ @@ -2020,9 +2026,9 @@ identify==2.6.19 \ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842 # via pre-commit -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -2038,9 +2044,9 @@ imagesize==2.0.0 \ --hash=sha256:5667c5bbb57ab3f1fa4bc366f4fbc971db3d5ed011fd2715fd8001f782718d96 \ --hash=sha256:8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3 # via sphinx -importlib-metadata==9.0.0 \ - --hash=sha256:2d21d1cc5a017bd0559e36150c21c830ab1dc304dedd1b7ea85d20f45ef3edd7 \ - --hash=sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc +importlib-metadata==8.9.0 \ + --hash=sha256:58850626cef4bd2df100378b0f2aea9724a7b92f10770d547725b047078f99ee \ + --hash=sha256:e0f761b6ea91ced3b0844c14c9d955224d538105921f8e6754c00f6ca79fba7f # via # build # dask @@ -2329,9 +2335,9 @@ kiwisolver==1.5.0 \ --hash=sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09 \ --hash=sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398 # via matplotlib -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) lark==1.3.1 \ --hash=sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905 \ @@ -2559,9 +2565,9 @@ markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich -marko==2.2.2 \ - --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ - --hash=sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e +marko==2.2.3 \ + --hash=sha256:8e1d7a0387281e59dfbc52a381b58c570156970e36b2bbe047f8a3a2f368cacc \ + --hash=sha256:e31ec2875383bc62f9093d16babed5a2c2cde601c00d834ea935a2222120ec19 # via docling markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -2752,17 +2758,17 @@ mistune==3.2.1 \ # via # great-expectations # nbconvert -mlflow==3.12.0 \ - --hash=sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47 \ - --hash=sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0 +mlflow==3.11.1 \ + --hash=sha256:84e54c4be91b5b2a19039a2673fe688b1d7307ceddacc08af51f8df05b19ee56 \ + --hash=sha256:8f6bf1238ac04f97664c229dd480380c5c254a78bdb3c0e433e3a0397508b1af # via feast (pyproject.toml) -mlflow-skinny==3.12.0 \ - --hash=sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd \ - --hash=sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10 +mlflow-skinny==3.11.1 \ + --hash=sha256:82ffd5f6980320b4ac19f741e7a754faa1d01707e632b002ea68e04fd25a0535 \ + --hash=sha256:86ce63491349f6713afc8a4ef0bf77a8314d0e79e03753cb150d6c860a0b0475 # via mlflow -mlflow-tracing==3.12.0 \ - --hash=sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80 \ - --hash=sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518 +mlflow-tracing==3.11.1 \ + --hash=sha256:cb63cee16385d081467ec5bee4807fe1af59ddfdf04be4c79e7a7813b1002193 \ + --hash=sha256:fa82df64dacf8293b714ae666440fe7c1902c6470c024df389bb91e9de3106d9 # via mlflow mmh3==5.2.1 \ --hash=sha256:022aa1a528604e6c83d0a7705fdef0b5355d897a9e0fa3a8d26709ceaa06965d \ @@ -3341,61 +3347,78 @@ openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 # via docling -opentelemetry-api==1.16.0 \ - --hash=sha256:4b0e895a3b1f5e1908043ebe492d33e33f9ccdbe6d02d3994c2f8721a63ddddb \ - --hash=sha256:79e8f0cf88dbdd36b6abf175d2092af1efcaa2e71552d0d2b3b181a9707bf4bc +opentelemetry-api==1.42.1 \ + --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \ + --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716 # via # mlflow-skinny # mlflow-tracing # opentelemetry-sdk + # opentelemetry-semantic-conventions opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace # via # mlflow-skinny # mlflow-tracing -opentelemetry-sdk==1.16.0 \ - --hash=sha256:15f03915eec4839f885a5e6ed959cde59b8690c8c012d07c95b4b138c98dc43f \ - --hash=sha256:4d3bb91e9e209dbeea773b5565d901da4f76a29bf9dbc1c9500be3cabb239a4e +opentelemetry-sdk==1.42.1 \ + --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \ + --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7 # via # mlflow-skinny # mlflow-tracing -opentelemetry-semantic-conventions==0.37b0 \ - --hash=sha256:087ce2e248e42f3ffe4d9fa2303111de72bb93baa06a0f4655980bc1557c4228 \ - --hash=sha256:462982278a42dab01f68641cd89f8460fe1f93e87c68a012a76fb426dcdba5ee +opentelemetry-semantic-conventions==0.63b1 \ + --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \ + --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682 # via opentelemetry-sdk -oracledb==4.0.0 \ - --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ - --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ - --hash=sha256:22e33228d6955db8a69c8c83ee4b392a534c86f9493647ea3f511c2f5df08dd4 \ - --hash=sha256:244ebe47c4a4e32bc07a4206192de04d92fbfeb72bf11a01493e3a710bd4b19a \ - --hash=sha256:4582f87e56c2a2e3a74942f087c096525543e92fb59d3758e41d41145b809c52 \ - --hash=sha256:4e47a130120181b8226daf9e928e3c22107c1d03d9ac5f6b891360677a811787 \ - --hash=sha256:4fcbbd8977d8d91ae0d931ce21cda0048f9685e6cc29c9a84b49a769a2511b08 \ - --hash=sha256:62b36249e8db777cd6a2b56be768642d055c89df3cbcfb5d6a3b4dc2426b34df \ - --hash=sha256:6c65366200b44c0a71b927cd813628f0d993b098c61cc82c54c53bccb0dd0d80 \ - --hash=sha256:6fc3dd6ce0fb1d8ca865bdf39183e663b1dd5e2d585327feffedf379a05e3abb \ - --hash=sha256:758ac5a56e872eb517cbae5d28574b200d7b2b28c793ee31b6ce4938777d8364 \ - --hash=sha256:80434a5aa393833bfde853e9e2943671cab219b3081c34aad1974df73c21e04d \ - --hash=sha256:893acd019ee45184e85ef1b5f1ba425ab4da3e8ed4dab1339b7ef329d3658ffc \ - --hash=sha256:8974532ca43f50bc6c41b9efd78219121d3fa52c673d9790da12468d06fcf59f \ - --hash=sha256:8dd447f52482779f6cde277eaf7d734c7ac8f07f4d4e3d3609510f6033dfd0b8 \ - --hash=sha256:922c59a7fcdc44c93dac852b33b9ebae202614235e0ed235e632bf8d5ca4dd55 \ - --hash=sha256:997a4cd0f563b5a1aa92aeb9bdd70e67e3789f0d1a418600a7256b27e6c8947f \ - --hash=sha256:a1c22feae372978861786c65560498dbb36e32d7447318499694d4504c67c043 \ - --hash=sha256:a3a0221ccb33fb47b46cc3fbe587d80144e0ae6237ded5b3c58e8f6c674f02dc \ - --hash=sha256:a7e2c3d99a691e71b4eeb9efbefdfae4dcdfe3bb78abf05a5d9b1a5e65ce8ea0 \ - --hash=sha256:aad06930cf7a99914c863e6e550111b452560bef82b25bd9650541d5c7622837 \ - --hash=sha256:b691fbca4c83e72773c1bee17df5dfced4f01334ea48242262430074cc5a9b36 \ - --hash=sha256:b94a53c2524f4b9522a3091abdb12a2d8e1ac80a83456f7278d2165c3ec54482 \ - --hash=sha256:bad1d5101cd6191271ab89ec372ad8ca119dac9453f59b7be948bdebf6cd5a55 \ - --hash=sha256:ccf0b875850109a77ab932b03dbfa6c98e4eb011545465008d32e7a7207e8e9a \ - --hash=sha256:cd83db5710e26502352c4ce3f5b5e29f202223f9dade089a28daeb688083d0db \ - --hash=sha256:d4b36f906f2e6812d2e4bc1fe965d50670a3fd552cef66bcb2da892e946bba0c \ - --hash=sha256:dc96cf923b62baae45bf698f4e80407b5640d9760682ce5d424e847bf9e20298 \ - --hash=sha256:e29d9c9db167ade1c1649123c8f7cadf248f8e7f66f86335ec5b66b97f70f684 \ - --hash=sha256:f5b1f7ae53883336e23a235339e023d26d1d4b0d014ce4944c61dc79951c89df \ - --hash=sha256:f8c7f26d6e75848d7c75604eff71272c202ddb5eb65996630da3d6d5452401f6 +oracledb==4.0.1 \ + --hash=sha256:032ca4f558b05f03fa1bef1b04e59ec350ae0b22e6d85c47f4ac62ae98315823 \ + --hash=sha256:03afeda85bec3eca983ebf3ad9910d0f217d99300258366d287e015a041d6c13 \ + --hash=sha256:08e84a6af1b6e5921dba088dd9fc0738927206eafe5ce9763c34195f87556849 \ + --hash=sha256:0d3c6ed987df64b914ece0722692419fe494d07f15bb4d7715adeada4f914c3a \ + --hash=sha256:0ece951553c106a0896c8e1690bcdf69d472761fa65fec9b8152cbce13ab8b81 \ + --hash=sha256:10204432f0eea8707a79c75bdccb84071e43fd19c658cb3b34d1746b12c6e7fe \ + --hash=sha256:20a10f903c8da59e9689a98bd68012f78fa19bed950ad9f19cd8f5b8b97e73a0 \ + --hash=sha256:29ae0ff517a3241060eeee15a321b710c3f83a688cf2da7d5729adbe212e2b00 \ + --hash=sha256:34bbea44423ed8b24093aa859ca7ee9b6e76ea490f9acdc5f6ff01aa1083e343 \ + --hash=sha256:3b5ef1676a27b7e0a7ec55be27fd8f6d28d1601f5e8dfdae78705909f25b7c0a \ + --hash=sha256:416b324cd7715073cf5f3d577330387ffd59741463995c25bdc2d82b3e80b88e \ + --hash=sha256:443b2f03461e873ccd73dff3d8541fcf974c05e13e296a6687ffbb0c4a72c0a1 \ + --hash=sha256:4b42725337f80d433a3bd2928c08667e5b89da9ce05cf9ae3a4189c4fc4805ea \ + --hash=sha256:523b3356cde9d588ba250cefafdfc34869233d65c179f805ea6e4d3d6b209a7f \ + --hash=sha256:5332a4499d61c3cd659ed09bbd0d3c9a4c74a70bd51136d5c3de9127dc6d7434 \ + --hash=sha256:5646c126d4ab506ee2bda261e792f0036231ee929296057e79857ec678d86d4f \ + --hash=sha256:7156ef112a901967b3ee89b6c582bafc5a3082c47ca566de1a79e9ac3b48da32 \ + --hash=sha256:73ba32597fe1da72e0824aaa4b1900ec08a3b77268cb4eb45c733ae7e7043e70 \ + --hash=sha256:7bbe5611f9196f0ec15d4bf838ec728d89586a962a20d65cad898aec020e11c4 \ + --hash=sha256:7db5a43c29a23ed23923a29816c65c7a81fe00f2abfe6bf36d83ad952abd9b89 \ + --hash=sha256:8159c5bd8f25b0ca0ce30f21e7a732a2bdfb4adb81b9c8ea1ca75339d8ec8398 \ + --hash=sha256:828dd4c981b286f0467feab1c035fae8d3888cfdc707706841734821877ae1f3 \ + --hash=sha256:86a06d0afb3bb3a24bace0e72fb9abca2093efe0fa3457c65c13ba4eb5000b0b \ + --hash=sha256:86ac65cbc8d29626b1d9d203f9151566c26a78e55bdfc030c06169ae8017f458 \ + --hash=sha256:873fcca53306e2b3b445a7d657cddc19e415a7aa7e392c473dfd1a3ae3970989 \ + --hash=sha256:8e13ff1e6f28fdb863180d23fa94cb42c619c29d2981e24992431e51b97caa54 \ + --hash=sha256:8fcad6d9628923281bf21e48a391ac2f87ec6950dc63381d8fea470e3128aef0 \ + --hash=sha256:90586b3c7729b9cf3d40df902e81257f01e15e3408d8b6b9dbf91e939b64f72c \ + --hash=sha256:9f521b3f3f14fa9b8e748aeb79b064ae6767fcb0e8ff969a9aba7a852f059658 \ + --hash=sha256:a029dcee759bca56a8c95e952040c3d3f57e5ec05965355293b21930a66967fb \ + --hash=sha256:ae894ca2705929eb0ac228329336fd03388ad6e3b54002be6f5d4400a8feaf52 \ + --hash=sha256:b05bfadbfe462c39cc97258a973972f5bbbc9f8e2e9a4c2e0efcb1ec86b91088 \ + --hash=sha256:b09eec35681d72c9476e6d715b89bb775724a31e7363df6beba7470494ea8040 \ + --hash=sha256:b73820521eccd290506af94e1ffb9a8a5941b4018e3861df9b040652a7cef123 \ + --hash=sha256:c05a01d6ad610a88c2aa1a43b1dc0a8485f5fbd4374d2b36908859d4205de192 \ + --hash=sha256:c24b174aac8163065736072a726a50091791f6d30ac5c44965cf7044e86fbaf8 \ + --hash=sha256:c2d394453f669858bec942ff0da18b6ebade296ece823d582ad2b464ed5c6c90 \ + --hash=sha256:cb7727f93ff962ab826bc3d0bca4b0e5bf45ecb7c525551c70c9e094f0f27027 \ + --hash=sha256:ce3f25552fe58df5c266874f8b13f0a8ab7fcd09ab4b476bc15520a67527ca4b \ + --hash=sha256:ce6319ee01dcbb4d74f0e2a5794c6a566f339958ecac9830c67c7070521620e2 \ + --hash=sha256:cf61e42b9ef723dbdd0b23032b695e872009ed7341003df59d9a97cd960df977 \ + --hash=sha256:d132af7d95474d207632363575c7968b09e2d33dd24af3a36f539254433f4ae8 \ + --hash=sha256:d7cd278d59780e22e0a7451d208460756d779dc62b55bdbd95652f9640fbf8c3 \ + --hash=sha256:dbe8b44fea57385617838f2acfce8cc19f6c95cd9e65e7235e86b5932af1acd9 \ + --hash=sha256:e36581bb10e719d928dad12018c2d42606db2c34f49d6665b06f701f049255f0 \ + --hash=sha256:e3d54b624748cfe42248c4bc62c3f788632a2077058485a9acb3150312b1c396 \ + --hash=sha256:e4926e699a42c526137724960fa4303ecb0b542186b11d3705ac84414a896508 # via ibis-framework orjson==3.11.9 \ --hash=sha256:011382e2a60fda9d46f1cdee31068cfc52ffe952b587d683ec0463002802a0f4 \ @@ -4411,9 +4434,9 @@ pygments==2.20.0 \ # nbconvert # rich # sphinx -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -4560,9 +4583,9 @@ pymssql==2.3.2 \ --hash=sha256:fb8a7b197aaf466a7577ca6690aa9d747081b653ab212d052d71f3cc10587c3b \ --hash=sha256:fdd774b26407babd0205ef85a098f90553e6b3da77a22322a1e7d2cb51f742c0 # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyodbc==5.3.0 \ --hash=sha256:01166162149adf2b8a6dc21a212718f205cabbbdff4047dc0c415af3fd85867e \ @@ -4663,8 +4686,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.1.1 \ - --hash=sha256:77f78984aa84fbe865c717dd37b49913b4e5c97d76ef6824f932f1aefa6621ec +pyspark==4.1.2 \ + --hash=sha256:fa5d6159f700d0990a07f4f62df1b7449401dccee9cd7d5d6df8957530841602 # via feast (pyproject.toml) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -5300,9 +5323,9 @@ requests-toolbelt==1.0.0 \ --hash=sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6 \ --hash=sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 # via python-keycloak -responses==0.26.0 \ - --hash=sha256:03ec4409088cd5c66b71ecbbbd27fe2c58ddfad801c66203457b3e6a04868c37 \ - --hash=sha256:c7f6923e6343ef3682816ba421c006626777893cb0d5e1434f674b649bac9eb4 +responses==0.26.1 \ + --hash=sha256:2eb3218553cc8f79b57d257bac23af5e1bf381f5b9390b1767816f0843e01dc2 \ + --hash=sha256:8aacc4586eb08fb2208ef64a9eb4258d9b0c6e6f4260845f2f018ab847495345 # via moto rfc3339-validator==0.1.4 \ --hash=sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b \ @@ -5463,25 +5486,25 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.15.13 \ - --hash=sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629 \ - --hash=sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21 \ - --hash=sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55 \ - --hash=sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41 \ - --hash=sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8 \ - --hash=sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7 \ - --hash=sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4 \ - --hash=sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd \ - --hash=sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2 \ - --hash=sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51 \ - --hash=sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5 \ - --hash=sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9 \ - --hash=sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22 \ - --hash=sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca \ - --hash=sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6 \ - --hash=sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b \ - --hash=sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7 \ - --hash=sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6 +ruff==0.15.15 \ + --hash=sha256:2728b93d7b23a603ea2c0ac6eb73d760bd38ec9de35f35fb41e18f7a3fee7622 \ + --hash=sha256:29428ea79694afbe756d45fd59b36f22b6b020dc0443cf7de0173046236964b9 \ + --hash=sha256:3c8ceca6792f38196b8f589bc92eccd03eef286602da92e5dc05cc42ef6441b7 \ + --hash=sha256:3cdb1679e06a1f6b47bc384714ae96f6e2fb65ca441eb78c43d2ca554176ce1f \ + --hash=sha256:48decfa11d740de4889de623be1463308346312f2409a56e24aa280c86162dc4 \ + --hash=sha256:587a6278ed42059191c1a466e490bd7930fb50bd2e255398bc29616c895a61cb \ + --hash=sha256:7614ee79c69788cf6cedd568069ade9cecc22a1ad20494efe8d0c9ebb4b622d4 \ + --hash=sha256:77d955a431430c66f72dd94e379ad38a16daea3d25094872ac4edf9e797be530 \ + --hash=sha256:7aa77465b8ecaf1a27bea098d696f7fed5e1eccbd10b321b682d6de586ae5627 \ + --hash=sha256:8df0323902e15e24bc4bf246da830573d3cf3352bd0b9a164eab335d111ff4a4 \ + --hash=sha256:a5015088452ca0081387063649ec67f06d3d1d6b8b936a1f836b5e9657ecd48c \ + --hash=sha256:ac5a646d1f6a7dadd5d50842dae2c1f9862ac887ef5d1b1375e02def791fde6e \ + --hash=sha256:b8dff018130b46d8e5bf0f926ef6b60cf871d6d5ae45fc9334e09632daa741d6 \ + --hash=sha256:be582fcc0db438902c7792b08d6ddf6c9b9e21addaa10092c2c741cfb09e5a45 \ + --hash=sha256:cf93e5388f412e1b108b1f8b34a6e036b70fe8aff89393befad96fe48670311b \ + --hash=sha256:db5bd4d802415cca656dc1616070b725952d6ae95eb5d4831e49fbd94a38f75f \ + --hash=sha256:df0c1c084f5f4be9812f61518a45c440d3c30d69ce4bf6c5270e66d38338f02a \ + --hash=sha256:f5294aab6356c81600fcdea3a62bb1b924dfd5e91767c12318d3f68f86af57cd # via feast (pyproject.toml) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5641,9 +5664,9 @@ send2trash==2.1.0 \ --hash=sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c \ --hash=sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459 # via jupyter-server -sentence-transformers==5.5.0 \ - --hash=sha256:75313fdcc2397ec4b58297c25d6187fcca5a6b2aeb09570a72eff5a3223d8d58 \ - --hash=sha256:9cec675e68bfe09d07466d1f13ab06d1d79d60a0f45b154baf433bde6ae159cb +sentence-transformers==5.5.1 \ + --hash=sha256:02b7740dfc60bdbbcb6061625f5d97a5c1a4e2d3baac5f9391b912bb5eae2290 \ + --hash=sha256:4fe11d433badc5282d32f7fc08bc714216b7a5aca426f9df77a45a554756deb7 # via feast (pyproject.toml) setuptools==80.10.2 \ --hash=sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70 \ @@ -5652,8 +5675,6 @@ setuptools==80.10.2 \ # feast (pyproject.toml) # grpcio-tools # jupyterlab - # opentelemetry-api - # opentelemetry-sdk # pandas-gbq # pbr # pip-tools @@ -5758,44 +5779,45 @@ sniffio==1.3.1 \ # elastic-transport # elasticsearch # httpx -snowballstemmer==3.0.1 \ - --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ - --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 +snowballstemmer==3.1.0 \ + --hash=sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154 \ + --hash=sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f # via sphinx -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -soupsieve==2.8.3 \ - --hash=sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349 \ - --hash=sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95 +soupsieve==2.8.4 \ + --hash=sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e \ + --hash=sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65 # via beautifulsoup4 sphinx==6.2.1 \ --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ @@ -5825,70 +5847,65 @@ sphinxcontrib-serializinghtml==2.0.0 \ --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 \ --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d # via sphinx -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via # feast (pyproject.toml) # alembic @@ -5949,13 +5966,13 @@ stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython -starlette==0.52.1 \ - --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ - --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp - # mlflow-skinny # sse-starlette sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ @@ -6238,17 +6255,17 @@ torchvision==0.27.0 \ # docling-ibm-models # easyocr # timm -tornado==6.5.5 \ - --hash=sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9 \ - --hash=sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6 \ - --hash=sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca \ - --hash=sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e \ - --hash=sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07 \ - --hash=sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa \ - --hash=sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b \ - --hash=sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521 \ - --hash=sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7 \ - --hash=sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5 +tornado==6.5.6 \ + --hash=sha256:1c34cfab7ad6d104f052f55de06d39bbafc5885cfeb4da688803308dbcfa90b7 \ + --hash=sha256:2543597b24a695d72338a9a77818362d72387c03ae173f1f169eadc5c91466ac \ + --hash=sha256:385f35e4e22fb52551dfcda4cdc8c30c61c2c001aef5ddad99cdfe116952efd3 \ + --hash=sha256:38bc01b4acacded2de63ae78023548e41ebe6fbed3ec05a796d7ae3ad893887e \ + --hash=sha256:65fcfaafb079435c2c19dc9e07c0f1cf0fa9051759ed0a7d0a3ba7ea7f64919c \ + --hash=sha256:6739bf1e8eb09230f1280ddbd3236f0309db70f2c551a8dbc40f62babdf82f79 \ + --hash=sha256:8666946e70171b8c3f1fc9b7876fac492e84822c4c7f3746f4e8f8bc9ac92a79 \ + --hash=sha256:9a365179fe8ff6b8766f602c0f67c185d778193e9bdd828b19f0b6ed7764177d \ + --hash=sha256:b942e6a137fda31ff54bf8e6e2c8d1c37f1f50583f3ed53fb840b53b9601d104 \ + --hash=sha256:db475f1b67b2809b10bb16264829087724ca8d24fe4ed47f7b8675cae453ef86 # via # ipykernel # jupyter-client @@ -6473,7 +6490,9 @@ typing-extensions==4.15.0 \ # mlflow-skinny # multidict # mypy + # opentelemetry-api # opentelemetry-sdk + # opentelemetry-semantic-conventions # oracledb # psycopg # psycopg-pool @@ -7177,135 +7196,111 @@ xxhash==3.7.0 \ --hash=sha256:fe32736295ea38e43e7d9424053c8c47c9f64fecfc7c895fb3da9b30b131c9ee \ --hash=sha256:fe820f104473d1516ecd628993690bc1f79b0e699f32711d42a5a70b3d0f8170 # via datasets -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.10-minimal-requirements.txt b/sdk/python/requirements/py3.10-minimal-requirements.txt index 82ae24de53a..babc315d11c 100644 --- a/sdk/python/requirements/py3.10-minimal-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-requirements.txt @@ -4,9 +4,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -129,7 +129,9 @@ aiohttp==3.13.5 \ --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 - # via aiobotocore + # via + # aiobotocore + # kubernetes aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -231,9 +233,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # httpcore # httpx @@ -461,13 +463,12 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask - # typer # uvicorn cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -546,42 +547,42 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (pyproject.toml) -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -591,9 +592,9 @@ exceptiongroup==1.3.1 \ --hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \ --hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598 # via anyio -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -1066,50 +1067,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx==0.28.1 \ --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ @@ -1125,9 +1133,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -1159,9 +1167,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) librt==0.11.0 \ --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ @@ -1839,9 +1847,9 @@ pathspec==1.1.1 \ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 # via mypy -platformdirs==4.9.6 \ - --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ - --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 +platformdirs==4.10.0 \ + --hash=sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7 \ + --hash=sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a # via snowflake-connector-python prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ @@ -1980,15 +1988,15 @@ proto-plus==1.28.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via # feast (pyproject.toml) # google-api-core @@ -2260,9 +2268,9 @@ pygments==2.20.0 \ # via # feast (pyproject.toml) # rich -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -2271,9 +2279,9 @@ pymilvus==2.5.18 \ --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyopenssl==26.2.0 \ --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ @@ -2561,101 +2569,97 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) sqlglot==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ @@ -2665,10 +2669,11 @@ sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp # sse-starlette @@ -2756,9 +2761,9 @@ typeguard==4.5.2 \ --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) -typer==0.25.1 \ - --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ - --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc +typer==0.26.3 \ + --hash=sha256:3e2b9352f535e5303ef27806dadc2c8647687bdca5c902f03fec3fb88f46a46a \ + --hash=sha256:e70549ec5a403ca8a0bf0802ddd9f3c6ff7a14ccbb859b01b697baa943636f33 # via fastapi-mcp types-pymysql==1.1.0.20260518 \ --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ @@ -3211,135 +3216,111 @@ wrapt==1.17.3 \ --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c # via aiobotocore -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt index 739df33ddc0..5d50418abc8 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt @@ -206,46 +206,46 @@ cython==3.0.12 \ # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.4 \ - --hash=sha256:02cb0cc0f23b9874ad262d7d2b9560aed9c7e2df07b49b920bda6f2cc9cb505e \ - --hash=sha256:03893c88299a2c868bb741ba6513357acd104e7c42265809fd58dce1456a36fc \ - --hash=sha256:14dae483ca2838b287085ff98bc206abd7a597b7bb16939a092f8e84d9062842 \ - --hash=sha256:1a64a112a34ec719b47c01395647e54fb4cf088a511613f9a3a5196694e8e382 \ - --hash=sha256:28b1e363b024c4b8dcf52ff68125e635cb9cb4b0ba997d628f25e32543a71103 \ - --hash=sha256:28e8075087a59756f2d059273184b8b639fe0f16cf17470bd91c39921bc154e0 \ - --hash=sha256:2b1f12c0e4798293d2754e73cd6f35fa5bbdf072bdc14bc6fc442c059ef2d290 \ - --hash=sha256:31a90b4a2c47bb6d56baeb926948348ec968e932c1ae2c53239164e3e8880ccf \ - --hash=sha256:35ab0632186057406ec729374c737c37051d2eacad9d515d94e5a3b3e58a9b02 \ - --hash=sha256:36bf3f5eb56d5281aafabecbaa6ed288bc11db87547bba4e1e52943ae6961ccf \ - --hash=sha256:3b6e58f73a69230218d5381817850ce6d0da5bb7e87eb7d528c7027cbba40b06 \ - --hash=sha256:3b8e62049afef9da931d55de82d8f46c9a147313b69d5ff6af6e9121d545ce7a \ - --hash=sha256:55b6c44cd30821f0b25220ceba6fe636ede48981d2a41b9bbfe3c7902ce44ea7 \ - --hash=sha256:55eb425c0baf1c8a46aa4424bc35b709db22f3c8a1de33adb3ecb8a3d54ea42a \ - --hash=sha256:64d7f71be3dd6d6d4a4c575bb3a4674ea06d1e1e5e4cd1b9882a2bc40ed3c4c9 \ - --hash=sha256:67922c9de058a0bfb72d2e75222c52d09395614108c68a76d9800f150296ddb3 \ - --hash=sha256:6d5267f22b6451eb1e2e1b88f6f78a2c9c8733a6ddefd4520d3968d26b824581 \ - --hash=sha256:72e6c0bbd978e2678b45351395f6825b9b8466095402eae293f4f7a73e9a3e85 \ - --hash=sha256:732fc93bc33ae4b14f6afaca663b916c2fdd5dcbfad7114e17fb2434eeaea45c \ - --hash=sha256:767b143704bdd08a563153448955935844e53b852e54afdc552b43902ed1e235 \ - --hash=sha256:83266c356c13c68ffe658b4905279c993d8a5337bb0160fa90c8a3e297ea9a2e \ - --hash=sha256:84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6 \ - --hash=sha256:869487ea41d004f8b92171f42271fbfadb1ec03bede3158705d16cd570d6b891 \ - --hash=sha256:90f43be4eaa6afd58ce20d970bb1657a3627c44e1760630b82aa256ba74b4acb \ - --hash=sha256:983f9d2bb8a896e16fa68f2b37866ded35fa980195eefe62f764ddc5f9f5ef8e \ - --hash=sha256:b362819d155fff1482575e804e43e3a8825332d32baa15245f4642022664a3f4 \ - --hash=sha256:b84d4e3c875915545f77c88dba65ad3741afd2431e5cdee6c9a20cefe6905647 \ - --hash=sha256:ca2399dc75796b785f74fb85c938254fa10c80272004d573c455f9123eceed86 \ - --hash=sha256:ca578c9cb872c7ecffbe14815dc4590a003bc13339e90b2633540c7e1a252839 \ - --hash=sha256:d4b4fd5332ab093131fa6172e8362f16adef3eac3179fd24bbdc392531cb82fa \ - --hash=sha256:e3b5ac54e95f034bc7fb07313996d27cbf71abc17b229b186c1540942d2dc28e \ - --hash=sha256:e65e4773021f8dc8532010b4fbebe782c77f9a0817e93886e518c93bd6a44e9d \ - --hash=sha256:e71efb20048358a6b8ec604a0532961c50c067b5e63e345e2e359fff72feaee8 \ - --hash=sha256:f136f379a4a54246facd0eb6f1ee15c3837cb314ce87b677582ec014db4c6845 \ - --hash=sha256:f583cad7a7eed109f0babb5035e92d0c1260598f53add626a8568b57246b62c3 \ - --hash=sha256:f81eda419b5ada7b197bbc3c5f4494090e3884521ffd75a3876c93fbf66c9ca8 \ - --hash=sha256:f8d685a70bce39acc1d62ec3916d9b724b5ef665b0ce25ae55e1c85ee09747fc \ - --hash=sha256:fdfdd753ad7e18e5092b413e9f542e8d28b8a08203126090e1c15f7783b7fe57 \ - --hash=sha256:ff9af2134c05e3734064808db95b4dd7341a39af06e8945d05ea358e1741aaed +cython==3.2.5 \ + --hash=sha256:05c22cd606ac8d14a9cf17e48668bb37734c803978bf4d793c7f11ef54c4451f \ + --hash=sha256:0a81220817ff954eddf4512a5b82089094a2f523eb1dc4ad555efd6f07b009b4 \ + --hash=sha256:0bc29c7f870b09efdb1f583fbec9592b33af81a7ce273b89c8f5163d7572d5c1 \ + --hash=sha256:220e8b160b2a4ddc362ad8a8c2ab885aa7156099702cdc48f6518a5de921b553 \ + --hash=sha256:224149d18d980e6ea5001b70fc7ce096c1891d59035dfa9cc5ede50f55804913 \ + --hash=sha256:268aecadcabcdad9f773b8a5694746e0b9ee7894b56b84e2e3a2ccb6c929ea79 \ + --hash=sha256:29243859d6824e2d33bae92fc83d591c3671b6d9ac1b757fa264b894ae906c2b \ + --hash=sha256:34d21aeb08477c9173e8be7a566b19e880a7c8109ec6bb47a4b20cb680141114 \ + --hash=sha256:3795237ab49753647e329181b140c424e8aa97543074f171f8d2c45e5014a06e \ + --hash=sha256:382122de8d6b6024fc374fabc3a2b14ba5860ed981c25055ed14fe44278b9dc7 \ + --hash=sha256:3864da4ca2ebe4660d8f672f2143b02840bf3045655222f6090486171c84298f \ + --hash=sha256:39acb30eba78ba6d995d5cf3d97d57d450663d93aac6f8b93753d2b89d768c60 \ + --hash=sha256:3dd42e4cf36ad15f265bdfec2337cc00c688c8eb6d374ffd13bb19437c27bba1 \ + --hash=sha256:3e5e519bad217a0b96fc281666720ed7d339da618acaa012bea712980b8fe6c9 \ + --hash=sha256:45baf00cb8b222a2ca7e9c48add5dac3ceb6e65be4f591150a6b6767ce1f86b0 \ + --hash=sha256:4d00e2c976ee96da4deff50506c7882ccebb4a932fc178ef27eb42bfde959839 \ + --hash=sha256:561613ddd1ee83088eb126e80a5a7d73ee6eb82e0b1aea09afbe170287e5e27f \ + --hash=sha256:56c97c5e43782ec9d9e66c465e253d2ccde0c578c364c46445efe484965524f0 \ + --hash=sha256:5887c24ebd19604b7a76d8ea57446cb562a590f7f2557e5954a69aae38b3195e \ + --hash=sha256:605c447188aecf2941709f53a2ce44862be256e54601c01b38ab710d83db8047 \ + --hash=sha256:677bb60fd8f5949e26c0a7898983967dbbb65f7628481d8480956b85ca766554 \ + --hash=sha256:69cd71b90d4e0f142fd15b2353982c3f9171fc5e613001f16bcb366ffb29004b \ + --hash=sha256:6e5d7a60835345a8bd29d3aa57070880cc3ce017ea0ade7b9f771ce4bf539b1f \ + --hash=sha256:75f5295dc1b32d084fec598f9507e6f264311d78c07da640bc9a05dc47f7ac2c \ + --hash=sha256:85b2944c3eddfc230f9082720195a2e9f869908e5a8b3185be1be832755ee7fc \ + --hash=sha256:8d7b81e6a52a84a02993f01aa5873786ba1dd593c892d93d5fe9866da0bad297 \ + --hash=sha256:91cb5b9ff599612737b3fd0dddcd401acdf904b78c2caf8cd1049501d0a53f2d \ + --hash=sha256:992a50e90d01813333752f374a4405863113059ec67102ab8d6a431a171ee328 \ + --hash=sha256:a3a423468ee77c3c5b26494f57d9c52e9318991fb7142f4c49fb01b99373e8d6 \ + --hash=sha256:a636c8b7824f3cb587eb2fdde59d8f4a14d433565508081cc290198e37567910 \ + --hash=sha256:b4bfb00baef07106a1e5e7252ace18de91225322f7fa29970995aea7c380fa21 \ + --hash=sha256:b8bc1325cf3e4394cc08a3c1ea7fa24f02f405eef0e8c156d5055f6f9a7a1565 \ + --hash=sha256:c4c79e697db55f082a2d3ba97702e71881d5bb1f56f0a80fa338e69101e4c59b \ + --hash=sha256:c80e1e5cba5b4b9890364e9360939fc298c474f25754bb4bb861270d24bda6d6 \ + --hash=sha256:cce98a9011ac6a2560b3587db22912bd0138267669ec567b0d57eddd2d741b8b \ + --hash=sha256:dc1c8cebb7df5bce37f5f8dc1e5bf04313272a5973d50a55c0ec76c83812911b \ + --hash=sha256:eb38b89e5a8eb2508a1a0832063826b0703dfb02be84e4aa34b8818ce0ca50fe \ + --hash=sha256:f4e722ceab6d795b4682d693656218671c873d4aa74119c54a2b62de0e7c48ce \ + --hash=sha256:f9b564f67b01bffa2521f475794b49f2787709cec1f91d5935a38eba37f2b359 # via # pyarrow # uvloop @@ -749,9 +749,9 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -poetry-core==2.4.0 \ - --hash=sha256:4305848477da00272bebd3f615bbec87f64bd117cdb858ab660b626a06a9d96c \ - --hash=sha256:4e8c7496cf797998ffc493f2e23eba4b038c894c08eadacdcdf688945de6b43a +poetry-core==2.4.1 \ + --hash=sha256:89dceb6c10e9c6d8650a16183400e3c9ff9ddee13b0a81023b5575334a2b3744 \ + --hash=sha256:acf06f9537cd2625bdaec926d95d90b557ba15353bc71d27a3a8a441042b5316 # via # aiohappyeyeballs # dunamai @@ -974,9 +974,9 @@ tomlkit==0.15.0 \ --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via uv-dynamic-versioning -trove-classifiers==2026.5.7.17 \ - --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ - --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 +trove-classifiers==2026.5.22.10 \ + --hash=sha256:01fe864225726e03efb843827ecabfe319fc4dee8dd66d65b8996cb09be46e2c \ + --hash=sha256:5477e9974e91904fb2cfa4a7581ab6e2f30c2c38d847fd00ed866080748101d5 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -1057,6 +1057,7 @@ setuptools==80.10.2 \ # greenlet # grpc-google-iam-v1 # gunicorn + # httptools # httpx-sse # importlib-metadata # libcst @@ -1090,6 +1091,7 @@ setuptools==80.10.2 \ # setuptools-rust # setuptools-scm # shellingham + # snowballstemmer # snowflake-connector-python # sqlalchemy # sqlglot @@ -1107,12 +1109,7 @@ setuptools==80.10.2 \ # versioneer # websockets # wrapt - # yarl # zipp -setuptools==80.9.0 \ - --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ - --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c - # via httptools setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb @@ -1121,3 +1118,4 @@ setuptools==82.0.1 \ # python-dateutil # types-pymysql # types-setuptools + # yarl diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt index ac0e59b5df0..e18d51eb0fa 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt @@ -4,9 +4,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -129,7 +129,9 @@ aiohttp==3.13.5 \ --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 - # via aiobotocore + # via + # aiobotocore + # kubernetes aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -243,9 +245,9 @@ calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # httpcore # httpx @@ -473,13 +475,12 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask - # typer # uvicorn cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -628,42 +629,42 @@ docutils==0.21.2 \ --hash=sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f \ --hash=sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2 # via sphinx -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -675,9 +676,9 @@ exceptiongroup==1.3.1 \ # via # anyio # scikit-build-core -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -947,66 +948,86 @@ googleapis-common-protos[grpc]==1.75.0 \ # google-api-core # grpc-google-iam-v1 # grpcio-status -greenlet==3.5.0 \ - --hash=sha256:0ecec963079cd58cbd14723582384f11f166fd58883c15dcbfb342e0bc9b5846 \ - --hash=sha256:0ed006e4b86c59de7467eb2601cd1b77b5a7d657d1ee55e30fe30d76451edba4 \ - --hash=sha256:0ff251e9a0279522e62f6176412869395a64ddf2b5c5f782ff609a8216a4e662 \ - --hash=sha256:1aa4ce8debcd4ea7fb2e150f3036588c41493d1d52c43538924ae1819003f4ce \ - --hash=sha256:1bae92a1dd94c5f9d9493c3a212dd874c202442047cf96446412c862feca83a2 \ - --hash=sha256:1eb67d5adefb5bd2e182d42678a328979a209e4e82eb93575708185d31d1f588 \ - --hash=sha256:2094acd54b272cb6eae8c03dd87b3fa1820a4cef18d6889c378d503500a1dc13 \ - --hash=sha256:2628d6c86f6cb0cb45e0c3c54058bbec559f57eaae699447748cb3928150577e \ - --hash=sha256:29ea813b2e1f45fa9649a17853b2b5465c4072fbcb072e5af6cd3a288216574a \ - --hash=sha256:362624e6a8e5bca3b8233e45eef33903a100e9539a2b995c364d595dbc4018b3 \ - --hash=sha256:3a717fbc46d8a354fa675f7c1e813485b6ba3885f9bef0cd56e5ba27d758ff5b \ - --hash=sha256:3bc59be3945ae9750b9e7d45067d01ae3fe90ea5f9ade99239dabdd6e28a5033 \ - --hash=sha256:3ec9ea74e7268ace7f9aab1b1a4e730193fc661b39a993cd91c606c32d4a3628 \ - --hash=sha256:41353ec2ecedf7aa8f682753a41919f8718031a6edac46b8d3dc7ed9e1ceb136 \ - --hash=sha256:47422135b1d308c14b2c6e758beedb1acd33bb91679f5670edf77bf46244722b \ - --hash=sha256:4964101b8585c144cbda5532b1aa644255126c08a265dae90c16e7a0e63aaa9d \ - --hash=sha256:4a448128607be0de65342dc9b31be7f948ef4cc0bc8832069350abefd310a8f2 \ - --hash=sha256:4b28037cb07768933c54d81bfe47a85f9f402f57d7d69743b991a713b63954eb \ - --hash=sha256:4d0eadc7e4d9ffb2af4247b606cae307be8e448911e5a0d0b16d72fc3d224cfd \ - --hash=sha256:54d243512da35485fc7a6bf3c178fdda6327a9d6506fcdd62b1abd1e41b2927b \ - --hash=sha256:55fa7ea52771be44af0de27d8b80c02cd18c2c3cddde6c847ecebdf72418b6a1 \ - --hash=sha256:57a43c6079a89713522bc4bcb9f75070ecf5d3dbad7792bfe42239362cbf2a16 \ - --hash=sha256:58c1c374fe2b3d852f9b6b11a7dff4c85404e51b9a596fd9e89cf904eb09866d \ - --hash=sha256:5a5ed18de6a0f6cc7087f1563f6bd93fc7df1c19165ca01e9bde5a5dc281d106 \ - --hash=sha256:5e05ba267789ea87b5a155cf0e810b1ab88bf18e9e8740813945ceb8ee4350ba \ - --hash=sha256:5ecd83806b0f4c2f53b1018e0005cd82269ea01d42befc0368730028d850ed1c \ - --hash=sha256:64d6ac45f7271f48e45f67c95b54ef73534c52ec041fcda8edf520c6d811f4bc \ - --hash=sha256:680bd0e7ad5e8daa8a4aa89f68fd6adc834b8a8036dc256533f7e08f4a4b01f7 \ - --hash=sha256:6c18dfb59c70f5a94acd271c72e90128c3c776e41e5f07767908c8c1b74ad339 \ - --hash=sha256:6d874e79afd41a96e11ff4c5d0bc90a80973e476fda1c2c64985667397df432b \ - --hash=sha256:7022615368890680e67b9965d33f5773aade330d5343bbe25560135aaa849eae \ - --hash=sha256:703cb211b820dbffbbc55a16bfc6e4583a6e6e990f33a119d2cc8b83211119c8 \ - --hash=sha256:728a73687e39ae9ca34e4694cbf2f049d3fbc7174639468d0f67200a97d8f9e2 \ - --hash=sha256:728d9667d8f2f586644b748dbd9bb67e50d6a9381767d1357714ea6825bb3bf5 \ - --hash=sha256:762612baf1161ccb8437c0161c668a688223cba28e1bf038f4eb47b13e39ccdf \ - --hash=sha256:7fc391b1566f2907d17aaebe78f8855dc45675159a775fcf9e61f8ee0078e87f \ - --hash=sha256:804a70b328e706b785c6ef16187051c394a63dd1a906d89be24b6ad77759f13f \ - --hash=sha256:83ed9f27f1680b50e89f40f6df348a290ea234b249a4003d366663a12eab94f2 \ - --hash=sha256:884f649de075b84739713d41dd4dfd41e2b910bfb769c4a3ea02ec1da52cd9bb \ - --hash=sha256:8f1cc966c126639cd152fdaa52624d2655f492faa79e013fea161de3e6dda082 \ - --hash=sha256:8f52a464e4ed91780bdfbbdd2b97197f3accaa629b98c200f4dffada759f3ae7 \ - --hash=sha256:9c615f869163e14bb1ced20322d8038fb680b08236521ac3f30cd4c1288785a0 \ - --hash=sha256:9d280a7f5c331622c69f97eb167f33577ff2d1df282c41cd15907fc0a3ca198c \ - --hash=sha256:a10a732421ab4fec934783ce3e54763470d0181db6e3468f9103a275c3ed1853 \ - --hash=sha256:a96fcee45e03fe30a62669fd16ab5c9d3c172660d3085605cb1e2d1280d3c988 \ - --hash=sha256:a97e4821aa710603f94de0da25f25096454d78ffdace5dc77f3a006bc01abba3 \ - --hash=sha256:ba8f0bdc2fae6ce915dfd0c16d2d00bca7e4247c1eae4416e06430e522137858 \ - --hash=sha256:bf2d8a80bec89ab46221ae45c5373d5ba0bd36c19aa8508e85c6cd7e5106cd37 \ - --hash=sha256:cda05425526240807408156b6960a17a79a0c760b813573b67027823be760977 \ - --hash=sha256:d419647372241bc68e957bf38d5c1f98852155e4146bd1e4121adea81f4f01e4 \ - --hash=sha256:d4d9f0624c775f2dfc56ba54d515a8c771044346852a918b405914f6b19d7fd8 \ - --hash=sha256:d60097128cb0a1cab9ea541186ea13cd7b847b8449a7787c2e2350da0cb82d86 \ - --hash=sha256:db2910d3c809444e0a20147361f343fe2798e106af8d9d8506f5305302655a9f \ - --hash=sha256:ddb36c7d6c9c0a65f18c7258634e0c416c6ab59caac8c987b96f80c2ebda0112 \ - --hash=sha256:ddc090c5c1792b10246a78e8c2163ebbe04cf877f9d785c230a7b27b39ad038e \ - --hash=sha256:e5ddf316ced87539144621453c3aef229575825fe60c604e62bedc4003f372b2 \ - --hash=sha256:f35807464c4c58c55f0d31dfa83c541a5615d825c2fe3d2b95360cf7c4e3c0a8 \ - --hash=sha256:f8c30c2225f40dd76c50790f0eb3b5c7c18431efb299e2782083e1981feed243 \ - --hash=sha256:fa94cb2288681e3a11645958f1871d48ee9211bd2f66628fdace505927d6e564 +greenlet==3.5.1 \ + --hash=sha256:001775efe7b8e758861294c7a27c28af87f3f3f1c20468a2bc618c45b346c061 \ + --hash=sha256:00929c98ec525fd9bf075875d8c5f6a983a90906cdf78a66e6de2d8e466c2a19 \ + --hash=sha256:017a544f0385d441e88714160d089d6900ef46c9eff9d99b6715a5ef2d127747 \ + --hash=sha256:089fff7a6ce8d9316d1f65ebc00273a56be258c1725b32b94de90a3a979557e1 \ + --hash=sha256:1072b4f9edcc1e192d9283a66a3e68d6b84c561de33a83d7858beb9ba1effe10 \ + --hash=sha256:10a9a1c0bfbc93d41156ffcb90c75fbc05544054faf15dcc1fdf9765f8b607f0 \ + --hash=sha256:110a1ca7b49b014b097f6078272c3f4ed31af45b254de5228b79adba879f6af9 \ + --hash=sha256:111e2390ffffc47d5840b01711dd7fac07d4c09283d0283e7f3264b14e284c64 \ + --hash=sha256:17d86354f0ae6b61bf9be5148d0dd34e06c3cb7c602c671f79f29ac3b150e659 \ + --hash=sha256:1ffdb3c0bb002c99cd8f298957e046c3dbf6006b5b7cdf11a4e19194624a0a0a \ + --hash=sha256:2baee5ca02031757ffe8cc3d69f0cc0aec7065ce362622da74f32d3bcab1c541 \ + --hash=sha256:2c18ef16bf6d4dd410e4dd52996888ea1497be26892fe5bbc73580aba4287b8e \ + --hash=sha256:2f82b3597e9d83b63408affed0b48fd0f54935edac4302237b9a837be0dae33c \ + --hash=sha256:3bfbd69cc349e43bf3a8ae1c85548ff0718efc887615c2db16c3833d7b0b072d \ + --hash=sha256:3c8bb982ad117d29478ef8f5533e97df21f1e2befd17a299257b0c96d1371c0b \ + --hash=sha256:3d955c89b75eeca4723d7cc14135f393cd47c32e2a6cb4a8e4c6e760a26b0986 \ + --hash=sha256:4378720dd888136c27215a0214d32a4d37c3852765d45bc37aad0623423cfd78 \ + --hash=sha256:45718441607f9325d948db98cbc691276059316d0358c188c246da4e1d4d23d2 \ + --hash=sha256:5028648bf2253ec4745add746129d3904121fa7fe871a76bed23c5720573ce0a \ + --hash=sha256:50ae25a67bea74ea41fb14b960bc532df73eb713417b2d61892dced82fe8d3bc \ + --hash=sha256:51518ff74664078fc51bffcc6fc529b0df5ae58da192691cee765d45ce944a2b \ + --hash=sha256:540dae7b956209af4d70a3be35927b4055f617763771e5e84a5255bea934d2f5 \ + --hash=sha256:5a56aeb7d5d9cc4b3a735efb5095bd4b4f6f0e4f93e5ca876d0e2315137b7829 \ + --hash=sha256:5e300185139abc337ade480c327183adf42a875ac7181bfe66d7d4efea31fbea \ + --hash=sha256:67821bb03e4e98664490edb787ff6af501194c29bbee0f5c1dfdcf1dc3d9d436 \ + --hash=sha256:6c09df69dc1712d131332054a858a3e5cca400967fa3a672e2324fbb0971448c \ + --hash=sha256:6ebeb75c81211f5c702576cf81f315e77e23cfdb2c7c6fcb9dd143e6de35c360 \ + --hash=sha256:73f78f9b9f0a5c06e5c946ba1e8e36f5114923b6be109ee618c54f079c3ea14f \ + --hash=sha256:7546556f0d649f99f6a361098a55f761181bb2ea12ff150bb16d26092ad88244 \ + --hash=sha256:7715a5a2c3378ba602c3a440558261e13a820bb53a82693aacd7b7f6d964e283 \ + --hash=sha256:7b5f5fae05b8ac6d176a61b60c394a8cbdc2b5b91b81793066e68745cf165e54 \ + --hash=sha256:7eacb17a9d41538a2bc4912eba5ef13823c83cb69e4d141d0813debe7163187f \ + --hash=sha256:7ffdb990dcaa0234cf9845aead5df2e3c3a8b6507d409274dd87e0d5ab05ffc2 \ + --hash=sha256:80eb4b04dadc4e67df3fae179a32c4706a3f495bc7f22fc8a81115d5f5512188 \ + --hash=sha256:88e300d136eac057b2397aa1cfd7328b4c87c7eb66a09c7bc6a1292234db474e \ + --hash=sha256:89101bfd5011e069be974903cb3a4e4523845e4ece2d62dcd8d358933c0ef249 \ + --hash=sha256:8a17c42330e261299766b75ac1ea32caa437a9453c8f65d16a13140db378ecd3 \ + --hash=sha256:8a271fcd66c74615cda6a964fda3f304267a12e50a084472218a39bb0376f563 \ + --hash=sha256:8d8a23250ea3ec7b36de8fa4b541e9e2db3ee82915cc060ab0631609ad8b28de \ + --hash=sha256:92fd6d44ac5e5a887c8a5dc4a8ba0ba908527c31c12f78c6bc7dcfe8aab279f6 \ + --hash=sha256:975eac34b44a7077ca4d421348455b94f0f518246a7f14bc6d2fdcfe5b584368 \ + --hash=sha256:9ab3c3a0b2ae6198e67c898dad5215a49f9ae0d0081b3c3ec59f333e39eeca26 \ + --hash=sha256:9b1ec3274918a81d3ea778b9e75b56b72b33f300edb6cf7f3a7fe1dae56683de \ + --hash=sha256:9d59e840387076a51016777a9328b3f2c427c6f9208a6e958bad251be50a648d \ + --hash=sha256:a0cbed8bb44e23c5b199f888f4e4ce096b45ad9f25ff74a7ad0213875e936bb2 \ + --hash=sha256:a19570c52a21420dcbc94e661994bc325c0b5b11304540fed514586da5dc8f2e \ + --hash=sha256:a203a8bd0acb0701653d3bbb26e404854a68674139ed5cbb778830f42b09bb33 \ + --hash=sha256:a4764e0bfc6a4d114c865b32520805c16a990ef5f286a514413b05d5ecd6a23d \ + --hash=sha256:a57b0d05a0448eed231d59c0ceb287dde984551e54cbc51ac2d4865712838e9c \ + --hash=sha256:a5c81f74d204d3edd136ebfd50dce53acbb776995d721a0fe801626cfc93b8cd \ + --hash=sha256:a5ea42a752d47a145eae922b605cd1634665ac3d5ec1e72402d5048e8d60d207 \ + --hash=sha256:a6fdf2433a5441ef9a95464f7c3e674775da1c8c1177fff311cee1acad4626ed \ + --hash=sha256:add5217d68b31130f0beca584d7fef4878327d2e31642b66618a14eef312b63b \ + --hash=sha256:b0703c2cef53e01baec47f7a3868009913ad71ec678bbecb42a6f40895e4ce62 \ + --hash=sha256:b9152fca4a6466e114aaec745ae61cba739903a109754a9d4e1262f01e9259b1 \ + --hash=sha256:c0141e37414c10164e702b8fb1473304221ad98f71600850c6ef7ff4880feba0 \ + --hash=sha256:c3d35f87c7253b715d13d679e0783d845910144f282cb939fe1ba4ac8616269c \ + --hash=sha256:c5551170cf4f5ff5623e9af81323751979fee2c731e2287b61f73cd27257b823 \ + --hash=sha256:cbfc69be86e10dcfef5b1e6269d1d6926552aa89ee39e1de3353360c1b6989ab \ + --hash=sha256:cc6ab7e555c8a112ad3a76e368e86e12a2754bcae1652a5602e133ec7b635523 \ + --hash=sha256:cd443683db272ebaaca03af98c0b063ab30db70ea8a31a1559f35e3f7b744ccd \ + --hash=sha256:d0932b81d72f552ded9d810d00021b64d89f2195a91ce115b893f943b7a4ab3c \ + --hash=sha256:d40a890035c0058cadbdc4af7569800fd28a0e527a0fdbb7b5f9418f176846ce \ + --hash=sha256:d5ee3ea898009fa898f85f9982255d35278c477bebe185beca249cab42d4526c \ + --hash=sha256:d8ab31c9de8651a2facdd5c5bb0011f2380dd1a7af78ce2adf4b56095294fc07 \ + --hash=sha256:dc71ff466927a201b08305acac451ebe1aedfcea002f62f1f2f2ac2ac1e6a135 \ + --hash=sha256:de2daaaebd1a5aa88c49045b6baf9310b3263796bd88db713edf37cf53e7bb4e \ + --hash=sha256:ded7b068c7c31c1a8657d4fd42d886b3e051ae29f88b80c5ff9d502257b0f071 \ + --hash=sha256:e5cc9606aa5f4e0bde0d3bd502b44f743864c3ffa5cfa1011b1e30f5aa02366f \ + --hash=sha256:e630136e905fe5ff43e86945ae41220b6d1470956a39220e708110ac48d01ea5 \ + --hash=sha256:e6cd99ea59dd5d89f0c956606571d79bfe6f68c9eb7f4a4083a41a7f1587edee \ + --hash=sha256:e7516cf6ae6b8a582c2770a0caed47b8a48373ed732c33d69a72913ae6ac923e \ + --hash=sha256:ea37d5a157eb9493820d3792ac4ece28619a394391d2b9f2f78057d396ff0f0f \ + --hash=sha256:ea8da1e900d758d078810d4255d8c6aa572181896a31ec79d779eb79c3adc9ad \ + --hash=sha256:ed8cdb691169715a9a492844a83246f090182247d1a5031dc78a403f68ba1e97 \ + --hash=sha256:ef08c1567c78074b22d1a200183d52d04a14df447bf70bcbb6a3507a48e776fc \ + --hash=sha256:f16ba1efc0715b680a18b8123d90dad887c6112ae3555b4b5c32c149540c6b4e \ + --hash=sha256:fa4f98af3a528f0c3fd592a26df7f376f93329c8f4d987f6bb979057af8bf5e2 \ + --hash=sha256:ffea73584b216150eab159b6d12348fb253e68757974de1e2c40d8a318ac89ed # via feast (pyproject.toml) grpc-google-iam-v1==0.14.4 \ --hash=sha256:392b3796947ed6334e61171d9ab06bf7eb357f554e5fc7556ad7aab6d0e17038 \ @@ -1230,50 +1251,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx==0.28.1 \ --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ @@ -1289,9 +1317,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -1329,9 +1357,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) librt==0.11.0 \ --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ @@ -2031,9 +2059,9 @@ pathspec==1.1.1 \ # hatchling # mypy # scikit-build-core -platformdirs==4.9.6 \ - --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ - --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 +platformdirs==4.10.0 \ + --hash=sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7 \ + --hash=sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a # via snowflake-connector-python pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ @@ -2176,15 +2204,15 @@ proto-plus==1.28.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via # feast (pyproject.toml) # google-api-core @@ -2461,9 +2489,9 @@ pygments==2.20.0 \ # feast (pyproject.toml) # rich # sphinx -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -2472,9 +2500,9 @@ pymilvus==2.5.18 \ --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyopenssl==26.2.0 \ --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ @@ -2776,36 +2804,37 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowballstemmer==3.0.1 \ - --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ - --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 +snowballstemmer==3.1.0 \ + --hash=sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154 \ + --hash=sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f # via sphinx -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2839,70 +2868,65 @@ sphinxcontrib-serializinghtml==2.0.0 \ --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 \ --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d # via sphinx -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) sqlglot==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ @@ -2912,10 +2936,11 @@ sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp # sse-starlette @@ -3006,17 +3031,17 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -trove-classifiers==2026.5.7.17 \ - --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ - --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 +trove-classifiers==2026.5.22.10 \ + --hash=sha256:01fe864225726e03efb843827ecabfe319fc4dee8dd66d65b8996cb09be46e2c \ + --hash=sha256:5477e9974e91904fb2cfa4a7581ab6e2f30c2c38d847fd00ed866080748101d5 # via hatchling typeguard==4.5.2 \ --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) -typer==0.25.1 \ - --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ - --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc +typer==0.26.3 \ + --hash=sha256:3e2b9352f535e5303ef27806dadc2c8647687bdca5c902f03fec3fb88f46a46a \ + --hash=sha256:e70549ec5a403ca8a0bf0802ddd9f3c6ff7a14ccbb859b01b697baa943636f33 # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -3480,135 +3505,111 @@ wrapt==1.17.3 \ --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c # via aiobotocore -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 905007c5cd3..f61049813d1 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -59,9 +59,9 @@ bigtree==1.4.1 \ --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via requests charset-normalizer==3.4.7 \ --hash=sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc \ @@ -194,9 +194,9 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via requests -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask @@ -221,9 +221,9 @@ exceptiongroup==1.3.1 \ --hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \ --hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598 # via anyio -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via feast (pyproject.toml) fsspec==2026.4.0 \ --hash=sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 \ @@ -239,54 +239,61 @@ h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 # via uvicorn -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # requests @@ -789,15 +796,15 @@ prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via feast (pyproject.toml) psutil==7.2.2 \ --hash=sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372 \ @@ -1008,9 +1015,9 @@ pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176 # via feast (pyproject.toml) -pyjwt==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via feast (pyproject.toml) python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ @@ -1235,75 +1242,72 @@ six==1.17.0 \ --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 # via python-dateutil -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b - # via fastapi +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 + # via + # feast (pyproject.toml) + # fastapi tabulate==0.10.0 \ --hash=sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d \ --hash=sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index 4f011ae852b..df5e149c591 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -8,9 +8,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -137,6 +137,7 @@ aiohttp==3.13.5 \ # aiobotocore # aiohttp-cors # fsspec + # kubernetes # mlflow # ray aiohttp-cors==0.8.1 \ @@ -386,9 +387,9 @@ build==1.5.0 \ # feast (pyproject.toml) # pip-tools # singlestoredb -cachetools==7.1.3 \ - --hash=sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d \ - --hash=sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804 +cachetools==7.1.4 \ + --hash=sha256:323dc4127934744db5b54eb4924482d7edafbf9554e820d1531c2e08c0e4ef54 \ + --hash=sha256:437f55a4e0c1b01a4f3077cc470e6991d47430970e36fbcb77e2be0df4fc1cd6 # via # mlflow-skinny # mlflow-tracing @@ -420,9 +421,9 @@ cassandra-driver==3.30.0 \ --hash=sha256:e12dfcd3f0074c16f4bfe650242edb406b935864373ae86160e09e3f5e437e84 \ --hash=sha256:ff2e9fbdc1be54c1d041ea3f7d09812442f334be14bb5ad7aede175544765d25 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # clickhouse-connect # docling @@ -660,9 +661,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask @@ -674,61 +675,61 @@ click==8.4.0 \ # ray # typer # uvicorn -clickhouse-connect==1.0.0 \ - --hash=sha256:03ab4bda888575a2ea882ad4ed05bf9f5f15bb621209f6a4045231e3f26fedf7 \ - --hash=sha256:046f79215ebdd62192cc36e4d81b549570ca46e5b61e107b0d54cf7855b2ffff \ - --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ - --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ - --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ - --hash=sha256:0d4ed1e296c6e77dc0dbf486607cc39fc6e36866abb653543d5ad0a8426ea8f0 \ - --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ - --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ - --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ - --hash=sha256:20b76e54c9ea77e86c47b3194f1a9ff1833bd6fa34cb81bfcec621eff94ed033 \ - --hash=sha256:250826f2c3a8466faa51e03902f4c989be5da6f2ab6f74928afadd19ce1e2336 \ - --hash=sha256:29185891d5de03f60ff9da37dbe1e1e44bed8ef252d0d1281ddf3a450dfe5023 \ - --hash=sha256:295e6ff6e3f7fe71c28b1753967d8669ce12d924486150c74c892d8f67cba4d9 \ - --hash=sha256:298e7816ae3ecb7935bf1fe3fb8b8e9eb639e4e14516b87f01ef5a1c223b992c \ - --hash=sha256:2ff97a4a607eb525d9835c939a05ff63f0d3127f33afe1ed78b05d928f49c16c \ - --hash=sha256:320f0c53c4cb8b06732d875cabd35a357992a9e0fcf9f4a18b631ea7ce377ef1 \ - --hash=sha256:3222ae6bf39930a34ff4a483c6b34a1f3dab02d6743428b0383f4d47af7a48db \ - --hash=sha256:34557e29c4dfa0df1f6e26d053d6af1ae8d1444f4bd44a5c647dc7dd3bea22c0 \ - --hash=sha256:345838366b453a8c9c38366ac54493c2fb325982967d7bd0cde3ff619b66d9b7 \ - --hash=sha256:39315f2096809a08cdc75850b52a3675a0639525bbd634b87c4f188bfd875200 \ - --hash=sha256:40f9ade34a50ef2edfa0007d7b300a72fb4be239a0581b5ffc46f165b6a3d1a6 \ - --hash=sha256:444a735bf44390cbd0a81d84d3b20bd0c36084d2a8b9d030bc41b938c3dff1d1 \ - --hash=sha256:46b6dbabbda32e7e717b2732585ffbccf11815ad36987af57a068a66d1a0292c \ - --hash=sha256:4959f9b8915d5a64193523b9b25d7446c583befb5e339cbf45dba68eb2c4abbb \ - --hash=sha256:4964db35f9352452861e0d4d93ea4e7f41c77889e6f78092fe6c6cae5e09f478 \ - --hash=sha256:53f1f9cd31b1af371340f39923a08ba0aef57a7a85ef4a27376107f376c1efc3 \ - --hash=sha256:56a0d59bc1639827ac7ad14158ba557e5287f6cee1b6c942fc1747be12cbcc07 \ - --hash=sha256:5ce486901a4042f6fc6a76ad2961bf5be7c4d970fabecf99113f6cb49d936303 \ - --hash=sha256:6977afeabca17cdd3bc11215902f20e850eb1d71451d93eaee8ac26068a84af4 \ - --hash=sha256:715f50937fcafa849c53314d443b55fb5b04b938f2402ec135c41e515a8312af \ - --hash=sha256:77a5ce7880dea5deadd53d189cf690bdee14513c055343104f5ad3ddcfe25025 \ - --hash=sha256:80c455d0ce5d93c4a744911dcbfb37124c009a826727770fd86f21a47d654333 \ - --hash=sha256:8c4f5c8fa36b605435b32efea4f40ce11babb5f5afcec1e00f6a6cce81f81000 \ - --hash=sha256:8e74375b92cfa94cb4c944a393a027af5c5ed562fc6b862baf6288696bc48688 \ - --hash=sha256:965a496c770d17d061115ad096d2c966af3cee40c167b035afd0f3bd8037327b \ - --hash=sha256:98a3efce3af5308ba3ed140c20a4dc6bf175736e2803b5cb75838ee36365a4eb \ - --hash=sha256:9a2612b246bb9aa69419b8d24732df50e80579f0c43dea97db457cc15b39bfb2 \ - --hash=sha256:9c64f7a26f97eeca472dab6ca9baddc1e36fae1d1c244541926ada4fad14a99b \ - --hash=sha256:9ec2a93d353415951ab10da943f30f0038acc0a1ff82b3253d82a106f3065f34 \ - --hash=sha256:a763c1b1c7977fcab59d2d1d2f249a5231abf44f8a3aa5b0df06bb849b5d0f65 \ - --hash=sha256:a9e780a6d45025469d4e9cea5fec8b0ee55ef76bae867b2f255a106c0c720133 \ - --hash=sha256:ab0a095afd9a6353872a51304c795949fb31f8fdf7519a0f27d7c0fb255983d7 \ - --hash=sha256:aebf884c1aed8cf857d3323ac041e1cf636a865d231dc241543d9a68e82b553d \ - --hash=sha256:bbc6000c1c297b969b6d0a097e84a7bfa31931b0512e4eb1674c6c6d158ade0b \ - --hash=sha256:d84b8b799c71a88a600ca0455fed2d2edb320f510b04969bf04ca6f4807ab4fc \ - --hash=sha256:dae66adb575b7eb9626d84edad4481d5c3d93ca680766c3f1891c13694913bee \ - --hash=sha256:de4a5d1ffa12127f89b5308f95c6ef5da9b1c7f5d133a7d540c364bf259351fc \ - --hash=sha256:e7cfb81c08685ad721b30cb702324de8763f7e8ff8aa653d1c7b602363524cd9 \ - --hash=sha256:ede49d49101023f45d8cfb985719a9c20cf40ff4c60a9f895d48c17dac278448 \ - --hash=sha256:ef3b69da678fe40056f585c0a788356b6eeda04b751a3837ffe75340155ecfdb \ - --hash=sha256:ef8ba83257515fd38a7007a9ae1e8b70bf38d38f4bba34c3b7660af648f88cd2 \ - --hash=sha256:f61a6d42228694cbfcdf806061e752fc88511926389a271987d61c360029b72f \ - --hash=sha256:f8730073bc1adcee13b338b347f68fa0ec7b2460aecce227be2d5abb01ea7b8c \ - --hash=sha256:fc0801be2505b2e3d3b0337c875a624eab61912b8fd55218424ad52a69deab10 +clickhouse-connect==1.1.1 \ + --hash=sha256:0b602967810358408ebd55693fd582f3a20e08800f721fb72ae320f0f74686ff \ + --hash=sha256:0bb2c8f82bb2bd5f645c0114d5d766a95dc1e0dec33c07deafa5a68dbb75f898 \ + --hash=sha256:0e9e294601aac4de51ac7cd2423176fe5111da41b5d120047606eb855795853c \ + --hash=sha256:0ec2f574530c65412a490ac6a29445509ca6346dbb15d39a825e27c73d680f3a \ + --hash=sha256:10055ae880742ffc61244eb129bbbafa6fe97731aa959d717b16513b5094255a \ + --hash=sha256:10c0354b858f500f4f26195dc37cd6047eb4d324b0b08ca6873e2241ea4a2ea8 \ + --hash=sha256:11ca173d36405d446f97dfea0a3e1531389d90d23c686ec18ebcbc0eed17200e \ + --hash=sha256:1284cb2a73b6af208aac06ad04d9121a8aa33f4b971b9d5a65264d2137b5cf0f \ + --hash=sha256:1781f330cd0678b203dc35d5df85c3b212577412c0dcf664432edbfc71a20489 \ + --hash=sha256:1e2b000c55e698220cba80e660349c60d7acb3b82172c320a51519d191e24826 \ + --hash=sha256:22ed08e9a361e1d21762c68275610ee0e023f281fe9a1653763b62fc5585a6f0 \ + --hash=sha256:233cc6eae3dbec122ed7ff694f657aa9676b36c2acbcef64e97166e4f75f5040 \ + --hash=sha256:27b665a01711e9a5b08e4412d501baf76ce4ccbeb937ec67e73040094492adbc \ + --hash=sha256:2913a4c96c3aede2b39489731eb8c39e37792755df9b56548b162ab1e09df4f3 \ + --hash=sha256:2c9a1bdb1d9705a270ec8036cd89113db04f4437a4d3b5db0774312ec4d06e30 \ + --hash=sha256:3cdae5ce54cc7d5fdaced13857612b25ae58f0830987a4b17ebcf376d71df3b2 \ + --hash=sha256:43e1fb7d588a799a3e55a4982946d59484edf1e960abc9e7ac330a3330ee4fc5 \ + --hash=sha256:49cb0d82e3f68d7304275bf350419095c080ddd49f99704dd44a956273fa7c09 \ + --hash=sha256:4f0c6c52245322c04bdccc71565ac8db9731e1787c90665df9167928101f0b89 \ + --hash=sha256:4ff227719006516877b5152e89cba514ceee9807e6b030a1ddba8d9355b87412 \ + --hash=sha256:6062c400d67dd4ab03fc3f9473134fc0a240593c242998d032d32cb04a65f083 \ + --hash=sha256:646408372c2a4b0e4068145897a35100cefc6974a409c68b20ba22403665fe5a \ + --hash=sha256:68d6e245db80ea42c59c32dbed655f28e82337d61405dde6aa5e009c507a6eee \ + --hash=sha256:70b9dee3c4629e06f2b5788d02b6cded0a32d2509966bc293cf1c39abc395a29 \ + --hash=sha256:763f7fabc921ee9fb4c07d180447a6324980bfeb981c3f53065d04bda5f133b7 \ + --hash=sha256:770da683bf65d3536c46d564e5a9311d6cd40d191a0357a762ac702813774965 \ + --hash=sha256:784a1c9513a33f6f8df0c260e43ea5cdc5fde0a2c91bca7e69ce26bc4990abcd \ + --hash=sha256:7fb296b2c51e5ad8d7f677a08a093b3b122cd4411619678a968567f3b34bf075 \ + --hash=sha256:8857676711197c981afc317a38ad1b92aedcf81b7052e67098f40adcf4b5d4ba \ + --hash=sha256:8b0590065a4c6551d1145229adf3405befc053843f6b1ffeb3802ae7221d53dc \ + --hash=sha256:8f2f9029f6589d2d349912a94a17d9997c550a7f19dd5b747f6b452764dc0e54 \ + --hash=sha256:92d885943b1b0a1489501408d6af91ec2d96189dbc475f3552f22cd43c9c6270 \ + --hash=sha256:9de3999bad13146823e9c6811dbe9a66653bf5c71980472f8fe5165d186451ee \ + --hash=sha256:a4639a1c6291358a0dd40ba0a6a6059eb5fcc9acd6f4cd61eb52b3cb5165d37e \ + --hash=sha256:a4740e012dc4ed2fab769dba4b13be92142e2df2bfb0de547b0b73f13296bcb8 \ + --hash=sha256:a6c0a8f1c4e4954161051b26bee8d24f1e53254125d2bf6e18c9360cd41fe059 \ + --hash=sha256:a706631a540ac21aac4434a446d50263c0872c9507bc6a0ccfb51467c0ff74a4 \ + --hash=sha256:ad6b32a1bb391f15345c6af4ecee152e04362c6331cd93472f2fa5e64f8a9aaa \ + --hash=sha256:b1e83e71d5b0df09cb807657ab0457eb1fd116a331039d3c5d3051387092ff6a \ + --hash=sha256:c336452cd5aeada902ac41d57296498766f95a175cb1dcf13d48479b5b31ac6b \ + --hash=sha256:c54bdd8870a644a9baa7cd68fdfc5100f5b19aa246657be863788a6a7bf4052e \ + --hash=sha256:ca28e361a51afe2e7e2fcff47c1423fd61271d26af7d19e37f6ff0ab67bf086f \ + --hash=sha256:cd501e3ccee60d4cccf5cde4b4c92632b62763563b08aa07dbfd3e2583c12005 \ + --hash=sha256:d1df245b5c21fa7bd70193164cc97f3937ccee3087dbc7906daf2e97b226b2a8 \ + --hash=sha256:d3b3806986340192ed2b197241be193649717cc58f7ef9bdf86d119758289a0f \ + --hash=sha256:d4a5e4b36219d678d495120007d0ba8b7d1bf4c5105292b35fa4473038fc2892 \ + --hash=sha256:d749389301b201ae7329c8fc96599fc116de8aadc16a5a4416e399483c569ea9 \ + --hash=sha256:d84c8ed4cc26976d2cc6725e36b85d4e24f1c43c11d82483b3060116ac0bcfd4 \ + --hash=sha256:dcdfee2f707225bfbd80ba2da5c995a38393aa02920adf770264c6f5b041e9ed \ + --hash=sha256:e762f70ebf57cb43a6257daa6196f5beb574d69915dd06c29735d5811dfd8dce \ + --hash=sha256:ee7d8308c8a688c6851b19d2bc743a02ed5d6f8679203a13872a80cf4066dd57 \ + --hash=sha256:f205be896551d7ea0a0140a86e36d261e249f99541d68a3dfdd47dd8c7c2bbbb \ + --hash=sha256:f552668320b8c533b6f2b93d03dd4840cfe0e8f5f01c76ea0d2989e4127fa60e \ + --hash=sha256:f75e0d62bdb53ba72fa2aa962950c5c107627158c9fe8900ca14da557295bdb2 # via feast (pyproject.toml) cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -896,113 +897,113 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (pyproject.toml) -coverage[toml]==7.14.0 \ - --hash=sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74 \ - --hash=sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e \ - --hash=sha256:0a951308cde22cf77f953955a754d04dccb57fe3bb8e345d685778ed9fc1632a \ - --hash=sha256:0c451757d3fa2603354fdc789b5e58a0e327a117c370a40e3476ba4eabab228c \ - --hash=sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a \ - --hash=sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe \ - --hash=sha256:1733198802d71ec4c524f322e2867ee05c62e9e75df86bdca545407a221827d1 \ - --hash=sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db \ - --hash=sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9 \ - --hash=sha256:1c9ed6ef99f88fb8c14aa8e2bf8eb0fe55fa2edfea68f8675d78741df1a5ac0e \ - --hash=sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b \ - --hash=sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66 \ - --hash=sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644 \ - --hash=sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490 \ - --hash=sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5 \ - --hash=sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8 \ - --hash=sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f \ - --hash=sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212 \ - --hash=sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb \ - --hash=sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917 \ - --hash=sha256:3fd43f0616e765ab78d069cf8358def7363957a45cee446d65c502dcfeea7893 \ - --hash=sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c \ - --hash=sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90 \ - --hash=sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d \ - --hash=sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef \ - --hash=sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9 \ - --hash=sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087 \ - --hash=sha256:5904abf7e18cddc463219b17552229650c6b79e061d31a1059283051169cf7d5 \ - --hash=sha256:5ac83957a80d0701310e96d8bec68cdcf4f90a7674b7d13f15a344315b41ab27 \ - --hash=sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020 \ - --hash=sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3 \ - --hash=sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47 \ - --hash=sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca \ - --hash=sha256:65f267ca1370726ec2c1aa38bbe4df9a71a740f22878d2d4bf59d71a4cd8d323 \ - --hash=sha256:664123feb0929d7affc135717dbd70d61d98688a08ab1e5ba464739620c6252d \ - --hash=sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd \ - --hash=sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426 \ - --hash=sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828 \ - --hash=sha256:6a78e2a9d9c5e3b8d4ab9b9d28c985ea66fced0a7d7c2aec1f216e03a2011480 \ - --hash=sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97 \ - --hash=sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8 \ - --hash=sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899 \ - --hash=sha256:70390b0da32cb90b501953716302906e8bcce087cb283e70d8c97729f22e92b2 \ - --hash=sha256:72a305291fa8ee01332f1aaf38b348ca34097f6aa0b0ef627eef2837e57bbba5 \ - --hash=sha256:731dc15b385ac52289743d476245b61e1a2927e803bef655b52bc3b2a75a21f3 \ - --hash=sha256:731e535b1498b27d13594a0527a79b0510867b0ad891532be41cb883f2128e20 \ - --hash=sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436 \ - --hash=sha256:741f57cddc9004a8c81b084660215f33a6b597dbe62c31386b983ee26310e327 \ - --hash=sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b \ - --hash=sha256:7b2bb6c9d7e769360d0f20a0f219603fd64f0c8f97de17ab25853261602be0fb \ - --hash=sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe \ - --hash=sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab \ - --hash=sha256:7c843572c605ab51cfdb5c6b5f2586e2a8467c0d28eca4bdef4ec70c5fecbd82 \ - --hash=sha256:7ebb1c6df9f78046a1b1e0a89674cd4bf73b7c648914eebcf976a57fd99a5627 \ - --hash=sha256:7ffd19fc8aed057fd686a17a4935eef5f9859d69208f96310e893e64b9b6ccf5 \ - --hash=sha256:8231ade007f37959fbf58acc677f26b922c02eda6f0428ea307da0fd39681bf3 \ - --hash=sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477 \ - --hash=sha256:829994cfe1aeb773ca27bf246d4badc1e764893e3bfb98fff820fcecd1ca4662 \ - --hash=sha256:84c32d90bf4537f0e7b4dec9aaa9a938fb8205136b9d2ecf4d7629d5262dc075 \ - --hash=sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f \ - --hash=sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1 \ - --hash=sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7 \ - --hash=sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52 \ - --hash=sha256:91b993743d959b8be85b4abf9d5478216a69329c321efe5be0433c1a841d691d \ - --hash=sha256:92af52828e7f29d827346b0294e5a0853fa206db77db0395b282918d41e28db9 \ - --hash=sha256:9336e23e8bb3a3925398261385e2a1533957d3e760e91070dcb0e98bfa514eed \ - --hash=sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90 \ - --hash=sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1 \ - --hash=sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d \ - --hash=sha256:9cd1169b2230f9cbe9c638ba38022ed7a2b1e641cc07f7cea0365e4be2a74980 \ - --hash=sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca \ - --hash=sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa \ - --hash=sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6 \ - --hash=sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc \ - --hash=sha256:a1816c505187592dcd1c5a5f226601a549f70365fbd00930ac88b0c225b76bb4 \ - --hash=sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c \ - --hash=sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d \ - --hash=sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84 \ - --hash=sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2 \ - --hash=sha256:a93bac2cb577ef60074999ed56d8a1535894398e2ed920d4185c3ec0c8864742 \ - --hash=sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2 \ - --hash=sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb \ - --hash=sha256:b34ece8065914f938ed7f2c5872bb865336977a52919149846eac3744327267a \ - --hash=sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9 \ - --hash=sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96 \ - --hash=sha256:b4f07cf7edcb7ec39431a5074d7ea83b29a9f71fcfc494f0f40af4e65180420f \ - --hash=sha256:b812eb847b19876ebf33fb6c4f11819af05ab6050b0bfa1bc53412ae81779adb \ - --hash=sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63 \ - --hash=sha256:bcb2e855b87321259a037429288ae85216d191c74de3e79bf57cd2bc0761992c \ - --hash=sha256:bfb0ed8ec5d25e93face268115d7964db9df8b9aae8edcde9ec6b16c726a7cc1 \ - --hash=sha256:c7492f2d493b976941c7ca050f273cbda2f43c381124f7586a3e3c16d1804fec \ - --hash=sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367 \ - --hash=sha256:c83d2399a51bbec8429266905d33616f04bc5726b1138c35844d5fcd896b2e20 \ - --hash=sha256:ca3d9cf2c32b521bd9518385608787fa86f38daf993695307531822c3430ed67 \ - --hash=sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b \ - --hash=sha256:d128b1bba9361fbaaf6a19e179e6cfd6a9103ce0c0555876f72780acc93efd85 \ - --hash=sha256:d1bb3543b58fea74d2cd1abc4054cc927e4724687cb4560cd2ed88d2c7d820c0 \ - --hash=sha256:d8b013632cc1ce1d09dbe4f32667b4d320ec2f54fc326ebeffcd0b0bcc2bb6c4 \ - --hash=sha256:d8e1762f0e9cbc26ec315471e7b47855218e833cd5a032d706fbf43845d878c7 \ - --hash=sha256:d9c8ef6ed820c433de075657d72dda1f89a2984955e58b8a75feb3f184250218 \ - --hash=sha256:dc38367eaa2abb1b766ac333142bce7655335a73537f5c8b75aaa89c2b987757 \ - --hash=sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef \ - --hash=sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1 \ - --hash=sha256:fab3877e4ebb06bd9d4d4d00ee53309ee5478e66873c66a382272e3ee33eb7ea \ - --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ - --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 +coverage[toml]==7.14.1 \ + --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ + --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ + --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \ + --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \ + --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \ + --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \ + --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \ + --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \ + --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \ + --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \ + --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \ + --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \ + --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \ + --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \ + --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \ + --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \ + --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \ + --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \ + --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \ + --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \ + --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \ + --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \ + --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \ + --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \ + --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \ + --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \ + --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \ + --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \ + --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \ + --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \ + --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \ + --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \ + --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \ + --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \ + --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \ + --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \ + --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \ + --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \ + --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \ + --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \ + --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \ + --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \ + --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \ + --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \ + --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \ + --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \ + --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \ + --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \ + --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \ + --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \ + --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \ + --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \ + --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \ + --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \ + --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \ + --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \ + --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \ + --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \ + --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \ + --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \ + --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \ + --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \ + --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \ + --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \ + --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \ + --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \ + --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \ + --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \ + --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \ + --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \ + --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \ + --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \ + --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \ + --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \ + --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \ + --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \ + --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \ + --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \ + --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \ + --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \ + --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \ + --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \ + --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \ + --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \ + --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \ + --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \ + --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \ + --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \ + --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \ + --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \ + --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \ + --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \ + --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \ + --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \ + --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \ + --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \ + --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \ + --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \ + --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \ + --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \ + --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \ + --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \ + --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \ + --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ + --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ + --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c # via pytest-cov cryptography==46.0.7 \ --hash=sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65 \ @@ -1080,9 +1081,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -databricks-sdk==0.109.0 \ - --hash=sha256:46745a25324a5b36f01236760e44fc6e2bce3f051224e6f8aef7633477fcbec8 \ - --hash=sha256:96b90f5ee2e0fac89f351aa77348263e1e0ed5d4d867cdfaefd2e0acc01b1e81 +databricks-sdk==0.112.0 \ + --hash=sha256:2121c0852eef39c20d6381e6a2ac52f580610b268891722e39a3b53d92da78b7 \ + --hash=sha256:39ed2fc6a0a1110e64ad8903a471daea0570ca544811ba88163bbb199a67dea7 # via # mlflow-skinny # mlflow-tracing @@ -1186,9 +1187,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.76.0 \ - --hash=sha256:55af705c6d0755254afddb959fe5dea3a6d413d3ea7539e380bb008268806316 \ - --hash=sha256:e4f681ad434cb45ba93bd3afaab62c5d910bf9ac6b3fdb98b12ee2e476bb75a4 +docling-core[chunking]==2.77.1 \ + --hash=sha256:4e38df7143e2ecfe69ecf05278e8e25063a9ec1b6d0b5e28e3b8f1db7cc5ed72 \ + --hash=sha256:d93c7cdc0de4bbf36ef74fb4c3c3d49bb8420ff27201f3b66908672326835b47 # via # docling # docling-ibm-models @@ -1230,42 +1231,42 @@ docutils==0.19 \ --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc # via sphinx -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -1274,13 +1275,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.4.0 \ - --hash=sha256:2dbb907ededa14e6ff5be058f8737bbba3926bd1b1a40dbc98a471285fa2cb3c \ - --hash=sha256:4eff263c8011dd950451b72be567a2484b814a89c70081053d6ae6addeab52e2 +elastic-transport==9.4.1 \ + --hash=sha256:186a29e6c66ff269487e33f7b17176316e18b6061702c25eb0bb15681302e91d \ + --hash=sha256:d12c86ea73528690ebf63a488d9ae323292e6aa5ee55e1e29f14293472f4197f # via elasticsearch -elasticsearch==9.4.0 \ - --hash=sha256:95e38e130b1d01438b19343dfa0458e1857a7df8e2e30cbf23a72182b03f05ff \ - --hash=sha256:e20095ba40229f4562f7cc951883c7c62a017435f94dbe0c21526f58ba411885 +elasticsearch==9.4.1 \ + --hash=sha256:1d78fdfba97a903ec35a5eb5808a74e33392b7c620bd5f742d465a3a26c27d75 \ + --hash=sha256:71ab71c3d1b20fd88c2922fb82c3277cce7ea03c160686e7b9368b265c2b4cac # via feast (pyproject.toml) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1327,9 +1328,9 @@ faiss-cpu==1.10.0 \ --hash=sha256:e71f7e24d5b02d3a51df47b77bd10f394a1b48a8331d5c817e71e9e27a8a75ac \ --hash=sha256:f71c5860c860df2320299f9e4f2ca1725beb559c04acb1cf961ed24e6218277a # via feast (pyproject.toml) -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -2022,50 +2023,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx[http2]==0.27.2 \ --hash=sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0 \ @@ -2111,9 +2119,9 @@ identify==2.6.19 \ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842 # via pre-commit -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -2129,13 +2137,12 @@ imagesize==2.0.0 \ --hash=sha256:5667c5bbb57ab3f1fa4bc366f4fbc971db3d5ed011fd2715fd8001f782718d96 \ --hash=sha256:8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3 # via sphinx -importlib-metadata==8.7.1 \ - --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ - --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 +importlib-metadata==8.9.0 \ + --hash=sha256:58850626cef4bd2df100378b0f2aea9724a7b92f10770d547725b047078f99ee \ + --hash=sha256:e0f761b6ea91ced3b0844c14c9d955224d538105921f8e6754c00f6ca79fba7f # via # dask # mlflow-skinny - # opentelemetry-api importlib-resources==7.1.0 \ --hash=sha256:0722d4c6212489c530f2a145a34c0a7a3b4721bc96a15fada5930e2a0b760708 \ --hash=sha256:1bd7b48b4088eddb2cd16382150bb515af0bd2c70128194392725f82ad2c96a1 @@ -2434,9 +2441,9 @@ kube-authkit==0.4.0 \ --hash=sha256:1df61ac392fca96c8f5ae8c3d6e9918f1e1655d212434b3c3da5f92cc23b660d \ --hash=sha256:3bf5fc6ddc882498040118c907628ea68789f9a947454c241972008be59601a3 # via codeflare-sdk -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via # feast (pyproject.toml) # codeflare-sdk @@ -2667,9 +2674,9 @@ markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich -marko==2.2.2 \ - --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ - --hash=sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e +marko==2.2.3 \ + --hash=sha256:8e1d7a0387281e59dfbc52a381b58c570156970e36b2bbe047f8a3a2f368cacc \ + --hash=sha256:e31ec2875383bc62f9093d16babed5a2c2cde601c00d834ea935a2222120ec19 # via docling markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -2860,17 +2867,17 @@ mistune==3.2.1 \ # via # great-expectations # nbconvert -mlflow==3.12.0 \ - --hash=sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47 \ - --hash=sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0 +mlflow==3.11.1 \ + --hash=sha256:84e54c4be91b5b2a19039a2673fe688b1d7307ceddacc08af51f8df05b19ee56 \ + --hash=sha256:8f6bf1238ac04f97664c229dd480380c5c254a78bdb3c0e433e3a0397508b1af # via feast (pyproject.toml) -mlflow-skinny==3.12.0 \ - --hash=sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd \ - --hash=sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10 +mlflow-skinny==3.11.1 \ + --hash=sha256:82ffd5f6980320b4ac19f741e7a754faa1d01707e632b002ea68e04fd25a0535 \ + --hash=sha256:86ce63491349f6713afc8a4ef0bf77a8314d0e79e03753cb150d6c860a0b0475 # via mlflow -mlflow-tracing==3.12.0 \ - --hash=sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80 \ - --hash=sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518 +mlflow-tracing==3.11.1 \ + --hash=sha256:cb63cee16385d081467ec5bee4807fe1af59ddfdf04be4c79e7a7813b1002193 \ + --hash=sha256:fa82df64dacf8293b714ae666440fe7c1902c6470c024df389bb91e9de3106d9 # via mlflow mmh3==5.2.1 \ --hash=sha256:022aa1a528604e6c83d0a7705fdef0b5355d897a9e0fa3a8d26709ceaa06965d \ @@ -3479,18 +3486,18 @@ openshift-client==1.0.18 \ --hash=sha256:be3979440cfd96788146a3a1650dabe939d4d516eea0b39f87e66d2ab39495b1 \ --hash=sha256:d8a84080307ccd9556f6c62a3707a3e6507baedee36fa425754f67db9ded528b # via codeflare-sdk -opentelemetry-api==1.41.1 \ - --hash=sha256:0ad1814d73b875f84494387dae86ce0b12c68556331ce6ce8fe789197c949621 \ - --hash=sha256:a22df900e75c76dc08440710e51f52f1aa6b451b429298896023e60db5b3139f +opentelemetry-api==1.42.1 \ + --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \ + --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716 # via # mlflow-skinny # mlflow-tracing # opentelemetry-exporter-prometheus # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-prometheus==0.62b1 \ - --hash=sha256:7a0b8a6402e107e1f93e38f074a668797e1103936b189561959531a67ffeba55 \ - --hash=sha256:7ecbac9aa76e7abb44082ab0ff2983e0a573e4091c4653f7db483b02bae03506 +opentelemetry-exporter-prometheus==0.63b1 \ + --hash=sha256:0efd00aa6b1939345ddcc6de141b83ebffa2b4401a37a68f880e54217602701d \ + --hash=sha256:31902e22c89431058a95b6dcdb644f9309f226aa4872cc755f0a780d2895e97f # via ray opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ @@ -3499,50 +3506,66 @@ opentelemetry-proto==1.27.0 \ # mlflow-skinny # mlflow-tracing # ray -opentelemetry-sdk==1.41.1 \ - --hash=sha256:724b615e1215b5aeacda0abb8a6a8922c9a1853068948bd0bd225a56d0c792e6 \ - --hash=sha256:edee379c126c1bce952b0c812b48fe8ff35b30df0eecf17e98afa4d598b7d85d +opentelemetry-sdk==1.42.1 \ + --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \ + --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7 # via # mlflow-skinny # mlflow-tracing # opentelemetry-exporter-prometheus # ray -opentelemetry-semantic-conventions==0.62b1 \ - --hash=sha256:c5cc6e04a7f8c7cdd30be2ed81499fa4e75bfbd52c9cb70d40af1f9cd3619802 \ - --hash=sha256:cf506938103d331fbb78eded0d9788095f7fd59016f2bda813c3324e5a74a93c +opentelemetry-semantic-conventions==0.63b1 \ + --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \ + --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682 # via opentelemetry-sdk -oracledb==4.0.0 \ - --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ - --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ - --hash=sha256:22e33228d6955db8a69c8c83ee4b392a534c86f9493647ea3f511c2f5df08dd4 \ - --hash=sha256:244ebe47c4a4e32bc07a4206192de04d92fbfeb72bf11a01493e3a710bd4b19a \ - --hash=sha256:4582f87e56c2a2e3a74942f087c096525543e92fb59d3758e41d41145b809c52 \ - --hash=sha256:4e47a130120181b8226daf9e928e3c22107c1d03d9ac5f6b891360677a811787 \ - --hash=sha256:4fcbbd8977d8d91ae0d931ce21cda0048f9685e6cc29c9a84b49a769a2511b08 \ - --hash=sha256:62b36249e8db777cd6a2b56be768642d055c89df3cbcfb5d6a3b4dc2426b34df \ - --hash=sha256:6c65366200b44c0a71b927cd813628f0d993b098c61cc82c54c53bccb0dd0d80 \ - --hash=sha256:6fc3dd6ce0fb1d8ca865bdf39183e663b1dd5e2d585327feffedf379a05e3abb \ - --hash=sha256:758ac5a56e872eb517cbae5d28574b200d7b2b28c793ee31b6ce4938777d8364 \ - --hash=sha256:80434a5aa393833bfde853e9e2943671cab219b3081c34aad1974df73c21e04d \ - --hash=sha256:893acd019ee45184e85ef1b5f1ba425ab4da3e8ed4dab1339b7ef329d3658ffc \ - --hash=sha256:8974532ca43f50bc6c41b9efd78219121d3fa52c673d9790da12468d06fcf59f \ - --hash=sha256:8dd447f52482779f6cde277eaf7d734c7ac8f07f4d4e3d3609510f6033dfd0b8 \ - --hash=sha256:922c59a7fcdc44c93dac852b33b9ebae202614235e0ed235e632bf8d5ca4dd55 \ - --hash=sha256:997a4cd0f563b5a1aa92aeb9bdd70e67e3789f0d1a418600a7256b27e6c8947f \ - --hash=sha256:a1c22feae372978861786c65560498dbb36e32d7447318499694d4504c67c043 \ - --hash=sha256:a3a0221ccb33fb47b46cc3fbe587d80144e0ae6237ded5b3c58e8f6c674f02dc \ - --hash=sha256:a7e2c3d99a691e71b4eeb9efbefdfae4dcdfe3bb78abf05a5d9b1a5e65ce8ea0 \ - --hash=sha256:aad06930cf7a99914c863e6e550111b452560bef82b25bd9650541d5c7622837 \ - --hash=sha256:b691fbca4c83e72773c1bee17df5dfced4f01334ea48242262430074cc5a9b36 \ - --hash=sha256:b94a53c2524f4b9522a3091abdb12a2d8e1ac80a83456f7278d2165c3ec54482 \ - --hash=sha256:bad1d5101cd6191271ab89ec372ad8ca119dac9453f59b7be948bdebf6cd5a55 \ - --hash=sha256:ccf0b875850109a77ab932b03dbfa6c98e4eb011545465008d32e7a7207e8e9a \ - --hash=sha256:cd83db5710e26502352c4ce3f5b5e29f202223f9dade089a28daeb688083d0db \ - --hash=sha256:d4b36f906f2e6812d2e4bc1fe965d50670a3fd552cef66bcb2da892e946bba0c \ - --hash=sha256:dc96cf923b62baae45bf698f4e80407b5640d9760682ce5d424e847bf9e20298 \ - --hash=sha256:e29d9c9db167ade1c1649123c8f7cadf248f8e7f66f86335ec5b66b97f70f684 \ - --hash=sha256:f5b1f7ae53883336e23a235339e023d26d1d4b0d014ce4944c61dc79951c89df \ - --hash=sha256:f8c7f26d6e75848d7c75604eff71272c202ddb5eb65996630da3d6d5452401f6 +oracledb==4.0.1 \ + --hash=sha256:032ca4f558b05f03fa1bef1b04e59ec350ae0b22e6d85c47f4ac62ae98315823 \ + --hash=sha256:03afeda85bec3eca983ebf3ad9910d0f217d99300258366d287e015a041d6c13 \ + --hash=sha256:08e84a6af1b6e5921dba088dd9fc0738927206eafe5ce9763c34195f87556849 \ + --hash=sha256:0d3c6ed987df64b914ece0722692419fe494d07f15bb4d7715adeada4f914c3a \ + --hash=sha256:0ece951553c106a0896c8e1690bcdf69d472761fa65fec9b8152cbce13ab8b81 \ + --hash=sha256:10204432f0eea8707a79c75bdccb84071e43fd19c658cb3b34d1746b12c6e7fe \ + --hash=sha256:20a10f903c8da59e9689a98bd68012f78fa19bed950ad9f19cd8f5b8b97e73a0 \ + --hash=sha256:29ae0ff517a3241060eeee15a321b710c3f83a688cf2da7d5729adbe212e2b00 \ + --hash=sha256:34bbea44423ed8b24093aa859ca7ee9b6e76ea490f9acdc5f6ff01aa1083e343 \ + --hash=sha256:3b5ef1676a27b7e0a7ec55be27fd8f6d28d1601f5e8dfdae78705909f25b7c0a \ + --hash=sha256:416b324cd7715073cf5f3d577330387ffd59741463995c25bdc2d82b3e80b88e \ + --hash=sha256:443b2f03461e873ccd73dff3d8541fcf974c05e13e296a6687ffbb0c4a72c0a1 \ + --hash=sha256:4b42725337f80d433a3bd2928c08667e5b89da9ce05cf9ae3a4189c4fc4805ea \ + --hash=sha256:523b3356cde9d588ba250cefafdfc34869233d65c179f805ea6e4d3d6b209a7f \ + --hash=sha256:5332a4499d61c3cd659ed09bbd0d3c9a4c74a70bd51136d5c3de9127dc6d7434 \ + --hash=sha256:5646c126d4ab506ee2bda261e792f0036231ee929296057e79857ec678d86d4f \ + --hash=sha256:7156ef112a901967b3ee89b6c582bafc5a3082c47ca566de1a79e9ac3b48da32 \ + --hash=sha256:73ba32597fe1da72e0824aaa4b1900ec08a3b77268cb4eb45c733ae7e7043e70 \ + --hash=sha256:7bbe5611f9196f0ec15d4bf838ec728d89586a962a20d65cad898aec020e11c4 \ + --hash=sha256:7db5a43c29a23ed23923a29816c65c7a81fe00f2abfe6bf36d83ad952abd9b89 \ + --hash=sha256:8159c5bd8f25b0ca0ce30f21e7a732a2bdfb4adb81b9c8ea1ca75339d8ec8398 \ + --hash=sha256:828dd4c981b286f0467feab1c035fae8d3888cfdc707706841734821877ae1f3 \ + --hash=sha256:86a06d0afb3bb3a24bace0e72fb9abca2093efe0fa3457c65c13ba4eb5000b0b \ + --hash=sha256:86ac65cbc8d29626b1d9d203f9151566c26a78e55bdfc030c06169ae8017f458 \ + --hash=sha256:873fcca53306e2b3b445a7d657cddc19e415a7aa7e392c473dfd1a3ae3970989 \ + --hash=sha256:8e13ff1e6f28fdb863180d23fa94cb42c619c29d2981e24992431e51b97caa54 \ + --hash=sha256:8fcad6d9628923281bf21e48a391ac2f87ec6950dc63381d8fea470e3128aef0 \ + --hash=sha256:90586b3c7729b9cf3d40df902e81257f01e15e3408d8b6b9dbf91e939b64f72c \ + --hash=sha256:9f521b3f3f14fa9b8e748aeb79b064ae6767fcb0e8ff969a9aba7a852f059658 \ + --hash=sha256:a029dcee759bca56a8c95e952040c3d3f57e5ec05965355293b21930a66967fb \ + --hash=sha256:ae894ca2705929eb0ac228329336fd03388ad6e3b54002be6f5d4400a8feaf52 \ + --hash=sha256:b05bfadbfe462c39cc97258a973972f5bbbc9f8e2e9a4c2e0efcb1ec86b91088 \ + --hash=sha256:b09eec35681d72c9476e6d715b89bb775724a31e7363df6beba7470494ea8040 \ + --hash=sha256:b73820521eccd290506af94e1ffb9a8a5941b4018e3861df9b040652a7cef123 \ + --hash=sha256:c05a01d6ad610a88c2aa1a43b1dc0a8485f5fbd4374d2b36908859d4205de192 \ + --hash=sha256:c24b174aac8163065736072a726a50091791f6d30ac5c44965cf7044e86fbaf8 \ + --hash=sha256:c2d394453f669858bec942ff0da18b6ebade296ece823d582ad2b464ed5c6c90 \ + --hash=sha256:cb7727f93ff962ab826bc3d0bca4b0e5bf45ecb7c525551c70c9e094f0f27027 \ + --hash=sha256:ce3f25552fe58df5c266874f8b13f0a8ab7fcd09ab4b476bc15520a67527ca4b \ + --hash=sha256:ce6319ee01dcbb4d74f0e2a5794c6a566f339958ecac9830c67c7070521620e2 \ + --hash=sha256:cf61e42b9ef723dbdd0b23032b695e872009ed7341003df59d9a97cd960df977 \ + --hash=sha256:d132af7d95474d207632363575c7968b09e2d33dd24af3a36f539254433f4ae8 \ + --hash=sha256:d7cd278d59780e22e0a7451d208460756d779dc62b55bdbd95652f9640fbf8c3 \ + --hash=sha256:dbe8b44fea57385617838f2acfce8cc19f6c95cd9e65e7235e86b5932af1acd9 \ + --hash=sha256:e36581bb10e719d928dad12018c2d42606db2c34f49d6665b06f701f049255f0 \ + --hash=sha256:e3d54b624748cfe42248c4bc62c3f788632a2077058485a9acb3150312b1c396 \ + --hash=sha256:e4926e699a42c526137724960fa4303ecb0b542186b11d3705ac84414a896508 # via ibis-framework orjson==3.11.9 \ --hash=sha256:011382e2a60fda9d46f1cdee31068cfc52ffe952b587d683ec0463002802a0f4 \ @@ -4579,9 +4602,9 @@ pygments==2.20.0 \ # nbconvert # rich # sphinx -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # kube-authkit @@ -4729,9 +4752,9 @@ pymssql==2.3.2 \ --hash=sha256:fb8a7b197aaf466a7577ca6690aa9d747081b653ab212d052d71f3cc10587c3b \ --hash=sha256:fdd774b26407babd0205ef85a098f90553e6b3da77a22322a1e7d2cb51f742c0 # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pynacl==1.6.2 \ --hash=sha256:018494d6d696ae03c7e656e5e74cdfd8ea1326962cc401bcf018f1ed8436811c \ @@ -4859,8 +4882,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.1.1 \ - --hash=sha256:77f78984aa84fbe865c717dd37b49913b4e5c97d76ef6824f932f1aefa6621ec +pyspark==4.1.2 \ + --hash=sha256:fa5d6159f700d0990a07f4f62df1b7449401dccee9cd7d5d6df8957530841602 # via feast (pyproject.toml) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -5495,9 +5518,9 @@ requests-toolbelt==1.0.0 \ --hash=sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6 \ --hash=sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 # via python-keycloak -responses==0.26.0 \ - --hash=sha256:03ec4409088cd5c66b71ecbbbd27fe2c58ddfad801c66203457b3e6a04868c37 \ - --hash=sha256:c7f6923e6343ef3682816ba421c006626777893cb0d5e1434f674b649bac9eb4 +responses==0.26.1 \ + --hash=sha256:2eb3218553cc8f79b57d257bac23af5e1bf381f5b9390b1767816f0843e01dc2 \ + --hash=sha256:8aacc4586eb08fb2208ef64a9eb4258d9b0c6e6f4260845f2f018ab847495345 # via moto rfc3339-validator==0.1.4 \ --hash=sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b \ @@ -5523,122 +5546,137 @@ rich==14.3.4 \ # fastapi-mcp # ibis-framework # typer -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -5659,25 +5697,25 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.15.13 \ - --hash=sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629 \ - --hash=sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21 \ - --hash=sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55 \ - --hash=sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41 \ - --hash=sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8 \ - --hash=sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7 \ - --hash=sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4 \ - --hash=sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd \ - --hash=sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2 \ - --hash=sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51 \ - --hash=sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5 \ - --hash=sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9 \ - --hash=sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22 \ - --hash=sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca \ - --hash=sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6 \ - --hash=sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b \ - --hash=sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7 \ - --hash=sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6 +ruff==0.15.15 \ + --hash=sha256:2728b93d7b23a603ea2c0ac6eb73d760bd38ec9de35f35fb41e18f7a3fee7622 \ + --hash=sha256:29428ea79694afbe756d45fd59b36f22b6b020dc0443cf7de0173046236964b9 \ + --hash=sha256:3c8ceca6792f38196b8f589bc92eccd03eef286602da92e5dc05cc42ef6441b7 \ + --hash=sha256:3cdb1679e06a1f6b47bc384714ae96f6e2fb65ca441eb78c43d2ca554176ce1f \ + --hash=sha256:48decfa11d740de4889de623be1463308346312f2409a56e24aa280c86162dc4 \ + --hash=sha256:587a6278ed42059191c1a466e490bd7930fb50bd2e255398bc29616c895a61cb \ + --hash=sha256:7614ee79c69788cf6cedd568069ade9cecc22a1ad20494efe8d0c9ebb4b622d4 \ + --hash=sha256:77d955a431430c66f72dd94e379ad38a16daea3d25094872ac4edf9e797be530 \ + --hash=sha256:7aa77465b8ecaf1a27bea098d696f7fed5e1eccbd10b321b682d6de586ae5627 \ + --hash=sha256:8df0323902e15e24bc4bf246da830573d3cf3352bd0b9a164eab335d111ff4a4 \ + --hash=sha256:a5015088452ca0081387063649ec67f06d3d1d6b8b936a1f836b5e9657ecd48c \ + --hash=sha256:ac5a646d1f6a7dadd5d50842dae2c1f9862ac887ef5d1b1375e02def791fde6e \ + --hash=sha256:b8dff018130b46d8e5bf0f926ef6b60cf871d6d5ae45fc9334e09632daa741d6 \ + --hash=sha256:be582fcc0db438902c7792b08d6ddf6c9b9e21addaa10092c2c741cfb09e5a45 \ + --hash=sha256:cf93e5388f412e1b108b1f8b34a6e036b70fe8aff89393befad96fe48670311b \ + --hash=sha256:db5bd4d802415cca656dc1616070b725952d6ae95eb5d4831e49fbd94a38f75f \ + --hash=sha256:df0c1c084f5f4be9812f61518a45c440d3c30d69ce4bf6c5270e66d38338f02a \ + --hash=sha256:f5294aab6356c81600fcdea3a62bb1b924dfd5e91767c12318d3f68f86af57cd # via feast (pyproject.toml) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5885,9 +5923,9 @@ send2trash==2.1.0 \ --hash=sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c \ --hash=sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459 # via jupyter-server -sentence-transformers==5.5.0 \ - --hash=sha256:75313fdcc2397ec4b58297c25d6187fcca5a6b2aeb09570a72eff5a3223d8d58 \ - --hash=sha256:9cec675e68bfe09d07466d1f13ab06d1d79d60a0f45b154baf433bde6ae159cb +sentence-transformers==5.5.1 \ + --hash=sha256:02b7740dfc60bdbbcb6061625f5d97a5c1a4e2d3baac5f9391b912bb5eae2290 \ + --hash=sha256:4fe11d433badc5282d32f7fc08bc714216b7a5aca426f9df77a45a554756deb7 # via feast (pyproject.toml) setuptools==80.10.2 \ --hash=sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70 \ @@ -6006,44 +6044,45 @@ sniffio==1.3.1 \ # elastic-transport # elasticsearch # httpx -snowballstemmer==3.0.1 \ - --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ - --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 +snowballstemmer==3.1.0 \ + --hash=sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154 \ + --hash=sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f # via sphinx -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -soupsieve==2.8.3 \ - --hash=sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349 \ - --hash=sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95 +soupsieve==2.8.4 \ + --hash=sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e \ + --hash=sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65 # via beautifulsoup4 sphinx==6.2.1 \ --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ @@ -6073,70 +6112,65 @@ sphinxcontrib-serializinghtml==2.0.0 \ --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 \ --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d # via sphinx -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via # feast (pyproject.toml) # alembic @@ -6197,13 +6231,13 @@ stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython -starlette==0.52.1 \ - --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ - --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp - # mlflow-skinny # sse-starlette sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ @@ -6478,17 +6512,17 @@ torchvision==0.27.0 \ # docling-ibm-models # easyocr # timm -tornado==6.5.5 \ - --hash=sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9 \ - --hash=sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6 \ - --hash=sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca \ - --hash=sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e \ - --hash=sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07 \ - --hash=sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa \ - --hash=sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b \ - --hash=sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521 \ - --hash=sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7 \ - --hash=sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5 +tornado==6.5.6 \ + --hash=sha256:1c34cfab7ad6d104f052f55de06d39bbafc5885cfeb4da688803308dbcfa90b7 \ + --hash=sha256:2543597b24a695d72338a9a77818362d72387c03ae173f1f169eadc5c91466ac \ + --hash=sha256:385f35e4e22fb52551dfcda4cdc8c30c61c2c001aef5ddad99cdfe116952efd3 \ + --hash=sha256:38bc01b4acacded2de63ae78023548e41ebe6fbed3ec05a796d7ae3ad893887e \ + --hash=sha256:65fcfaafb079435c2c19dc9e07c0f1cf0fa9051759ed0a7d0a3ba7ea7f64919c \ + --hash=sha256:6739bf1e8eb09230f1280ddbd3236f0309db70f2c551a8dbc40f62babdf82f79 \ + --hash=sha256:8666946e70171b8c3f1fc9b7876fac492e84822c4c7f3746f4e8f8bc9ac92a79 \ + --hash=sha256:9a365179fe8ff6b8766f602c0f67c185d778193e9bdd828b19f0b6ed7764177d \ + --hash=sha256:b942e6a137fda31ff54bf8e6e2c8d1c37f1f50583f3ed53fb840b53b9601d104 \ + --hash=sha256:db475f1b67b2809b10bb16264829087724ca8d24fe4ed47f7b8675cae453ef86 # via # ipykernel # jupyter-client @@ -7414,135 +7448,111 @@ xxhash==3.7.0 \ --hash=sha256:fe32736295ea38e43e7d9424053c8c47c9f64fecfc7c895fb3da9b30b131c9ee \ --hash=sha256:fe820f104473d1516ecd628993690bc1f79b0e699f32711d42a5a70b3d0f8170 # via datasets -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.11-minimal-requirements.txt b/sdk/python/requirements/py3.11-minimal-requirements.txt index 7798a5eece1..9e114b7bc0a 100644 --- a/sdk/python/requirements/py3.11-minimal-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-requirements.txt @@ -4,9 +4,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -129,7 +129,9 @@ aiohttp==3.13.5 \ --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 - # via aiobotocore + # via + # aiobotocore + # kubernetes aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -229,9 +231,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # httpcore # httpx @@ -459,13 +461,12 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask - # typer # uvicorn cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -544,50 +545,50 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (pyproject.toml) -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -1060,50 +1061,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx==0.28.1 \ --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ @@ -1119,9 +1127,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -1153,9 +1161,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) librt==0.11.0 \ --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ @@ -1850,9 +1858,9 @@ pathspec==1.1.1 \ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 # via mypy -platformdirs==4.9.6 \ - --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ - --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 +platformdirs==4.10.0 \ + --hash=sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7 \ + --hash=sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a # via snowflake-connector-python prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ @@ -1991,15 +1999,15 @@ proto-plus==1.28.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via # feast (pyproject.toml) # google-api-core @@ -2271,9 +2279,9 @@ pygments==2.20.0 \ # via # feast (pyproject.toml) # rich -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -2282,9 +2290,9 @@ pymilvus==2.5.18 \ --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyopenssl==26.2.0 \ --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ @@ -2431,122 +2439,137 @@ rich==15.0.0 \ # fastapi-mcp # ibis-framework # typer -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -2572,101 +2595,97 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) sqlglot==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ @@ -2676,10 +2695,11 @@ sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp # sse-starlette @@ -2765,9 +2785,9 @@ typeguard==4.5.2 \ --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) -typer==0.25.1 \ - --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ - --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc +typer==0.26.3 \ + --hash=sha256:3e2b9352f535e5303ef27806dadc2c8647687bdca5c902f03fec3fb88f46a46a \ + --hash=sha256:e70549ec5a403ca8a0bf0802ddd9f3c6ff7a14ccbb859b01b697baa943636f33 # via fastapi-mcp types-pymysql==1.1.0.20260518 \ --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ @@ -3215,135 +3235,111 @@ wrapt==1.17.3 \ --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c # via aiobotocore -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt index 280bb1f4f7e..d15e211ad9e 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt @@ -206,46 +206,46 @@ cython==3.0.12 \ # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.4 \ - --hash=sha256:02cb0cc0f23b9874ad262d7d2b9560aed9c7e2df07b49b920bda6f2cc9cb505e \ - --hash=sha256:03893c88299a2c868bb741ba6513357acd104e7c42265809fd58dce1456a36fc \ - --hash=sha256:14dae483ca2838b287085ff98bc206abd7a597b7bb16939a092f8e84d9062842 \ - --hash=sha256:1a64a112a34ec719b47c01395647e54fb4cf088a511613f9a3a5196694e8e382 \ - --hash=sha256:28b1e363b024c4b8dcf52ff68125e635cb9cb4b0ba997d628f25e32543a71103 \ - --hash=sha256:28e8075087a59756f2d059273184b8b639fe0f16cf17470bd91c39921bc154e0 \ - --hash=sha256:2b1f12c0e4798293d2754e73cd6f35fa5bbdf072bdc14bc6fc442c059ef2d290 \ - --hash=sha256:31a90b4a2c47bb6d56baeb926948348ec968e932c1ae2c53239164e3e8880ccf \ - --hash=sha256:35ab0632186057406ec729374c737c37051d2eacad9d515d94e5a3b3e58a9b02 \ - --hash=sha256:36bf3f5eb56d5281aafabecbaa6ed288bc11db87547bba4e1e52943ae6961ccf \ - --hash=sha256:3b6e58f73a69230218d5381817850ce6d0da5bb7e87eb7d528c7027cbba40b06 \ - --hash=sha256:3b8e62049afef9da931d55de82d8f46c9a147313b69d5ff6af6e9121d545ce7a \ - --hash=sha256:55b6c44cd30821f0b25220ceba6fe636ede48981d2a41b9bbfe3c7902ce44ea7 \ - --hash=sha256:55eb425c0baf1c8a46aa4424bc35b709db22f3c8a1de33adb3ecb8a3d54ea42a \ - --hash=sha256:64d7f71be3dd6d6d4a4c575bb3a4674ea06d1e1e5e4cd1b9882a2bc40ed3c4c9 \ - --hash=sha256:67922c9de058a0bfb72d2e75222c52d09395614108c68a76d9800f150296ddb3 \ - --hash=sha256:6d5267f22b6451eb1e2e1b88f6f78a2c9c8733a6ddefd4520d3968d26b824581 \ - --hash=sha256:72e6c0bbd978e2678b45351395f6825b9b8466095402eae293f4f7a73e9a3e85 \ - --hash=sha256:732fc93bc33ae4b14f6afaca663b916c2fdd5dcbfad7114e17fb2434eeaea45c \ - --hash=sha256:767b143704bdd08a563153448955935844e53b852e54afdc552b43902ed1e235 \ - --hash=sha256:83266c356c13c68ffe658b4905279c993d8a5337bb0160fa90c8a3e297ea9a2e \ - --hash=sha256:84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6 \ - --hash=sha256:869487ea41d004f8b92171f42271fbfadb1ec03bede3158705d16cd570d6b891 \ - --hash=sha256:90f43be4eaa6afd58ce20d970bb1657a3627c44e1760630b82aa256ba74b4acb \ - --hash=sha256:983f9d2bb8a896e16fa68f2b37866ded35fa980195eefe62f764ddc5f9f5ef8e \ - --hash=sha256:b362819d155fff1482575e804e43e3a8825332d32baa15245f4642022664a3f4 \ - --hash=sha256:b84d4e3c875915545f77c88dba65ad3741afd2431e5cdee6c9a20cefe6905647 \ - --hash=sha256:ca2399dc75796b785f74fb85c938254fa10c80272004d573c455f9123eceed86 \ - --hash=sha256:ca578c9cb872c7ecffbe14815dc4590a003bc13339e90b2633540c7e1a252839 \ - --hash=sha256:d4b4fd5332ab093131fa6172e8362f16adef3eac3179fd24bbdc392531cb82fa \ - --hash=sha256:e3b5ac54e95f034bc7fb07313996d27cbf71abc17b229b186c1540942d2dc28e \ - --hash=sha256:e65e4773021f8dc8532010b4fbebe782c77f9a0817e93886e518c93bd6a44e9d \ - --hash=sha256:e71efb20048358a6b8ec604a0532961c50c067b5e63e345e2e359fff72feaee8 \ - --hash=sha256:f136f379a4a54246facd0eb6f1ee15c3837cb314ce87b677582ec014db4c6845 \ - --hash=sha256:f583cad7a7eed109f0babb5035e92d0c1260598f53add626a8568b57246b62c3 \ - --hash=sha256:f81eda419b5ada7b197bbc3c5f4494090e3884521ffd75a3876c93fbf66c9ca8 \ - --hash=sha256:f8d685a70bce39acc1d62ec3916d9b724b5ef665b0ce25ae55e1c85ee09747fc \ - --hash=sha256:fdfdd753ad7e18e5092b413e9f542e8d28b8a08203126090e1c15f7783b7fe57 \ - --hash=sha256:ff9af2134c05e3734064808db95b4dd7341a39af06e8945d05ea358e1741aaed +cython==3.2.5 \ + --hash=sha256:05c22cd606ac8d14a9cf17e48668bb37734c803978bf4d793c7f11ef54c4451f \ + --hash=sha256:0a81220817ff954eddf4512a5b82089094a2f523eb1dc4ad555efd6f07b009b4 \ + --hash=sha256:0bc29c7f870b09efdb1f583fbec9592b33af81a7ce273b89c8f5163d7572d5c1 \ + --hash=sha256:220e8b160b2a4ddc362ad8a8c2ab885aa7156099702cdc48f6518a5de921b553 \ + --hash=sha256:224149d18d980e6ea5001b70fc7ce096c1891d59035dfa9cc5ede50f55804913 \ + --hash=sha256:268aecadcabcdad9f773b8a5694746e0b9ee7894b56b84e2e3a2ccb6c929ea79 \ + --hash=sha256:29243859d6824e2d33bae92fc83d591c3671b6d9ac1b757fa264b894ae906c2b \ + --hash=sha256:34d21aeb08477c9173e8be7a566b19e880a7c8109ec6bb47a4b20cb680141114 \ + --hash=sha256:3795237ab49753647e329181b140c424e8aa97543074f171f8d2c45e5014a06e \ + --hash=sha256:382122de8d6b6024fc374fabc3a2b14ba5860ed981c25055ed14fe44278b9dc7 \ + --hash=sha256:3864da4ca2ebe4660d8f672f2143b02840bf3045655222f6090486171c84298f \ + --hash=sha256:39acb30eba78ba6d995d5cf3d97d57d450663d93aac6f8b93753d2b89d768c60 \ + --hash=sha256:3dd42e4cf36ad15f265bdfec2337cc00c688c8eb6d374ffd13bb19437c27bba1 \ + --hash=sha256:3e5e519bad217a0b96fc281666720ed7d339da618acaa012bea712980b8fe6c9 \ + --hash=sha256:45baf00cb8b222a2ca7e9c48add5dac3ceb6e65be4f591150a6b6767ce1f86b0 \ + --hash=sha256:4d00e2c976ee96da4deff50506c7882ccebb4a932fc178ef27eb42bfde959839 \ + --hash=sha256:561613ddd1ee83088eb126e80a5a7d73ee6eb82e0b1aea09afbe170287e5e27f \ + --hash=sha256:56c97c5e43782ec9d9e66c465e253d2ccde0c578c364c46445efe484965524f0 \ + --hash=sha256:5887c24ebd19604b7a76d8ea57446cb562a590f7f2557e5954a69aae38b3195e \ + --hash=sha256:605c447188aecf2941709f53a2ce44862be256e54601c01b38ab710d83db8047 \ + --hash=sha256:677bb60fd8f5949e26c0a7898983967dbbb65f7628481d8480956b85ca766554 \ + --hash=sha256:69cd71b90d4e0f142fd15b2353982c3f9171fc5e613001f16bcb366ffb29004b \ + --hash=sha256:6e5d7a60835345a8bd29d3aa57070880cc3ce017ea0ade7b9f771ce4bf539b1f \ + --hash=sha256:75f5295dc1b32d084fec598f9507e6f264311d78c07da640bc9a05dc47f7ac2c \ + --hash=sha256:85b2944c3eddfc230f9082720195a2e9f869908e5a8b3185be1be832755ee7fc \ + --hash=sha256:8d7b81e6a52a84a02993f01aa5873786ba1dd593c892d93d5fe9866da0bad297 \ + --hash=sha256:91cb5b9ff599612737b3fd0dddcd401acdf904b78c2caf8cd1049501d0a53f2d \ + --hash=sha256:992a50e90d01813333752f374a4405863113059ec67102ab8d6a431a171ee328 \ + --hash=sha256:a3a423468ee77c3c5b26494f57d9c52e9318991fb7142f4c49fb01b99373e8d6 \ + --hash=sha256:a636c8b7824f3cb587eb2fdde59d8f4a14d433565508081cc290198e37567910 \ + --hash=sha256:b4bfb00baef07106a1e5e7252ace18de91225322f7fa29970995aea7c380fa21 \ + --hash=sha256:b8bc1325cf3e4394cc08a3c1ea7fa24f02f405eef0e8c156d5055f6f9a7a1565 \ + --hash=sha256:c4c79e697db55f082a2d3ba97702e71881d5bb1f56f0a80fa338e69101e4c59b \ + --hash=sha256:c80e1e5cba5b4b9890364e9360939fc298c474f25754bb4bb861270d24bda6d6 \ + --hash=sha256:cce98a9011ac6a2560b3587db22912bd0138267669ec567b0d57eddd2d741b8b \ + --hash=sha256:dc1c8cebb7df5bce37f5f8dc1e5bf04313272a5973d50a55c0ec76c83812911b \ + --hash=sha256:eb38b89e5a8eb2508a1a0832063826b0703dfb02be84e4aa34b8818ce0ca50fe \ + --hash=sha256:f4e722ceab6d795b4682d693656218671c873d4aa74119c54a2b62de0e7c48ce \ + --hash=sha256:f9b564f67b01bffa2521f475794b49f2787709cec1f91d5935a38eba37f2b359 # via # pyarrow # uvloop @@ -761,9 +761,9 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -poetry-core==2.4.0 \ - --hash=sha256:4305848477da00272bebd3f615bbec87f64bd117cdb858ab660b626a06a9d96c \ - --hash=sha256:4e8c7496cf797998ffc493f2e23eba4b038c894c08eadacdcdf688945de6b43a +poetry-core==2.4.1 \ + --hash=sha256:89dceb6c10e9c6d8650a16183400e3c9ff9ddee13b0a81023b5575334a2b3744 \ + --hash=sha256:acf06f9537cd2625bdaec926d95d90b557ba15353bc71d27a3a8a441042b5316 # via # aiohappyeyeballs # dunamai @@ -969,9 +969,9 @@ tomlkit==0.15.0 \ --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via uv-dynamic-versioning -trove-classifiers==2026.5.7.17 \ - --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ - --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 +trove-classifiers==2026.5.22.10 \ + --hash=sha256:01fe864225726e03efb843827ecabfe319fc4dee8dd66d65b8996cb09be46e2c \ + --hash=sha256:5477e9974e91904fb2cfa4a7581ab6e2f30c2c38d847fd00ed866080748101d5 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -1050,6 +1050,7 @@ setuptools==80.10.2 \ # greenlet # grpc-google-iam-v1 # gunicorn + # httptools # httpx-sse # importlib-metadata # libcst @@ -1083,6 +1084,7 @@ setuptools==80.10.2 \ # setuptools-rust # setuptools-scm # shellingham + # snowballstemmer # snowflake-connector-python # sqlalchemy # sqlglot @@ -1100,12 +1102,7 @@ setuptools==80.10.2 \ # versioneer # websockets # wrapt - # yarl # zipp -setuptools==80.9.0 \ - --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ - --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c - # via httptools setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb @@ -1114,3 +1111,4 @@ setuptools==82.0.1 \ # python-dateutil # types-pymysql # types-setuptools + # yarl diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt index 50a8d8eb80f..bc70ef0a593 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt @@ -4,9 +4,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -129,7 +129,9 @@ aiohttp==3.13.5 \ --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 - # via aiobotocore + # via + # aiobotocore + # kubernetes aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -241,9 +243,9 @@ calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # httpcore # httpx @@ -471,13 +473,12 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask - # typer # uvicorn cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -626,50 +627,50 @@ docutils==0.22.4 \ --hash=sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968 \ --hash=sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de # via sphinx -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -939,66 +940,86 @@ googleapis-common-protos[grpc]==1.75.0 \ # google-api-core # grpc-google-iam-v1 # grpcio-status -greenlet==3.5.0 \ - --hash=sha256:0ecec963079cd58cbd14723582384f11f166fd58883c15dcbfb342e0bc9b5846 \ - --hash=sha256:0ed006e4b86c59de7467eb2601cd1b77b5a7d657d1ee55e30fe30d76451edba4 \ - --hash=sha256:0ff251e9a0279522e62f6176412869395a64ddf2b5c5f782ff609a8216a4e662 \ - --hash=sha256:1aa4ce8debcd4ea7fb2e150f3036588c41493d1d52c43538924ae1819003f4ce \ - --hash=sha256:1bae92a1dd94c5f9d9493c3a212dd874c202442047cf96446412c862feca83a2 \ - --hash=sha256:1eb67d5adefb5bd2e182d42678a328979a209e4e82eb93575708185d31d1f588 \ - --hash=sha256:2094acd54b272cb6eae8c03dd87b3fa1820a4cef18d6889c378d503500a1dc13 \ - --hash=sha256:2628d6c86f6cb0cb45e0c3c54058bbec559f57eaae699447748cb3928150577e \ - --hash=sha256:29ea813b2e1f45fa9649a17853b2b5465c4072fbcb072e5af6cd3a288216574a \ - --hash=sha256:362624e6a8e5bca3b8233e45eef33903a100e9539a2b995c364d595dbc4018b3 \ - --hash=sha256:3a717fbc46d8a354fa675f7c1e813485b6ba3885f9bef0cd56e5ba27d758ff5b \ - --hash=sha256:3bc59be3945ae9750b9e7d45067d01ae3fe90ea5f9ade99239dabdd6e28a5033 \ - --hash=sha256:3ec9ea74e7268ace7f9aab1b1a4e730193fc661b39a993cd91c606c32d4a3628 \ - --hash=sha256:41353ec2ecedf7aa8f682753a41919f8718031a6edac46b8d3dc7ed9e1ceb136 \ - --hash=sha256:47422135b1d308c14b2c6e758beedb1acd33bb91679f5670edf77bf46244722b \ - --hash=sha256:4964101b8585c144cbda5532b1aa644255126c08a265dae90c16e7a0e63aaa9d \ - --hash=sha256:4a448128607be0de65342dc9b31be7f948ef4cc0bc8832069350abefd310a8f2 \ - --hash=sha256:4b28037cb07768933c54d81bfe47a85f9f402f57d7d69743b991a713b63954eb \ - --hash=sha256:4d0eadc7e4d9ffb2af4247b606cae307be8e448911e5a0d0b16d72fc3d224cfd \ - --hash=sha256:54d243512da35485fc7a6bf3c178fdda6327a9d6506fcdd62b1abd1e41b2927b \ - --hash=sha256:55fa7ea52771be44af0de27d8b80c02cd18c2c3cddde6c847ecebdf72418b6a1 \ - --hash=sha256:57a43c6079a89713522bc4bcb9f75070ecf5d3dbad7792bfe42239362cbf2a16 \ - --hash=sha256:58c1c374fe2b3d852f9b6b11a7dff4c85404e51b9a596fd9e89cf904eb09866d \ - --hash=sha256:5a5ed18de6a0f6cc7087f1563f6bd93fc7df1c19165ca01e9bde5a5dc281d106 \ - --hash=sha256:5e05ba267789ea87b5a155cf0e810b1ab88bf18e9e8740813945ceb8ee4350ba \ - --hash=sha256:5ecd83806b0f4c2f53b1018e0005cd82269ea01d42befc0368730028d850ed1c \ - --hash=sha256:64d6ac45f7271f48e45f67c95b54ef73534c52ec041fcda8edf520c6d811f4bc \ - --hash=sha256:680bd0e7ad5e8daa8a4aa89f68fd6adc834b8a8036dc256533f7e08f4a4b01f7 \ - --hash=sha256:6c18dfb59c70f5a94acd271c72e90128c3c776e41e5f07767908c8c1b74ad339 \ - --hash=sha256:6d874e79afd41a96e11ff4c5d0bc90a80973e476fda1c2c64985667397df432b \ - --hash=sha256:7022615368890680e67b9965d33f5773aade330d5343bbe25560135aaa849eae \ - --hash=sha256:703cb211b820dbffbbc55a16bfc6e4583a6e6e990f33a119d2cc8b83211119c8 \ - --hash=sha256:728a73687e39ae9ca34e4694cbf2f049d3fbc7174639468d0f67200a97d8f9e2 \ - --hash=sha256:728d9667d8f2f586644b748dbd9bb67e50d6a9381767d1357714ea6825bb3bf5 \ - --hash=sha256:762612baf1161ccb8437c0161c668a688223cba28e1bf038f4eb47b13e39ccdf \ - --hash=sha256:7fc391b1566f2907d17aaebe78f8855dc45675159a775fcf9e61f8ee0078e87f \ - --hash=sha256:804a70b328e706b785c6ef16187051c394a63dd1a906d89be24b6ad77759f13f \ - --hash=sha256:83ed9f27f1680b50e89f40f6df348a290ea234b249a4003d366663a12eab94f2 \ - --hash=sha256:884f649de075b84739713d41dd4dfd41e2b910bfb769c4a3ea02ec1da52cd9bb \ - --hash=sha256:8f1cc966c126639cd152fdaa52624d2655f492faa79e013fea161de3e6dda082 \ - --hash=sha256:8f52a464e4ed91780bdfbbdd2b97197f3accaa629b98c200f4dffada759f3ae7 \ - --hash=sha256:9c615f869163e14bb1ced20322d8038fb680b08236521ac3f30cd4c1288785a0 \ - --hash=sha256:9d280a7f5c331622c69f97eb167f33577ff2d1df282c41cd15907fc0a3ca198c \ - --hash=sha256:a10a732421ab4fec934783ce3e54763470d0181db6e3468f9103a275c3ed1853 \ - --hash=sha256:a96fcee45e03fe30a62669fd16ab5c9d3c172660d3085605cb1e2d1280d3c988 \ - --hash=sha256:a97e4821aa710603f94de0da25f25096454d78ffdace5dc77f3a006bc01abba3 \ - --hash=sha256:ba8f0bdc2fae6ce915dfd0c16d2d00bca7e4247c1eae4416e06430e522137858 \ - --hash=sha256:bf2d8a80bec89ab46221ae45c5373d5ba0bd36c19aa8508e85c6cd7e5106cd37 \ - --hash=sha256:cda05425526240807408156b6960a17a79a0c760b813573b67027823be760977 \ - --hash=sha256:d419647372241bc68e957bf38d5c1f98852155e4146bd1e4121adea81f4f01e4 \ - --hash=sha256:d4d9f0624c775f2dfc56ba54d515a8c771044346852a918b405914f6b19d7fd8 \ - --hash=sha256:d60097128cb0a1cab9ea541186ea13cd7b847b8449a7787c2e2350da0cb82d86 \ - --hash=sha256:db2910d3c809444e0a20147361f343fe2798e106af8d9d8506f5305302655a9f \ - --hash=sha256:ddb36c7d6c9c0a65f18c7258634e0c416c6ab59caac8c987b96f80c2ebda0112 \ - --hash=sha256:ddc090c5c1792b10246a78e8c2163ebbe04cf877f9d785c230a7b27b39ad038e \ - --hash=sha256:e5ddf316ced87539144621453c3aef229575825fe60c604e62bedc4003f372b2 \ - --hash=sha256:f35807464c4c58c55f0d31dfa83c541a5615d825c2fe3d2b95360cf7c4e3c0a8 \ - --hash=sha256:f8c30c2225f40dd76c50790f0eb3b5c7c18431efb299e2782083e1981feed243 \ - --hash=sha256:fa94cb2288681e3a11645958f1871d48ee9211bd2f66628fdace505927d6e564 +greenlet==3.5.1 \ + --hash=sha256:001775efe7b8e758861294c7a27c28af87f3f3f1c20468a2bc618c45b346c061 \ + --hash=sha256:00929c98ec525fd9bf075875d8c5f6a983a90906cdf78a66e6de2d8e466c2a19 \ + --hash=sha256:017a544f0385d441e88714160d089d6900ef46c9eff9d99b6715a5ef2d127747 \ + --hash=sha256:089fff7a6ce8d9316d1f65ebc00273a56be258c1725b32b94de90a3a979557e1 \ + --hash=sha256:1072b4f9edcc1e192d9283a66a3e68d6b84c561de33a83d7858beb9ba1effe10 \ + --hash=sha256:10a9a1c0bfbc93d41156ffcb90c75fbc05544054faf15dcc1fdf9765f8b607f0 \ + --hash=sha256:110a1ca7b49b014b097f6078272c3f4ed31af45b254de5228b79adba879f6af9 \ + --hash=sha256:111e2390ffffc47d5840b01711dd7fac07d4c09283d0283e7f3264b14e284c64 \ + --hash=sha256:17d86354f0ae6b61bf9be5148d0dd34e06c3cb7c602c671f79f29ac3b150e659 \ + --hash=sha256:1ffdb3c0bb002c99cd8f298957e046c3dbf6006b5b7cdf11a4e19194624a0a0a \ + --hash=sha256:2baee5ca02031757ffe8cc3d69f0cc0aec7065ce362622da74f32d3bcab1c541 \ + --hash=sha256:2c18ef16bf6d4dd410e4dd52996888ea1497be26892fe5bbc73580aba4287b8e \ + --hash=sha256:2f82b3597e9d83b63408affed0b48fd0f54935edac4302237b9a837be0dae33c \ + --hash=sha256:3bfbd69cc349e43bf3a8ae1c85548ff0718efc887615c2db16c3833d7b0b072d \ + --hash=sha256:3c8bb982ad117d29478ef8f5533e97df21f1e2befd17a299257b0c96d1371c0b \ + --hash=sha256:3d955c89b75eeca4723d7cc14135f393cd47c32e2a6cb4a8e4c6e760a26b0986 \ + --hash=sha256:4378720dd888136c27215a0214d32a4d37c3852765d45bc37aad0623423cfd78 \ + --hash=sha256:45718441607f9325d948db98cbc691276059316d0358c188c246da4e1d4d23d2 \ + --hash=sha256:5028648bf2253ec4745add746129d3904121fa7fe871a76bed23c5720573ce0a \ + --hash=sha256:50ae25a67bea74ea41fb14b960bc532df73eb713417b2d61892dced82fe8d3bc \ + --hash=sha256:51518ff74664078fc51bffcc6fc529b0df5ae58da192691cee765d45ce944a2b \ + --hash=sha256:540dae7b956209af4d70a3be35927b4055f617763771e5e84a5255bea934d2f5 \ + --hash=sha256:5a56aeb7d5d9cc4b3a735efb5095bd4b4f6f0e4f93e5ca876d0e2315137b7829 \ + --hash=sha256:5e300185139abc337ade480c327183adf42a875ac7181bfe66d7d4efea31fbea \ + --hash=sha256:67821bb03e4e98664490edb787ff6af501194c29bbee0f5c1dfdcf1dc3d9d436 \ + --hash=sha256:6c09df69dc1712d131332054a858a3e5cca400967fa3a672e2324fbb0971448c \ + --hash=sha256:6ebeb75c81211f5c702576cf81f315e77e23cfdb2c7c6fcb9dd143e6de35c360 \ + --hash=sha256:73f78f9b9f0a5c06e5c946ba1e8e36f5114923b6be109ee618c54f079c3ea14f \ + --hash=sha256:7546556f0d649f99f6a361098a55f761181bb2ea12ff150bb16d26092ad88244 \ + --hash=sha256:7715a5a2c3378ba602c3a440558261e13a820bb53a82693aacd7b7f6d964e283 \ + --hash=sha256:7b5f5fae05b8ac6d176a61b60c394a8cbdc2b5b91b81793066e68745cf165e54 \ + --hash=sha256:7eacb17a9d41538a2bc4912eba5ef13823c83cb69e4d141d0813debe7163187f \ + --hash=sha256:7ffdb990dcaa0234cf9845aead5df2e3c3a8b6507d409274dd87e0d5ab05ffc2 \ + --hash=sha256:80eb4b04dadc4e67df3fae179a32c4706a3f495bc7f22fc8a81115d5f5512188 \ + --hash=sha256:88e300d136eac057b2397aa1cfd7328b4c87c7eb66a09c7bc6a1292234db474e \ + --hash=sha256:89101bfd5011e069be974903cb3a4e4523845e4ece2d62dcd8d358933c0ef249 \ + --hash=sha256:8a17c42330e261299766b75ac1ea32caa437a9453c8f65d16a13140db378ecd3 \ + --hash=sha256:8a271fcd66c74615cda6a964fda3f304267a12e50a084472218a39bb0376f563 \ + --hash=sha256:8d8a23250ea3ec7b36de8fa4b541e9e2db3ee82915cc060ab0631609ad8b28de \ + --hash=sha256:92fd6d44ac5e5a887c8a5dc4a8ba0ba908527c31c12f78c6bc7dcfe8aab279f6 \ + --hash=sha256:975eac34b44a7077ca4d421348455b94f0f518246a7f14bc6d2fdcfe5b584368 \ + --hash=sha256:9ab3c3a0b2ae6198e67c898dad5215a49f9ae0d0081b3c3ec59f333e39eeca26 \ + --hash=sha256:9b1ec3274918a81d3ea778b9e75b56b72b33f300edb6cf7f3a7fe1dae56683de \ + --hash=sha256:9d59e840387076a51016777a9328b3f2c427c6f9208a6e958bad251be50a648d \ + --hash=sha256:a0cbed8bb44e23c5b199f888f4e4ce096b45ad9f25ff74a7ad0213875e936bb2 \ + --hash=sha256:a19570c52a21420dcbc94e661994bc325c0b5b11304540fed514586da5dc8f2e \ + --hash=sha256:a203a8bd0acb0701653d3bbb26e404854a68674139ed5cbb778830f42b09bb33 \ + --hash=sha256:a4764e0bfc6a4d114c865b32520805c16a990ef5f286a514413b05d5ecd6a23d \ + --hash=sha256:a57b0d05a0448eed231d59c0ceb287dde984551e54cbc51ac2d4865712838e9c \ + --hash=sha256:a5c81f74d204d3edd136ebfd50dce53acbb776995d721a0fe801626cfc93b8cd \ + --hash=sha256:a5ea42a752d47a145eae922b605cd1634665ac3d5ec1e72402d5048e8d60d207 \ + --hash=sha256:a6fdf2433a5441ef9a95464f7c3e674775da1c8c1177fff311cee1acad4626ed \ + --hash=sha256:add5217d68b31130f0beca584d7fef4878327d2e31642b66618a14eef312b63b \ + --hash=sha256:b0703c2cef53e01baec47f7a3868009913ad71ec678bbecb42a6f40895e4ce62 \ + --hash=sha256:b9152fca4a6466e114aaec745ae61cba739903a109754a9d4e1262f01e9259b1 \ + --hash=sha256:c0141e37414c10164e702b8fb1473304221ad98f71600850c6ef7ff4880feba0 \ + --hash=sha256:c3d35f87c7253b715d13d679e0783d845910144f282cb939fe1ba4ac8616269c \ + --hash=sha256:c5551170cf4f5ff5623e9af81323751979fee2c731e2287b61f73cd27257b823 \ + --hash=sha256:cbfc69be86e10dcfef5b1e6269d1d6926552aa89ee39e1de3353360c1b6989ab \ + --hash=sha256:cc6ab7e555c8a112ad3a76e368e86e12a2754bcae1652a5602e133ec7b635523 \ + --hash=sha256:cd443683db272ebaaca03af98c0b063ab30db70ea8a31a1559f35e3f7b744ccd \ + --hash=sha256:d0932b81d72f552ded9d810d00021b64d89f2195a91ce115b893f943b7a4ab3c \ + --hash=sha256:d40a890035c0058cadbdc4af7569800fd28a0e527a0fdbb7b5f9418f176846ce \ + --hash=sha256:d5ee3ea898009fa898f85f9982255d35278c477bebe185beca249cab42d4526c \ + --hash=sha256:d8ab31c9de8651a2facdd5c5bb0011f2380dd1a7af78ce2adf4b56095294fc07 \ + --hash=sha256:dc71ff466927a201b08305acac451ebe1aedfcea002f62f1f2f2ac2ac1e6a135 \ + --hash=sha256:de2daaaebd1a5aa88c49045b6baf9310b3263796bd88db713edf37cf53e7bb4e \ + --hash=sha256:ded7b068c7c31c1a8657d4fd42d886b3e051ae29f88b80c5ff9d502257b0f071 \ + --hash=sha256:e5cc9606aa5f4e0bde0d3bd502b44f743864c3ffa5cfa1011b1e30f5aa02366f \ + --hash=sha256:e630136e905fe5ff43e86945ae41220b6d1470956a39220e708110ac48d01ea5 \ + --hash=sha256:e6cd99ea59dd5d89f0c956606571d79bfe6f68c9eb7f4a4083a41a7f1587edee \ + --hash=sha256:e7516cf6ae6b8a582c2770a0caed47b8a48373ed732c33d69a72913ae6ac923e \ + --hash=sha256:ea37d5a157eb9493820d3792ac4ece28619a394391d2b9f2f78057d396ff0f0f \ + --hash=sha256:ea8da1e900d758d078810d4255d8c6aa572181896a31ec79d779eb79c3adc9ad \ + --hash=sha256:ed8cdb691169715a9a492844a83246f090182247d1a5031dc78a403f68ba1e97 \ + --hash=sha256:ef08c1567c78074b22d1a200183d52d04a14df447bf70bcbb6a3507a48e776fc \ + --hash=sha256:f16ba1efc0715b680a18b8123d90dad887c6112ae3555b4b5c32c149540c6b4e \ + --hash=sha256:fa4f98af3a528f0c3fd592a26df7f376f93329c8f4d987f6bb979057af8bf5e2 \ + --hash=sha256:ffea73584b216150eab159b6d12348fb253e68757974de1e2c40d8a318ac89ed # via feast (pyproject.toml) grpc-google-iam-v1==0.14.4 \ --hash=sha256:392b3796947ed6334e61171d9ab06bf7eb357f554e5fc7556ad7aab6d0e17038 \ @@ -1222,50 +1243,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx==0.28.1 \ --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ @@ -1281,9 +1309,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -1321,9 +1349,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) librt==0.11.0 \ --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ @@ -2040,9 +2068,9 @@ pathspec==1.1.1 \ # hatchling # mypy # scikit-build-core -platformdirs==4.9.6 \ - --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ - --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 +platformdirs==4.10.0 \ + --hash=sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7 \ + --hash=sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a # via snowflake-connector-python pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ @@ -2185,15 +2213,15 @@ proto-plus==1.28.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via # feast (pyproject.toml) # google-api-core @@ -2470,9 +2498,9 @@ pygments==2.20.0 \ # feast (pyproject.toml) # rich # sphinx -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -2481,9 +2509,9 @@ pymilvus==2.5.18 \ --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyopenssl==26.2.0 \ --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ @@ -2639,122 +2667,137 @@ roman-numerals==4.1.0 \ --hash=sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2 \ --hash=sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7 # via sphinx -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -2789,36 +2832,37 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowballstemmer==3.0.1 \ - --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ - --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 +snowballstemmer==3.1.0 \ + --hash=sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154 \ + --hash=sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f # via sphinx -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2852,70 +2896,65 @@ sphinxcontrib-serializinghtml==2.0.0 \ --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 \ --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d # via sphinx -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) sqlglot==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ @@ -2925,10 +2964,11 @@ sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp # sse-starlette @@ -3010,17 +3050,17 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -trove-classifiers==2026.5.7.17 \ - --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ - --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 +trove-classifiers==2026.5.22.10 \ + --hash=sha256:01fe864225726e03efb843827ecabfe319fc4dee8dd66d65b8996cb09be46e2c \ + --hash=sha256:5477e9974e91904fb2cfa4a7581ab6e2f30c2c38d847fd00ed866080748101d5 # via hatchling typeguard==4.5.2 \ --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) -typer==0.25.1 \ - --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ - --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc +typer==0.26.3 \ + --hash=sha256:3e2b9352f535e5303ef27806dadc2c8647687bdca5c902f03fec3fb88f46a46a \ + --hash=sha256:e70549ec5a403ca8a0bf0802ddd9f3c6ff7a14ccbb859b01b697baa943636f33 # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -3476,135 +3516,111 @@ wrapt==1.17.3 \ --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c # via aiobotocore -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 694cde10b6e..b1c8a0ea83b 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -59,9 +59,9 @@ bigtree==1.4.1 \ --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via requests charset-normalizer==3.4.7 \ --hash=sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc \ @@ -194,9 +194,9 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via requests -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask @@ -217,9 +217,9 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (pyproject.toml) -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via feast (pyproject.toml) fsspec==2026.4.0 \ --hash=sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 \ @@ -235,54 +235,61 @@ h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 # via uvicorn -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # requests @@ -802,15 +809,15 @@ prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via feast (pyproject.toml) psutil==7.2.2 \ --hash=sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372 \ @@ -1021,9 +1028,9 @@ pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176 # via feast (pyproject.toml) -pyjwt==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via feast (pyproject.toml) python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ @@ -1125,122 +1132,137 @@ requests==2.34.2 \ --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via feast (pyproject.toml) -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -1248,75 +1270,72 @@ six==1.17.0 \ --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 # via python-dateutil -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b - # via fastapi +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 + # via + # feast (pyproject.toml) + # fastapi tabulate==0.10.0 \ --hash=sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d \ --hash=sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index 181df9d8952..8242268ecfe 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -8,9 +8,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -137,6 +137,7 @@ aiohttp==3.13.5 \ # aiobotocore # aiohttp-cors # fsspec + # kubernetes # mlflow # ray aiohttp-cors==0.8.1 \ @@ -382,9 +383,9 @@ build==1.5.0 \ # feast (pyproject.toml) # pip-tools # singlestoredb -cachetools==7.1.3 \ - --hash=sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d \ - --hash=sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804 +cachetools==7.1.4 \ + --hash=sha256:323dc4127934744db5b54eb4924482d7edafbf9554e820d1531c2e08c0e4ef54 \ + --hash=sha256:437f55a4e0c1b01a4f3077cc470e6991d47430970e36fbcb77e2be0df4fc1cd6 # via # mlflow-skinny # mlflow-tracing @@ -416,9 +417,9 @@ cassandra-driver==3.30.0 \ --hash=sha256:e12dfcd3f0074c16f4bfe650242edb406b935864373ae86160e09e3f5e437e84 \ --hash=sha256:ff2e9fbdc1be54c1d041ea3f7d09812442f334be14bb5ad7aede175544765d25 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # clickhouse-connect # docling @@ -656,9 +657,9 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask @@ -670,61 +671,61 @@ click==8.4.0 \ # ray # typer # uvicorn -clickhouse-connect==1.0.0 \ - --hash=sha256:03ab4bda888575a2ea882ad4ed05bf9f5f15bb621209f6a4045231e3f26fedf7 \ - --hash=sha256:046f79215ebdd62192cc36e4d81b549570ca46e5b61e107b0d54cf7855b2ffff \ - --hash=sha256:04ba770a1e3d0f2d093fc7400d2da0e121b55b092b65250d738e09b0139a594e \ - --hash=sha256:07c23806a5dd00e95d7edd75796a2667234e99934033fb8f39659f58eb18fab1 \ - --hash=sha256:0a6faf07cfb16feb345c36dc5e2895a655d923ef64f10ff616eca44dfe5cc5b0 \ - --hash=sha256:0d4ed1e296c6e77dc0dbf486607cc39fc6e36866abb653543d5ad0a8426ea8f0 \ - --hash=sha256:0fcccd2b49d57a09e465fc0c01c7c323f0db637241b3fc93d869d1b256c46184 \ - --hash=sha256:1265ab0139fcf6fd36d358697a1a4dab313a6bdb7ab9a9bc8ecc3f656f16dee3 \ - --hash=sha256:1415f440ae59b03e10bd5cc11c0034f30ad5f8fad74b42153926482c99ac21eb \ - --hash=sha256:20b76e54c9ea77e86c47b3194f1a9ff1833bd6fa34cb81bfcec621eff94ed033 \ - --hash=sha256:250826f2c3a8466faa51e03902f4c989be5da6f2ab6f74928afadd19ce1e2336 \ - --hash=sha256:29185891d5de03f60ff9da37dbe1e1e44bed8ef252d0d1281ddf3a450dfe5023 \ - --hash=sha256:295e6ff6e3f7fe71c28b1753967d8669ce12d924486150c74c892d8f67cba4d9 \ - --hash=sha256:298e7816ae3ecb7935bf1fe3fb8b8e9eb639e4e14516b87f01ef5a1c223b992c \ - --hash=sha256:2ff97a4a607eb525d9835c939a05ff63f0d3127f33afe1ed78b05d928f49c16c \ - --hash=sha256:320f0c53c4cb8b06732d875cabd35a357992a9e0fcf9f4a18b631ea7ce377ef1 \ - --hash=sha256:3222ae6bf39930a34ff4a483c6b34a1f3dab02d6743428b0383f4d47af7a48db \ - --hash=sha256:34557e29c4dfa0df1f6e26d053d6af1ae8d1444f4bd44a5c647dc7dd3bea22c0 \ - --hash=sha256:345838366b453a8c9c38366ac54493c2fb325982967d7bd0cde3ff619b66d9b7 \ - --hash=sha256:39315f2096809a08cdc75850b52a3675a0639525bbd634b87c4f188bfd875200 \ - --hash=sha256:40f9ade34a50ef2edfa0007d7b300a72fb4be239a0581b5ffc46f165b6a3d1a6 \ - --hash=sha256:444a735bf44390cbd0a81d84d3b20bd0c36084d2a8b9d030bc41b938c3dff1d1 \ - --hash=sha256:46b6dbabbda32e7e717b2732585ffbccf11815ad36987af57a068a66d1a0292c \ - --hash=sha256:4959f9b8915d5a64193523b9b25d7446c583befb5e339cbf45dba68eb2c4abbb \ - --hash=sha256:4964db35f9352452861e0d4d93ea4e7f41c77889e6f78092fe6c6cae5e09f478 \ - --hash=sha256:53f1f9cd31b1af371340f39923a08ba0aef57a7a85ef4a27376107f376c1efc3 \ - --hash=sha256:56a0d59bc1639827ac7ad14158ba557e5287f6cee1b6c942fc1747be12cbcc07 \ - --hash=sha256:5ce486901a4042f6fc6a76ad2961bf5be7c4d970fabecf99113f6cb49d936303 \ - --hash=sha256:6977afeabca17cdd3bc11215902f20e850eb1d71451d93eaee8ac26068a84af4 \ - --hash=sha256:715f50937fcafa849c53314d443b55fb5b04b938f2402ec135c41e515a8312af \ - --hash=sha256:77a5ce7880dea5deadd53d189cf690bdee14513c055343104f5ad3ddcfe25025 \ - --hash=sha256:80c455d0ce5d93c4a744911dcbfb37124c009a826727770fd86f21a47d654333 \ - --hash=sha256:8c4f5c8fa36b605435b32efea4f40ce11babb5f5afcec1e00f6a6cce81f81000 \ - --hash=sha256:8e74375b92cfa94cb4c944a393a027af5c5ed562fc6b862baf6288696bc48688 \ - --hash=sha256:965a496c770d17d061115ad096d2c966af3cee40c167b035afd0f3bd8037327b \ - --hash=sha256:98a3efce3af5308ba3ed140c20a4dc6bf175736e2803b5cb75838ee36365a4eb \ - --hash=sha256:9a2612b246bb9aa69419b8d24732df50e80579f0c43dea97db457cc15b39bfb2 \ - --hash=sha256:9c64f7a26f97eeca472dab6ca9baddc1e36fae1d1c244541926ada4fad14a99b \ - --hash=sha256:9ec2a93d353415951ab10da943f30f0038acc0a1ff82b3253d82a106f3065f34 \ - --hash=sha256:a763c1b1c7977fcab59d2d1d2f249a5231abf44f8a3aa5b0df06bb849b5d0f65 \ - --hash=sha256:a9e780a6d45025469d4e9cea5fec8b0ee55ef76bae867b2f255a106c0c720133 \ - --hash=sha256:ab0a095afd9a6353872a51304c795949fb31f8fdf7519a0f27d7c0fb255983d7 \ - --hash=sha256:aebf884c1aed8cf857d3323ac041e1cf636a865d231dc241543d9a68e82b553d \ - --hash=sha256:bbc6000c1c297b969b6d0a097e84a7bfa31931b0512e4eb1674c6c6d158ade0b \ - --hash=sha256:d84b8b799c71a88a600ca0455fed2d2edb320f510b04969bf04ca6f4807ab4fc \ - --hash=sha256:dae66adb575b7eb9626d84edad4481d5c3d93ca680766c3f1891c13694913bee \ - --hash=sha256:de4a5d1ffa12127f89b5308f95c6ef5da9b1c7f5d133a7d540c364bf259351fc \ - --hash=sha256:e7cfb81c08685ad721b30cb702324de8763f7e8ff8aa653d1c7b602363524cd9 \ - --hash=sha256:ede49d49101023f45d8cfb985719a9c20cf40ff4c60a9f895d48c17dac278448 \ - --hash=sha256:ef3b69da678fe40056f585c0a788356b6eeda04b751a3837ffe75340155ecfdb \ - --hash=sha256:ef8ba83257515fd38a7007a9ae1e8b70bf38d38f4bba34c3b7660af648f88cd2 \ - --hash=sha256:f61a6d42228694cbfcdf806061e752fc88511926389a271987d61c360029b72f \ - --hash=sha256:f8730073bc1adcee13b338b347f68fa0ec7b2460aecce227be2d5abb01ea7b8c \ - --hash=sha256:fc0801be2505b2e3d3b0337c875a624eab61912b8fd55218424ad52a69deab10 +clickhouse-connect==1.1.1 \ + --hash=sha256:0b602967810358408ebd55693fd582f3a20e08800f721fb72ae320f0f74686ff \ + --hash=sha256:0bb2c8f82bb2bd5f645c0114d5d766a95dc1e0dec33c07deafa5a68dbb75f898 \ + --hash=sha256:0e9e294601aac4de51ac7cd2423176fe5111da41b5d120047606eb855795853c \ + --hash=sha256:0ec2f574530c65412a490ac6a29445509ca6346dbb15d39a825e27c73d680f3a \ + --hash=sha256:10055ae880742ffc61244eb129bbbafa6fe97731aa959d717b16513b5094255a \ + --hash=sha256:10c0354b858f500f4f26195dc37cd6047eb4d324b0b08ca6873e2241ea4a2ea8 \ + --hash=sha256:11ca173d36405d446f97dfea0a3e1531389d90d23c686ec18ebcbc0eed17200e \ + --hash=sha256:1284cb2a73b6af208aac06ad04d9121a8aa33f4b971b9d5a65264d2137b5cf0f \ + --hash=sha256:1781f330cd0678b203dc35d5df85c3b212577412c0dcf664432edbfc71a20489 \ + --hash=sha256:1e2b000c55e698220cba80e660349c60d7acb3b82172c320a51519d191e24826 \ + --hash=sha256:22ed08e9a361e1d21762c68275610ee0e023f281fe9a1653763b62fc5585a6f0 \ + --hash=sha256:233cc6eae3dbec122ed7ff694f657aa9676b36c2acbcef64e97166e4f75f5040 \ + --hash=sha256:27b665a01711e9a5b08e4412d501baf76ce4ccbeb937ec67e73040094492adbc \ + --hash=sha256:2913a4c96c3aede2b39489731eb8c39e37792755df9b56548b162ab1e09df4f3 \ + --hash=sha256:2c9a1bdb1d9705a270ec8036cd89113db04f4437a4d3b5db0774312ec4d06e30 \ + --hash=sha256:3cdae5ce54cc7d5fdaced13857612b25ae58f0830987a4b17ebcf376d71df3b2 \ + --hash=sha256:43e1fb7d588a799a3e55a4982946d59484edf1e960abc9e7ac330a3330ee4fc5 \ + --hash=sha256:49cb0d82e3f68d7304275bf350419095c080ddd49f99704dd44a956273fa7c09 \ + --hash=sha256:4f0c6c52245322c04bdccc71565ac8db9731e1787c90665df9167928101f0b89 \ + --hash=sha256:4ff227719006516877b5152e89cba514ceee9807e6b030a1ddba8d9355b87412 \ + --hash=sha256:6062c400d67dd4ab03fc3f9473134fc0a240593c242998d032d32cb04a65f083 \ + --hash=sha256:646408372c2a4b0e4068145897a35100cefc6974a409c68b20ba22403665fe5a \ + --hash=sha256:68d6e245db80ea42c59c32dbed655f28e82337d61405dde6aa5e009c507a6eee \ + --hash=sha256:70b9dee3c4629e06f2b5788d02b6cded0a32d2509966bc293cf1c39abc395a29 \ + --hash=sha256:763f7fabc921ee9fb4c07d180447a6324980bfeb981c3f53065d04bda5f133b7 \ + --hash=sha256:770da683bf65d3536c46d564e5a9311d6cd40d191a0357a762ac702813774965 \ + --hash=sha256:784a1c9513a33f6f8df0c260e43ea5cdc5fde0a2c91bca7e69ce26bc4990abcd \ + --hash=sha256:7fb296b2c51e5ad8d7f677a08a093b3b122cd4411619678a968567f3b34bf075 \ + --hash=sha256:8857676711197c981afc317a38ad1b92aedcf81b7052e67098f40adcf4b5d4ba \ + --hash=sha256:8b0590065a4c6551d1145229adf3405befc053843f6b1ffeb3802ae7221d53dc \ + --hash=sha256:8f2f9029f6589d2d349912a94a17d9997c550a7f19dd5b747f6b452764dc0e54 \ + --hash=sha256:92d885943b1b0a1489501408d6af91ec2d96189dbc475f3552f22cd43c9c6270 \ + --hash=sha256:9de3999bad13146823e9c6811dbe9a66653bf5c71980472f8fe5165d186451ee \ + --hash=sha256:a4639a1c6291358a0dd40ba0a6a6059eb5fcc9acd6f4cd61eb52b3cb5165d37e \ + --hash=sha256:a4740e012dc4ed2fab769dba4b13be92142e2df2bfb0de547b0b73f13296bcb8 \ + --hash=sha256:a6c0a8f1c4e4954161051b26bee8d24f1e53254125d2bf6e18c9360cd41fe059 \ + --hash=sha256:a706631a540ac21aac4434a446d50263c0872c9507bc6a0ccfb51467c0ff74a4 \ + --hash=sha256:ad6b32a1bb391f15345c6af4ecee152e04362c6331cd93472f2fa5e64f8a9aaa \ + --hash=sha256:b1e83e71d5b0df09cb807657ab0457eb1fd116a331039d3c5d3051387092ff6a \ + --hash=sha256:c336452cd5aeada902ac41d57296498766f95a175cb1dcf13d48479b5b31ac6b \ + --hash=sha256:c54bdd8870a644a9baa7cd68fdfc5100f5b19aa246657be863788a6a7bf4052e \ + --hash=sha256:ca28e361a51afe2e7e2fcff47c1423fd61271d26af7d19e37f6ff0ab67bf086f \ + --hash=sha256:cd501e3ccee60d4cccf5cde4b4c92632b62763563b08aa07dbfd3e2583c12005 \ + --hash=sha256:d1df245b5c21fa7bd70193164cc97f3937ccee3087dbc7906daf2e97b226b2a8 \ + --hash=sha256:d3b3806986340192ed2b197241be193649717cc58f7ef9bdf86d119758289a0f \ + --hash=sha256:d4a5e4b36219d678d495120007d0ba8b7d1bf4c5105292b35fa4473038fc2892 \ + --hash=sha256:d749389301b201ae7329c8fc96599fc116de8aadc16a5a4416e399483c569ea9 \ + --hash=sha256:d84c8ed4cc26976d2cc6725e36b85d4e24f1c43c11d82483b3060116ac0bcfd4 \ + --hash=sha256:dcdfee2f707225bfbd80ba2da5c995a38393aa02920adf770264c6f5b041e9ed \ + --hash=sha256:e762f70ebf57cb43a6257daa6196f5beb574d69915dd06c29735d5811dfd8dce \ + --hash=sha256:ee7d8308c8a688c6851b19d2bc743a02ed5d6f8679203a13872a80cf4066dd57 \ + --hash=sha256:f205be896551d7ea0a0140a86e36d261e249f99541d68a3dfdd47dd8c7c2bbbb \ + --hash=sha256:f552668320b8c533b6f2b93d03dd4840cfe0e8f5f01c76ea0d2989e4127fa60e \ + --hash=sha256:f75e0d62bdb53ba72fa2aa962950c5c107627158c9fe8900ca14da557295bdb2 # via feast (pyproject.toml) cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -892,113 +893,113 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (pyproject.toml) -coverage[toml]==7.14.0 \ - --hash=sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74 \ - --hash=sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e \ - --hash=sha256:0a951308cde22cf77f953955a754d04dccb57fe3bb8e345d685778ed9fc1632a \ - --hash=sha256:0c451757d3fa2603354fdc789b5e58a0e327a117c370a40e3476ba4eabab228c \ - --hash=sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a \ - --hash=sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe \ - --hash=sha256:1733198802d71ec4c524f322e2867ee05c62e9e75df86bdca545407a221827d1 \ - --hash=sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db \ - --hash=sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9 \ - --hash=sha256:1c9ed6ef99f88fb8c14aa8e2bf8eb0fe55fa2edfea68f8675d78741df1a5ac0e \ - --hash=sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b \ - --hash=sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66 \ - --hash=sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644 \ - --hash=sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490 \ - --hash=sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5 \ - --hash=sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8 \ - --hash=sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f \ - --hash=sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212 \ - --hash=sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb \ - --hash=sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917 \ - --hash=sha256:3fd43f0616e765ab78d069cf8358def7363957a45cee446d65c502dcfeea7893 \ - --hash=sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c \ - --hash=sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90 \ - --hash=sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d \ - --hash=sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef \ - --hash=sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9 \ - --hash=sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087 \ - --hash=sha256:5904abf7e18cddc463219b17552229650c6b79e061d31a1059283051169cf7d5 \ - --hash=sha256:5ac83957a80d0701310e96d8bec68cdcf4f90a7674b7d13f15a344315b41ab27 \ - --hash=sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020 \ - --hash=sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3 \ - --hash=sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47 \ - --hash=sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca \ - --hash=sha256:65f267ca1370726ec2c1aa38bbe4df9a71a740f22878d2d4bf59d71a4cd8d323 \ - --hash=sha256:664123feb0929d7affc135717dbd70d61d98688a08ab1e5ba464739620c6252d \ - --hash=sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd \ - --hash=sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426 \ - --hash=sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828 \ - --hash=sha256:6a78e2a9d9c5e3b8d4ab9b9d28c985ea66fced0a7d7c2aec1f216e03a2011480 \ - --hash=sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97 \ - --hash=sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8 \ - --hash=sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899 \ - --hash=sha256:70390b0da32cb90b501953716302906e8bcce087cb283e70d8c97729f22e92b2 \ - --hash=sha256:72a305291fa8ee01332f1aaf38b348ca34097f6aa0b0ef627eef2837e57bbba5 \ - --hash=sha256:731dc15b385ac52289743d476245b61e1a2927e803bef655b52bc3b2a75a21f3 \ - --hash=sha256:731e535b1498b27d13594a0527a79b0510867b0ad891532be41cb883f2128e20 \ - --hash=sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436 \ - --hash=sha256:741f57cddc9004a8c81b084660215f33a6b597dbe62c31386b983ee26310e327 \ - --hash=sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b \ - --hash=sha256:7b2bb6c9d7e769360d0f20a0f219603fd64f0c8f97de17ab25853261602be0fb \ - --hash=sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe \ - --hash=sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab \ - --hash=sha256:7c843572c605ab51cfdb5c6b5f2586e2a8467c0d28eca4bdef4ec70c5fecbd82 \ - --hash=sha256:7ebb1c6df9f78046a1b1e0a89674cd4bf73b7c648914eebcf976a57fd99a5627 \ - --hash=sha256:7ffd19fc8aed057fd686a17a4935eef5f9859d69208f96310e893e64b9b6ccf5 \ - --hash=sha256:8231ade007f37959fbf58acc677f26b922c02eda6f0428ea307da0fd39681bf3 \ - --hash=sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477 \ - --hash=sha256:829994cfe1aeb773ca27bf246d4badc1e764893e3bfb98fff820fcecd1ca4662 \ - --hash=sha256:84c32d90bf4537f0e7b4dec9aaa9a938fb8205136b9d2ecf4d7629d5262dc075 \ - --hash=sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f \ - --hash=sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1 \ - --hash=sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7 \ - --hash=sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52 \ - --hash=sha256:91b993743d959b8be85b4abf9d5478216a69329c321efe5be0433c1a841d691d \ - --hash=sha256:92af52828e7f29d827346b0294e5a0853fa206db77db0395b282918d41e28db9 \ - --hash=sha256:9336e23e8bb3a3925398261385e2a1533957d3e760e91070dcb0e98bfa514eed \ - --hash=sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90 \ - --hash=sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1 \ - --hash=sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d \ - --hash=sha256:9cd1169b2230f9cbe9c638ba38022ed7a2b1e641cc07f7cea0365e4be2a74980 \ - --hash=sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca \ - --hash=sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa \ - --hash=sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6 \ - --hash=sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc \ - --hash=sha256:a1816c505187592dcd1c5a5f226601a549f70365fbd00930ac88b0c225b76bb4 \ - --hash=sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c \ - --hash=sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d \ - --hash=sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84 \ - --hash=sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2 \ - --hash=sha256:a93bac2cb577ef60074999ed56d8a1535894398e2ed920d4185c3ec0c8864742 \ - --hash=sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2 \ - --hash=sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb \ - --hash=sha256:b34ece8065914f938ed7f2c5872bb865336977a52919149846eac3744327267a \ - --hash=sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9 \ - --hash=sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96 \ - --hash=sha256:b4f07cf7edcb7ec39431a5074d7ea83b29a9f71fcfc494f0f40af4e65180420f \ - --hash=sha256:b812eb847b19876ebf33fb6c4f11819af05ab6050b0bfa1bc53412ae81779adb \ - --hash=sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63 \ - --hash=sha256:bcb2e855b87321259a037429288ae85216d191c74de3e79bf57cd2bc0761992c \ - --hash=sha256:bfb0ed8ec5d25e93face268115d7964db9df8b9aae8edcde9ec6b16c726a7cc1 \ - --hash=sha256:c7492f2d493b976941c7ca050f273cbda2f43c381124f7586a3e3c16d1804fec \ - --hash=sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367 \ - --hash=sha256:c83d2399a51bbec8429266905d33616f04bc5726b1138c35844d5fcd896b2e20 \ - --hash=sha256:ca3d9cf2c32b521bd9518385608787fa86f38daf993695307531822c3430ed67 \ - --hash=sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b \ - --hash=sha256:d128b1bba9361fbaaf6a19e179e6cfd6a9103ce0c0555876f72780acc93efd85 \ - --hash=sha256:d1bb3543b58fea74d2cd1abc4054cc927e4724687cb4560cd2ed88d2c7d820c0 \ - --hash=sha256:d8b013632cc1ce1d09dbe4f32667b4d320ec2f54fc326ebeffcd0b0bcc2bb6c4 \ - --hash=sha256:d8e1762f0e9cbc26ec315471e7b47855218e833cd5a032d706fbf43845d878c7 \ - --hash=sha256:d9c8ef6ed820c433de075657d72dda1f89a2984955e58b8a75feb3f184250218 \ - --hash=sha256:dc38367eaa2abb1b766ac333142bce7655335a73537f5c8b75aaa89c2b987757 \ - --hash=sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef \ - --hash=sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1 \ - --hash=sha256:fab3877e4ebb06bd9d4d4d00ee53309ee5478e66873c66a382272e3ee33eb7ea \ - --hash=sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae \ - --hash=sha256:fcaba850dd317c65423a9d63d88f9573c53b00354d6dd95724576cc98a131595 +coverage[toml]==7.14.1 \ + --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ + --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ + --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \ + --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \ + --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \ + --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \ + --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \ + --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \ + --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \ + --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \ + --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \ + --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \ + --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \ + --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \ + --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \ + --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \ + --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \ + --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \ + --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \ + --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \ + --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \ + --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \ + --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \ + --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \ + --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \ + --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \ + --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \ + --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \ + --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \ + --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \ + --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \ + --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \ + --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \ + --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \ + --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \ + --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \ + --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \ + --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \ + --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \ + --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \ + --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \ + --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \ + --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \ + --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \ + --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \ + --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \ + --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \ + --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \ + --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \ + --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \ + --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \ + --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \ + --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \ + --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \ + --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \ + --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \ + --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \ + --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \ + --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \ + --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \ + --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \ + --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \ + --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \ + --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \ + --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \ + --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \ + --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \ + --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \ + --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \ + --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \ + --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \ + --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \ + --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \ + --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \ + --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \ + --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \ + --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \ + --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \ + --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \ + --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \ + --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \ + --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \ + --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \ + --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \ + --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \ + --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \ + --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \ + --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \ + --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \ + --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \ + --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \ + --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \ + --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \ + --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \ + --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \ + --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \ + --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \ + --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \ + --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \ + --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \ + --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \ + --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \ + --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \ + --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ + --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ + --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c # via pytest-cov cryptography==46.0.7 \ --hash=sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65 \ @@ -1076,9 +1077,9 @@ dask[dataframe]==2026.3.0 \ --hash=sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d \ --hash=sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85 # via feast (pyproject.toml) -databricks-sdk==0.109.0 \ - --hash=sha256:46745a25324a5b36f01236760e44fc6e2bce3f051224e6f8aef7633477fcbec8 \ - --hash=sha256:96b90f5ee2e0fac89f351aa77348263e1e0ed5d4d867cdfaefd2e0acc01b1e81 +databricks-sdk==0.112.0 \ + --hash=sha256:2121c0852eef39c20d6381e6a2ac52f580610b268891722e39a3b53d92da78b7 \ + --hash=sha256:39ed2fc6a0a1110e64ad8903a471daea0570ca544811ba88163bbb199a67dea7 # via # mlflow-skinny # mlflow-tracing @@ -1182,9 +1183,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (pyproject.toml) -docling-core[chunking]==2.76.0 \ - --hash=sha256:55af705c6d0755254afddb959fe5dea3a6d413d3ea7539e380bb008268806316 \ - --hash=sha256:e4f681ad434cb45ba93bd3afaab62c5d910bf9ac6b3fdb98b12ee2e476bb75a4 +docling-core[chunking]==2.77.1 \ + --hash=sha256:4e38df7143e2ecfe69ecf05278e8e25063a9ec1b6d0b5e28e3b8f1db7cc5ed72 \ + --hash=sha256:d93c7cdc0de4bbf36ef74fb4c3c3d49bb8420ff27201f3b66908672326835b47 # via # docling # docling-ibm-models @@ -1226,42 +1227,42 @@ docutils==0.19 \ --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc # via sphinx -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -1270,13 +1271,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.4.0 \ - --hash=sha256:2dbb907ededa14e6ff5be058f8737bbba3926bd1b1a40dbc98a471285fa2cb3c \ - --hash=sha256:4eff263c8011dd950451b72be567a2484b814a89c70081053d6ae6addeab52e2 +elastic-transport==9.4.1 \ + --hash=sha256:186a29e6c66ff269487e33f7b17176316e18b6061702c25eb0bb15681302e91d \ + --hash=sha256:d12c86ea73528690ebf63a488d9ae323292e6aa5ee55e1e29f14293472f4197f # via elasticsearch -elasticsearch==9.4.0 \ - --hash=sha256:95e38e130b1d01438b19343dfa0458e1857a7df8e2e30cbf23a72182b03f05ff \ - --hash=sha256:e20095ba40229f4562f7cc951883c7c62a017435f94dbe0c21526f58ba411885 +elasticsearch==9.4.1 \ + --hash=sha256:1d78fdfba97a903ec35a5eb5808a74e33392b7c620bd5f742d465a3a26c27d75 \ + --hash=sha256:71ab71c3d1b20fd88c2922fb82c3277cce7ea03c160686e7b9368b265c2b4cac # via feast (pyproject.toml) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1323,9 +1324,9 @@ faiss-cpu==1.10.0 \ --hash=sha256:e71f7e24d5b02d3a51df47b77bd10f394a1b48a8331d5c817e71e9e27a8a75ac \ --hash=sha256:f71c5860c860df2320299f9e4f2ca1725beb559c04acb1cf961ed24e6218277a # via feast (pyproject.toml) -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -2018,50 +2019,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx[http2]==0.27.2 \ --hash=sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0 \ @@ -2107,9 +2115,9 @@ identify==2.6.19 \ --hash=sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a \ --hash=sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842 # via pre-commit -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -2125,12 +2133,10 @@ imagesize==2.0.0 \ --hash=sha256:5667c5bbb57ab3f1fa4bc366f4fbc971db3d5ed011fd2715fd8001f782718d96 \ --hash=sha256:8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3 # via sphinx -importlib-metadata==8.7.1 \ - --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ - --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 - # via - # mlflow-skinny - # opentelemetry-api +importlib-metadata==8.9.0 \ + --hash=sha256:58850626cef4bd2df100378b0f2aea9724a7b92f10770d547725b047078f99ee \ + --hash=sha256:e0f761b6ea91ced3b0844c14c9d955224d538105921f8e6754c00f6ca79fba7f + # via mlflow-skinny importlib-resources==7.1.0 \ --hash=sha256:0722d4c6212489c530f2a145a34c0a7a3b4721bc96a15fada5930e2a0b760708 \ --hash=sha256:1bd7b48b4088eddb2cd16382150bb515af0bd2c70128194392725f82ad2c96a1 @@ -2429,9 +2435,9 @@ kube-authkit==0.4.0 \ --hash=sha256:1df61ac392fca96c8f5ae8c3d6e9918f1e1655d212434b3c3da5f92cc23b660d \ --hash=sha256:3bf5fc6ddc882498040118c907628ea68789f9a947454c241972008be59601a3 # via codeflare-sdk -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via # feast (pyproject.toml) # codeflare-sdk @@ -2662,9 +2668,9 @@ markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich -marko==2.2.2 \ - --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ - --hash=sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e +marko==2.2.3 \ + --hash=sha256:8e1d7a0387281e59dfbc52a381b58c570156970e36b2bbe047f8a3a2f368cacc \ + --hash=sha256:e31ec2875383bc62f9093d16babed5a2c2cde601c00d834ea935a2222120ec19 # via docling markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -2855,17 +2861,17 @@ mistune==3.2.1 \ # via # great-expectations # nbconvert -mlflow==3.12.0 \ - --hash=sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47 \ - --hash=sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0 +mlflow==3.11.1 \ + --hash=sha256:84e54c4be91b5b2a19039a2673fe688b1d7307ceddacc08af51f8df05b19ee56 \ + --hash=sha256:8f6bf1238ac04f97664c229dd480380c5c254a78bdb3c0e433e3a0397508b1af # via feast (pyproject.toml) -mlflow-skinny==3.12.0 \ - --hash=sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd \ - --hash=sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10 +mlflow-skinny==3.11.1 \ + --hash=sha256:82ffd5f6980320b4ac19f741e7a754faa1d01707e632b002ea68e04fd25a0535 \ + --hash=sha256:86ce63491349f6713afc8a4ef0bf77a8314d0e79e03753cb150d6c860a0b0475 # via mlflow -mlflow-tracing==3.12.0 \ - --hash=sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80 \ - --hash=sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518 +mlflow-tracing==3.11.1 \ + --hash=sha256:cb63cee16385d081467ec5bee4807fe1af59ddfdf04be4c79e7a7813b1002193 \ + --hash=sha256:fa82df64dacf8293b714ae666440fe7c1902c6470c024df389bb91e9de3106d9 # via mlflow mmh3==5.2.1 \ --hash=sha256:022aa1a528604e6c83d0a7705fdef0b5355d897a9e0fa3a8d26709ceaa06965d \ @@ -3474,18 +3480,18 @@ openshift-client==1.0.18 \ --hash=sha256:be3979440cfd96788146a3a1650dabe939d4d516eea0b39f87e66d2ab39495b1 \ --hash=sha256:d8a84080307ccd9556f6c62a3707a3e6507baedee36fa425754f67db9ded528b # via codeflare-sdk -opentelemetry-api==1.41.1 \ - --hash=sha256:0ad1814d73b875f84494387dae86ce0b12c68556331ce6ce8fe789197c949621 \ - --hash=sha256:a22df900e75c76dc08440710e51f52f1aa6b451b429298896023e60db5b3139f +opentelemetry-api==1.42.1 \ + --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \ + --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716 # via # mlflow-skinny # mlflow-tracing # opentelemetry-exporter-prometheus # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-prometheus==0.62b1 \ - --hash=sha256:7a0b8a6402e107e1f93e38f074a668797e1103936b189561959531a67ffeba55 \ - --hash=sha256:7ecbac9aa76e7abb44082ab0ff2983e0a573e4091c4653f7db483b02bae03506 +opentelemetry-exporter-prometheus==0.63b1 \ + --hash=sha256:0efd00aa6b1939345ddcc6de141b83ebffa2b4401a37a68f880e54217602701d \ + --hash=sha256:31902e22c89431058a95b6dcdb644f9309f226aa4872cc755f0a780d2895e97f # via ray opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ @@ -3494,50 +3500,66 @@ opentelemetry-proto==1.27.0 \ # mlflow-skinny # mlflow-tracing # ray -opentelemetry-sdk==1.41.1 \ - --hash=sha256:724b615e1215b5aeacda0abb8a6a8922c9a1853068948bd0bd225a56d0c792e6 \ - --hash=sha256:edee379c126c1bce952b0c812b48fe8ff35b30df0eecf17e98afa4d598b7d85d +opentelemetry-sdk==1.42.1 \ + --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \ + --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7 # via # mlflow-skinny # mlflow-tracing # opentelemetry-exporter-prometheus # ray -opentelemetry-semantic-conventions==0.62b1 \ - --hash=sha256:c5cc6e04a7f8c7cdd30be2ed81499fa4e75bfbd52c9cb70d40af1f9cd3619802 \ - --hash=sha256:cf506938103d331fbb78eded0d9788095f7fd59016f2bda813c3324e5a74a93c +opentelemetry-semantic-conventions==0.63b1 \ + --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \ + --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682 # via opentelemetry-sdk -oracledb==4.0.0 \ - --hash=sha256:19d445b62973da05fde2f7f9fe1f811e3b18de4f9c6699f3c921af5ef75494bf \ - --hash=sha256:1d3e46c81baf932752d5dfa25e9c63faea65ef17d5c0650558547b8784c929a1 \ - --hash=sha256:22e33228d6955db8a69c8c83ee4b392a534c86f9493647ea3f511c2f5df08dd4 \ - --hash=sha256:244ebe47c4a4e32bc07a4206192de04d92fbfeb72bf11a01493e3a710bd4b19a \ - --hash=sha256:4582f87e56c2a2e3a74942f087c096525543e92fb59d3758e41d41145b809c52 \ - --hash=sha256:4e47a130120181b8226daf9e928e3c22107c1d03d9ac5f6b891360677a811787 \ - --hash=sha256:4fcbbd8977d8d91ae0d931ce21cda0048f9685e6cc29c9a84b49a769a2511b08 \ - --hash=sha256:62b36249e8db777cd6a2b56be768642d055c89df3cbcfb5d6a3b4dc2426b34df \ - --hash=sha256:6c65366200b44c0a71b927cd813628f0d993b098c61cc82c54c53bccb0dd0d80 \ - --hash=sha256:6fc3dd6ce0fb1d8ca865bdf39183e663b1dd5e2d585327feffedf379a05e3abb \ - --hash=sha256:758ac5a56e872eb517cbae5d28574b200d7b2b28c793ee31b6ce4938777d8364 \ - --hash=sha256:80434a5aa393833bfde853e9e2943671cab219b3081c34aad1974df73c21e04d \ - --hash=sha256:893acd019ee45184e85ef1b5f1ba425ab4da3e8ed4dab1339b7ef329d3658ffc \ - --hash=sha256:8974532ca43f50bc6c41b9efd78219121d3fa52c673d9790da12468d06fcf59f \ - --hash=sha256:8dd447f52482779f6cde277eaf7d734c7ac8f07f4d4e3d3609510f6033dfd0b8 \ - --hash=sha256:922c59a7fcdc44c93dac852b33b9ebae202614235e0ed235e632bf8d5ca4dd55 \ - --hash=sha256:997a4cd0f563b5a1aa92aeb9bdd70e67e3789f0d1a418600a7256b27e6c8947f \ - --hash=sha256:a1c22feae372978861786c65560498dbb36e32d7447318499694d4504c67c043 \ - --hash=sha256:a3a0221ccb33fb47b46cc3fbe587d80144e0ae6237ded5b3c58e8f6c674f02dc \ - --hash=sha256:a7e2c3d99a691e71b4eeb9efbefdfae4dcdfe3bb78abf05a5d9b1a5e65ce8ea0 \ - --hash=sha256:aad06930cf7a99914c863e6e550111b452560bef82b25bd9650541d5c7622837 \ - --hash=sha256:b691fbca4c83e72773c1bee17df5dfced4f01334ea48242262430074cc5a9b36 \ - --hash=sha256:b94a53c2524f4b9522a3091abdb12a2d8e1ac80a83456f7278d2165c3ec54482 \ - --hash=sha256:bad1d5101cd6191271ab89ec372ad8ca119dac9453f59b7be948bdebf6cd5a55 \ - --hash=sha256:ccf0b875850109a77ab932b03dbfa6c98e4eb011545465008d32e7a7207e8e9a \ - --hash=sha256:cd83db5710e26502352c4ce3f5b5e29f202223f9dade089a28daeb688083d0db \ - --hash=sha256:d4b36f906f2e6812d2e4bc1fe965d50670a3fd552cef66bcb2da892e946bba0c \ - --hash=sha256:dc96cf923b62baae45bf698f4e80407b5640d9760682ce5d424e847bf9e20298 \ - --hash=sha256:e29d9c9db167ade1c1649123c8f7cadf248f8e7f66f86335ec5b66b97f70f684 \ - --hash=sha256:f5b1f7ae53883336e23a235339e023d26d1d4b0d014ce4944c61dc79951c89df \ - --hash=sha256:f8c7f26d6e75848d7c75604eff71272c202ddb5eb65996630da3d6d5452401f6 +oracledb==4.0.1 \ + --hash=sha256:032ca4f558b05f03fa1bef1b04e59ec350ae0b22e6d85c47f4ac62ae98315823 \ + --hash=sha256:03afeda85bec3eca983ebf3ad9910d0f217d99300258366d287e015a041d6c13 \ + --hash=sha256:08e84a6af1b6e5921dba088dd9fc0738927206eafe5ce9763c34195f87556849 \ + --hash=sha256:0d3c6ed987df64b914ece0722692419fe494d07f15bb4d7715adeada4f914c3a \ + --hash=sha256:0ece951553c106a0896c8e1690bcdf69d472761fa65fec9b8152cbce13ab8b81 \ + --hash=sha256:10204432f0eea8707a79c75bdccb84071e43fd19c658cb3b34d1746b12c6e7fe \ + --hash=sha256:20a10f903c8da59e9689a98bd68012f78fa19bed950ad9f19cd8f5b8b97e73a0 \ + --hash=sha256:29ae0ff517a3241060eeee15a321b710c3f83a688cf2da7d5729adbe212e2b00 \ + --hash=sha256:34bbea44423ed8b24093aa859ca7ee9b6e76ea490f9acdc5f6ff01aa1083e343 \ + --hash=sha256:3b5ef1676a27b7e0a7ec55be27fd8f6d28d1601f5e8dfdae78705909f25b7c0a \ + --hash=sha256:416b324cd7715073cf5f3d577330387ffd59741463995c25bdc2d82b3e80b88e \ + --hash=sha256:443b2f03461e873ccd73dff3d8541fcf974c05e13e296a6687ffbb0c4a72c0a1 \ + --hash=sha256:4b42725337f80d433a3bd2928c08667e5b89da9ce05cf9ae3a4189c4fc4805ea \ + --hash=sha256:523b3356cde9d588ba250cefafdfc34869233d65c179f805ea6e4d3d6b209a7f \ + --hash=sha256:5332a4499d61c3cd659ed09bbd0d3c9a4c74a70bd51136d5c3de9127dc6d7434 \ + --hash=sha256:5646c126d4ab506ee2bda261e792f0036231ee929296057e79857ec678d86d4f \ + --hash=sha256:7156ef112a901967b3ee89b6c582bafc5a3082c47ca566de1a79e9ac3b48da32 \ + --hash=sha256:73ba32597fe1da72e0824aaa4b1900ec08a3b77268cb4eb45c733ae7e7043e70 \ + --hash=sha256:7bbe5611f9196f0ec15d4bf838ec728d89586a962a20d65cad898aec020e11c4 \ + --hash=sha256:7db5a43c29a23ed23923a29816c65c7a81fe00f2abfe6bf36d83ad952abd9b89 \ + --hash=sha256:8159c5bd8f25b0ca0ce30f21e7a732a2bdfb4adb81b9c8ea1ca75339d8ec8398 \ + --hash=sha256:828dd4c981b286f0467feab1c035fae8d3888cfdc707706841734821877ae1f3 \ + --hash=sha256:86a06d0afb3bb3a24bace0e72fb9abca2093efe0fa3457c65c13ba4eb5000b0b \ + --hash=sha256:86ac65cbc8d29626b1d9d203f9151566c26a78e55bdfc030c06169ae8017f458 \ + --hash=sha256:873fcca53306e2b3b445a7d657cddc19e415a7aa7e392c473dfd1a3ae3970989 \ + --hash=sha256:8e13ff1e6f28fdb863180d23fa94cb42c619c29d2981e24992431e51b97caa54 \ + --hash=sha256:8fcad6d9628923281bf21e48a391ac2f87ec6950dc63381d8fea470e3128aef0 \ + --hash=sha256:90586b3c7729b9cf3d40df902e81257f01e15e3408d8b6b9dbf91e939b64f72c \ + --hash=sha256:9f521b3f3f14fa9b8e748aeb79b064ae6767fcb0e8ff969a9aba7a852f059658 \ + --hash=sha256:a029dcee759bca56a8c95e952040c3d3f57e5ec05965355293b21930a66967fb \ + --hash=sha256:ae894ca2705929eb0ac228329336fd03388ad6e3b54002be6f5d4400a8feaf52 \ + --hash=sha256:b05bfadbfe462c39cc97258a973972f5bbbc9f8e2e9a4c2e0efcb1ec86b91088 \ + --hash=sha256:b09eec35681d72c9476e6d715b89bb775724a31e7363df6beba7470494ea8040 \ + --hash=sha256:b73820521eccd290506af94e1ffb9a8a5941b4018e3861df9b040652a7cef123 \ + --hash=sha256:c05a01d6ad610a88c2aa1a43b1dc0a8485f5fbd4374d2b36908859d4205de192 \ + --hash=sha256:c24b174aac8163065736072a726a50091791f6d30ac5c44965cf7044e86fbaf8 \ + --hash=sha256:c2d394453f669858bec942ff0da18b6ebade296ece823d582ad2b464ed5c6c90 \ + --hash=sha256:cb7727f93ff962ab826bc3d0bca4b0e5bf45ecb7c525551c70c9e094f0f27027 \ + --hash=sha256:ce3f25552fe58df5c266874f8b13f0a8ab7fcd09ab4b476bc15520a67527ca4b \ + --hash=sha256:ce6319ee01dcbb4d74f0e2a5794c6a566f339958ecac9830c67c7070521620e2 \ + --hash=sha256:cf61e42b9ef723dbdd0b23032b695e872009ed7341003df59d9a97cd960df977 \ + --hash=sha256:d132af7d95474d207632363575c7968b09e2d33dd24af3a36f539254433f4ae8 \ + --hash=sha256:d7cd278d59780e22e0a7451d208460756d779dc62b55bdbd95652f9640fbf8c3 \ + --hash=sha256:dbe8b44fea57385617838f2acfce8cc19f6c95cd9e65e7235e86b5932af1acd9 \ + --hash=sha256:e36581bb10e719d928dad12018c2d42606db2c34f49d6665b06f701f049255f0 \ + --hash=sha256:e3d54b624748cfe42248c4bc62c3f788632a2077058485a9acb3150312b1c396 \ + --hash=sha256:e4926e699a42c526137724960fa4303ecb0b542186b11d3705ac84414a896508 # via ibis-framework orjson==3.11.9 \ --hash=sha256:011382e2a60fda9d46f1cdee31068cfc52ffe952b587d683ec0463002802a0f4 \ @@ -4570,9 +4592,9 @@ pygments==2.20.0 \ # nbconvert # rich # sphinx -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # kube-authkit @@ -4720,9 +4742,9 @@ pymssql==2.3.2 \ --hash=sha256:fb8a7b197aaf466a7577ca6690aa9d747081b653ab212d052d71f3cc10587c3b \ --hash=sha256:fdd774b26407babd0205ef85a098f90553e6b3da77a22322a1e7d2cb51f742c0 # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pynacl==1.6.2 \ --hash=sha256:018494d6d696ae03c7e656e5e74cdfd8ea1326962cc401bcf018f1ed8436811c \ @@ -4850,8 +4872,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.1.1 \ - --hash=sha256:77f78984aa84fbe865c717dd37b49913b4e5c97d76ef6824f932f1aefa6621ec +pyspark==4.1.2 \ + --hash=sha256:fa5d6159f700d0990a07f4f62df1b7449401dccee9cd7d5d6df8957530841602 # via feast (pyproject.toml) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -5486,9 +5508,9 @@ requests-toolbelt==1.0.0 \ --hash=sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6 \ --hash=sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 # via python-keycloak -responses==0.26.0 \ - --hash=sha256:03ec4409088cd5c66b71ecbbbd27fe2c58ddfad801c66203457b3e6a04868c37 \ - --hash=sha256:c7f6923e6343ef3682816ba421c006626777893cb0d5e1434f674b649bac9eb4 +responses==0.26.1 \ + --hash=sha256:2eb3218553cc8f79b57d257bac23af5e1bf381f5b9390b1767816f0843e01dc2 \ + --hash=sha256:8aacc4586eb08fb2208ef64a9eb4258d9b0c6e6f4260845f2f018ab847495345 # via moto rfc3339-validator==0.1.4 \ --hash=sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b \ @@ -5514,122 +5536,137 @@ rich==14.3.4 \ # fastapi-mcp # ibis-framework # typer -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -5650,25 +5687,25 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.15.13 \ - --hash=sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629 \ - --hash=sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21 \ - --hash=sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55 \ - --hash=sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41 \ - --hash=sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8 \ - --hash=sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7 \ - --hash=sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4 \ - --hash=sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd \ - --hash=sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2 \ - --hash=sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51 \ - --hash=sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5 \ - --hash=sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9 \ - --hash=sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22 \ - --hash=sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca \ - --hash=sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6 \ - --hash=sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b \ - --hash=sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7 \ - --hash=sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6 +ruff==0.15.15 \ + --hash=sha256:2728b93d7b23a603ea2c0ac6eb73d760bd38ec9de35f35fb41e18f7a3fee7622 \ + --hash=sha256:29428ea79694afbe756d45fd59b36f22b6b020dc0443cf7de0173046236964b9 \ + --hash=sha256:3c8ceca6792f38196b8f589bc92eccd03eef286602da92e5dc05cc42ef6441b7 \ + --hash=sha256:3cdb1679e06a1f6b47bc384714ae96f6e2fb65ca441eb78c43d2ca554176ce1f \ + --hash=sha256:48decfa11d740de4889de623be1463308346312f2409a56e24aa280c86162dc4 \ + --hash=sha256:587a6278ed42059191c1a466e490bd7930fb50bd2e255398bc29616c895a61cb \ + --hash=sha256:7614ee79c69788cf6cedd568069ade9cecc22a1ad20494efe8d0c9ebb4b622d4 \ + --hash=sha256:77d955a431430c66f72dd94e379ad38a16daea3d25094872ac4edf9e797be530 \ + --hash=sha256:7aa77465b8ecaf1a27bea098d696f7fed5e1eccbd10b321b682d6de586ae5627 \ + --hash=sha256:8df0323902e15e24bc4bf246da830573d3cf3352bd0b9a164eab335d111ff4a4 \ + --hash=sha256:a5015088452ca0081387063649ec67f06d3d1d6b8b936a1f836b5e9657ecd48c \ + --hash=sha256:ac5a646d1f6a7dadd5d50842dae2c1f9862ac887ef5d1b1375e02def791fde6e \ + --hash=sha256:b8dff018130b46d8e5bf0f926ef6b60cf871d6d5ae45fc9334e09632daa741d6 \ + --hash=sha256:be582fcc0db438902c7792b08d6ddf6c9b9e21addaa10092c2c741cfb09e5a45 \ + --hash=sha256:cf93e5388f412e1b108b1f8b34a6e036b70fe8aff89393befad96fe48670311b \ + --hash=sha256:db5bd4d802415cca656dc1616070b725952d6ae95eb5d4831e49fbd94a38f75f \ + --hash=sha256:df0c1c084f5f4be9812f61518a45c440d3c30d69ce4bf6c5270e66d38338f02a \ + --hash=sha256:f5294aab6356c81600fcdea3a62bb1b924dfd5e91767c12318d3f68f86af57cd # via feast (pyproject.toml) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5876,9 +5913,9 @@ send2trash==2.1.0 \ --hash=sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c \ --hash=sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459 # via jupyter-server -sentence-transformers==5.5.0 \ - --hash=sha256:75313fdcc2397ec4b58297c25d6187fcca5a6b2aeb09570a72eff5a3223d8d58 \ - --hash=sha256:9cec675e68bfe09d07466d1f13ab06d1d79d60a0f45b154baf433bde6ae159cb +sentence-transformers==5.5.1 \ + --hash=sha256:02b7740dfc60bdbbcb6061625f5d97a5c1a4e2d3baac5f9391b912bb5eae2290 \ + --hash=sha256:4fe11d433badc5282d32f7fc08bc714216b7a5aca426f9df77a45a554756deb7 # via feast (pyproject.toml) setuptools==80.10.2 \ --hash=sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70 \ @@ -5997,44 +6034,45 @@ sniffio==1.3.1 \ # elastic-transport # elasticsearch # httpx -snowballstemmer==3.0.1 \ - --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ - --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 +snowballstemmer==3.1.0 \ + --hash=sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154 \ + --hash=sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f # via sphinx -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -soupsieve==2.8.3 \ - --hash=sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349 \ - --hash=sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95 +soupsieve==2.8.4 \ + --hash=sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e \ + --hash=sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65 # via beautifulsoup4 sphinx==6.2.1 \ --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ @@ -6064,70 +6102,65 @@ sphinxcontrib-serializinghtml==2.0.0 \ --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 \ --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d # via sphinx -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via # feast (pyproject.toml) # alembic @@ -6188,13 +6221,13 @@ stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 # via ipython -starlette==0.52.1 \ - --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ - --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp - # mlflow-skinny # sse-starlette sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ @@ -6467,17 +6500,17 @@ torchvision==0.27.0 \ # docling-ibm-models # easyocr # timm -tornado==6.5.5 \ - --hash=sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9 \ - --hash=sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6 \ - --hash=sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca \ - --hash=sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e \ - --hash=sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07 \ - --hash=sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa \ - --hash=sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b \ - --hash=sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521 \ - --hash=sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7 \ - --hash=sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5 +tornado==6.5.6 \ + --hash=sha256:1c34cfab7ad6d104f052f55de06d39bbafc5885cfeb4da688803308dbcfa90b7 \ + --hash=sha256:2543597b24a695d72338a9a77818362d72387c03ae173f1f169eadc5c91466ac \ + --hash=sha256:385f35e4e22fb52551dfcda4cdc8c30c61c2c001aef5ddad99cdfe116952efd3 \ + --hash=sha256:38bc01b4acacded2de63ae78023548e41ebe6fbed3ec05a796d7ae3ad893887e \ + --hash=sha256:65fcfaafb079435c2c19dc9e07c0f1cf0fa9051759ed0a7d0a3ba7ea7f64919c \ + --hash=sha256:6739bf1e8eb09230f1280ddbd3236f0309db70f2c551a8dbc40f62babdf82f79 \ + --hash=sha256:8666946e70171b8c3f1fc9b7876fac492e84822c4c7f3746f4e8f8bc9ac92a79 \ + --hash=sha256:9a365179fe8ff6b8766f602c0f67c185d778193e9bdd828b19f0b6ed7764177d \ + --hash=sha256:b942e6a137fda31ff54bf8e6e2c8d1c37f1f50583f3ed53fb840b53b9601d104 \ + --hash=sha256:db475f1b67b2809b10bb16264829087724ca8d24fe4ed47f7b8675cae453ef86 # via # ipykernel # jupyter-client @@ -7402,135 +7435,111 @@ xxhash==3.7.0 \ --hash=sha256:fe32736295ea38e43e7d9424053c8c47c9f64fecfc7c895fb3da9b30b131c9ee \ --hash=sha256:fe820f104473d1516ecd628993690bc1f79b0e699f32711d42a5a70b3d0f8170 # via datasets -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp zipp==4.1.0 \ --hash=sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f \ diff --git a/sdk/python/requirements/py3.12-minimal-requirements.txt b/sdk/python/requirements/py3.12-minimal-requirements.txt index b52f33348d0..a08f35ed2dc 100644 --- a/sdk/python/requirements/py3.12-minimal-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-requirements.txt @@ -4,9 +4,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -129,7 +129,9 @@ aiohttp==3.13.5 \ --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 - # via aiobotocore + # via + # aiobotocore + # kubernetes aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -225,9 +227,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # httpcore # httpx @@ -455,13 +457,12 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask - # typer # uvicorn cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -540,50 +541,50 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (pyproject.toml) -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -1056,50 +1057,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx==0.28.1 \ --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ @@ -1115,9 +1123,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -1145,9 +1153,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) librt==0.11.0 \ --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ @@ -1842,9 +1850,9 @@ pathspec==1.1.1 \ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189 # via mypy -platformdirs==4.9.6 \ - --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ - --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 +platformdirs==4.10.0 \ + --hash=sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7 \ + --hash=sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a # via snowflake-connector-python prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ @@ -1983,15 +1991,15 @@ proto-plus==1.28.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via # feast (pyproject.toml) # google-api-core @@ -2263,9 +2271,9 @@ pygments==2.20.0 \ # via # feast (pyproject.toml) # rich -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -2274,9 +2282,9 @@ pymilvus==2.5.18 \ --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyopenssl==26.2.0 \ --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ @@ -2423,122 +2431,137 @@ rich==15.0.0 \ # fastapi-mcp # ibis-framework # typer -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -2564,101 +2587,97 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) sqlglot==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ @@ -2668,10 +2687,11 @@ sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp # sse-starlette @@ -2757,9 +2777,9 @@ typeguard==4.5.2 \ --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) -typer==0.25.1 \ - --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ - --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc +typer==0.26.3 \ + --hash=sha256:3e2b9352f535e5303ef27806dadc2c8647687bdca5c902f03fec3fb88f46a46a \ + --hash=sha256:e70549ec5a403ca8a0bf0802ddd9f3c6ff7a14ccbb859b01b697baa943636f33 # via fastapi-mcp types-pymysql==1.1.0.20260518 \ --hash=sha256:39a2448c4267dc4551e0824d2bfaecf7dfd171e89e6dbba90f4d4d45d55e4342 \ @@ -3207,133 +3227,109 @@ wrapt==1.17.3 \ --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c # via aiobotocore -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt index 48163513c45..24ac1125b09 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt @@ -200,46 +200,46 @@ cython==3.0.12 \ # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.4 \ - --hash=sha256:02cb0cc0f23b9874ad262d7d2b9560aed9c7e2df07b49b920bda6f2cc9cb505e \ - --hash=sha256:03893c88299a2c868bb741ba6513357acd104e7c42265809fd58dce1456a36fc \ - --hash=sha256:14dae483ca2838b287085ff98bc206abd7a597b7bb16939a092f8e84d9062842 \ - --hash=sha256:1a64a112a34ec719b47c01395647e54fb4cf088a511613f9a3a5196694e8e382 \ - --hash=sha256:28b1e363b024c4b8dcf52ff68125e635cb9cb4b0ba997d628f25e32543a71103 \ - --hash=sha256:28e8075087a59756f2d059273184b8b639fe0f16cf17470bd91c39921bc154e0 \ - --hash=sha256:2b1f12c0e4798293d2754e73cd6f35fa5bbdf072bdc14bc6fc442c059ef2d290 \ - --hash=sha256:31a90b4a2c47bb6d56baeb926948348ec968e932c1ae2c53239164e3e8880ccf \ - --hash=sha256:35ab0632186057406ec729374c737c37051d2eacad9d515d94e5a3b3e58a9b02 \ - --hash=sha256:36bf3f5eb56d5281aafabecbaa6ed288bc11db87547bba4e1e52943ae6961ccf \ - --hash=sha256:3b6e58f73a69230218d5381817850ce6d0da5bb7e87eb7d528c7027cbba40b06 \ - --hash=sha256:3b8e62049afef9da931d55de82d8f46c9a147313b69d5ff6af6e9121d545ce7a \ - --hash=sha256:55b6c44cd30821f0b25220ceba6fe636ede48981d2a41b9bbfe3c7902ce44ea7 \ - --hash=sha256:55eb425c0baf1c8a46aa4424bc35b709db22f3c8a1de33adb3ecb8a3d54ea42a \ - --hash=sha256:64d7f71be3dd6d6d4a4c575bb3a4674ea06d1e1e5e4cd1b9882a2bc40ed3c4c9 \ - --hash=sha256:67922c9de058a0bfb72d2e75222c52d09395614108c68a76d9800f150296ddb3 \ - --hash=sha256:6d5267f22b6451eb1e2e1b88f6f78a2c9c8733a6ddefd4520d3968d26b824581 \ - --hash=sha256:72e6c0bbd978e2678b45351395f6825b9b8466095402eae293f4f7a73e9a3e85 \ - --hash=sha256:732fc93bc33ae4b14f6afaca663b916c2fdd5dcbfad7114e17fb2434eeaea45c \ - --hash=sha256:767b143704bdd08a563153448955935844e53b852e54afdc552b43902ed1e235 \ - --hash=sha256:83266c356c13c68ffe658b4905279c993d8a5337bb0160fa90c8a3e297ea9a2e \ - --hash=sha256:84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6 \ - --hash=sha256:869487ea41d004f8b92171f42271fbfadb1ec03bede3158705d16cd570d6b891 \ - --hash=sha256:90f43be4eaa6afd58ce20d970bb1657a3627c44e1760630b82aa256ba74b4acb \ - --hash=sha256:983f9d2bb8a896e16fa68f2b37866ded35fa980195eefe62f764ddc5f9f5ef8e \ - --hash=sha256:b362819d155fff1482575e804e43e3a8825332d32baa15245f4642022664a3f4 \ - --hash=sha256:b84d4e3c875915545f77c88dba65ad3741afd2431e5cdee6c9a20cefe6905647 \ - --hash=sha256:ca2399dc75796b785f74fb85c938254fa10c80272004d573c455f9123eceed86 \ - --hash=sha256:ca578c9cb872c7ecffbe14815dc4590a003bc13339e90b2633540c7e1a252839 \ - --hash=sha256:d4b4fd5332ab093131fa6172e8362f16adef3eac3179fd24bbdc392531cb82fa \ - --hash=sha256:e3b5ac54e95f034bc7fb07313996d27cbf71abc17b229b186c1540942d2dc28e \ - --hash=sha256:e65e4773021f8dc8532010b4fbebe782c77f9a0817e93886e518c93bd6a44e9d \ - --hash=sha256:e71efb20048358a6b8ec604a0532961c50c067b5e63e345e2e359fff72feaee8 \ - --hash=sha256:f136f379a4a54246facd0eb6f1ee15c3837cb314ce87b677582ec014db4c6845 \ - --hash=sha256:f583cad7a7eed109f0babb5035e92d0c1260598f53add626a8568b57246b62c3 \ - --hash=sha256:f81eda419b5ada7b197bbc3c5f4494090e3884521ffd75a3876c93fbf66c9ca8 \ - --hash=sha256:f8d685a70bce39acc1d62ec3916d9b724b5ef665b0ce25ae55e1c85ee09747fc \ - --hash=sha256:fdfdd753ad7e18e5092b413e9f542e8d28b8a08203126090e1c15f7783b7fe57 \ - --hash=sha256:ff9af2134c05e3734064808db95b4dd7341a39af06e8945d05ea358e1741aaed +cython==3.2.5 \ + --hash=sha256:05c22cd606ac8d14a9cf17e48668bb37734c803978bf4d793c7f11ef54c4451f \ + --hash=sha256:0a81220817ff954eddf4512a5b82089094a2f523eb1dc4ad555efd6f07b009b4 \ + --hash=sha256:0bc29c7f870b09efdb1f583fbec9592b33af81a7ce273b89c8f5163d7572d5c1 \ + --hash=sha256:220e8b160b2a4ddc362ad8a8c2ab885aa7156099702cdc48f6518a5de921b553 \ + --hash=sha256:224149d18d980e6ea5001b70fc7ce096c1891d59035dfa9cc5ede50f55804913 \ + --hash=sha256:268aecadcabcdad9f773b8a5694746e0b9ee7894b56b84e2e3a2ccb6c929ea79 \ + --hash=sha256:29243859d6824e2d33bae92fc83d591c3671b6d9ac1b757fa264b894ae906c2b \ + --hash=sha256:34d21aeb08477c9173e8be7a566b19e880a7c8109ec6bb47a4b20cb680141114 \ + --hash=sha256:3795237ab49753647e329181b140c424e8aa97543074f171f8d2c45e5014a06e \ + --hash=sha256:382122de8d6b6024fc374fabc3a2b14ba5860ed981c25055ed14fe44278b9dc7 \ + --hash=sha256:3864da4ca2ebe4660d8f672f2143b02840bf3045655222f6090486171c84298f \ + --hash=sha256:39acb30eba78ba6d995d5cf3d97d57d450663d93aac6f8b93753d2b89d768c60 \ + --hash=sha256:3dd42e4cf36ad15f265bdfec2337cc00c688c8eb6d374ffd13bb19437c27bba1 \ + --hash=sha256:3e5e519bad217a0b96fc281666720ed7d339da618acaa012bea712980b8fe6c9 \ + --hash=sha256:45baf00cb8b222a2ca7e9c48add5dac3ceb6e65be4f591150a6b6767ce1f86b0 \ + --hash=sha256:4d00e2c976ee96da4deff50506c7882ccebb4a932fc178ef27eb42bfde959839 \ + --hash=sha256:561613ddd1ee83088eb126e80a5a7d73ee6eb82e0b1aea09afbe170287e5e27f \ + --hash=sha256:56c97c5e43782ec9d9e66c465e253d2ccde0c578c364c46445efe484965524f0 \ + --hash=sha256:5887c24ebd19604b7a76d8ea57446cb562a590f7f2557e5954a69aae38b3195e \ + --hash=sha256:605c447188aecf2941709f53a2ce44862be256e54601c01b38ab710d83db8047 \ + --hash=sha256:677bb60fd8f5949e26c0a7898983967dbbb65f7628481d8480956b85ca766554 \ + --hash=sha256:69cd71b90d4e0f142fd15b2353982c3f9171fc5e613001f16bcb366ffb29004b \ + --hash=sha256:6e5d7a60835345a8bd29d3aa57070880cc3ce017ea0ade7b9f771ce4bf539b1f \ + --hash=sha256:75f5295dc1b32d084fec598f9507e6f264311d78c07da640bc9a05dc47f7ac2c \ + --hash=sha256:85b2944c3eddfc230f9082720195a2e9f869908e5a8b3185be1be832755ee7fc \ + --hash=sha256:8d7b81e6a52a84a02993f01aa5873786ba1dd593c892d93d5fe9866da0bad297 \ + --hash=sha256:91cb5b9ff599612737b3fd0dddcd401acdf904b78c2caf8cd1049501d0a53f2d \ + --hash=sha256:992a50e90d01813333752f374a4405863113059ec67102ab8d6a431a171ee328 \ + --hash=sha256:a3a423468ee77c3c5b26494f57d9c52e9318991fb7142f4c49fb01b99373e8d6 \ + --hash=sha256:a636c8b7824f3cb587eb2fdde59d8f4a14d433565508081cc290198e37567910 \ + --hash=sha256:b4bfb00baef07106a1e5e7252ace18de91225322f7fa29970995aea7c380fa21 \ + --hash=sha256:b8bc1325cf3e4394cc08a3c1ea7fa24f02f405eef0e8c156d5055f6f9a7a1565 \ + --hash=sha256:c4c79e697db55f082a2d3ba97702e71881d5bb1f56f0a80fa338e69101e4c59b \ + --hash=sha256:c80e1e5cba5b4b9890364e9360939fc298c474f25754bb4bb861270d24bda6d6 \ + --hash=sha256:cce98a9011ac6a2560b3587db22912bd0138267669ec567b0d57eddd2d741b8b \ + --hash=sha256:dc1c8cebb7df5bce37f5f8dc1e5bf04313272a5973d50a55c0ec76c83812911b \ + --hash=sha256:eb38b89e5a8eb2508a1a0832063826b0703dfb02be84e4aa34b8818ce0ca50fe \ + --hash=sha256:f4e722ceab6d795b4682d693656218671c873d4aa74119c54a2b62de0e7c48ce \ + --hash=sha256:f9b564f67b01bffa2521f475794b49f2787709cec1f91d5935a38eba37f2b359 # via # pyarrow # uvloop @@ -754,9 +754,9 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via hatchling -poetry-core==2.4.0 \ - --hash=sha256:4305848477da00272bebd3f615bbec87f64bd117cdb858ab660b626a06a9d96c \ - --hash=sha256:4e8c7496cf797998ffc493f2e23eba4b038c894c08eadacdcdf688945de6b43a +poetry-core==2.4.1 \ + --hash=sha256:89dceb6c10e9c6d8650a16183400e3c9ff9ddee13b0a81023b5575334a2b3744 \ + --hash=sha256:acf06f9537cd2625bdaec926d95d90b557ba15353bc71d27a3a8a441042b5316 # via # aiohappyeyeballs # dunamai @@ -960,9 +960,9 @@ tomlkit==0.15.0 \ --hash=sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738 \ --hash=sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3 # via uv-dynamic-versioning -trove-classifiers==2026.5.7.17 \ - --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ - --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 +trove-classifiers==2026.5.22.10 \ + --hash=sha256:01fe864225726e03efb843827ecabfe319fc4dee8dd66d65b8996cb09be46e2c \ + --hash=sha256:5477e9974e91904fb2cfa4a7581ab6e2f30c2c38d847fd00ed866080748101d5 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -1039,6 +1039,7 @@ setuptools==80.10.2 \ # greenlet # grpc-google-iam-v1 # gunicorn + # httptools # httpx-sse # libcst # librt @@ -1071,6 +1072,7 @@ setuptools==80.10.2 \ # setuptools-rust # setuptools-scm # shellingham + # snowballstemmer # snowflake-connector-python # sqlalchemy # sqlglot @@ -1088,11 +1090,6 @@ setuptools==80.10.2 \ # versioneer # websockets # wrapt - # yarl -setuptools==80.9.0 \ - --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ - --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c - # via httptools setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb @@ -1101,3 +1098,4 @@ setuptools==82.0.1 \ # python-dateutil # types-pymysql # types-setuptools + # yarl diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt index c16471e8a27..1af36520a9f 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt @@ -4,9 +4,9 @@ aiobotocore==2.23.1 \ --hash=sha256:a59f2a78629b97d52f10936b79c73de64e481a8c44a62c1871f088df6c1afc4f \ --hash=sha256:d81c54d2eae2406ea9a473fea518fed580cf37bc4fc51ce43ba81546e5305114 # via feast (pyproject.toml) -aiohappyeyeballs==2.6.1 \ - --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ - --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 +aiohappyeyeballs==2.6.2 \ + --hash=sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4 \ + --hash=sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64 # via aiohttp aiohttp==3.13.5 \ --hash=sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5 \ @@ -129,7 +129,9 @@ aiohttp==3.13.5 \ --hash=sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5 \ --hash=sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540 \ --hash=sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254 - # via aiobotocore + # via + # aiobotocore + # kubernetes aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ --hash=sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c @@ -237,9 +239,9 @@ calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via # httpcore # httpx @@ -467,13 +469,12 @@ charset-normalizer==3.4.7 \ # via # requests # snowflake-connector-python -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask - # typer # uvicorn cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ @@ -622,50 +623,50 @@ docutils==0.22.4 \ --hash=sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968 \ --hash=sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de # via sphinx -duckdb==1.5.2 \ - --hash=sha256:0b291786014df1133f8f18b9df4d004484613146e858d71a21791e0fcca16cf4 \ - --hash=sha256:2323c1195c10fb2bb982fc0218c730b43d1b92a355d61e68e3c5f3ac9d44c34f \ - --hash=sha256:2a1de4f4d454b8c97aec546c82003fc834d3422ce4bc6a19902f3462ef293bed \ - --hash=sha256:35579b8e3a064b5eaf15b0eafc558056a13f79a0a62e34cc4baf57119daecfec \ - --hash=sha256:376856066c65ccd55fcb3a380bbe33a71ce089fc4623d229ffc6e82251afdb6d \ - --hash=sha256:411ad438bd4140f189a10e7f515781335962c5d18bd07837dc6d202e3985253d \ - --hash=sha256:4420b3f47027a7849d0e1815532007f377fa95ee5810b47ea717d35525c12f79 \ - --hash=sha256:486c862bf7f163c0110b6d85b3e5c031d224a671cca468f12ebb1d3a348f6b39 \ - --hash=sha256:52a21823f3fbb52f0f0e5425e20b07391ad882464b955879499b5ff0b45a376b \ - --hash=sha256:5596bbfc31b1b259db69c8d847b42d036ce2c4804f9ccb28f9fc46a16de7bc53 \ - --hash=sha256:56d38b3c4e0ef2abb58898d0fd423933999ed535c45e75e9d9f72e1d5fed69b8 \ - --hash=sha256:638da0d5102b6cb6f7d47f83d0600708ac1d3cb46c5e9aaabc845f9ba4d69246 \ - --hash=sha256:63bf8687feefeed51adf45fa3b062ab8b1b1c350492b7518491b86bae68b1da1 \ - --hash=sha256:6b0fe75c148000f060aa1a27b293cacc0ea08cc1cad724fbf2143d56070a3785 \ - --hash=sha256:70631c847ca918ee710ec874241b00cf9d2e5be90762cbb2a0389f17823c08f7 \ - --hash=sha256:7f69164b048e498b9e9140a24343108a5ae5f17bfb3485185f55fdf9b1aa924d \ - --hash=sha256:81fc4fbf0b5e25840b39ba2a10b78c6953c0314d5d0434191e7898f34ab1bba3 \ - --hash=sha256:84b193aca20565dedb3172de15f843c659c3a6c773bf14843a9bd781c850e7db \ - --hash=sha256:8d599758b4e48bf12e18c9b960cf491d219f0c4972d19a45489c05cc5ab36f83 \ - --hash=sha256:8dbd7e31e5dc157bfe8803fa7d2652336265c6c19926c5a4a9b40f8222868d08 \ - --hash=sha256:98c0535cd6d901f61a5ea3c2e26a1fd28482953d794deb183daf568e3aa5dda6 \ - --hash=sha256:a9cd5e71702d446613750405cde03f66ed268f4c321da071b0472759dad19536 \ - --hash=sha256:bb42e6ed543902e14eae647850da24103a89f0bc2587dec5601b1c1f213bd2ed \ - --hash=sha256:be37680ddb380015cb37318e378c53511c45c4f0d8fac5599d22b7d092b9217a \ - --hash=sha256:c69907354ffee94ba8cf782daf0480dab7557f21ce27fffa6c0ea8f74ed4b8e2 \ - --hash=sha256:c99ef73a277c8921bc0a1f16dee38d924484251d9cfd20951748c20fcd5ed855 \ - --hash=sha256:c9f3e0b71b8a50fccfb42794899285d9d318ce2503782b9dd54868e5ecd0ad31 \ - --hash=sha256:ce0b8141a10d37ecef729c45bc41d334854013f4389f1488bd6035c5579aaac1 \ - --hash=sha256:ce17670bb392ea1b3650537db02bd720908776b5b95f6d2472d31a7de59d1dc1 \ - --hash=sha256:d72b8856b1839d35648f38301b058f6232f4d36b463fe4dc8f4d3fdff2df1a2e \ - --hash=sha256:d9b4f5430bf4f05d4c0dc4c55c75def3a5af4be0343be20fa2bfc577343fbfc9 \ - --hash=sha256:e6495b00cad16888384119842797c49316a96ae1cb132bb03856d980d95afee1 \ - --hash=sha256:ea58ff5b0880593a280cf5511734b17711b32ee1f58b47d726e8600848358160 \ - --hash=sha256:ef461bca07313412dc09961c4a4757a851f56b95ac01c58fac6007632b7b94f2 \ - --hash=sha256:fc85a5dbcbe6eccac1113c72370d1d3aacfdd49198d63950bdf7d8638a307f00 +duckdb==1.5.3 \ + --hash=sha256:0b0b4f088a65d77e1217ce5d7eff889e63fedc44281200d899ff47c84d8ff836 \ + --hash=sha256:0ce80aed7a538422129a57eaca9141e3afb51f8bf562b1908b1576c9725b5b22 \ + --hash=sha256:10960400ed60cdf0fe05bab2086fa8eb733889cb0ceca18d07ff9a00c0e0be7b \ + --hash=sha256:2fa17ecdd5d3db122836cb71bb93601c2106a3be883c17dffddc02fbf3fa7888 \ + --hash=sha256:3248b49cd835ea322574bc6aac0ae7a83be85547f49d4f5f5777cb380ee6627f \ + --hash=sha256:33ae08b3e818d7613d8936744b67718c2062c2f530376895bfd89efb51b81538 \ + --hash=sha256:341a2672e2551ba51c95c1898f0ade983e76675e79038ccb16342c3d6cfb82d7 \ + --hash=sha256:3d5db8c0b55e072cf437948ebb5d7e23d7b9d03d905fa5f9145583e65aa447f7 \ + --hash=sha256:4bfa9a4dadf71e83e2c4eaca2f9421c82a54defecc1b0b4c0be95e2389dec4fe \ + --hash=sha256:50379b85f3a0a169478d54880ef8bf971ecaa85772d05eeaa617d720c7704741 \ + --hash=sha256:5fd25f533cb1b6b2c84cc767a9a9bab7769bb1aa44571a2a0bfc91ac3e4a38ac \ + --hash=sha256:6d2835e39bb6af73891f73c0f8d4324f98afe00d0b00c6d34b2a582c2256cbb0 \ + --hash=sha256:6ef8faf121d7b3ad95aab1c3ce31169a28be49da75abfa6099a1bec2e9a70189 \ + --hash=sha256:70a18f932cf6d87bd0e554613657a515c1443a1724aacfc7ec5137dd28698b03 \ + --hash=sha256:746433e49bbc667b4df283153415fbe37e9083e0eff6c3cd6e54de7536869cd4 \ + --hash=sha256:75d13308c9da3ee431d1e72b8ab720aa74a1b3e9159d4124cb62435924496334 \ + --hash=sha256:787df63824f07bf18022dbc3b8ca4b2bfab0ebe616464f55c6e8cd0f59ea762e \ + --hash=sha256:8001eccbc28be244dfd04d708526f34ddd6460b47a8aeb5d0e39d6f7f9e3fe15 \ + --hash=sha256:9fb7516255a8764545e30f7efacea408cc847764a3027b3b0b3e7d1a7bebbc5c \ + --hash=sha256:a3fb3bad9bc1a3e101d66d33269142ce075dc3d75202ba74ba97d7e44c50b9cd \ + --hash=sha256:aea7baf67ad7e1829ac76f67d7dcbd7fb1f57c3eb179d55ac30952df4709ae30 \ + --hash=sha256:bb5bb5dcdd09d62ee60f0ddbbef918e71cce304ffe28428b1131949d39ffaabf \ + --hash=sha256:c5f18e7561403054433706c187589e86629a7af09a7efc23a06a8b308e6acc68 \ + --hash=sha256:c9e8fa408705081160ede7ead238d16e73a36b8561b700f2bf2d650ae48e7b92 \ + --hash=sha256:d0405eae18ec6e8210a471c97dbfe87a7e4d605274b7fe572a1f276e92158f13 \ + --hash=sha256:d37650ec3ec8a951400ea12dc77edaea88e0baeda34801792776f95f2f922f4f \ + --hash=sha256:dd00f70231951a619908471b7b6397232ff3be8ccd1f49a47f1a2ccac59eaba1 \ + --hash=sha256:df39428eb130faa35ae96fd35245bdeae6ecf43936250b116b5fead568eb9f16 \ + --hash=sha256:e75a6122c12579a99848517f6f00a4e342aebda3590c30fe9b5cc5f39d5e6afc \ + --hash=sha256:e80eb4d0fb59869cb2c7d7ef494c07fb92014fe8e77d96c170cd1ebc1488a708 \ + --hash=sha256:f4eff89c12c3a362efa012262e57b7b4ab904a7f79bad9178fe365510077abe8 \ + --hash=sha256:fd3963c1cb9d9567777f4a898a9dbe388a2fe9724681801b1e7d6d93eecf1b76 \ + --hash=sha256:fdc65233f0fcf9022e4c6a8ba2ba751a79deb291501073d660afb1aa9874051f \ + --hash=sha256:fe8d0c1f6a120aa03fa6e0d03897c71a1842e6cf7afd31d181348391f7108fe1 \ + --hash=sha256:ff11a457258148337ef9a392148a8cdbd1069b6c27c21958816c7b67fe6c542d # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via # feast (pyproject.toml) # fastapi-mcp @@ -935,66 +936,86 @@ googleapis-common-protos[grpc]==1.75.0 \ # google-api-core # grpc-google-iam-v1 # grpcio-status -greenlet==3.5.0 \ - --hash=sha256:0ecec963079cd58cbd14723582384f11f166fd58883c15dcbfb342e0bc9b5846 \ - --hash=sha256:0ed006e4b86c59de7467eb2601cd1b77b5a7d657d1ee55e30fe30d76451edba4 \ - --hash=sha256:0ff251e9a0279522e62f6176412869395a64ddf2b5c5f782ff609a8216a4e662 \ - --hash=sha256:1aa4ce8debcd4ea7fb2e150f3036588c41493d1d52c43538924ae1819003f4ce \ - --hash=sha256:1bae92a1dd94c5f9d9493c3a212dd874c202442047cf96446412c862feca83a2 \ - --hash=sha256:1eb67d5adefb5bd2e182d42678a328979a209e4e82eb93575708185d31d1f588 \ - --hash=sha256:2094acd54b272cb6eae8c03dd87b3fa1820a4cef18d6889c378d503500a1dc13 \ - --hash=sha256:2628d6c86f6cb0cb45e0c3c54058bbec559f57eaae699447748cb3928150577e \ - --hash=sha256:29ea813b2e1f45fa9649a17853b2b5465c4072fbcb072e5af6cd3a288216574a \ - --hash=sha256:362624e6a8e5bca3b8233e45eef33903a100e9539a2b995c364d595dbc4018b3 \ - --hash=sha256:3a717fbc46d8a354fa675f7c1e813485b6ba3885f9bef0cd56e5ba27d758ff5b \ - --hash=sha256:3bc59be3945ae9750b9e7d45067d01ae3fe90ea5f9ade99239dabdd6e28a5033 \ - --hash=sha256:3ec9ea74e7268ace7f9aab1b1a4e730193fc661b39a993cd91c606c32d4a3628 \ - --hash=sha256:41353ec2ecedf7aa8f682753a41919f8718031a6edac46b8d3dc7ed9e1ceb136 \ - --hash=sha256:47422135b1d308c14b2c6e758beedb1acd33bb91679f5670edf77bf46244722b \ - --hash=sha256:4964101b8585c144cbda5532b1aa644255126c08a265dae90c16e7a0e63aaa9d \ - --hash=sha256:4a448128607be0de65342dc9b31be7f948ef4cc0bc8832069350abefd310a8f2 \ - --hash=sha256:4b28037cb07768933c54d81bfe47a85f9f402f57d7d69743b991a713b63954eb \ - --hash=sha256:4d0eadc7e4d9ffb2af4247b606cae307be8e448911e5a0d0b16d72fc3d224cfd \ - --hash=sha256:54d243512da35485fc7a6bf3c178fdda6327a9d6506fcdd62b1abd1e41b2927b \ - --hash=sha256:55fa7ea52771be44af0de27d8b80c02cd18c2c3cddde6c847ecebdf72418b6a1 \ - --hash=sha256:57a43c6079a89713522bc4bcb9f75070ecf5d3dbad7792bfe42239362cbf2a16 \ - --hash=sha256:58c1c374fe2b3d852f9b6b11a7dff4c85404e51b9a596fd9e89cf904eb09866d \ - --hash=sha256:5a5ed18de6a0f6cc7087f1563f6bd93fc7df1c19165ca01e9bde5a5dc281d106 \ - --hash=sha256:5e05ba267789ea87b5a155cf0e810b1ab88bf18e9e8740813945ceb8ee4350ba \ - --hash=sha256:5ecd83806b0f4c2f53b1018e0005cd82269ea01d42befc0368730028d850ed1c \ - --hash=sha256:64d6ac45f7271f48e45f67c95b54ef73534c52ec041fcda8edf520c6d811f4bc \ - --hash=sha256:680bd0e7ad5e8daa8a4aa89f68fd6adc834b8a8036dc256533f7e08f4a4b01f7 \ - --hash=sha256:6c18dfb59c70f5a94acd271c72e90128c3c776e41e5f07767908c8c1b74ad339 \ - --hash=sha256:6d874e79afd41a96e11ff4c5d0bc90a80973e476fda1c2c64985667397df432b \ - --hash=sha256:7022615368890680e67b9965d33f5773aade330d5343bbe25560135aaa849eae \ - --hash=sha256:703cb211b820dbffbbc55a16bfc6e4583a6e6e990f33a119d2cc8b83211119c8 \ - --hash=sha256:728a73687e39ae9ca34e4694cbf2f049d3fbc7174639468d0f67200a97d8f9e2 \ - --hash=sha256:728d9667d8f2f586644b748dbd9bb67e50d6a9381767d1357714ea6825bb3bf5 \ - --hash=sha256:762612baf1161ccb8437c0161c668a688223cba28e1bf038f4eb47b13e39ccdf \ - --hash=sha256:7fc391b1566f2907d17aaebe78f8855dc45675159a775fcf9e61f8ee0078e87f \ - --hash=sha256:804a70b328e706b785c6ef16187051c394a63dd1a906d89be24b6ad77759f13f \ - --hash=sha256:83ed9f27f1680b50e89f40f6df348a290ea234b249a4003d366663a12eab94f2 \ - --hash=sha256:884f649de075b84739713d41dd4dfd41e2b910bfb769c4a3ea02ec1da52cd9bb \ - --hash=sha256:8f1cc966c126639cd152fdaa52624d2655f492faa79e013fea161de3e6dda082 \ - --hash=sha256:8f52a464e4ed91780bdfbbdd2b97197f3accaa629b98c200f4dffada759f3ae7 \ - --hash=sha256:9c615f869163e14bb1ced20322d8038fb680b08236521ac3f30cd4c1288785a0 \ - --hash=sha256:9d280a7f5c331622c69f97eb167f33577ff2d1df282c41cd15907fc0a3ca198c \ - --hash=sha256:a10a732421ab4fec934783ce3e54763470d0181db6e3468f9103a275c3ed1853 \ - --hash=sha256:a96fcee45e03fe30a62669fd16ab5c9d3c172660d3085605cb1e2d1280d3c988 \ - --hash=sha256:a97e4821aa710603f94de0da25f25096454d78ffdace5dc77f3a006bc01abba3 \ - --hash=sha256:ba8f0bdc2fae6ce915dfd0c16d2d00bca7e4247c1eae4416e06430e522137858 \ - --hash=sha256:bf2d8a80bec89ab46221ae45c5373d5ba0bd36c19aa8508e85c6cd7e5106cd37 \ - --hash=sha256:cda05425526240807408156b6960a17a79a0c760b813573b67027823be760977 \ - --hash=sha256:d419647372241bc68e957bf38d5c1f98852155e4146bd1e4121adea81f4f01e4 \ - --hash=sha256:d4d9f0624c775f2dfc56ba54d515a8c771044346852a918b405914f6b19d7fd8 \ - --hash=sha256:d60097128cb0a1cab9ea541186ea13cd7b847b8449a7787c2e2350da0cb82d86 \ - --hash=sha256:db2910d3c809444e0a20147361f343fe2798e106af8d9d8506f5305302655a9f \ - --hash=sha256:ddb36c7d6c9c0a65f18c7258634e0c416c6ab59caac8c987b96f80c2ebda0112 \ - --hash=sha256:ddc090c5c1792b10246a78e8c2163ebbe04cf877f9d785c230a7b27b39ad038e \ - --hash=sha256:e5ddf316ced87539144621453c3aef229575825fe60c604e62bedc4003f372b2 \ - --hash=sha256:f35807464c4c58c55f0d31dfa83c541a5615d825c2fe3d2b95360cf7c4e3c0a8 \ - --hash=sha256:f8c30c2225f40dd76c50790f0eb3b5c7c18431efb299e2782083e1981feed243 \ - --hash=sha256:fa94cb2288681e3a11645958f1871d48ee9211bd2f66628fdace505927d6e564 +greenlet==3.5.1 \ + --hash=sha256:001775efe7b8e758861294c7a27c28af87f3f3f1c20468a2bc618c45b346c061 \ + --hash=sha256:00929c98ec525fd9bf075875d8c5f6a983a90906cdf78a66e6de2d8e466c2a19 \ + --hash=sha256:017a544f0385d441e88714160d089d6900ef46c9eff9d99b6715a5ef2d127747 \ + --hash=sha256:089fff7a6ce8d9316d1f65ebc00273a56be258c1725b32b94de90a3a979557e1 \ + --hash=sha256:1072b4f9edcc1e192d9283a66a3e68d6b84c561de33a83d7858beb9ba1effe10 \ + --hash=sha256:10a9a1c0bfbc93d41156ffcb90c75fbc05544054faf15dcc1fdf9765f8b607f0 \ + --hash=sha256:110a1ca7b49b014b097f6078272c3f4ed31af45b254de5228b79adba879f6af9 \ + --hash=sha256:111e2390ffffc47d5840b01711dd7fac07d4c09283d0283e7f3264b14e284c64 \ + --hash=sha256:17d86354f0ae6b61bf9be5148d0dd34e06c3cb7c602c671f79f29ac3b150e659 \ + --hash=sha256:1ffdb3c0bb002c99cd8f298957e046c3dbf6006b5b7cdf11a4e19194624a0a0a \ + --hash=sha256:2baee5ca02031757ffe8cc3d69f0cc0aec7065ce362622da74f32d3bcab1c541 \ + --hash=sha256:2c18ef16bf6d4dd410e4dd52996888ea1497be26892fe5bbc73580aba4287b8e \ + --hash=sha256:2f82b3597e9d83b63408affed0b48fd0f54935edac4302237b9a837be0dae33c \ + --hash=sha256:3bfbd69cc349e43bf3a8ae1c85548ff0718efc887615c2db16c3833d7b0b072d \ + --hash=sha256:3c8bb982ad117d29478ef8f5533e97df21f1e2befd17a299257b0c96d1371c0b \ + --hash=sha256:3d955c89b75eeca4723d7cc14135f393cd47c32e2a6cb4a8e4c6e760a26b0986 \ + --hash=sha256:4378720dd888136c27215a0214d32a4d37c3852765d45bc37aad0623423cfd78 \ + --hash=sha256:45718441607f9325d948db98cbc691276059316d0358c188c246da4e1d4d23d2 \ + --hash=sha256:5028648bf2253ec4745add746129d3904121fa7fe871a76bed23c5720573ce0a \ + --hash=sha256:50ae25a67bea74ea41fb14b960bc532df73eb713417b2d61892dced82fe8d3bc \ + --hash=sha256:51518ff74664078fc51bffcc6fc529b0df5ae58da192691cee765d45ce944a2b \ + --hash=sha256:540dae7b956209af4d70a3be35927b4055f617763771e5e84a5255bea934d2f5 \ + --hash=sha256:5a56aeb7d5d9cc4b3a735efb5095bd4b4f6f0e4f93e5ca876d0e2315137b7829 \ + --hash=sha256:5e300185139abc337ade480c327183adf42a875ac7181bfe66d7d4efea31fbea \ + --hash=sha256:67821bb03e4e98664490edb787ff6af501194c29bbee0f5c1dfdcf1dc3d9d436 \ + --hash=sha256:6c09df69dc1712d131332054a858a3e5cca400967fa3a672e2324fbb0971448c \ + --hash=sha256:6ebeb75c81211f5c702576cf81f315e77e23cfdb2c7c6fcb9dd143e6de35c360 \ + --hash=sha256:73f78f9b9f0a5c06e5c946ba1e8e36f5114923b6be109ee618c54f079c3ea14f \ + --hash=sha256:7546556f0d649f99f6a361098a55f761181bb2ea12ff150bb16d26092ad88244 \ + --hash=sha256:7715a5a2c3378ba602c3a440558261e13a820bb53a82693aacd7b7f6d964e283 \ + --hash=sha256:7b5f5fae05b8ac6d176a61b60c394a8cbdc2b5b91b81793066e68745cf165e54 \ + --hash=sha256:7eacb17a9d41538a2bc4912eba5ef13823c83cb69e4d141d0813debe7163187f \ + --hash=sha256:7ffdb990dcaa0234cf9845aead5df2e3c3a8b6507d409274dd87e0d5ab05ffc2 \ + --hash=sha256:80eb4b04dadc4e67df3fae179a32c4706a3f495bc7f22fc8a81115d5f5512188 \ + --hash=sha256:88e300d136eac057b2397aa1cfd7328b4c87c7eb66a09c7bc6a1292234db474e \ + --hash=sha256:89101bfd5011e069be974903cb3a4e4523845e4ece2d62dcd8d358933c0ef249 \ + --hash=sha256:8a17c42330e261299766b75ac1ea32caa437a9453c8f65d16a13140db378ecd3 \ + --hash=sha256:8a271fcd66c74615cda6a964fda3f304267a12e50a084472218a39bb0376f563 \ + --hash=sha256:8d8a23250ea3ec7b36de8fa4b541e9e2db3ee82915cc060ab0631609ad8b28de \ + --hash=sha256:92fd6d44ac5e5a887c8a5dc4a8ba0ba908527c31c12f78c6bc7dcfe8aab279f6 \ + --hash=sha256:975eac34b44a7077ca4d421348455b94f0f518246a7f14bc6d2fdcfe5b584368 \ + --hash=sha256:9ab3c3a0b2ae6198e67c898dad5215a49f9ae0d0081b3c3ec59f333e39eeca26 \ + --hash=sha256:9b1ec3274918a81d3ea778b9e75b56b72b33f300edb6cf7f3a7fe1dae56683de \ + --hash=sha256:9d59e840387076a51016777a9328b3f2c427c6f9208a6e958bad251be50a648d \ + --hash=sha256:a0cbed8bb44e23c5b199f888f4e4ce096b45ad9f25ff74a7ad0213875e936bb2 \ + --hash=sha256:a19570c52a21420dcbc94e661994bc325c0b5b11304540fed514586da5dc8f2e \ + --hash=sha256:a203a8bd0acb0701653d3bbb26e404854a68674139ed5cbb778830f42b09bb33 \ + --hash=sha256:a4764e0bfc6a4d114c865b32520805c16a990ef5f286a514413b05d5ecd6a23d \ + --hash=sha256:a57b0d05a0448eed231d59c0ceb287dde984551e54cbc51ac2d4865712838e9c \ + --hash=sha256:a5c81f74d204d3edd136ebfd50dce53acbb776995d721a0fe801626cfc93b8cd \ + --hash=sha256:a5ea42a752d47a145eae922b605cd1634665ac3d5ec1e72402d5048e8d60d207 \ + --hash=sha256:a6fdf2433a5441ef9a95464f7c3e674775da1c8c1177fff311cee1acad4626ed \ + --hash=sha256:add5217d68b31130f0beca584d7fef4878327d2e31642b66618a14eef312b63b \ + --hash=sha256:b0703c2cef53e01baec47f7a3868009913ad71ec678bbecb42a6f40895e4ce62 \ + --hash=sha256:b9152fca4a6466e114aaec745ae61cba739903a109754a9d4e1262f01e9259b1 \ + --hash=sha256:c0141e37414c10164e702b8fb1473304221ad98f71600850c6ef7ff4880feba0 \ + --hash=sha256:c3d35f87c7253b715d13d679e0783d845910144f282cb939fe1ba4ac8616269c \ + --hash=sha256:c5551170cf4f5ff5623e9af81323751979fee2c731e2287b61f73cd27257b823 \ + --hash=sha256:cbfc69be86e10dcfef5b1e6269d1d6926552aa89ee39e1de3353360c1b6989ab \ + --hash=sha256:cc6ab7e555c8a112ad3a76e368e86e12a2754bcae1652a5602e133ec7b635523 \ + --hash=sha256:cd443683db272ebaaca03af98c0b063ab30db70ea8a31a1559f35e3f7b744ccd \ + --hash=sha256:d0932b81d72f552ded9d810d00021b64d89f2195a91ce115b893f943b7a4ab3c \ + --hash=sha256:d40a890035c0058cadbdc4af7569800fd28a0e527a0fdbb7b5f9418f176846ce \ + --hash=sha256:d5ee3ea898009fa898f85f9982255d35278c477bebe185beca249cab42d4526c \ + --hash=sha256:d8ab31c9de8651a2facdd5c5bb0011f2380dd1a7af78ce2adf4b56095294fc07 \ + --hash=sha256:dc71ff466927a201b08305acac451ebe1aedfcea002f62f1f2f2ac2ac1e6a135 \ + --hash=sha256:de2daaaebd1a5aa88c49045b6baf9310b3263796bd88db713edf37cf53e7bb4e \ + --hash=sha256:ded7b068c7c31c1a8657d4fd42d886b3e051ae29f88b80c5ff9d502257b0f071 \ + --hash=sha256:e5cc9606aa5f4e0bde0d3bd502b44f743864c3ffa5cfa1011b1e30f5aa02366f \ + --hash=sha256:e630136e905fe5ff43e86945ae41220b6d1470956a39220e708110ac48d01ea5 \ + --hash=sha256:e6cd99ea59dd5d89f0c956606571d79bfe6f68c9eb7f4a4083a41a7f1587edee \ + --hash=sha256:e7516cf6ae6b8a582c2770a0caed47b8a48373ed732c33d69a72913ae6ac923e \ + --hash=sha256:ea37d5a157eb9493820d3792ac4ece28619a394391d2b9f2f78057d396ff0f0f \ + --hash=sha256:ea8da1e900d758d078810d4255d8c6aa572181896a31ec79d779eb79c3adc9ad \ + --hash=sha256:ed8cdb691169715a9a492844a83246f090182247d1a5031dc78a403f68ba1e97 \ + --hash=sha256:ef08c1567c78074b22d1a200183d52d04a14df447bf70bcbb6a3507a48e776fc \ + --hash=sha256:f16ba1efc0715b680a18b8123d90dad887c6112ae3555b4b5c32c149540c6b4e \ + --hash=sha256:fa4f98af3a528f0c3fd592a26df7f376f93329c8f4d987f6bb979057af8bf5e2 \ + --hash=sha256:ffea73584b216150eab159b6d12348fb253e68757974de1e2c40d8a318ac89ed # via feast (pyproject.toml) grpc-google-iam-v1==0.14.4 \ --hash=sha256:392b3796947ed6334e61171d9ab06bf7eb357f554e5fc7556ad7aab6d0e17038 \ @@ -1218,50 +1239,57 @@ httpcore==1.0.9 \ --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn httpx==0.28.1 \ --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ @@ -1277,9 +1305,9 @@ ibis-framework[duckdb]==12.0.0 \ --hash=sha256:0bbd790f268da9cb87926d5eaad2b827a573927113c4ed3be5095efa89b9e512 \ --hash=sha256:238624f2c14fdab8382ca2f4f667c3cdb81e29844cd5f8db8a325d0743767c61 # via feast (pyproject.toml) -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # httpx @@ -1313,9 +1341,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kubernetes==35.0.0 \ - --hash=sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d \ - --hash=sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee +kubernetes==36.0.1 \ + --hash=sha256:3eadd6ae1be3b742ae63bd382b139c9fd5171afb6e00771dcefaae2d49001992 \ + --hash=sha256:7631d11dd761f18658064a6ee91a36923cec3bef3cd92b99e08a53745b95f7d0 # via feast (pyproject.toml) librt==0.11.0 \ --hash=sha256:05fb8fb2ab90e21c8d12ea240d744ad514da9baf381ebfa70d91d20d21713175 \ @@ -2032,9 +2060,9 @@ pathspec==1.1.1 \ # hatchling # mypy # scikit-build-core -platformdirs==4.9.6 \ - --hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \ - --hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917 +platformdirs==4.10.0 \ + --hash=sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7 \ + --hash=sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a # via snowflake-connector-python pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ @@ -2177,15 +2205,15 @@ proto-plus==1.28.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via # feast (pyproject.toml) # google-api-core @@ -2462,9 +2490,9 @@ pygments==2.20.0 \ # feast (pyproject.toml) # rich # sphinx -pyjwt[crypto]==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt[crypto]==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via # feast (pyproject.toml) # mcp @@ -2473,9 +2501,9 @@ pymilvus==2.5.18 \ --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (pyproject.toml) -pymysql==1.1.3 \ - --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ - --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a +pymysql==1.2.0 \ + --hash=sha256:62169ce6d5510f08e140c5e7990ee884a9764024e4a9a27b2cc11f1099322ae0 \ + --hash=sha256:6c7b17ca686988104d7426c27895b455cdeea3e9d3ceb1270f0c3704fead8c33 # via feast (pyproject.toml) pyopenssl==26.2.0 \ --hash=sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70 \ @@ -2631,122 +2659,137 @@ roman-numerals==4.1.0 \ --hash=sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2 \ --hash=sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7 # via sphinx -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -2781,36 +2824,37 @@ six==1.17.0 \ # via # kubernetes # python-dateutil -snowballstemmer==3.0.1 \ - --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ - --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 +snowballstemmer==3.1.0 \ + --hash=sha256:17e6d1da216aa07db6dad37139ea70cf13c4b2e9a096f6e64a9648fc657d3154 \ + --hash=sha256:fd9e34526b23340cd23ffea6c9f9760974ecc2c2ac9e1d81401443ccdb2a801f # via sphinx -snowflake-connector-python[pandas]==4.5.0 \ - --hash=sha256:0c92794e56faaafbdf6fedfa0473bd29f40ea89ad258b322c92b27b27f57bc35 \ - --hash=sha256:16311dc9c4a0e2d6cd14ecd43f1f607e291ba5397832123a0b04a326897ef8b0 \ - --hash=sha256:1897be7487587d9ce7feae132a288e714b3b07f3b3f3404e62b6dfcebde94bb9 \ - --hash=sha256:206ea5e947ac346d121dd344048b7dd1b2ab4a0da03375ce3d90321a8ce598db \ - --hash=sha256:2c04c2a7ee5a183be1204417077584c07569e66997e8d093403bb1604b5463bd \ - --hash=sha256:34fbeb3f8ad26f34659c687cb27136d8eb9aea1ac65bc4b8b32091dc727f1f14 \ - --hash=sha256:376eb9d956f6b9287df448e483ec862b94fb9ccb06cefc945b68ddac1c7d1c48 \ - --hash=sha256:39c2b9d17da9a23475ad52a8e7b389001d7277bf400428c4c6af6bd1099bc62e \ - --hash=sha256:4870858f2fa312343b0063fb4da57b3e893d80aa00e371bc637981f3eed9c254 \ - --hash=sha256:56baa39a1fa9f0cdcdad3da022508396268d0bf6bb6df28087b02e4826e88bd1 \ - --hash=sha256:583adc49b38316d3023dc80bef81a27a3027a2f8109a36e69a0083785b7f8662 \ - --hash=sha256:5f73f1b0ed24e01d9dd627b088cc83e62e81ea5b19bee679946941f6d1947ef9 \ - --hash=sha256:64ec9b5dddf19c7f4ce4355d1b8e16239a26d1d161d92219919953510664269c \ - --hash=sha256:6bb323323c573c903500e1c654f71c0aad7b62149e2f719c611377fac9c05833 \ - --hash=sha256:7badadc59d7e75550c7f35bdb9414895cae5898a4f9901b02231d0eaa694a4a0 \ - --hash=sha256:81bfdbd865fceb5e9ac1969976c8f635e21185c06d97a31cac8ca3a4b4697b1d \ - --hash=sha256:92d865b9b60a767a55787540dbf04b3074a7b1a728f24ddbec2bbcf257215625 \ - --hash=sha256:93febe6d69c4dc46a64d16a0b6ed65b523d869f1691ead791eb22ebd8b6725ce \ - --hash=sha256:9a17b5a8e43611bd7eae289de2b8f71679bb386b8d82036f0b36436827308f81 \ - --hash=sha256:9c0cc17ceb915842dfdee7baaccbdcd5b5e3de06977231b8a31704c2ed8532d8 \ - --hash=sha256:a1aa9128aa43d09771e845a1af1fc2a5d5a014ab0bea8bea4b72501662ba601f \ - --hash=sha256:a28a9391b464f9060304d8468a24bff6a2d13bf5801c92fbf8c05907e5fb06f4 \ - --hash=sha256:d7f5e2ea42521c033c4ac0e60685c50a47082715eb57cdaf92b438d9bb44d220 \ - --hash=sha256:e4481849c65d4eeaef89efd589c7690bc51d7535524f278dde9b29012fdf5084 \ - --hash=sha256:ee03a9b8f61192d72374e3785650460ed0c996c7153a8b38140be6e162ac4fb1 +snowflake-connector-python[pandas]==4.6.0 \ + --hash=sha256:00abbcfe958f60da18297191f3499b1e61802e64622521a2e8da1c059c14e1c0 \ + --hash=sha256:03b0a232d8d0a1c78eb0d4e9f8a422a1553b2f69ef1387d50a3223bb1829a249 \ + --hash=sha256:04ea8906ac06bdf98ab265f7870b532f32dd2b0f6b3b06a542b6e25a43e01665 \ + --hash=sha256:06e2dba02703da6fd60e07bb0574506f810a85e5831d3461247753ecce4b8335 \ + --hash=sha256:0829d57467bf1bb5af411f6e7723058cb2218fb7df07cf15d912e3b1a2c126eb \ + --hash=sha256:1894504c69a76ac4a205d01fbb3e18c6a6e974e6ad26dad263edd06343bea501 \ + --hash=sha256:18cc5402695b8e958503d6d7ab96403db90c481b63c31520305876ef3cb797e9 \ + --hash=sha256:1c8476781cfef961fc5f6f75a5238e668d3e0ca5ebf1d055661b2fcf2831c254 \ + --hash=sha256:1fe93d88278a0b7e0efde6140890bc298a49fbf1e04968a35aa22c801131cced \ + --hash=sha256:324b15278ee84ea6f0af7fef5e916778c23c4569b2c8ba7fdc90d288478772b9 \ + --hash=sha256:3ff98c3213674c5ed18ba6bb9288c4e88e790150f350824434d49a23d15c0fc3 \ + --hash=sha256:531dcb07eee8405e5d8a9f4e7f8c1ca7916e3afbb4ffb3dd2c9a12ec5bd0e46a \ + --hash=sha256:676162cd45df744aa966483960d34bf204cdcae87cecad77fba970f1c2fd570d \ + --hash=sha256:6d3f6120edeb0d6edd208831d006cc3e769ec51bc346727f22d7aeaecbf20f77 \ + --hash=sha256:72aaee21a70e00fbe4dadcc60b9b1012b6411dddc90f94804d5efe5706fb9621 \ + --hash=sha256:7ab64f46b18d77d1e6c159a29cd86eeff0be9ff01a9904fa873a3c29d20063d1 \ + --hash=sha256:8edc8bbcbaaa25a08d43f943fe45f00dc465684ef243859b0f3f7498d800f1ce \ + --hash=sha256:9dd8689123a7e7b873db0846f2d92745a02062b16665d20634fbaf34a9c88e7a \ + --hash=sha256:a7701b702dbeb348769c5d1248231e18544c4ff1fb4118ad73d48e8f801cfb6e \ + --hash=sha256:c3124fd4a5dc702173ccd73d821ceba1442134d5f347b4c8d1ecb76489f44671 \ + --hash=sha256:e0ca5a035b1afa690fb36a767ba59c8db85ef6295b88c2bbc2040449e99992ad \ + --hash=sha256:e8ccbf8b5e12177a86bd3ab8292cc5a99e9ac97d7645ef4a3ed0f767b4ec6594 \ + --hash=sha256:eab420406a38ebc059100bb1faa55d7d6306bb224cefadb739ec3cafeff65384 \ + --hash=sha256:ed40d1e9d867253596860b9d5240280489ff4692b7a3fa21e2d45d63b4b61d36 \ + --hash=sha256:f15e2493a316ce79ab3d7fb16add10252bb2401723e5cfbc7a2ebc44d89a7b2b \ + --hash=sha256:fe9005d226b234bf190409e5d7e8db9f7daba271880de9105f5173a6858b8e6b # via feast (pyproject.toml) sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ @@ -2844,70 +2888,65 @@ sphinxcontrib-serializinghtml==2.0.0 \ --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 \ --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d # via sphinx -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) sqlglot==30.8.0 \ --hash=sha256:1c5f93fb742dd9aaa75eee6bb33a637794a858b9a86375fac23a2dc0f7bc127e \ @@ -2917,10 +2956,11 @@ sse-starlette==3.4.4 \ --hash=sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0 \ --hash=sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973 # via mcp -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 # via + # feast (pyproject.toml) # fastapi # mcp # sse-starlette @@ -3002,17 +3042,17 @@ tqdm==4.67.3 \ # via # feast (pyproject.toml) # milvus-lite -trove-classifiers==2026.5.7.17 \ - --hash=sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33 \ - --hash=sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80 +trove-classifiers==2026.5.22.10 \ + --hash=sha256:01fe864225726e03efb843827ecabfe319fc4dee8dd66d65b8996cb09be46e2c \ + --hash=sha256:5477e9974e91904fb2cfa4a7581ab6e2f30c2c38d847fd00ed866080748101d5 # via hatchling typeguard==4.5.2 \ --hash=sha256:5a16dcac23502039299c97c8941651bc33d7ea8cc4b2f7d6bbb1b528f6eea423 \ --hash=sha256:fcf9de18bd945cdb4c7b996e12b4c51ce83f92f191314a6d7cf1739586ec98cf # via feast (pyproject.toml) -typer==0.25.1 \ - --hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \ - --hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc +typer==0.26.3 \ + --hash=sha256:3e2b9352f535e5303ef27806dadc2c8647687bdca5c902f03fec3fb88f46a46a \ + --hash=sha256:e70549ec5a403ca8a0bf0802ddd9f3c6ff7a14ccbb859b01b697baa943636f33 # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -3468,135 +3508,111 @@ wrapt==1.17.3 \ --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c # via aiobotocore -yarl==1.23.0 \ - --hash=sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc \ - --hash=sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4 \ - --hash=sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85 \ - --hash=sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993 \ - --hash=sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222 \ - --hash=sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de \ - --hash=sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25 \ - --hash=sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e \ - --hash=sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2 \ - --hash=sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e \ - --hash=sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860 \ - --hash=sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957 \ - --hash=sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760 \ - --hash=sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52 \ - --hash=sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788 \ - --hash=sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912 \ - --hash=sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719 \ - --hash=sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035 \ - --hash=sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220 \ - --hash=sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412 \ - --hash=sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05 \ - --hash=sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41 \ - --hash=sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4 \ - --hash=sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4 \ - --hash=sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd \ - --hash=sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748 \ - --hash=sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a \ - --hash=sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4 \ - --hash=sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34 \ - --hash=sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069 \ - --hash=sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25 \ - --hash=sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2 \ - --hash=sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb \ - --hash=sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f \ - --hash=sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5 \ - --hash=sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8 \ - --hash=sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c \ - --hash=sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512 \ - --hash=sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6 \ - --hash=sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5 \ - --hash=sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9 \ - --hash=sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072 \ - --hash=sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5 \ - --hash=sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277 \ - --hash=sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a \ - --hash=sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6 \ - --hash=sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae \ - --hash=sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26 \ - --hash=sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2 \ - --hash=sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4 \ - --hash=sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70 \ - --hash=sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723 \ - --hash=sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c \ - --hash=sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9 \ - --hash=sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5 \ - --hash=sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e \ - --hash=sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c \ - --hash=sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4 \ - --hash=sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0 \ - --hash=sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2 \ - --hash=sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b \ - --hash=sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7 \ - --hash=sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750 \ - --hash=sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2 \ - --hash=sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474 \ - --hash=sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716 \ - --hash=sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7 \ - --hash=sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123 \ - --hash=sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007 \ - --hash=sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595 \ - --hash=sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe \ - --hash=sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea \ - --hash=sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598 \ - --hash=sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679 \ - --hash=sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8 \ - --hash=sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83 \ - --hash=sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6 \ - --hash=sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f \ - --hash=sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94 \ - --hash=sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51 \ - --hash=sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120 \ - --hash=sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039 \ - --hash=sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1 \ - --hash=sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05 \ - --hash=sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb \ - --hash=sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144 \ - --hash=sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa \ - --hash=sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a \ - --hash=sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99 \ - --hash=sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928 \ - --hash=sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d \ - --hash=sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3 \ - --hash=sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434 \ - --hash=sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86 \ - --hash=sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46 \ - --hash=sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319 \ - --hash=sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67 \ - --hash=sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c \ - --hash=sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169 \ - --hash=sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c \ - --hash=sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59 \ - --hash=sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107 \ - --hash=sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4 \ - --hash=sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a \ - --hash=sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb \ - --hash=sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f \ - --hash=sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769 \ - --hash=sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432 \ - --hash=sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090 \ - --hash=sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764 \ - --hash=sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d \ - --hash=sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4 \ - --hash=sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b \ - --hash=sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d \ - --hash=sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543 \ - --hash=sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24 \ - --hash=sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5 \ - --hash=sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b \ - --hash=sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d \ - --hash=sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b \ - --hash=sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6 \ - --hash=sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735 \ - --hash=sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e \ - --hash=sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28 \ - --hash=sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3 \ - --hash=sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401 \ - --hash=sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6 \ - --hash=sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d +yarl==1.24.2 \ + --hash=sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b \ + --hash=sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30 \ + --hash=sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc \ + --hash=sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f \ + --hash=sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae \ + --hash=sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8 \ + --hash=sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75 \ + --hash=sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a \ + --hash=sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c \ + --hash=sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461 \ + --hash=sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44 \ + --hash=sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b \ + --hash=sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727 \ + --hash=sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9 \ + --hash=sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd \ + --hash=sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67 \ + --hash=sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420 \ + --hash=sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db \ + --hash=sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50 \ + --hash=sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b \ + --hash=sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50 \ + --hash=sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9 \ + --hash=sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1 \ + --hash=sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488 \ + --hash=sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2 \ + --hash=sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f \ + --hash=sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d \ + --hash=sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003 \ + --hash=sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536 \ + --hash=sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a \ + --hash=sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a \ + --hash=sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa \ + --hash=sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f \ + --hash=sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e \ + --hash=sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035 \ + --hash=sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12 \ + --hash=sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe \ + --hash=sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4 \ + --hash=sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294 \ + --hash=sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7 \ + --hash=sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761 \ + --hash=sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643 \ + --hash=sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413 \ + --hash=sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57 \ + --hash=sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36 \ + --hash=sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14 \ + --hash=sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd \ + --hash=sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5 \ + --hash=sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656 \ + --hash=sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad \ + --hash=sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c \ + --hash=sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0 \ + --hash=sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992 \ + --hash=sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342 \ + --hash=sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1 \ + --hash=sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf \ + --hash=sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024 \ + --hash=sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986 \ + --hash=sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb \ + --hash=sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d \ + --hash=sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543 \ + --hash=sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d \ + --hash=sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed \ + --hash=sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617 \ + --hash=sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996 \ + --hash=sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8 \ + --hash=sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2 \ + --hash=sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3 \ + --hash=sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535 \ + --hash=sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630 \ + --hash=sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215 \ + --hash=sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592 \ + --hash=sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf \ + --hash=sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b \ + --hash=sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac \ + --hash=sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0 \ + --hash=sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92 \ + --hash=sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122 \ + --hash=sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1 \ + --hash=sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8 \ + --hash=sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576 \ + --hash=sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8 \ + --hash=sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712 \ + --hash=sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1 \ + --hash=sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2 \ + --hash=sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b \ + --hash=sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a \ + --hash=sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53 \ + --hash=sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1 \ + --hash=sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d \ + --hash=sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208 \ + --hash=sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0 \ + --hash=sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c \ + --hash=sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607 \ + --hash=sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c \ + --hash=sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8 \ + --hash=sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39 \ + --hash=sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f \ + --hash=sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8 \ + --hash=sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90 \ + --hash=sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45 \ + --hash=sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2 \ + --hash=sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056 \ + --hash=sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14 # via aiohttp # The following packages were excluded from the output: diff --git a/sdk/python/requirements/py3.12-requirements.txt b/sdk/python/requirements/py3.12-requirements.txt index d46a6b09d33..8e08e2c7d4d 100644 --- a/sdk/python/requirements/py3.12-requirements.txt +++ b/sdk/python/requirements/py3.12-requirements.txt @@ -59,9 +59,9 @@ bigtree==1.4.1 \ --hash=sha256:78bf1fb50c46242012b26b237c652b21a28220b6e66f9f6a07cd059375618040 \ --hash=sha256:81fffc6c6b92f4038710f5a5d60532deaad31e7ebacb8f527bc7eb1fbd286477 # via feast (pyproject.toml) -certifi==2026.4.22 \ - --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ - --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 +certifi==2026.5.20 \ + --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ + --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d # via requests charset-normalizer==3.4.7 \ --hash=sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc \ @@ -194,9 +194,9 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via requests -click==8.4.0 \ - --hash=sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81 \ - --hash=sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973 +click==8.4.1 \ + --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ + --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via # feast (pyproject.toml) # dask @@ -217,9 +217,9 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (pyproject.toml) -fastapi==0.136.1 \ - --hash=sha256:7af665ad7acfa0a3baf8983d393b6b471b9da10ede59c60045f49fbc89a0fa7f \ - --hash=sha256:a6e9d7eeada96c93a4d69cb03836b44fa34e2854accb7244a1ece36cd4781c3f +fastapi==0.136.3 \ + --hash=sha256:3d2a69bdf04b7e9f3afa292c3bc7a98816bbfafa10bc9b45f3f3700d2f761620 \ + --hash=sha256:e487fae93ad408e6f47641ee4dfe389864fd7bec92e547ea8498fc13f43e83ab # via feast (pyproject.toml) fsspec==2026.4.0 \ --hash=sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2 \ @@ -235,54 +235,61 @@ h11==0.16.0 \ --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 # via uvicorn -httptools==0.7.1 \ - --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ - --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ - --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ - --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ - --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ - --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ - --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ - --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ - --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ - --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ - --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ - --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ - --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ - --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ - --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ - --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ - --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ - --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ - --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ - --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ - --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ - --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ - --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ - --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ - --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ - --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ - --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ - --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ - --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ - --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ - --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ - --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ - --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ - --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ - --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ - --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ - --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ - --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ - --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ - --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ - --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ - --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ - --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 +httptools==0.8.0 \ + --hash=sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683 \ + --hash=sha256:0ea897f0c729581ebf72131a438a7932d9b14efef72d75ada966700cac3caaeb \ + --hash=sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b \ + --hash=sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527 \ + --hash=sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124 \ + --hash=sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca \ + --hash=sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081 \ + --hash=sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c \ + --hash=sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77 \ + --hash=sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09 \ + --hash=sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f \ + --hash=sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085 \ + --hash=sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376 \ + --hash=sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5 \ + --hash=sha256:5d7fa4ba7292c1139c0526f0b5aad507c6263c948206ea1b1cbca015c8af1b62 \ + --hash=sha256:5eb911c515b96ee44bbd861e42cbefc488681d450545b1d02127f6136e3a86f5 \ + --hash=sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8 \ + --hash=sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681 \ + --hash=sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999 \ + --hash=sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1 \ + --hash=sha256:7b71e7d7031928c650e1006e6c03e911bf967f7c69c011d37d541c3e7bf55005 \ + --hash=sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d \ + --hash=sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d \ + --hash=sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d \ + --hash=sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d \ + --hash=sha256:9878eb2785ba5eb70631ad269b37976f73d647955e26c91d490eb8a4edfda4ba \ + --hash=sha256:9fc1644f415372cec4f8a5be3a64183737398f10dbb1263602a036427fe75247 \ + --hash=sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745 \ + --hash=sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07 \ + --hash=sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b \ + --hash=sha256:a6f21e2a3b0067bbe7f67e34cfd16276af556e5e52f4c7503be0cb5f90e905e4 \ + --hash=sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2 \ + --hash=sha256:b205e5f5523fa039679da0dfe5a10132b2a4abeae6a86fdd1ddc035f7f836557 \ + --hash=sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d \ + --hash=sha256:bf3b6f807c8541503cecfbb8a8dffb385640d0d96102f3d112aa8740f9b7c826 \ + --hash=sha256:c08ffe3e79756e0963cbc8fe410139f38a5884874b6f2e17761bef6563fdcd9b \ + --hash=sha256:c0d726cc107fceb7d45f978483b4b70dd8caa836f5914d3434bb18628eb73813 \ + --hash=sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0 \ + --hash=sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150 \ + --hash=sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e \ + --hash=sha256:da684f2e1aa2ee9bdcb083f3f3a68c5956750b375bc5df864d3a5f0c42a40b77 \ + --hash=sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568 \ + --hash=sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6 \ + --hash=sha256:df31ef5494f406ab6cf827b7e64a22841c6e2d654100e6a116ea15b46d02d5e8 \ + --hash=sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b \ + --hash=sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7 \ + --hash=sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168 \ + --hash=sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a \ + --hash=sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0 \ + --hash=sha256:fe2a4c95aeba2209434e7b31172da572846cae8ca0bf1e7013e61b99fbbf5e72 # via uvicorn -idna==3.15 \ - --hash=sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8 \ - --hash=sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc +idna==3.17 \ + --hash=sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c \ + --hash=sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f # via # anyio # requests @@ -798,15 +805,15 @@ prometheus-client==0.24.1 \ --hash=sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055 \ --hash=sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9 # via feast (pyproject.toml) -protobuf==7.34.1 \ - --hash=sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a \ - --hash=sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a \ - --hash=sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b \ - --hash=sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4 \ - --hash=sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280 \ - --hash=sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11 \ - --hash=sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7 \ - --hash=sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c +protobuf==7.35.0 \ + --hash=sha256:4c4617b83ade0e279d1d2bfe04025a1adb87f9ed657de038620dc0ff959357f6 \ + --hash=sha256:4cbf5cc286130e06a6c9bbefac442431173906dfcc979712183d4adcc01b37ee \ + --hash=sha256:66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda \ + --hash=sha256:6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011 \ + --hash=sha256:a2efd84605f41e559f1881b0912b44099d0a2ac9bf46b3474823f10fb393b0e6 \ + --hash=sha256:c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0 \ + --hash=sha256:f05bcadf9a2a6b8dda047007075135fb7d08c73d9177aabc067e1be46881a201 \ + --hash=sha256:fcbe42a4ac09d3ec9c987ddfcd956afd0b15f1ff613bd8371bde9405ffd5c8e5 # via feast (pyproject.toml) psutil==7.2.2 \ --hash=sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372 \ @@ -1017,9 +1024,9 @@ pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176 # via feast (pyproject.toml) -pyjwt==2.12.1 \ - --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ - --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b +pyjwt==2.13.0 \ + --hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \ + --hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728 # via feast (pyproject.toml) python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ @@ -1121,122 +1128,137 @@ requests==2.34.2 \ --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via feast (pyproject.toml) -rpds-py==0.30.0 \ - --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ - --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ - --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ - --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ - --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ - --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ - --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ - --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ - --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ - --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ - --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ - --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ - --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ - --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ - --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ - --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ - --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ - --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ - --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ - --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ - --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ - --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ - --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ - --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ - --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ - --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ - --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ - --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ - --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ - --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ - --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ - --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ - --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ - --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ - --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ - --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ - --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ - --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ - --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ - --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ - --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ - --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ - --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ - --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ - --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ - --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ - --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ - --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ - --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ - --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ - --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ - --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ - --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ - --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ - --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ - --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ - --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ - --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ - --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ - --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ - --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ - --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ - --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ - --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ - --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ - --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ - --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ - --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ - --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ - --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ - --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ - --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ - --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ - --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ - --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ - --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ - --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ - --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ - --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ - --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ - --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ - --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ - --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ - --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ - --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ - --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ - --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ - --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ - --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ - --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ - --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ - --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ - --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ - --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ - --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ - --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ - --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ - --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ - --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ - --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ - --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ - --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ - --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ - --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ - --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ - --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ - --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ - --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ - --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ - --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ - --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ - --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ - --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ - --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ - --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 +rpds-py==2026.5.1 \ + --hash=sha256:01d17b29c0c23d82b1f4751147ec49cf451f1fc2554eb9ef5f957e55d2656ead \ + --hash=sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a \ + --hash=sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4 \ + --hash=sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256 \ + --hash=sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb \ + --hash=sha256:0a5ae4dbe43c1076983b72616496919872ae7bbe7a1e21cc48336bc3154d130b \ + --hash=sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870 \ + --hash=sha256:0b35217adefe87f2fe4db7e9766cabe84744bfe9616d9667be18988928c7f2dc \ + --hash=sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08 \ + --hash=sha256:141c9498daf2ace9eda35d2b0e376f9ea8b058d84f2aef4f96fccfd449a2f251 \ + --hash=sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473 \ + --hash=sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b \ + --hash=sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a \ + --hash=sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131 \ + --hash=sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9 \ + --hash=sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01 \ + --hash=sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba \ + --hash=sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad \ + --hash=sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db \ + --hash=sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d \ + --hash=sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0 \ + --hash=sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63 \ + --hash=sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee \ + --hash=sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7 \ + --hash=sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b \ + --hash=sha256:3397a5ed7174dc2786bb214030232fc36fe8e5584fec43a9952cc542b1a12036 \ + --hash=sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb \ + --hash=sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16 \ + --hash=sha256:3684a59b158a7683aaeb8e25352e9a9dd2122cec78f2d8530266e4f91b4c7b3f \ + --hash=sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d \ + --hash=sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d \ + --hash=sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5 \ + --hash=sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78 \ + --hash=sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66 \ + --hash=sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972 \ + --hash=sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd \ + --hash=sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89 \ + --hash=sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732 \ + --hash=sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02 \ + --hash=sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef \ + --hash=sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a \ + --hash=sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c \ + --hash=sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723 \ + --hash=sha256:613fc4ee9eaef26dc5840666214dd6fbcebcf32f46e76f4abc473059f4e13dda \ + --hash=sha256:6142dbd80c4df62a5d899f0d616d417f84e0bc8d32526c8e5589019d75d028a7 \ + --hash=sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca \ + --hash=sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02 \ + --hash=sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015 \ + --hash=sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1 \ + --hash=sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed \ + --hash=sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00 \ + --hash=sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a \ + --hash=sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195 \ + --hash=sha256:6f249f8b860a200ad35193af961183ebe9132710484e6f6ce0cf89fd83c63a9a \ + --hash=sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa \ + --hash=sha256:7559f72b94ae52659086c595dfa017cde03155f7832071d30959049052cb3ece \ + --hash=sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df \ + --hash=sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26 \ + --hash=sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa \ + --hash=sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842 \ + --hash=sha256:7bd530e6a530bb3ea892f194fafa455f3516ac25ecf7143fd33c09be62b0470a \ + --hash=sha256:8213afbe8a3a906fb9acb2014423fe3359ee783d0bf90995f70623a3217bfa6c \ + --hash=sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd \ + --hash=sha256:85264a90ff4c05c1568dd65f5921c837614b67c60358fb4c17df3b7f2e90690a \ + --hash=sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf \ + --hash=sha256:8895840ac4809e5f60c88fd07617cd71326e73d6e5a8aa783c5c0f7c24985de2 \ + --hash=sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f \ + --hash=sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf \ + --hash=sha256:8c43a8a973270fd173bf48cdf80bbe66312421cba68d40845034f174f2389049 \ + --hash=sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3 \ + --hash=sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964 \ + --hash=sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291 \ + --hash=sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14 \ + --hash=sha256:99ab6ba7bfa2cb0f96a04e3652355bf04e3f51aceb1e943b8541dab7ba4828cc \ + --hash=sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47 \ + --hash=sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5 \ + --hash=sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d \ + --hash=sha256:9e25b7088f9ccbfc0dfcaa52bf969300ca229e10ecf758974ebcbb080a4b37bb \ + --hash=sha256:a04df86b3f0fade39ec8fd0e0aab089b1da9fbd2b48df778a57ef96f5e7d38df \ + --hash=sha256:a05fa4f41f37ec97c9c260441a940450a192f78d774d2b097eee1379f1e1246a \ + --hash=sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc \ + --hash=sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc \ + --hash=sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46 \ + --hash=sha256:ad3773236e95f7f33991eb125224b7da66f206504d032a253a02da7e134519fb \ + --hash=sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2 \ + --hash=sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e \ + --hash=sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb \ + --hash=sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec \ + --hash=sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325 \ + --hash=sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600 \ + --hash=sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559 \ + --hash=sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41 \ + --hash=sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644 \ + --hash=sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b \ + --hash=sha256:b95d5e11fc712b752081183a55a244c03cd00570489edd7014d8899f8ceb8162 \ + --hash=sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83 \ + --hash=sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038 \ + --hash=sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6 \ + --hash=sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b \ + --hash=sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3 \ + --hash=sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9 \ + --hash=sha256:c74005a7bb87752acf351c93897ec63ad77a07a0da7ecad9c050e32e7286ba34 \ + --hash=sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6 \ + --hash=sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb \ + --hash=sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa \ + --hash=sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6 \ + --hash=sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d \ + --hash=sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24 \ + --hash=sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838 \ + --hash=sha256:d0efbe45632665e53e3db8fe1e5692db58fc5cb9bab4459d570b83efefe11164 \ + --hash=sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97 \ + --hash=sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4 \ + --hash=sha256:df1d2a1996755b24b9ecee92cb4d36c28f86f464a6a173349c26bab41e94b8c2 \ + --hash=sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55 \ + --hash=sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3 \ + --hash=sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2 \ + --hash=sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358 \ + --hash=sha256:e4abbf391a70be864920858bf360f4fb380577c9a0f732438a1996726e2c195b \ + --hash=sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8 \ + --hash=sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0 \ + --hash=sha256:edf2765d84e42447f112ad877af8fe1db0089aaec5b28e88d6eab45e7fe99cea \ + --hash=sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081 \ + --hash=sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d \ + --hash=sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1 \ + --hash=sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81 \ + --hash=sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3 \ + --hash=sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8 \ + --hash=sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1 \ + --hash=sha256:fe71bca7d547acb17027c7fd1624ff8aae623499c498d3e7011182c4de5c25e0 \ + --hash=sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd # via # jsonschema # referencing @@ -1244,75 +1266,72 @@ six==1.17.0 \ --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 # via python-dateutil -sqlalchemy[mypy]==2.0.49 \ - --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ - --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ - --hash=sha256:0c98c59075b890df8abfcc6ad632879540f5791c68baebacb4f833713b510e75 \ - --hash=sha256:0f2fa354ba106eafff2c14b0cc51f22801d1e8b2e4149342023bd6f0955de5f5 \ - --hash=sha256:12b04d1db2663b421fe072d638a138460a51d5a862403295671c4f3987fb9148 \ - --hash=sha256:22d8798819f86720bc646ab015baff5ea4c971d68121cb36e2ebc2ee43ead2b7 \ - --hash=sha256:233088b4b99ebcbc5258c755a097aa52fbf90727a03a5a80781c4b9c54347a2e \ - --hash=sha256:24bd94bb301ec672d8f0623eba9226cc90d775d25a0c92b5f8e4965d7f3a1518 \ - --hash=sha256:275424295f4256fd301744b8f335cff367825d270f155d522b30c7bf49903ee7 \ - --hash=sha256:32fe6a41ad97302db2931f05bb91abbcc65b5ce4c675cd44b972428dd2947700 \ - --hash=sha256:334edbcff10514ad1d66e3a70b339c0a29886394892490119dbb669627b17717 \ - --hash=sha256:3bb9ec6436a820a4c006aad1ac351f12de2f2dbdaad171692ee457a02429b672 \ - --hash=sha256:3ddcb27fb39171de36e207600116ac9dfd4ae46f86c82a9bf3934043e80ebb88 \ - --hash=sha256:42e8804962f9e6f4be2cbaedc0c3718f08f60a16910fa3d86da5a1e3b1bfe60f \ - --hash=sha256:43d044780732d9e0381ac8d5316f95d7f02ef04d6e4ef6dc82379f09795d993f \ - --hash=sha256:46796877b47034b559a593d7e4b549aba151dae73f9e78212a3478161c12ab08 \ - --hash=sha256:46d51518d53edfbe0563662c96954dc8fcace9832332b914375f45a99b77cc9a \ - --hash=sha256:47604cb2159f8bbd5a1ab48a714557156320f20871ee64d550d8bf2683d980d3 \ - --hash=sha256:4bbccb45260e4ff1b7db0be80a9025bb1e6698bdb808b83fff0000f7a90b2c0b \ - --hash=sha256:4d4e5a0ceba319942fa6b585cf82539288a61e314ef006c1209f734551ab9536 \ - --hash=sha256:55250fe61d6ebfd6934a272ee16ef1244e0f16b7af6cd18ab5b1fc9f08631db0 \ - --hash=sha256:566df36fd0e901625523a5a1835032f1ebdd7f7886c54584143fa6c668b4df3b \ - --hash=sha256:57ca426a48eb2c682dae8204cd89ea8ab7031e2675120a47924fabc7caacbc2a \ - --hash=sha256:5e61abbec255be7b122aa461021daa7c3f310f3e743411a67079f9b3cc91ece3 \ - --hash=sha256:618a308215b6cececb6240b9abde545e3acdabac7ae3e1d4e666896bf5ba44b4 \ - --hash=sha256:62557958002b69699bdb7f5137c6714ca1133f045f97b3903964f47db97ea339 \ - --hash=sha256:6270d717b11c5476b0cbb21eedc8d4dbb7d1a956fd6c15a23e96f197a6193158 \ - --hash=sha256:685e93e9c8f399b0c96a624799820176312f5ceef958c0f88215af4013d29066 \ - --hash=sha256:69469ce8ce7a8df4d37620e3163b71238719e1e2e5048d114a1b6ce0fbf8c662 \ - --hash=sha256:6eb188b84269f357669b62cb576b5b918de10fb7c728a005fa0ebb0b758adce1 \ - --hash=sha256:74ab4ee7794d7ed1b0c37e7333640e0f0a626fc7b398c07a7aef52f484fddde3 \ - --hash=sha256:77641d299179c37b89cf2343ca9972c88bb6eef0d5fc504a2f86afd15cd5adf5 \ - --hash=sha256:7c821c47ecfe05cc32140dcf8dc6fd5d21971c86dbd56eabfe5ba07a64910c01 \ - --hash=sha256:7d6be30b2a75362325176c036d7fb8d19e8846c77e87683ffaa8177b35135613 \ - --hash=sha256:7f605a456948c35260e7b2a39f8952a26f077fd25653c37740ed186b90aaa68a \ - --hash=sha256:83101a6930332b87653886c01d1ee7e294b1fe46a07dd9a2d2b4f91bcc88eec0 \ - --hash=sha256:88690f4e1f0fbf5339bedbb127e240fec1fd3070e9934c0b7bef83432f779d2f \ - --hash=sha256:8a97ac839c2c6672c4865e48f3cbad7152cee85f4233fb4ca6291d775b9b954a \ - --hash=sha256:8d6efc136f44a7e8bc8088507eaabbb8c2b55b3dbb63fe102c690da0ddebe55e \ - --hash=sha256:8e20e511dc15265fb433571391ba313e10dd8ea7e509d51686a51313b4ac01a2 \ - --hash=sha256:951d4a210744813be63019f3df343bf233b7432aadf0db54c75802247330d3af \ - --hash=sha256:9ac7a3e245fd0310fd31495eb61af772e637bdf7d88ee81e7f10a3f271bff014 \ - --hash=sha256:9b1c058c171b739e7c330760044803099c7fff11511e3ab3573e5327116a9c33 \ - --hash=sha256:9c04bff9a5335eb95c6ecf1c117576a0aa560def274876fd156cfe5510fccc61 \ - --hash=sha256:9c4969a86e41454f2858256c39bdfb966a20961e9b58bf8749b65abf447e9a8d \ - --hash=sha256:9e0400fa22f79acc334d9a6b185dc00a44a8e6578aa7e12d0ddcd8434152b187 \ - --hash=sha256:a05977bffe9bffd2229f477fa75eabe3192b1b05f408961d1bebff8d1cd4d401 \ - --hash=sha256:a143af2ea6672f2af3f44ed8f9cd020e9cc34c56f0e8db12019d5d9ecf41cb3b \ - --hash=sha256:a51d3db74ba489266ef55c7a4534eb0b8db9a326553df481c11e5d7660c8364d \ - --hash=sha256:b95b2f470c1b2683febd2e7eab1d3f0e078c91dbdd0b00e9c645d07a413bb99f \ - --hash=sha256:b9870d15ef00e4d0559ae10ee5bc71b654d1f20076dbe8bc7ed19b4c0625ceba \ - --hash=sha256:c1dc3368794d522f43914e03312202523cc89692f5389c32bea0233924f8d977 \ - --hash=sha256:c338ec6ec01c0bc8e735c58b9f5d51e75bacb6ff23296658826d7cfdfdb8678a \ - --hash=sha256:c5070135e1b7409c4161133aa525419b0062088ed77c92b1da95366ec5cbebbe \ - --hash=sha256:cc992c6ed024c8c3c592c5fc9846a03dd68a425674900c70122c77ea16c5fb0b \ - --hash=sha256:d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f \ - --hash=sha256:d898cc2c76c135ef65517f4ddd7a3512fb41f23087b0650efb3418b8389a3cd1 \ - --hash=sha256:d99945830a6f3e9638d89a28ed130b1eb24c91255e4f24366fbe699b983f29e4 \ - --hash=sha256:da9b91bca419dc9b9267ffadde24eae9b1a6bffcd09d0a207e5e3af99a03ce0d \ - --hash=sha256:df2d441bacf97022e81ad047e1597552eb3f83ca8a8f1a1fdd43cd7fe3898120 \ - --hash=sha256:e06e617e3d4fd9e51d385dfe45b077a41e9d1b033a7702551e3278ac597dc750 \ - --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ - --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 +sqlalchemy[mypy]==2.0.50 \ + --hash=sha256:03f4323c980ad0e918cc9e5369b015f759f4e534db5bbaf4dc36832c10d05064 \ + --hash=sha256:06a9210bdc5f4298cff0781087e2ff45683922252dacc452846373a58761f093 \ + --hash=sha256:0a31c5963d58d3e3d11c5b97709e248305705de1fdf51ec3bf396674c5898b7e \ + --hash=sha256:0e104e196f457ec608eb8af736c5eb4c6bc58f481b546f485a7f9c628ee532be \ + --hash=sha256:0f5e4ac70e9e757f6b3e87c0491ff034442ecd8dfd36d041a50564c322dafc0e \ + --hash=sha256:0fe7822866f3a9fc5f3db21a290ce8961a53050115f05edf9402b6a5feb92a9f \ + --hash=sha256:0fec460e18cdbb4c7773531122ce9a27e96c6ca17af3933941d94da475ad2c86 \ + --hash=sha256:110fdac56ace278949f00de805edacbd6141e382d992f9ba28238b3a0827a600 \ + --hash=sha256:1208050441471d003b7c8cb4054fb084f185cf35ac3f0ea270803865bca9939a \ + --hash=sha256:13b85b20f9ab714a666df9d8e72e253ec33c16c7e1e375c877e5bf6367a3e917 \ + --hash=sha256:15708c613cd5005b7dffe1f66ee6a63ee8f5e46799f71c70ebad74178c676a39 \ + --hash=sha256:1918a3cf564d16d95bca7301005f41ab2ad50b07cd3b9da50d3ed986db148d6a \ + --hash=sha256:1aa6e403663a9c43c8fef7ce4bdb4cf48bcd8d352e91deda2a99f963270bd508 \ + --hash=sha256:1c5f858fe79c9f5d8fda065c06186356acb7f8df3cd52dbd5ee3f200e4b144f5 \ + --hash=sha256:1fbd55a969d7ac44a98e3dec75016074f809fa08f871585ace58dde110d1bf3e \ + --hash=sha256:23ae23d8b9d344d30d0a92f06d45825024a5790f1c1dd4cf452636a50d3e58cb \ + --hash=sha256:27b7062af702c61994e8806ad87e42d0a2c879e0a8e5c61c7f69d81dabe24fdf \ + --hash=sha256:287086e67275a212c4582d166a6fb03a65ccc5551d80866270ce0dd9f34eccd3 \ + --hash=sha256:2b9dcc43afef8ac157cd92fce96985d6b8b0cfbd3df4d666f66b4d55a75d202f \ + --hash=sha256:2c1920cde9d741ba3dda9b1aa5acd8c23ea17780ccfb2252d01878d5d0d628d3 \ + --hash=sha256:2dab927761d9108550f0cf8e66ff21af56f907a0ce0a689793db615e2b55f62c \ + --hash=sha256:31648fa14460537e768a7303b078e4344d208e0d23e06867c1f376a227ed82db \ + --hash=sha256:3699dac4be410e97049a1658e9480da9cde956594aa0f3aebc60b88f21c5ba70 \ + --hash=sha256:3d10700bd519573f6ce5badbabbfe7f5baea84cdf370f2cbbfb4be28dfddbf1d \ + --hash=sha256:409a8121b917116b035bedc5e532ad470c74a2d279f6c302100985b6304e9f9e \ + --hash=sha256:47b71b933e7b4ebad407c8fdfd70d2c4f08b78b3238bb30eebdd6eb32ca51b89 \ + --hash=sha256:4a8e8af330cbb3a1931d3d6c91b239fc2ef135f7dd471dfa34c575028e0b1fa8 \ + --hash=sha256:51b637a84f9fa35ae1f9017e786cb142974a25305085e1b378b3647a67f65ad3 \ + --hash=sha256:545eae198d37bcf837a10ede3684e2af32458d6f35c597c35c2de7502dc38fc4 \ + --hash=sha256:60922d6599065ddca2c6f376b9aa2f41a6b85a271725e0909490bbc50b1998a5 \ + --hash=sha256:66e374271ecb7101273f57af1a62446a953d327eec4f8089147de57c591bbacc \ + --hash=sha256:68b154b08088b4ec32bb4d2958bfbb50e57549f91a4cd3e7f928e3553ed69031 \ + --hash=sha256:6c206aec519a2e7bd08abbfb33436e325fd22c632d9c21a9047e376ce241646e \ + --hash=sha256:724f3dcbe53dd0151e3cb5e7ec4ba4c620bede579caacd16275dc35ce06e8615 \ + --hash=sha256:7af6eeb84985bf840ba779018ff9424d61ff69b52e66b8789d3c8da7bf5341b2 \ + --hash=sha256:7b1ddb7b5fc60dfa9df6a487f06a143c77def47c0351849da2bcea59b244a56c \ + --hash=sha256:7e36efdcc5493f8024ec873a4ee3855bfd2de0c5b19eba16f920e9d2a0d28622 \ + --hash=sha256:83a9fce296b7e052316d8c6943237b31b9c00f58ca9c253f2d165df52637a293 \ + --hash=sha256:8b53784972ade4f8174b9aa661f31a06f8a936d2cfdd602913ff3c6dd40ae873 \ + --hash=sha256:8f00e3eb43ba30eb1b238ee03a8a62309486d1321eda3328bb611e0340033ad8 \ + --hash=sha256:92064363517a3ff8212b5a93b8c62876579d8dfd1ca5b561335f30152d884fa9 \ + --hash=sha256:9602c07b03e1449747ecb69f9998a7194a589124475788b370adce57c9e9a56e \ + --hash=sha256:96fbee6b19c19cd1556c8bf9419447cf2ec149ffcab7ab64348c23e54ef8547f \ + --hash=sha256:9d1af51558029a156a70986b7df88f042b3d158d7c8d8fb5072912d4b32d89c7 \ + --hash=sha256:adc0fe7d38d8c8058f7421c25508fcbc74df38233a42aa8324409844122dce8f \ + --hash=sha256:af5607d11ef90fd6a5c0549fe0045dce1663d427426bcfb506dcb5346a85a3b9 \ + --hash=sha256:b00098cdbdbd38c7be3d568b0c9c3122b8c0ec62b911b57cd5e6e0254d60a76d \ + --hash=sha256:bef4ac756363227ef6402a75fee025a4bc690f92328e825868939b3b3a446a6d \ + --hash=sha256:c4e70c46fad30c3bcc6a4708bc0130a3173e11a5b25f0ea4a9d8911b450f1f52 \ + --hash=sha256:c5c3cdb753a9004183e1ccb634b41611654c989e61bc68617ce878e46d6f1e51 \ + --hash=sha256:c966932507a4d7d0a37314927dbfcd89720e3f37d2a1e3352e7ae7939fa8e8a0 \ + --hash=sha256:e195687f1af431c9515416288373b323b6eb599f774409814e89e9d603a56e39 \ + --hash=sha256:e6e814658818fd165e749e3d8490ef16cc7f379a118c37ada8b0589ffbaaac22 \ + --hash=sha256:e8e1b0f6a4dcd9b4839e2320afb5df37a6981cbc20ff9c423ae11c5537bdbd21 \ + --hash=sha256:ea1a8a2db4b2217d456c8d7a873bfc605f06fe3584d315264ea18c2a17585d0b \ + --hash=sha256:eefd9a03cc0047b14153872d228499d048bd7deaf926109c9ec25b15157b8e23 \ + --hash=sha256:f96233858e3df43932ac11589e22520da6e8aeb624b03fedfeebb0e8ea213086 \ + --hash=sha256:faffef4bcc20a1892e65e155293d99d60855bbbc79250ab712819cfd56a8e6bb # via feast (pyproject.toml) -starlette==1.0.0 \ - --hash=sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149 \ - --hash=sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b - # via fastapi +starlette==1.2.0 \ + --hash=sha256:36e0c76ac59157e75dc4b3bdeafba97fb04eaf1878045f15dbef666a6f092ed7 \ + --hash=sha256:3c5a6b23fff42492914e93890bb80cbfea72dbf37de268eec06185d62a4ca553 + # via + # feast (pyproject.toml) + # fastapi tabulate==0.10.0 \ --hash=sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d \ --hash=sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 From a6a2a818c8923fe2cd049cd80af451f0935fbdec Mon Sep 17 00:00:00 2001 From: Jonathan Wrede Date: Fri, 29 May 2026 05:32:07 +0000 Subject: [PATCH 39/59] test: add regression tests for protobuf >= 7.34.0 compatibility (#6435) PR #6015 replaced MessageToDict with a custom dict builder in feature_server.py, which incidentally fixed the crash caused by the removed float_precision kwarg in protobuf >= 7.34.0. Add explicit regression tests to prevent reintroduction: - Verify convert_response_to_dict never calls MessageToDict - Verify double precision round-trips without float_precision kwarg Fixes #6435 Assisted-by: Claude Opus 4.6 Signed-off-by: Jonathan Wrede --- .../tests/unit/test_feature_server_utils.py | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/sdk/python/tests/unit/test_feature_server_utils.py b/sdk/python/tests/unit/test_feature_server_utils.py index 2100afacb67..3c749f9e70a 100644 --- a/sdk/python/tests/unit/test_feature_server_utils.py +++ b/sdk/python/tests/unit/test_feature_server_utils.py @@ -551,6 +551,60 @@ def test_complex_types_are_json_serializable(self): assert serialized # non-empty +class TestProtobufCompatibility: + """Regression tests for protobuf >= 7.34.0 compatibility (issue #6435). + + protobuf 7.34.0 removed the float_precision kwarg from MessageToDict. + convert_response_to_dict must never call MessageToDict, so it is immune + to this breaking change regardless of the installed protobuf version. + """ + + def test_no_message_to_dict_dependency(self): + """convert_response_to_dict must not call MessageToDict internally.""" + import unittest.mock as mock + + response = GetOnlineFeaturesResponse() + fv = response.results.add() + fv.values.append(Value(double_val=3.141592653589793)) + fv.values.append(Value(int64_val=42)) + fv.values.append(Value(string_val="hello")) + fv.statuses.extend( + [FieldStatus.PRESENT, FieldStatus.PRESENT, FieldStatus.PRESENT] + ) + response.metadata.feature_names.val.extend(["f1", "f2", "f3"]) + + with mock.patch( + "google.protobuf.json_format.MessageToDict", + side_effect=AssertionError("MessageToDict must not be called"), + ): + result = convert_response_to_dict(response) + + assert len(result["results"]) == 1 + assert result["results"][0]["values"] == [3.141592653589793, 42, "hello"] + assert result["metadata"]["feature_names"] == ["f1", "f2", "f3"] + + def test_double_precision_without_float_precision_kwarg(self): + """Doubles must round-trip without the removed float_precision kwarg.""" + values = [ + 1e-300, + 1.7976931348623157e308, + 2.2250738585072014e-308, + 0.1 + 0.2, + ] + response = GetOnlineFeaturesResponse() + fv = response.results.add() + for v in values: + fv.values.append(Value(double_val=v)) + fv.statuses.append(FieldStatus.PRESENT) + + result = convert_response_to_dict(response) + for i, expected in enumerate(values): + actual = result["results"][0]["values"][i] + assert actual == expected, f"Mismatch at index {i}: {actual} != {expected}" + round_tripped = json.loads(json.dumps(actual)) + assert round_tripped == expected + + class TestPerformance: """Performance tests to validate the optimization claim.""" From 9b088fe6144ff35926884cbda96099d0d4a0d66c Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 28 May 2026 13:55:08 +0530 Subject: [PATCH 40/59] fix: Add async_supported property to RedisOnlineStore Signed-off-by: ntkathole --- sdk/python/feast/infra/online_stores/redis.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdk/python/feast/infra/online_stores/redis.py b/sdk/python/feast/infra/online_stores/redis.py index 7531fd5d2f0..f2e35a8c63f 100644 --- a/sdk/python/feast/infra/online_stores/redis.py +++ b/sdk/python/feast/infra/online_stores/redis.py @@ -42,6 +42,7 @@ ) from feast.infra.online_stores.online_store import OnlineStore from feast.infra.registry.base_registry import BaseRegistry +from feast.infra.supported_async_methods import SupportedAsyncMethods from feast.online_response import OnlineResponse from feast.protos.feast.types.EntityKey_pb2 import EntityKey as EntityKeyProto from feast.protos.feast.types.Value_pb2 import RepeatedValue @@ -118,6 +119,10 @@ class RedisOnlineStore(OnlineStore): None ) + @property + def async_supported(self) -> SupportedAsyncMethods: + return SupportedAsyncMethods(read=True, write=True) + def delete_entity_values(self, config: RepoConfig, join_keys: List[str]): client = self._get_client(config.online_store) deleted_count = 0 From 8f187dd6dd1a4923348d60c2bf53d1ef4e367a9b Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 28 May 2026 17:12:16 +0530 Subject: [PATCH 41/59] fix: RemoteOnlineStore sends all features in a single HTTP request Signed-off-by: ntkathole --- .../feast/infra/online_stores/remote.py | 104 +++++- .../online_store/test_remote_online_store.py | 312 ++++++++++++++++++ 2 files changed, 415 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/online_stores/remote.py b/sdk/python/feast/infra/online_stores/remote.py index ac3cc2b4b13..05a6b05dbea 100644 --- a/sdk/python/feast/infra/online_stores/remote.py +++ b/sdk/python/feast/infra/online_stores/remote.py @@ -16,16 +16,36 @@ import uuid as uuid_module from collections import defaultdict from datetime import datetime -from typing import Any, Callable, Dict, List, Literal, Optional, Sequence, Tuple +from typing import ( + Any, + Callable, + Dict, + List, + Literal, + Mapping, + Optional, + Sequence, + Tuple, + Union, +) import requests from pydantic import StrictStr from feast import Entity, FeatureView, RepoConfig +from feast.feature_service import FeatureService from feast.infra.online_stores.helpers import _to_naive_utc from feast.infra.online_stores.online_store import OnlineStore +from feast.infra.registry.base_registry import BaseRegistry +from feast.online_response import OnlineResponse from feast.permissions.client.http_auth_requests_wrapper import HttpSessionManager +from feast.protos.feast.serving.ServingService_pb2 import ( + FieldStatus, + GetOnlineFeaturesResponse, + GetOnlineFeaturesResponseMetadata, +) from feast.protos.feast.types.EntityKey_pb2 import EntityKey as EntityKeyProto +from feast.protos.feast.types.Value_pb2 import RepeatedValue from feast.protos.feast.types.Value_pb2 import Value as ValueProto from feast.repo_config import FeastConfigBaseModel from feast.rest_error_handler import rest_error_handling_decorator @@ -132,6 +152,88 @@ def _proto_value_to_transport_value(proto_value: ValueProto) -> Any: return feast_value_type_to_python_type(proto_value) + _STATUS_MAP = { + "PRESENT": FieldStatus.PRESENT, + "NOT_FOUND": FieldStatus.NOT_FOUND, + "NULL_VALUE": FieldStatus.NULL_VALUE, + "OUTSIDE_MAX_AGE": FieldStatus.OUTSIDE_MAX_AGE, + } + + def get_online_features( + self, + config: RepoConfig, + features: Union[List[str], FeatureService], + entity_rows: Union[ + List[Dict[str, Any]], + Mapping[str, Union[Sequence[Any], Sequence[ValueProto], RepeatedValue]], + ], + registry: BaseRegistry, + project: str, + full_feature_names: bool = False, + include_feature_view_version_metadata: bool = False, + ) -> OnlineResponse: + assert isinstance(config.online_store, RemoteOnlineStoreConfig) + + if isinstance(entity_rows, list): + columnar: Dict[str, List[Any]] = {k: [] for k in entity_rows[0].keys()} + for entity_row in entity_rows: + for key, value in entity_row.items(): + columnar[key].append(value) + entity_rows = columnar + + entities: Dict[str, List[Any]] = {} + for k, vals in entity_rows.items(): + iterable = vals.val if isinstance(vals, RepeatedValue) else vals + entities[k] = [_json_safe(v) for v in iterable] + + req_body: Dict[str, Any] = { + "entities": entities, + "full_feature_names": full_feature_names, + "include_feature_view_version_metadata": include_feature_view_version_metadata, + } + + if isinstance(features, FeatureService): + req_body["feature_service"] = features.name + else: + req_body["features"] = features + + response = get_remote_online_features(config=config, req_body=req_body) + + if response.status_code != 200: + raise RuntimeError( + f"Failed to get online features: {response.status_code} {response.text}" + ) + + resp_json = response.json() + return self._build_online_response_from_json(resp_json) + + def _build_online_response_from_json( + self, resp_json: Dict[str, Any] + ) -> OnlineResponse: + proto = GetOnlineFeaturesResponse() + + metadata = GetOnlineFeaturesResponseMetadata() + feature_names = resp_json.get("metadata", {}).get("feature_names", []) + metadata.feature_names.val.extend(feature_names) + proto.metadata.CopyFrom(metadata) + + for result in resp_json.get("results", []): + fv = GetOnlineFeaturesResponse.FeatureVector() + for val in result.get("values", []): + if val is None: + fv.values.append(ValueProto()) + else: + protos = python_values_to_proto_values([val]) + fv.values.append(protos[0]) + for status_str in result.get("statuses", []): + fv.statuses.append( + self._STATUS_MAP.get(status_str, FieldStatus.INVALID) + ) + proto.results.append(fv) + + proto.status = True + return OnlineResponse(proto) + def online_write_batch( self, config: RepoConfig, diff --git a/sdk/python/tests/unit/infra/online_store/test_remote_online_store.py b/sdk/python/tests/unit/infra/online_store/test_remote_online_store.py index 2b41a630d17..13c1392fe22 100644 --- a/sdk/python/tests/unit/infra/online_store/test_remote_online_store.py +++ b/sdk/python/tests/unit/infra/online_store/test_remote_online_store.py @@ -1,3 +1,4 @@ +import inspect import json from datetime import datetime, timedelta from unittest.mock import Mock, patch @@ -5,7 +6,10 @@ import pytest from feast import Entity, FeatureView, Field, FileSource, RepoConfig +from feast.feature_service import FeatureService +from feast.infra.online_stores.online_store import OnlineStore from feast.infra.online_stores.remote import RemoteOnlineStore, RemoteOnlineStoreConfig +from feast.online_response import OnlineResponse from feast.protos.feast.types.EntityKey_pb2 import EntityKey as EntityKeyProto from feast.protos.feast.types.Value_pb2 import Value as ValueProto from feast.types import Float32, Int64, String @@ -349,3 +353,311 @@ def test_is_feature_present(self, remote_store): assert remote_store._is_feature_present(response_json, 0, 0) assert not remote_store._is_feature_present(response_json, 0, 1) + + +class TestRemoteOnlineStoreGetOnlineFeatures: + """Tests for RemoteOnlineStore.get_online_features to guard against + drift from the base OnlineStore class and verify single-request batching.""" + + @pytest.fixture + def remote_store(self): + return RemoteOnlineStore() + + @pytest.fixture + def config(self): + return RepoConfig( + project="test_project", + online_store=RemoteOnlineStoreConfig( + type="remote", path="http://localhost:6566" + ), + registry="dummy_registry", + ) + + @pytest.fixture + def server_response_json(self): + return { + "metadata": {"feature_names": ["user_id", "feature1", "feature2"]}, + "results": [ + {"values": [1001, 1002], "statuses": ["PRESENT", "PRESENT"]}, + {"values": [0.5, 0.6], "statuses": ["PRESENT", "PRESENT"]}, + {"values": ["a", "b"], "statuses": ["PRESENT", "NOT_FOUND"]}, + ], + } + + # ── Signature compatibility ─────────────────────────────────────── + + def test_signature_matches_base_class(self): + """RemoteOnlineStore.get_online_features must accept at least the + same parameters as OnlineStore.get_online_features so callers + never hit a TypeError after an upstream signature change.""" + base_sig = inspect.signature(OnlineStore.get_online_features) + remote_sig = inspect.signature(RemoteOnlineStore.get_online_features) + + base_params = set(base_sig.parameters.keys()) - {"self"} + remote_params = set(remote_sig.parameters.keys()) - {"self"} + + missing = base_params - remote_params + assert not missing, ( + f"RemoteOnlineStore.get_online_features is missing parameters " + f"that the base class defines: {missing}" + ) + + def test_return_type_is_online_response(self): + """Return annotation must remain OnlineResponse.""" + hints = inspect.get_annotations(RemoteOnlineStore.get_online_features) + assert hints.get("return") is OnlineResponse + + # ── Single HTTP request ─────────────────────────────────────────── + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_single_http_call_with_feature_list( + self, mock_get, remote_store, config, server_response_json + ): + """Passing a list of features should produce exactly one HTTP call + with all features in the request body.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + features = ["fv1:feature1", "fv2:feature2"] + entity_rows = [{"user_id": 1001}, {"user_id": 1002}] + + result = remote_store.get_online_features( + config=config, + features=features, + entity_rows=entity_rows, + registry=Mock(), + project="test_project", + ) + + mock_get.assert_called_once() + req_body = mock_get.call_args[1]["req_body"] + assert req_body["features"] == features + assert "feature_service" not in req_body + assert req_body["entities"] == {"user_id": [1001, 1002]} + assert isinstance(result, OnlineResponse) + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_single_http_call_with_feature_service( + self, mock_get, remote_store, config, server_response_json + ): + """Passing a FeatureService should send its name, not expand FVs.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + fs = Mock(spec=FeatureService) + fs.name = "credit_scoring_v1" + entity_rows = [{"user_id": 1001}] + + remote_store.get_online_features( + config=config, + features=fs, + entity_rows=entity_rows, + registry=Mock(), + project="test_project", + ) + + mock_get.assert_called_once() + req_body = mock_get.call_args[1]["req_body"] + assert req_body["feature_service"] == "credit_scoring_v1" + assert "features" not in req_body + + # ── Entity row format handling ──────────────────────────────────── + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_list_of_dicts_entity_rows( + self, mock_get, remote_store, config, server_response_json + ): + """List-of-dicts entity rows should be converted to columnar.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + entity_rows = [{"user_id": 1}, {"user_id": 2}] + remote_store.get_online_features( + config=config, + features=["fv:f1"], + entity_rows=entity_rows, + registry=Mock(), + project="test_project", + ) + + req_body = mock_get.call_args[1]["req_body"] + assert req_body["entities"] == {"user_id": [1, 2]} + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_columnar_entity_rows( + self, mock_get, remote_store, config, server_response_json + ): + """Columnar (dict-of-lists) entity rows should be passed through.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + entity_rows = {"user_id": [1, 2]} + remote_store.get_online_features( + config=config, + features=["fv:f1"], + entity_rows=entity_rows, + registry=Mock(), + project="test_project", + ) + + req_body = mock_get.call_args[1]["req_body"] + assert req_body["entities"] == {"user_id": [1, 2]} + + # ── Response parsing ────────────────────────────────────────────── + + def test_build_online_response_present_values(self, remote_store): + """_build_online_response_from_json should reconstruct an + OnlineResponse with correct feature names and values.""" + resp_json = { + "metadata": {"feature_names": ["user_id", "score"]}, + "results": [ + {"values": [101], "statuses": ["PRESENT"]}, + {"values": [0.95], "statuses": ["PRESENT"]}, + ], + } + + result = remote_store._build_online_response_from_json(resp_json) + assert isinstance(result, OnlineResponse) + proto = result.proto + assert list(proto.metadata.feature_names.val) == ["user_id", "score"] + assert len(proto.results) == 2 + + def test_build_online_response_null_values(self, remote_store): + """Null values in the response should become empty ValueProto.""" + resp_json = { + "metadata": {"feature_names": ["f1"]}, + "results": [ + {"values": [None], "statuses": ["NOT_FOUND"]}, + ], + } + + result = remote_store._build_online_response_from_json(resp_json) + proto = result.proto + assert proto.results[0].values[0] == ValueProto() + + def test_build_online_response_status_mapping(self, remote_store): + """All known status strings should map to correct FieldStatus enums.""" + from feast.protos.feast.serving.ServingService_pb2 import FieldStatus + + resp_json = { + "metadata": {"feature_names": ["f1", "f2", "f3", "f4"]}, + "results": [ + {"values": [1], "statuses": ["PRESENT"]}, + {"values": [None], "statuses": ["NOT_FOUND"]}, + {"values": [None], "statuses": ["NULL_VALUE"]}, + {"values": [None], "statuses": ["OUTSIDE_MAX_AGE"]}, + ], + } + + result = remote_store._build_online_response_from_json(resp_json) + proto = result.proto + assert proto.results[0].statuses[0] == FieldStatus.PRESENT + assert proto.results[1].statuses[0] == FieldStatus.NOT_FOUND + assert proto.results[2].statuses[0] == FieldStatus.NULL_VALUE + assert proto.results[3].statuses[0] == FieldStatus.OUTSIDE_MAX_AGE + + # ── Error handling ──────────────────────────────────────────────── + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_non_200_raises_runtime_error(self, mock_get, remote_store, config): + """Non-200 responses from the server should raise RuntimeError.""" + mock_resp = Mock() + mock_resp.status_code = 500 + mock_resp.text = "Internal Server Error" + mock_get.return_value = mock_resp + + with pytest.raises(RuntimeError, match="Failed to get online features"): + remote_store.get_online_features( + config=config, + features=["fv:f1"], + entity_rows=[{"user_id": 1}], + registry=Mock(), + project="test_project", + ) + + # ── full_feature_names passthrough ──────────────────────────────── + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_full_feature_names_passed_to_server( + self, mock_get, remote_store, config, server_response_json + ): + """full_feature_names should be forwarded in the request body.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + remote_store.get_online_features( + config=config, + features=["fv:f1"], + entity_rows=[{"user_id": 1}], + registry=Mock(), + project="test_project", + full_feature_names=True, + ) + + req_body = mock_get.call_args[1]["req_body"] + assert req_body["full_feature_names"] is True + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_version_metadata_passed_to_server( + self, mock_get, remote_store, config, server_response_json + ): + """include_feature_view_version_metadata must be forwarded to the + server so versioned reads work end-to-end.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + remote_store.get_online_features( + config=config, + features=["fv:f1"], + entity_rows=[{"user_id": 1}], + registry=Mock(), + project="test_project", + include_feature_view_version_metadata=True, + ) + + req_body = mock_get.call_args[1]["req_body"] + assert req_body["include_feature_view_version_metadata"] is True + + @patch("feast.infra.online_stores.remote.get_remote_online_features") + def test_all_base_class_params_forwarded( + self, mock_get, remote_store, config, server_response_json + ): + """Every parameter that the server's GetOnlineFeaturesRequest + accepts must appear in the request body when set.""" + mock_resp = Mock() + mock_resp.status_code = 200 + mock_resp.json.return_value = server_response_json + mock_get.return_value = mock_resp + + remote_store.get_online_features( + config=config, + features=["fv:f1"], + entity_rows=[{"user_id": 1}], + registry=Mock(), + project="test_project", + full_feature_names=True, + include_feature_view_version_metadata=True, + ) + + req_body = mock_get.call_args[1]["req_body"] + expected_keys = { + "entities", + "features", + "full_feature_names", + "include_feature_view_version_metadata", + } + assert expected_keys.issubset(req_body.keys()), ( + f"Missing keys in req_body: {expected_keys - req_body.keys()}" + ) From 4203eb749b153f55f6219c7a5d9dc1161fc5ae4e Mon Sep 17 00:00:00 2001 From: ntkathole Date: Sat, 30 May 2026 11:24:53 +0530 Subject: [PATCH 42/59] fix: API calls list Signed-off-by: ntkathole --- sdk/python/feast/api/registry/rest/metrics.py | 27 ++++++---- .../api/registry/rest/rest_registry_server.py | 51 +++++++++++-------- sdk/python/feast/feature_server.py | 40 +++++++++++---- sdk/python/feast/registry_server.py | 29 +++++++++++ 4 files changed, 106 insertions(+), 41 deletions(-) diff --git a/sdk/python/feast/api/registry/rest/metrics.py b/sdk/python/feast/api/registry/rest/metrics.py index 87cb30ee4e2..e2249c7a420 100644 --- a/sdk/python/feast/api/registry/rest/metrics.py +++ b/sdk/python/feast/api/registry/rest/metrics.py @@ -11,6 +11,9 @@ grpc_call, paginate_and_sort, ) +from feast.errors import FeastObjectNotFoundException +from feast.permissions.action import AuthzedAction +from feast.permissions.security_manager import assert_permissions from feast.protos.feast.registry import RegistryServer_pb2 @@ -433,15 +436,21 @@ async def recently_visited( key = f"recently_visited_{user}" visits = [] if project: - try: - visits_json = ( - server.registry.get_project_metadata(project, key) - if server - else None - ) - visits = json.loads(visits_json) if visits_json else [] - except Exception: - visits = [] + if server: + try: + project_obj = server.registry.get_project( + name=project, allow_cache=True + ) + assert_permissions( + resource=project_obj, actions=[AuthzedAction.DESCRIBE] + ) + except FeastObjectNotFoundException: + pass + try: + visits_json = server.registry.get_project_metadata(project, key) + visits = json.loads(visits_json) if visits_json else [] + except Exception: + visits = [] else: try: if server: diff --git a/sdk/python/feast/api/registry/rest/rest_registry_server.py b/sdk/python/feast/api/registry/rest/rest_registry_server.py index 0238776dbc0..02454b263ff 100644 --- a/sdk/python/feast/api/registry/rest/rest_registry_server.py +++ b/sdk/python/feast/api/registry/rest/rest_registry_server.py @@ -235,28 +235,35 @@ async def dispatch(self, request: Request, call_next): else: object_type = None object_name = None - visit = { - "path": path, - "timestamp": _utc_now().isoformat(), - "project": project, - "user": user, - "object": object_type, - "object_name": object_name, - "method": method, - } - try: - visits_json = self.registry.get_project_metadata(project, key) - visits = json.loads(visits_json) if visits_json else [] - except Exception: - visits = [] - visits.append(visit) - visits = visits[-self.recent_visits_limit :] - try: - self.registry.set_project_metadata( - project, key, json.dumps(visits) - ) - except Exception as e: - logger.warning(f"Failed to persist recent visits: {e}") + + response = await call_next(request) + + if response.status_code < 400: + visit = { + "path": path, + "timestamp": _utc_now().isoformat(), + "project": project, + "user": user, + "object": object_type, + "object_name": object_name, + "method": method, + } + try: + visits_json = self.registry.get_project_metadata( + project, key + ) + visits = json.loads(visits_json) if visits_json else [] + except Exception: + visits = [] + visits.append(visit) + visits = visits[-self.recent_visits_limit :] + try: + self.registry.set_project_metadata( + project, key, json.dumps(visits) + ) + except Exception as e: + logger.warning(f"Failed to persist recent visits: {e}") + return response response = await call_next(request) return response diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index bca34e918e2..37d634936e4 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -584,12 +584,22 @@ async def chat_ui(): @app.post("/materialize", dependencies=[Depends(inject_user_details)]) async def materialize(request: MaterializeRequest) -> None: with feast_metrics.track_request_latency("/materialize"): - for feature_view in request.feature_views or []: - resource = await _get_feast_object(feature_view, True) - assert_permissions( - resource=resource, - actions=[AuthzedAction.WRITE_ONLINE], + if request.feature_views: + for feature_view in request.feature_views: + resource = await _get_feast_object(feature_view, True) + assert_permissions( + resource=resource, + actions=[AuthzedAction.WRITE_ONLINE], + ) + else: + feature_views_to_materialize = store._get_feature_views_to_materialize( + None ) + for fv in feature_views_to_materialize: + assert_permissions( + resource=fv, + actions=[AuthzedAction.WRITE_ONLINE], + ) if request.disable_event_timestamp: now = datetime.now() @@ -615,12 +625,22 @@ async def materialize(request: MaterializeRequest) -> None: @app.post("/materialize-incremental", dependencies=[Depends(inject_user_details)]) async def materialize_incremental(request: MaterializeIncrementalRequest) -> None: with feast_metrics.track_request_latency("/materialize-incremental"): - for feature_view in request.feature_views or []: - resource = await _get_feast_object(feature_view, True) - assert_permissions( - resource=resource, - actions=[AuthzedAction.WRITE_ONLINE], + if request.feature_views: + for feature_view in request.feature_views: + resource = await _get_feast_object(feature_view, True) + assert_permissions( + resource=resource, + actions=[AuthzedAction.WRITE_ONLINE], + ) + else: + feature_views_to_materialize = store._get_feature_views_to_materialize( + None ) + for fv in feature_views_to_materialize: + assert_permissions( + resource=fv, + actions=[AuthzedAction.WRITE_ONLINE], + ) await run_in_threadpool( store.materialize_incremental, utils.make_tzaware(parser.parse(request.end_ts)), diff --git a/sdk/python/feast/registry_server.py b/sdk/python/feast/registry_server.py index c55cd1cc3b2..2da25a317bc 100644 --- a/sdk/python/feast/registry_server.py +++ b/sdk/python/feast/registry_server.py @@ -891,6 +891,13 @@ def DeleteValidationReference( def ListProjectMetadata( self, request: RegistryServer_pb2.ListProjectMetadataRequest, context ): + try: + project = self.proxied_registry.get_project( + name=request.project, allow_cache=True + ) + assert_permissions(resource=project, actions=[AuthzedAction.DESCRIBE]) + except FeastObjectNotFoundException: + pass return RegistryServer_pb2.ListProjectMetadataResponse( project_metadata=[ project_metadata.to_proto() @@ -923,6 +930,10 @@ def ApplyMaterialization( return Empty() def UpdateInfra(self, request: RegistryServer_pb2.UpdateInfraRequest, context): + project = self.proxied_registry.get_project( + name=request.project, allow_cache=True + ) + assert_permissions(resource=project, actions=[AuthzedAction.UPDATE]) self.proxied_registry.update_infra( infra=Infra.from_proto(request.infra), project=request.project, @@ -931,6 +942,10 @@ def UpdateInfra(self, request: RegistryServer_pb2.UpdateInfraRequest, context): return Empty() def GetInfra(self, request: RegistryServer_pb2.GetInfraRequest, context): + project = self.proxied_registry.get_project( + name=request.project, allow_cache=True + ) + assert_permissions(resource=project, actions=[AuthzedAction.DESCRIBE]) return self.proxied_registry.get_infra( project=request.project, allow_cache=request.allow_cache ).to_proto() @@ -1063,6 +1078,13 @@ def DeleteProject(self, request: RegistryServer_pb2.DeleteProjectRequest, contex def GetRegistryLineage( self, request: RegistryServer_pb2.GetRegistryLineageRequest, context ): + try: + project = self.proxied_registry.get_project( + name=request.project, allow_cache=True + ) + assert_permissions(resource=project, actions=[AuthzedAction.DESCRIBE]) + except FeastObjectNotFoundException: + pass direct_relationships, indirect_relationships = ( self.proxied_registry.get_registry_lineage( project=request.project, @@ -1101,6 +1123,13 @@ def GetObjectRelationships( self, request: RegistryServer_pb2.GetObjectRelationshipsRequest, context ): """Get relationships for a specific object.""" + try: + project = self.proxied_registry.get_project( + name=request.project, allow_cache=True + ) + assert_permissions(resource=project, actions=[AuthzedAction.DESCRIBE]) + except FeastObjectNotFoundException: + pass relationships = self.proxied_registry.get_object_relationships( project=request.project, object_type=request.object_type, From 103809a24839fb40f625de7e111454f582431eee Mon Sep 17 00:00:00 2001 From: ntkathole Date: Sun, 31 May 2026 20:33:21 +0530 Subject: [PATCH 43/59] perf: Optimize feature serving latency with batched async Redis, cached checks fix Signed-off-by: ntkathole --- sdk/python/feast/feature_server.py | 10 +- .../feast/infra/online_stores/online_store.py | 79 ++++----- sdk/python/feast/infra/online_stores/redis.py | 158 +++++++++++++++++- sdk/python/feast/rest_error_handler.py | 75 +++++---- 4 files changed, 230 insertions(+), 92 deletions(-) diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index 37d634936e4..81359222797 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -54,7 +54,11 @@ from feast.feature_server_utils import convert_response_to_dict from feast.feature_view_utils import get_feature_view_from_feature_store from feast.permissions.action import WRITE, AuthzedAction -from feast.permissions.security_manager import assert_permissions +from feast.permissions.security_manager import ( + assert_permissions, + get_security_manager, + is_auth_necessary, +) from feast.permissions.server.rest import inject_user_details from feast.permissions.server.utils import ( ServerType, @@ -184,7 +188,7 @@ async def _get_features( resource=feature_service, actions=[AuthzedAction.READ_ONLINE] ) features = feature_service # type: ignore - else: + elif is_auth_necessary(get_security_manager()): all_feature_views, all_on_demand_feature_views = await run_in_threadpool( utils._get_feature_views_to_use, store.registry, @@ -202,6 +206,8 @@ async def _get_features( resource=od_feature_view, actions=[AuthzedAction.READ_ONLINE] ) features = request.features # type: ignore + else: + features = request.features # type: ignore return features diff --git a/sdk/python/feast/infra/online_stores/online_store.py b/sdk/python/feast/infra/online_stores/online_store.py index 5b5daf17575..49533cbf226 100644 --- a/sdk/python/feast/infra/online_stores/online_store.py +++ b/sdk/python/feast/infra/online_stores/online_store.py @@ -253,55 +253,14 @@ def get_online_features( ) return OnlineResponse(online_features_response, feature_types=feature_types) + _versioned_read_supported: Optional[bool] = None + def _check_versioned_read_support(self, grouped_refs): """Raise an error if versioned reads are attempted on unsupported stores.""" - from feast.infra.online_stores.sqlite import SqliteOnlineStore - - supported_types: list[type] = [SqliteOnlineStore] - try: - from feast.infra.online_stores.mysql_online_store.mysql import ( - MySQLOnlineStore, - ) - - supported_types.append(MySQLOnlineStore) - except ImportError: - pass - try: - from feast.infra.online_stores.postgres_online_store.postgres import ( - PostgreSQLOnlineStore, - ) - - supported_types.append(PostgreSQLOnlineStore) - except ImportError: - pass - try: - from feast.infra.online_stores.faiss_online_store import FaissOnlineStore - - supported_types.append(FaissOnlineStore) - except ImportError: - pass - try: - from feast.infra.online_stores.redis import RedisOnlineStore + if self._versioned_read_supported is None: + self._versioned_read_supported = self._is_versioned_read_supported() - supported_types.append(RedisOnlineStore) - except Exception: - pass - try: - from feast.infra.online_stores.dynamodb import DynamoDBOnlineStore - - supported_types.append(DynamoDBOnlineStore) - except Exception: - pass - try: - from feast.infra.online_stores.milvus_online_store.milvus import ( - MilvusOnlineStore, - ) - - supported_types.append(MilvusOnlineStore) - except ImportError: - pass - - if isinstance(self, tuple(supported_types)): + if self._versioned_read_supported: return for table, _ in grouped_refs: version_tag = getattr(table.projection, "version_tag", None) @@ -310,6 +269,34 @@ def _check_versioned_read_support(self, grouped_refs): self.__class__.__name__, version_tag ) + def _is_versioned_read_supported(self) -> bool: + """Check if this store type supports versioned reads (resolved once, cached).""" + from feast.infra.online_stores.sqlite import SqliteOnlineStore + + supported_types: list[type] = [SqliteOnlineStore] + for module, cls_name in ( + ("feast.infra.online_stores.mysql_online_store.mysql", "MySQLOnlineStore"), + ( + "feast.infra.online_stores.postgres_online_store.postgres", + "PostgreSQLOnlineStore", + ), + ("feast.infra.online_stores.faiss_online_store", "FaissOnlineStore"), + ("feast.infra.online_stores.redis", "RedisOnlineStore"), + ("feast.infra.online_stores.dynamodb", "DynamoDBOnlineStore"), + ( + "feast.infra.online_stores.milvus_online_store.milvus", + "MilvusOnlineStore", + ), + ): + try: + import importlib + + mod = importlib.import_module(module) + supported_types.append(getattr(mod, cls_name)) + except Exception: + pass + return isinstance(self, tuple(supported_types)) + async def get_online_features_async( self, config: RepoConfig, diff --git a/sdk/python/feast/infra/online_stores/redis.py b/sdk/python/feast/infra/online_stores/redis.py index f2e35a8c63f..262df0c863d 100644 --- a/sdk/python/feast/infra/online_stores/redis.py +++ b/sdk/python/feast/infra/online_stores/redis.py @@ -34,6 +34,7 @@ from feast import Entity, FeatureView, RepoConfig, utils from feast.feature_service import FeatureService +from feast.infra.key_encoding_utils import serialize_entity_key from feast.infra.online_stores.helpers import ( _mmh3, _redis_key, @@ -506,15 +507,14 @@ async def online_write_batch_async( def _generate_redis_keys_for_entities( self, config: RepoConfig, entity_keys: List[EntityKeyProto] ) -> List[bytes]: - keys = [] - for entity_key in entity_keys: - redis_key_bin = _redis_key( - config.project, - entity_key, - entity_key_serialization_version=config.entity_key_serialization_version, - ) - keys.append(redis_key_bin) - return keys + project = config.project + version = config.entity_key_serialization_version + project_bytes = project.encode("utf-8") + return [ + serialize_entity_key(ek, entity_key_serialization_version=version) + + project_bytes + for ek in entity_keys + ] def _generate_hset_keys_for_features( self, @@ -751,6 +751,146 @@ def get_online_features( ) return OnlineResponse(online_features_response, feature_types=feature_types) + async def get_online_features_async( + self, + config: RepoConfig, + features: Union[List[str], FeatureService], + entity_rows: Union[ + List[Dict[str, Any]], + Mapping[str, Union[Sequence[Any], Sequence[ValueProto], RepeatedValue]], + ], + registry: BaseRegistry, + project: str, + full_feature_names: bool = False, + include_feature_view_version_metadata: bool = False, + ) -> OnlineResponse: + """ + Async version of get_online_features using a single batched Redis pipeline. + + Mirrors the sync override: all HMGET commands across all feature views are + issued in one async pipeline execution (O(1) round trips). + """ + if isinstance(entity_rows, list): + columnar: Dict[str, List[Any]] = {k: [] for k in entity_rows[0].keys()} + for entity_row in entity_rows: + for key, value in entity_row.items(): + try: + columnar[key].append(value) + except KeyError as e: + raise ValueError( + "All entity_rows must have the same keys." + ) from e + entity_rows = columnar + + ( + join_key_values, + grouped_refs, + entity_name_to_join_key_map, + requested_on_demand_feature_views, + feature_refs, + requested_result_row_names, + online_features_response, + ) = utils._prepare_entities_to_read_from_online_store( + registry=registry, + project=project, + features=features, + entity_values=entity_rows, + full_feature_names=full_feature_names, + native_entity_values=True, + ) + + self._check_versioned_read_support(grouped_refs) + + _track_read = False + try: + from feast.metrics import _config as _metrics_config + + _track_read = _metrics_config.online_features + except Exception: + pass + + if _track_read: + import time as _time + + _read_start = _time.monotonic() + + work_items = [] + for table, requested_features in grouped_refs: + table_entity_values, idxs, output_len = utils._get_unique_entities( + table, + join_key_values, + entity_name_to_join_key_map, + ) + entity_key_protos = utils._get_entity_key_protos(table_entity_values) + fv_name = _versioned_fv_name(table, config) + redis_keys = self._generate_redis_keys_for_entities( + config, entity_key_protos + ) + req_features, hset_keys = self._generate_hset_keys_for_features( + table, requested_features, fv_name_override=fv_name + ) + work_items.append( + (table, req_features, fv_name, hset_keys, redis_keys, idxs, output_len) + ) + + if work_items: + client = await self._get_client_async(config.online_store) + async with client.pipeline(transaction=False) as pipe: + for _, _, _, hset_keys, redis_keys, _, _ in work_items: + for redis_key in redis_keys: + pipe.hmget(redis_key, hset_keys) + all_results = await pipe.execute() + + offset = 0 + for ( + table, + req_features, + fv_name, + _, + redis_keys, + idxs, + output_len, + ) in work_items: + n = len(redis_keys) + redis_values = all_results[offset : offset + n] + offset += n + + read_rows = self._convert_redis_values_to_protobuf( + redis_values, fv_name, req_features + ) + + utils._populate_response_from_feature_data( + req_features, + read_rows, + idxs, + online_features_response, + full_feature_names, + table, + output_len, + include_feature_view_version_metadata, + ) + + if _track_read: + from feast.metrics import track_online_store_read + + track_online_store_read(_time.monotonic() - _read_start) + + feature_types = self._build_feature_types(grouped_refs) + + if requested_on_demand_feature_views: + utils._augment_response_with_on_demand_transforms( + online_features_response, + feature_refs, + requested_on_demand_feature_views, + full_feature_names, + feature_types=feature_types, + ) + + utils._drop_unneeded_columns( + online_features_response, requested_result_row_names + ) + return OnlineResponse(online_features_response, feature_types=feature_types) + def _get_features_for_entity( self, values: List[ByteString], diff --git a/sdk/python/feast/rest_error_handler.py b/sdk/python/feast/rest_error_handler.py index c8586c826e9..a4a4d685597 100644 --- a/sdk/python/feast/rest_error_handler.py +++ b/sdk/python/feast/rest_error_handler.py @@ -39,7 +39,6 @@ def rest_error_handling_decorator(func): def wrapper(config: RepoConfig, *args, **kwargs): assert isinstance(config, RepoConfig) - # Extract connection pool configuration from online_store if available pool_maxsize = None max_idle_seconds = None max_retries = None @@ -58,7 +57,6 @@ def wrapper(config: RepoConfig, *args, **kwargs): max_idle_seconds = conn_config["max_idle_seconds"] max_retries = conn_config["max_retries"] - # Get a cached session with connection pooling session = get_http_auth_requests_session( config.auth_config, pool_maxsize=pool_maxsize, @@ -66,39 +64,46 @@ def wrapper(config: RepoConfig, *args, **kwargs): max_retries=max_retries, ) - # Define a wrapper for session methods to add logging and error handling - def method_wrapper(method_name): - original_method = getattr(session, method_name) - - @wraps(original_method) - def wrapped_method(*args, **kwargs): - logger.debug( - f"Calling {method_name} with args: {args}, kwargs: {kwargs}" - ) - response = original_method(*args, **kwargs) - logger.debug( - f"{method_name} response status code: {response.status_code}" - ) - - try: - response.raise_for_status() - except requests.RequestException: - logger.debug(f"response.json() = {response.json()}") - mapped_error = FeastError.from_error_detail(response.json()) - logger.debug(f"mapped_error = {str(mapped_error)}") - if mapped_error is not None: - raise mapped_error - return response - - return wrapped_method - - # Enhance session methods with logging and error handling - session.get = method_wrapper("get") # type: ignore[method-assign] - session.post = method_wrapper("post") # type: ignore[method-assign] - session.put = method_wrapper("put") # type: ignore[method-assign] - session.delete = method_wrapper("delete") # type: ignore[method-assign] - - # Pass the enhanced session object to the decorated function + _wrap_session_methods(session) + return func(session, config, *args, **kwargs) return wrapper + + +_ATTR_WRAPPED = "_feast_methods_wrapped" + + +def _wrap_session_methods(session: requests.Session) -> None: + """ + Wrap session HTTP methods with logging and Feast error mapping. + + Wraps each method exactly once. Subsequent calls are no-ops, preventing + the unbounded nesting that leads to ``RecursionError`` when a cached + session is reused across many requests. + """ + if getattr(session, _ATTR_WRAPPED, False): + return + + for method_name in ("get", "post", "put", "delete"): + original_method = getattr(session, method_name) + + @wraps(original_method) + def wrapped_method(*args, _orig=original_method, _name=method_name, **kwargs): + logger.debug(f"Calling {_name} with args: {args}, kwargs: {kwargs}") + response = _orig(*args, **kwargs) + logger.debug(f"{_name} response status code: {response.status_code}") + + try: + response.raise_for_status() + except requests.RequestException: + logger.debug(f"response.json() = {response.json()}") + mapped_error = FeastError.from_error_detail(response.json()) + logger.debug(f"mapped_error = {str(mapped_error)}") + if mapped_error is not None: + raise mapped_error + return response + + setattr(session, method_name, wrapped_method) + + object.__setattr__(session, _ATTR_WRAPPED, True) From 5e04afe5ce7970843388e57986d615cb223ca5fd Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Tue, 12 May 2026 12:27:14 +0530 Subject: [PATCH 44/59] added govulncheck Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .github/workflows/security.yml | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 0259d8a2b9e..3e7b06e7e58 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -69,3 +69,43 @@ jobs: - name: Run safety scan continue-on-error: true run: safety scan --output json + + govulncheck: + name: Go Vulnerability Check (${{ matrix.module }}) + runs-on: ubuntu-latest + timeout-minutes: 15 + permissions: + contents: read + + strategy: + fail-fast: false + matrix: + include: + - module: go-feature-server + working-directory: . + go-version-file: go.mod + needs-protos: true + - module: feast-operator + working-directory: infra/feast-operator + go-version-file: infra/feast-operator/go.mod + needs-protos: false + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: ${{ matrix.go-version-file }} + + - name: Compile Go protobuf files + if: matrix.needs-protos + run: make compile-protos-go + + - name: Install govulncheck + run: go install golang.org/x/vuln/cmd/govulncheck@latest + + - name: Run govulncheck + working-directory: ${{ matrix.working-directory }} + run: govulncheck ./... From 696ecadad562b98917ec64276784571f6ca7a238 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Wed, 20 May 2026 13:22:40 +0530 Subject: [PATCH 45/59] fix-CI Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .github/workflows/security.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 3e7b06e7e58..a0c1e979309 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -107,5 +107,6 @@ jobs: run: go install golang.org/x/vuln/cmd/govulncheck@latest - name: Run govulncheck + continue-on-error: true working-directory: ${{ matrix.working-directory }} run: govulncheck ./... From 2cb474d3e611ad135f0e2aad00ae9357ce32a6ca Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Thu, 21 May 2026 13:38:21 +0530 Subject: [PATCH 46/59] ci: Use official govulncheck-action with SARIF upload Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .github/workflows/security.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index a0c1e979309..8a14001e2a9 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -76,6 +76,7 @@ jobs: timeout-minutes: 15 permissions: contents: read + security-events: write strategy: fail-fast: false @@ -103,10 +104,19 @@ jobs: if: matrix.needs-protos run: make compile-protos-go - - name: Install govulncheck - run: go install golang.org/x/vuln/cmd/govulncheck@latest - - name: Run govulncheck - continue-on-error: true - working-directory: ${{ matrix.working-directory }} - run: govulncheck ./... + uses: golang/govulncheck-action@v1 + with: + work-dir: ${{ matrix.working-directory }} + go-version-file: ${{ matrix.go-version-file }} + go-package: ./... + output-format: sarif + output-file: govulncheck-${{ matrix.module }}.sarif + repo-checkout: false + + - name: Upload SARIF to GitHub Security + if: always() + uses: github/codeql-action/upload-sarif@v4 + with: + sarif_file: ${{ matrix.working-directory }}/govulncheck-${{ matrix.module }}.sarif + category: govulncheck-${{ matrix.module }} From 0266ab5c7cc261a8ccba25c8351a7367b94e23f0 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Mon, 1 Jun 2026 15:46:06 +0530 Subject: [PATCH 47/59] CI-fix Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .github/workflows/security.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 8a14001e2a9..5981add8edb 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -76,7 +76,6 @@ jobs: timeout-minutes: 15 permissions: contents: read - security-events: write strategy: fail-fast: false @@ -108,15 +107,5 @@ jobs: uses: golang/govulncheck-action@v1 with: work-dir: ${{ matrix.working-directory }} - go-version-file: ${{ matrix.go-version-file }} go-package: ./... - output-format: sarif - output-file: govulncheck-${{ matrix.module }}.sarif repo-checkout: false - - - name: Upload SARIF to GitHub Security - if: always() - uses: github/codeql-action/upload-sarif@v4 - with: - sarif_file: ${{ matrix.working-directory }}/govulncheck-${{ matrix.module }}.sarif - category: govulncheck-${{ matrix.module }} From 937c48e3647a5dee9672f7cd0ac8101c13d956a7 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Mon, 1 Jun 2026 16:30:23 +0530 Subject: [PATCH 48/59] fix Go dependency vulnerabilities Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- go.mod | 69 ++++++++--------- go.sum | 149 ++++++++++++++++++------------------ infra/feast-operator/go.mod | 20 ++--- infra/feast-operator/go.sum | 44 +++++------ 4 files changed, 140 insertions(+), 142 deletions(-) diff --git a/go.mod b/go.mod index b76ac71d1e1..4de94b829d6 100644 --- a/go.mod +++ b/go.mod @@ -19,24 +19,24 @@ require ( github.com/mattn/go-sqlite3 v1.14.23 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.23.2 - github.com/redis/go-redis/v9 v9.6.1 + github.com/redis/go-redis/v9 v9.20.0 github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225 github.com/rs/zerolog v1.33.0 github.com/spaolacci/murmur3 v1.1.0 github.com/stretchr/testify v1.11.1 - go.opentelemetry.io/otel v1.43.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 - go.opentelemetry.io/otel/sdk v1.43.0 - go.opentelemetry.io/otel/trace v1.43.0 - golang.org/x/sync v0.18.0 - google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba - google.golang.org/grpc v1.76.0 - google.golang.org/protobuf v1.36.10 + go.opentelemetry.io/otel v1.44.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0 + go.opentelemetry.io/otel/sdk v1.44.0 + go.opentelemetry.io/otel/trace v1.44.0 + golang.org/x/sync v0.20.0 + google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa + google.golang.org/grpc v1.81.1 + google.golang.org/protobuf v1.36.11 ) require ( - cel.dev/expr v0.24.0 // indirect + cel.dev/expr v0.25.1 // indirect cloud.google.com/go v0.123.0 // indirect cloud.google.com/go/auth v0.17.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect @@ -44,7 +44,7 @@ require ( cloud.google.com/go/iam v1.5.3 // indirect cloud.google.com/go/monitoring v1.24.2 // indirect filippo.io/edwards25519 v1.1.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect @@ -69,13 +69,12 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect + github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect - github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect + github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/go-jose/go-jose/v4 v4.1.2 // indirect + github.com/go-jose/go-jose/v4 v4.1.4 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/goccy/go-json v0.10.3 // indirect @@ -85,13 +84,13 @@ require ( github.com/googleapis/enterprise-certificate-proxy v0.3.7 // indirect github.com/googleapis/gax-go/v2 v2.15.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/klauspost/asmfmt v1.3.2 // indirect github.com/klauspost/compress v1.18.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect @@ -103,32 +102,32 @@ require ( github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.66.1 // indirect github.com/prometheus/procfs v0.16.1 // indirect - github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect + github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/zeebo/errs v1.4.0 // indirect - github.com/zeebo/xxh3 v1.0.2 // indirect + github.com/zeebo/xxh3 v1.1.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.36.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.42.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect - go.opentelemetry.io/otel/metric v1.43.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.43.0 // indirect - go.opentelemetry.io/proto/otlp v1.7.1 // indirect + go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.44.0 // indirect + go.opentelemetry.io/proto/otlp v1.10.0 // indirect + go.uber.org/atomic v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/crypto v0.45.0 // indirect + golang.org/x/crypto v0.51.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect - golang.org/x/mod v0.29.0 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/oauth2 v0.33.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect - golang.org/x/text v0.31.0 // indirect + golang.org/x/mod v0.35.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/oauth2 v0.36.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa // indirect + golang.org/x/text v0.37.0 // indirect golang.org/x/time v0.14.0 // indirect - golang.org/x/tools v0.38.0 // indirect + golang.org/x/tools v0.44.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.256.0 // indirect google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index b43b860c04f..f936e04c8f5 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= -cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4= +cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4= @@ -22,8 +22,8 @@ cloud.google.com/go/trace v1.11.6 h1:2O2zjPzqPYAHrn3OKl029qlqG6W8ZdYaOWRyr8NgMT4 cloud.google.com/go/trace v1.11.6/go.mod h1:GA855OeDEBiBMzcckLPE2kDunIpC72N+Pq8WFieFjnI= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0 h1:DHa2U07rk8syqvCge0QIGMCE1WxGj9njT44GH7zNJLQ= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0 h1:xfK3bbi6F2RDtaZFtUdKO3osOBIhNb+xTs8lFW6yx9o= @@ -94,29 +94,27 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 h1:aBangftG7EVZoUb69Os8IaYg++6uMOdKK83QtkkvJik= +github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2/go.mod h1:qwXFYgsP6T7XnJtbKlf1HP8AjxZZyzxMmc+Lq5GjlU4= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= -github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA= -github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA= +github.com/envoyproxy/go-control-plane v0.14.0/go.mod h1:NcS5X47pLl/hfqxU70yPwL9ZMkUlwlKxtAohpi2wBEU= +github.com/envoyproxy/go-control-plane/envoy v1.37.0 h1:u3riX6BoYRfF4Dr7dwSOroNfdSbEPe9Yyl09/B6wBrQ= +github.com/envoyproxy/go-control-plane/envoy v1.37.0/go.mod h1:DReE9MMrmecPy+YvQOAOHNYMALuowAnbjjEMkkWOi6A= github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI= github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4= -github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= -github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/envoyproxy/protoc-gen-validate v1.3.3 h1:MVQghNeW+LZcmXe7SY1V36Z+WFMDjpqGAGacLe2T0ds= +github.com/envoyproxy/protoc-gen-validate v1.3.3/go.mod h1:TsndJ/ngyIdQRhMcVVGDDHINPLWB7C82oDArY51KfB0= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-jose/go-jose/v4 v4.1.2 h1:TK/7NqRQZfgAh+Td8AlsrvtPoUyiHh0LqVvokh+1vHI= -github.com/go-jose/go-jose/v4 v4.1.2/go.mod h1:22cg9HWM1pOlnRiY+9cQYJ9XHmya1bYW8OeDM6Ku6Oo= +github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= +github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -155,8 +153,8 @@ github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 h1:QGLs github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0/go.mod h1:hM2alZsMUni80N33RBe6J0e423LB+odMj7d3EMP9l20= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= @@ -171,8 +169,8 @@ github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -224,8 +222,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= -github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/redis/go-redis/v9 v9.20.0 h1:WnQYxLkgO2xiXTCJY0ldIiI8dNqCDlQAG+AtaH7a2a0= +github.com/redis/go-redis/v9 v9.20.0/go.mod h1:v/M13XI1PVCDcm01VtPFOADfZtHf8YW3baQf57KlIkA= github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225 h1:ZMsPCp7oYgjoIFt1c+sM2qojxZXotSYcMF8Ur9/LJlM= github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225/go.mod h1:XEESr+X1SY8ZSuc3jqsTlb3clCkqQJ4DcF3Qxv1N3PM= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= @@ -236,8 +234,8 @@ github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWR github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= -github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= +github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo= +github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -250,88 +248,89 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= -github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= -github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= -github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs= +github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= -go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k= +go.opentelemetry.io/contrib/detectors/gcp v1.42.0 h1:kpt2PEJuOuqYkPcktfJqWWDjTEd/FNgrxcniL7kQrXQ= +go.opentelemetry.io/contrib/detectors/gcp v1.42.0/go.mod h1:W9zQ439utxymRrXsUOzZbFX4JhLxXU4+ZnCt8GG7yA8= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= -go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= -go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 h1:4YsVu3B8+3qtWYYrsUYgn0OG78pN0rnNPRGX4SbokQI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0/go.mod h1:+wnlSn0mD1ADVMe3v9Z/WIaiz6q6gL2J/ejaAmdmv80= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0 h1:lgh3PiVrRUWMLOVSkQicxzZll5NjF1r+AtsX1XRIHw0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0/go.mod h1:5Cnhth3m/AgOeTgE3ex12pPmiu/gGtZit03kSzx9X7s= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w= -go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= -go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= -go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= -go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= -go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= -go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= -go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= -go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/metric/x v0.66.0 h1:YkCrx1zLOChi9ZcZ6euupOcsgzbVlec7D/xoEU1+cTA= +go.opentelemetry.io/otel/metric/x v0.66.0/go.mod h1:d1+BDj9t96do0/1LoU1ayfCv79ZgNE41qbhBvnMOBZk= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= +go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= +go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= -golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= +golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= -golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= -golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo= -golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= +golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU= -golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa h1:efT73AJZfAAUV7SOip6pWGkwJDzIGiKBZGVzHYa+ve4= +golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa/go.mod h1:kHjTxDEnAu6/Nl9lDkzjWpR+bmKfxeiRuSDlsMb70gE= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/api v0.256.0 h1:u6Khm8+F9sxbCTYNoBHg6/Hwv0N/i+V94MvkOSor6oI= google.golang.org/api v0.256.0/go.mod h1:KIgPhksXADEKJlnEoRa9qAII4rXcy40vfI8HRqcU964= google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+ZWb6ErZfnEOKIqqFWUJE2D0fObSmc= google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc= -google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba h1:B14OtaXuMaCQsl2deSvNkyPKIzq3BjfxQp8d00QyWx4= -google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:G5IanEx8/PgI9w6CFcYQf7jMtHQhZruvfM1i3qOqk5U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba h1:UKgtfRM7Yh93Sya0Fo8ZzhDP4qBckrrxEr2oF5UIVb8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= -google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= -google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= -google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= -google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= +google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/infra/feast-operator/go.mod b/infra/feast-operator/go.mod index 538d09888be..021e1a1b020 100644 --- a/infra/feast-operator/go.mod +++ b/infra/feast-operator/go.mod @@ -65,24 +65,24 @@ require ( github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.39.0 // indirect + go.opentelemetry.io/otel v1.44.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect - go.opentelemetry.io/otel/metric v1.39.0 // indirect - go.opentelemetry.io/otel/sdk v1.39.0 // indirect - go.opentelemetry.io/otel/trace v1.39.0 // indirect + go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/sdk v1.44.0 // indirect + go.opentelemetry.io/otel/trace v1.44.0 // indirect go.opentelemetry.io/proto/otlp v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.48.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect - golang.org/x/sync v0.19.0 // indirect - golang.org/x/sys v0.39.0 // indirect - golang.org/x/term v0.38.0 // indirect - golang.org/x/text v0.32.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/term v0.43.0 // indirect + golang.org/x/text v0.37.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.39.0 // indirect + golang.org/x/tools v0.44.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect diff --git a/infra/feast-operator/go.sum b/infra/feast-operator/go.sum index 00b7343b222..6c80ee96e61 100644 --- a/infra/feast-operator/go.sum +++ b/infra/feast-operator/go.sum @@ -139,20 +139,20 @@ go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= -go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= -go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= -go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= -go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= -go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= -go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= -go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= -go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= -go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= +go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -172,34 +172,34 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= -golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= -golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= -golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= +golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= -golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= -golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 51c325ee6e72c1f18f71a36f9fc7c8120e5d16f1 Mon Sep 17 00:00:00 2001 From: ntkathole Date: Mon, 1 Jun 2026 13:13:09 +0530 Subject: [PATCH 49/59] fix: Remove selector migration job - no longer needed Signed-off-by: ntkathole --- .../config/overlays/odh/kustomization.yaml | 11 ---- .../overlays/odh/selector_migration_job.yaml | 56 ------------------- .../config/overlays/rhoai/kustomization.yaml | 11 ---- .../rhoai/selector_migration_job.yaml | 56 ------------------- 4 files changed, 134 deletions(-) delete mode 100644 infra/feast-operator/config/overlays/odh/selector_migration_job.yaml delete mode 100644 infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml diff --git a/infra/feast-operator/config/overlays/odh/kustomization.yaml b/infra/feast-operator/config/overlays/odh/kustomization.yaml index 89059a56c5a..044614f01fe 100644 --- a/infra/feast-operator/config/overlays/odh/kustomization.yaml +++ b/infra/feast-operator/config/overlays/odh/kustomization.yaml @@ -6,7 +6,6 @@ namespace: opendatahub resources: - ../../default - - selector_migration_job.yaml patches: @@ -63,13 +62,3 @@ replacements: name: controller-manager fieldPaths: - spec.template.spec.containers.[name=manager].env.[name=OIDC_ISSUER_URL].value - - source: - kind: ConfigMap - name: feast-operator-parameters - fieldPath: data.RELATED_IMAGE_CRON_JOB - targets: - - select: - kind: Job - name: selector-migration - fieldPaths: - - spec.template.spec.containers.[name=migrate].image diff --git a/infra/feast-operator/config/overlays/odh/selector_migration_job.yaml b/infra/feast-operator/config/overlays/odh/selector_migration_job.yaml deleted file mode 100644 index 1646e23afe9..00000000000 --- a/infra/feast-operator/config/overlays/odh/selector_migration_job.yaml +++ /dev/null @@ -1,56 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: selector-migration - namespace: system - labels: - app.kubernetes.io/name: feast-operator - app.kubernetes.io/managed-by: kustomize -spec: - ttlSecondsAfterFinished: 300 - backoffLimit: 3 - template: - metadata: - labels: - app.kubernetes.io/name: feast-operator - spec: - serviceAccountName: controller-manager - restartPolicy: Never - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - containers: - - name: migrate - image: origin-cli:latest - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - resources: - requests: - memory: "64Mi" - cpu: "100m" - limits: - memory: "128Mi" - cpu: "200m" - command: - - /bin/sh - - -c - - | - set -e - DEPLOY="feast-operator-controller-manager" - NS="$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)" - - HAS_LABEL=$(oc get deployment "$DEPLOY" -n "$NS" \ - -o jsonpath='{.spec.selector.matchLabels.app\.kubernetes\.io/name}' 2>/dev/null || true) - - if [ -z "$HAS_LABEL" ]; then - echo "Deployment $DEPLOY has old or missing selector." - echo "Deleting so it can be recreated with the correct selector..." - oc delete deployment "$DEPLOY" -n "$NS" --ignore-not-found=true - echo "Done. The operator will recreate the Deployment." - else - echo "Deployment selector is already correct, no migration needed." - fi diff --git a/infra/feast-operator/config/overlays/rhoai/kustomization.yaml b/infra/feast-operator/config/overlays/rhoai/kustomization.yaml index 0e305e2c5dd..b9d075bdf39 100644 --- a/infra/feast-operator/config/overlays/rhoai/kustomization.yaml +++ b/infra/feast-operator/config/overlays/rhoai/kustomization.yaml @@ -6,7 +6,6 @@ namespace: redhat-ods-applications resources: - ../../default - - selector_migration_job.yaml patches: @@ -63,13 +62,3 @@ replacements: name: controller-manager fieldPaths: - spec.template.spec.containers.[name=manager].env.[name=OIDC_ISSUER_URL].value - - source: - kind: ConfigMap - name: feast-operator-parameters - fieldPath: data.RELATED_IMAGE_CRON_JOB - targets: - - select: - kind: Job - name: selector-migration - fieldPaths: - - spec.template.spec.containers.[name=migrate].image diff --git a/infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml b/infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml deleted file mode 100644 index 1646e23afe9..00000000000 --- a/infra/feast-operator/config/overlays/rhoai/selector_migration_job.yaml +++ /dev/null @@ -1,56 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: selector-migration - namespace: system - labels: - app.kubernetes.io/name: feast-operator - app.kubernetes.io/managed-by: kustomize -spec: - ttlSecondsAfterFinished: 300 - backoffLimit: 3 - template: - metadata: - labels: - app.kubernetes.io/name: feast-operator - spec: - serviceAccountName: controller-manager - restartPolicy: Never - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - containers: - - name: migrate - image: origin-cli:latest - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - resources: - requests: - memory: "64Mi" - cpu: "100m" - limits: - memory: "128Mi" - cpu: "200m" - command: - - /bin/sh - - -c - - | - set -e - DEPLOY="feast-operator-controller-manager" - NS="$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)" - - HAS_LABEL=$(oc get deployment "$DEPLOY" -n "$NS" \ - -o jsonpath='{.spec.selector.matchLabels.app\.kubernetes\.io/name}' 2>/dev/null || true) - - if [ -z "$HAS_LABEL" ]; then - echo "Deployment $DEPLOY has old or missing selector." - echo "Deleting so it can be recreated with the correct selector..." - oc delete deployment "$DEPLOY" -n "$NS" --ignore-not-found=true - echo "Done. The operator will recreate the Deployment." - else - echo "Deployment selector is already correct, no migration needed." - fi From e914d593fedae05bcab050b6d05dd45b1703b658 Mon Sep 17 00:00:00 2001 From: Jia Le <5955220+jials@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:17:06 +0800 Subject: [PATCH 50/59] fix(snowflake): Stop double-quoting connection identifiers (#6462) fix(snowflake): stop double-quoting identifiers passed to connector.connect() Signed-off-by: Jia Le <5955220+jials@users.noreply.github.com> --- .secrets.baseline | 2 +- .../infra/utils/snowflake/snowflake_utils.py | 4 -- .../utils/snowflake/test_snowflake_utils.py | 61 ++++++++++++++++++- 3 files changed, 61 insertions(+), 6 deletions(-) diff --git a/.secrets.baseline b/.secrets.baseline index 74979b4f91b..e9e8acd786b 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -1426,7 +1426,7 @@ "filename": "sdk/python/tests/unit/infra/utils/snowflake/test_snowflake_utils.py", "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", "is_verified": false, - "line_number": 14 + "line_number": 15 } ], "sdk/python/tests/unit/local_feast_tests/test_init.py": [ diff --git a/sdk/python/feast/infra/utils/snowflake/snowflake_utils.py b/sdk/python/feast/infra/utils/snowflake/snowflake_utils.py index 1890cb6a087..e22d4857a19 100644 --- a/sdk/python/feast/infra/utils/snowflake/snowflake_utils.py +++ b/sdk/python/feast/infra/utils/snowflake/snowflake_utils.py @@ -76,10 +76,6 @@ def __enter__(self): kwargs.update((k, v) for k, v in config_dict.items() if v is not None) - for k, v in kwargs.items(): - if k in ["role", "warehouse", "database", "schema_"]: - kwargs[k] = f'"{v}"' - kwargs["schema"] = kwargs.pop("schema_") # https://docs.snowflake.com/en/user-guide/python-connector-example.html#using-key-pair-authentication-key-pair-rotation diff --git a/sdk/python/tests/unit/infra/utils/snowflake/test_snowflake_utils.py b/sdk/python/tests/unit/infra/utils/snowflake/test_snowflake_utils.py index 14b42c9783b..4bb02076354 100644 --- a/sdk/python/tests/unit/infra/utils/snowflake/test_snowflake_utils.py +++ b/sdk/python/tests/unit/infra/utils/snowflake/test_snowflake_utils.py @@ -1,12 +1,13 @@ import tempfile from typing import Optional -from unittest.mock import MagicMock +from unittest.mock import MagicMock, patch import pytest from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import rsa from feast.infra.utils.snowflake.snowflake_utils import ( + GetSnowflakeConnection, execute_snowflake_statement, parse_private_key_path, ) @@ -75,6 +76,64 @@ def test_parse_private_key_path_key_path_encrypted(encrypted_private_key): ) +class _AttrDict(dict): + __getattr__ = dict.__getitem__ + + +def _make_config(**overrides): + defaults = { + "type": "snowflake.offline", + "account": "test_account", + "user": "test_user", + "password": "test_password", # pragma: allowlist secret + "role": "test_role", + "warehouse": "test_wh", + "database": "test_db", + "schema_": "test_schema", + "config_path": "", + } + defaults.update(overrides) + return _AttrDict(defaults) + + +@patch("feast.infra.utils.snowflake.snowflake_utils.snowflake.connector") +class TestGetSnowflakeConnectionIdentifierQuoting: + @pytest.fixture(autouse=True) + def _clear_cache(self): + with patch("feast.infra.utils.snowflake.snowflake_utils._cache", {}): + yield + + @pytest.mark.parametrize( + "config_key,connect_key,value", + [ + ("warehouse", "warehouse", "MY_WH"), + ("role", "role", "ANALYST"), + ("database", "database", "PROD_DB"), + ("schema_", "schema", "PUBLIC"), + ], + ) + def test_identifier_passed_without_quoting( + self, mock_connector, config_key, connect_key, value + ): + mock_connector.connect.return_value = MagicMock() + + with GetSnowflakeConnection(_make_config(**{config_key: value})): + pass + + kwargs = mock_connector.connect.call_args[1] + assert kwargs[connect_key] == value + + def test_schema_key_renamed_from_schema_underscore(self, mock_connector): + mock_connector.connect.return_value = MagicMock() + + with GetSnowflakeConnection(_make_config(schema_="analytics")): + pass + + kwargs = mock_connector.connect.call_args[1] + assert "schema" in kwargs + assert "schema_" not in kwargs + + class TestExecuteSnowflakeStatement: def test_empty_query_is_passed_through_to_execute(self): mock_conn = MagicMock() From a88efd9be2a7500c6c2cff7b41390c1d0eb60040 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Tue, 2 Jun 2026 14:04:21 +0530 Subject: [PATCH 51/59] docs: Add blog post for native MLflow integration (#6460) * add feast+mlflow blog Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED * add images for reference Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .../blog/feast-mlflow-native-integration.md | 273 ++++++++++++++++++ .../public/images/blog/end_to_end_lineage.png | Bin 0 -> 245466 bytes .../public/images/blog/entity_dataframe.png | Bin 0 -> 140260 bytes .../blog/feast-mlflow-native-integration.png | Bin 0 -> 29019 bytes .../images/blog/lineage_till_training.png | Bin 0 -> 320097 bytes .../public/images/blog/mlflow_dashboard.png | Bin 0 -> 276053 bytes .../public/images/blog/mlflow_featurelist.png | Bin 0 -> 424492 bytes .../public/images/blog/model_metadata.png | Bin 0 -> 578484 bytes .../website/public/images/blog/operation.png | Bin 0 -> 502964 bytes .../registered_model_with_feature_service.png | Bin 0 -> 232672 bytes 10 files changed, 273 insertions(+) create mode 100644 infra/website/docs/blog/feast-mlflow-native-integration.md create mode 100644 infra/website/public/images/blog/end_to_end_lineage.png create mode 100644 infra/website/public/images/blog/entity_dataframe.png create mode 100644 infra/website/public/images/blog/feast-mlflow-native-integration.png create mode 100644 infra/website/public/images/blog/lineage_till_training.png create mode 100644 infra/website/public/images/blog/mlflow_dashboard.png create mode 100644 infra/website/public/images/blog/mlflow_featurelist.png create mode 100644 infra/website/public/images/blog/model_metadata.png create mode 100644 infra/website/public/images/blog/operation.png create mode 100644 infra/website/public/images/blog/registered_model_with_feature_service.png diff --git a/infra/website/docs/blog/feast-mlflow-native-integration.md b/infra/website/docs/blog/feast-mlflow-native-integration.md new file mode 100644 index 00000000000..608d28acfdf --- /dev/null +++ b/infra/website/docs/blog/feast-mlflow-native-integration.md @@ -0,0 +1,273 @@ +--- +title: "Native MLflow Integration for Feast: Automatic Feature Lineage for Every Experiment" +description: "Feast now ships native MLflow integration : enable it in feature_store.yaml and every feature retrieval is automatically linked to the MLflow run that consumed it. No glue code, no manual tagging, full model-to-feature traceability." +date: 2026-06-01 +authors: ["Vanshika"] +--- + +
+ Feast Native MLflow Integration +
+ +# Native MLflow Integration for Feast + +## The Problem: Features and Experiments Live in Separate Worlds + +Feast manages your features. MLflow tracks your experiments. But between the two, there has always been a manual gap. + +When a data scientist trains a model, the features that shaped it are retrieved from Feast, but MLflow has no idea which features were used, which feature service they belong to, or what entity DataFrame produced the training set. The result is a familiar set of problems: + +- **"Which features did model v3 use?"** — dig through notebooks and hope the comments are accurate. +- **"Can I reproduce the training data for last month's experiment?"** — re-derive the entity DataFrame from memory. +- **"Which models break if I change `driver_hourly_stats`?"** — grep through repos and ask around. +- **"I promoted a model — which features do I need to serve?"** — read the training script, cross-reference with the feature registry. + +Teams have tried to close this gap with manual `mlflow.log_param("features", ...)` calls, custom wrappers, or convention-based tagging. These approaches are fragile, inconsistent, and the first thing to break when someone new joins the team. + +## The Solution: One Config Line, Automatic Lineage + +Starting with Feast v0.62, the Feast–MLflow integration is **native and zero-code**. Add an `mlflow:` block to your `feature_store.yaml`, and every feature retrieval inside an active MLflow run is automatically tagged with the features, feature views, feature service, entity count, and retrieval duration. + +```yaml +project: driver_ranking +registry: data/registry.db +provider: local +online_store: + type: sqlite + path: data/online_store.db +mlflow: + enabled: true + tracking_uri: http://127.0.0.1:5000 +``` + +That's it. No decorators, no wrappers, no `import mlflow` scattered through your training code. + +## How It Works + +### Auto-Logging: Zero Code, Full Lineage + +When `mlflow.enabled: true` and an active MLflow run exists, Feast hooks into `get_historical_features()` and `get_online_features()` at the end of each call and writes structured metadata to the run: + +| Tag | Example | +|-----|---------| +| `feast.project` | `driver_ranking` | +| `feast.retrieval_type` | `historical` | +| `feast.feature_service` | `driver_activity_v1` | +| `feast.feature_views` | `driver_hourly_stats` | +| `feast.feature_refs` | `driver_hourly_stats:conv_rate, driver_hourly_stats:acc_rate` | +| `feast.entity_count` | `200` | +| `feast.feature_count` | `5` | +| `feast.job_submission_sec` | `0.43` (metric) | + +Even if features are passed as a list of refs rather than a `FeatureService` object, Feast auto resolves the matching feature service from the registry. The resolution is cached with a 5-minute TTL, so there is no registry overhead on every call. + +
+ Model metadata with Feast tags in MLflow + Feature lineage from data source to model +
+ +### The `store.mlflow` API + +The integration surfaces through a single property on `FeatureStore`: + +```python +from feast import FeatureStore +store = FeatureStore(".") + +with store.mlflow.start_run(run_name="v1_training"): + # Auto-logged: feature refs, feature views, entity count, duration + training_df = store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() + + model = train(training_df) + + # Saves feast_features.json alongside the model artifact + store.mlflow.log_model(model, "model") + + train_run_id = store.mlflow.active_run_id + +# Propagates feast.feature_service to the model version +store.mlflow.register_model(f"runs:/{train_run_id}/model", "driver_model") + +# Prediction: links back to the training run +with store.mlflow.start_run(run_name="batch_prediction"): + model = store.mlflow.load_model("models:/driver_model/1") + features = store.get_online_features( + features=store.get_feature_service("driver_activity_v1"), + entity_rows=[{"driver_id": 1001}], + ) + predictions = model.predict(...) +``` + +`store.mlflow` is lazy-initialized on first access. When MLflow is not installed or `enabled` is `false`, it returns `None` — so existing code that doesn't use MLflow is unaffected. + +### Model-to-Feature Resolution + +This is the capability that closes the loop between experiment tracking and production serving. Given any registered model URI, Feast can tell you exactly which feature service it needs: + +```python +fs_name = store.mlflow.resolve_features("models:/driver_model/1") +# Returns: "driver_activity_v1" +``` + +Resolution follows a precise chain: + +1. Check the model version tag `feast.feature_service` (set by `register_model`) +2. Fall back to the training run tag `feast.feature_service` (set by auto-logging) +3. Validate against the `feast_features.json` artifact to ensure the feature service projections match the features the model was actually trained on + +If there is a mismatch : say someone renamed a feature in the service after training — `resolve_features()` raises `FeastMlflowModelResolutionError` with a clear diff. No silent serving skew. + +This enables a powerful production pattern: your serving pipeline doesn't hardcode feature names. It resolves them from the model: + +```python +fs_name = store.mlflow.resolve_features(f"models:/driver_model/production") +features = store.get_online_features( + features=store.get_feature_service(fs_name), + entity_rows=request_entities, +) +``` + +Promote a new model version that uses different features, and the serving pipeline auto-adapts. + +
+ Registered model with feast.feature_service tag +
+ +### Training Reproducibility + +When `auto_log_entity_df: true`, the integration saves the entity DataFrame as a Parquet artifact on every historical retrieval. Later, you can reconstruct the exact training inputs: + +```python +entity_df = store.mlflow.get_training_entity_df(run_id="abc123") + +with store.mlflow.start_run(run_name="retrain_v2"): + new_df = store.get_historical_features( + features=store.get_feature_service("driver_activity_v1"), + entity_df=entity_df, + ).to_df() +``` + +Even without entity DataFrame archival, Feast always logs metadata : row count, column names, date range, or the SQL query — so you have an audit trail of what went into the model. + +
+ Entity DataFrame saved as artifact in MLflow +
+ +### Operations Audit Trail + +When `log_operations: true`, `feast apply` and `feast materialize` are logged to a dedicated MLflow experiment (`{project}-feast-ops`). These are self-contained runs : they don't require a user-initiated active run: + +```yaml +mlflow: + enabled: true + log_operations: true + ops_experiment_suffix: "-feast-ops" +``` + +Apply runs record which feature views, feature services, and entities were created, updated, or deleted. Materialize runs record the feature views, date range, and duration. This gives platform teams a time-series audit trail of every registry and materialization change. + +
+ Operations audit trail in MLflow +
+ +### Dataset Tracking + +For teams that use MLflow's dataset tracking, the integration provides an explicit API: + +```python +store.mlflow.log_training_dataset( + df=training_df, + dataset_name="driver_training_v1", + source="feast.get_historical_features", +) +``` + +This uses `mlflow.data.from_pandas` and `mlflow.log_input` to register the DataFrame as a dataset input on the active run. + +## Two Access Patterns + +The integration provides two ways to access MLflow, depending on your preference: + +### 1. `store.mlflow` — explicit, multi-store safe + +```python +store = FeatureStore(".") +store.mlflow.start_run(run_name="training") +store.mlflow.log_model(model, "model") +``` + +`store.mlflow` only exposes Feast-enhanced methods. For raw MLflow access, use the escape hatches: + +```python +store.mlflow.client # MlflowClient instance +store.mlflow.mlflow # raw mlflow module +``` + +### 2. `feast.mlflow` — drop-in module replacement + +```python +import feast.mlflow + +feast.mlflow.start_run(run_name="training") # Feast-enhanced +feast.mlflow.log_params({"lr": "0.01"}) # passthrough to mlflow +feast.mlflow.log_model(model, "model") # Feast-enhanced +``` + +`feast.mlflow` auto-discovers the most recently created `FeatureStore`. For Feast-specific methods (like `log_model`, `register_model`, `resolve_features`), it uses the enhanced version. For everything else (`log_params`, `set_tag`, `MlflowClient`, ...), it delegates to raw `mlflow`. One import, both worlds. + +## Feast UI Integration + +The Feast UI automatically surfaces MLflow data when the integration is enabled. Three new API endpoints power the UI: + +| Endpoint | What it shows | +|----------|---------------| +| `/api/mlflow-runs` | All Feast-tagged runs with linked registered models | +| `/api/mlflow-feature-usage` | Per-feature-view: run count, last used, associated models | +| `/api/mlflow-feature-models` | Reverse index: feature ref to registered models | + +The feature view detail page shows MLflow training run count, last-used date, and a table of registered models that depend on the view. The registry graph visualization draws edges from feature services through MLflow runs to registered models. + +When MLflow is not enabled, these endpoints return empty responses and the UI components are hidden — no visual noise for users who don't use MLflow. + +
+ Feast UI Feature List with MLflow model associations + Feast UI Feature View detail with MLflow usage +
+ +## Configuration Reference + +| Option | Type | Default | Description | +|--------|------|---------|-------------| +| `enabled` | `bool` | `false` | Master switch | +| `tracking_uri` | `string` | (env/default) | MLflow tracking URI | +| `auto_log` | `bool` | `true` | Auto-tag runs on retrieval | +| `auto_log_entity_df` | `bool` | `false` | Save entity DataFrame as artifact | +| `entity_df_max_rows` | `int` | `100000` | Skip artifact for large DataFrames | +| `log_operations` | `bool` | `false` | Log apply/materialize to ops experiment | +| `ops_experiment_suffix` | `string` | `"-feast-ops"` | Ops experiment name suffix | + +## Getting Started + +Install Feast with MLflow support: + +```bash +pip install feast[mlflow] +``` + +Add the `mlflow:` block to your `feature_store.yaml`, start an MLflow tracking server, and run your training code. Features are automatically linked to experiments from the first retrieval. + +For a complete end-to-end walkthrough — from feature definition through model training, registration, and feature resolution — see the [demo notebook](https://github.com/feast-dev/feast/tree/master/examples/mlflow). + +
+ End-to-end lineage from data source to registered model +
+ + +## Join the Conversation + +We'd love to hear how you're using (or plan to use) the Feast–MLflow integration. Reach out on [Slack](https://slack.feast.dev/) or [GitHub](https://github.com/feast-dev/feast) — issues and PRs welcome! + + diff --git a/infra/website/public/images/blog/end_to_end_lineage.png b/infra/website/public/images/blog/end_to_end_lineage.png new file mode 100644 index 0000000000000000000000000000000000000000..c60843b974d92cb16d31f370a875885fa91e6b42 GIT binary patch literal 245466 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≷&_IJ{*q5ln(faxdg8?_ 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 literal 0 HcmV?d00001 diff --git a/infra/website/public/images/blog/entity_dataframe.png b/infra/website/public/images/blog/entity_dataframe.png new file mode 100644 index 0000000000000000000000000000000000000000..586737796b141f01fb3ab4e05b22b04ce4a99ac9 GIT binary patch literal 140260 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 aS*@PqpMURu1(*={OH)nvVU3Dy)c*jOOXC*+ literal 0 HcmV?d00001 diff --git a/infra/website/public/images/blog/lineage_till_training.png b/infra/website/public/images/blog/lineage_till_training.png new file mode 100644 index 0000000000000000000000000000000000000000..a354792160e2ea66424c6c8aac195583f0cabbed GIT binary patch literal 320097 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

|Gi{%)6C&u6)hP_w76LjjK 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 z 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�f1=E?rKk;I)SC)2trg=knh7Qw+qMpp{> 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%0ALUJ~aZGo{y!q-i3W9nq zlds~tT-6O_qv@M>(O}mY_{|Q4^UNw^L3iV*jkxQjOujcv13#cHo?%~!Da^iqpzQd= zQg7H}czCl@%3fqqsMMyZ)6jQ@t7^rWF|zsIsF>1}SU&l7p+uf|OsL*qQ-wfb9@AY0#AUO< zyCfWdj567B{VHkq-G7N|Ms*X3ae=IXAF2d9iy;D=X@>I$B`9}9ADMK~!9h;20iAJR zBY;u_P;k{$IRWwukU{qG1t7qC92p!^AU_GE|3Z-94}n@1<{zHs06-jl1(5@8f4zF{wJ^L13p=c03fiJyr26oh*~e!2 zq{ACZ*7sFrI6EbKo#pRVMRpl9I=8?ASTElS%1F z_@f{o_<7xZ+^TXie@alzuoTt}%ng1?!=0OEs$LXiOT}p~)f#g~V|c$ZzWjiT-zOc6 zoGZL}z-|u&JsE7z7q3vRd=w{G?A?xF-#FlZknkVw1F1+M|Gjf$p@JZ+{s9|U zyPh*03`>?UC1W{K)OV%QURt;2#k}wEa_@IDRi@eo1VK;fvwE*D#Ch~GD1kS@V91Oy zeO9-jfl%0}CwyJLyh)Bvpnz;1=B?)dPr)zkk^~ZSQwf*{fLlv|N8dt7JHAlwlK^5M zFMSfh)4lTY&-aPp72gcSe0QOe00J+YD3M?E6%YujV`Q@JYXb{1&7!s0Vql7d`RKTy zb9~XW9TEmE1>w!X+&il^-cLt&AZsaii0d?@`-ZIMi#+e7f>BZwFTu_}F-krnHf9X{ zVDFUfa<7nfXIAS2iSjSl>h5E*tab-+hTYEJ9~&Jw?>11td)y3k{Mo{F^giv&=(sO& z!a_(u`tlAro0LXTHAMYT@b7hFmbp6}wpP(M-D;)a8EGrIJ7r;^ub#iGGQJ*+p=V;P z%6~3djy^bJoQ^!^n66RKkye<{mAsu2pSIy2-hCbGZt8I|w$%)U4_HA4?{RFA<&l~Y zDbDdN)-Oa{71_z2^rFVuXZTseGE%fem`D+I#MM-hs<)rM;QsY?h2QzntG{piBA7=5is0D4 zj3OWQ-%-`K^9LFL)YA+x5fhsbF}Zi2WmVuMo?Ee6U6M5vF*J7*9zLy4kbFbu>(dE% z7IOkQjNuXXOAA7{hhiIhh?!n6U`aG=jC1>-e-z_10>eh4o>+Q@kby~JHCRVXiZNIs zPdMTg%!?Sn0}JE<6=Y0<^U!RPgQ+3Ke4K@(5hAji6%)`r3+0{l zwW6cRu6booZ+SDHU0Y;ei*8aM0LO4~X} zg}2|*56AFre^$X+KX9|rf^?0_;5HeGG!h1PdrxpntALw|d*U6!fYG61Na8PSIDhbBp2N4R!93>v6T@L~-OzCR! zZdbQ~R`PUKX5WfdxisUQsd1et-O}=#tD$Xjivxkm#(3LB!_tB(N6_0 z@=^Y?o2he~TA z(t?PU8CZ|R1d^tZ){iD?r8qcC#{B@1ORN~-vK&w4gBz$wu-2re6DE!z#xa9E+zEVWbl45EetKQD ztiY{;NQJN$b(cgs8u%3C1Ry=9dW;d`wib$F9Dv3Z0mg_BGF`gx5ZWU{fs}Hxn(Q1` zN@IF+hl1$`*Hzglwbc>zgC!$6HWQ zE+t&N+b?p%X~WIEZhg_0%{A`RXBFWm5TB0GRkMKM^`gq}he87?g+wDOX34IgE#r)F zU18z8J##tl^k(#grO5c_E){mxf!n{g|8IuqL=yw$=QhNMtfxot4O{6nz(S4P{CEjl z8(Sy@o>=cw^ZaK$Y_6(F>4x%Ec@A$6+DJ2&i6YZm@m&CZ-MqDV(Hw>5$JV;6HQ=s% z^W})^^mOhb(rLEu_CS9OyR)(CO&ZN0oreSw^^(#C4~-B>!d>>$Y~l2~^K44odg3ni zWEH2r)Te|44HQLeQixzg0w|~eUkr44%*LzC7wTK3N)-X9KyA=#pdPmtPm2TmCOZ&N zuwkB(*hbaKu(y-^)0G(y1KuwZ@vut1bjxDe=IM;VVlBT={Cwm_mTDloA-bXCpqPC? z(VnIKp^tHSS{>wy92AS95wKwf`zX!a1BbL#1X=Cpl$2>8fc(@utINwhTxiyb3& z5-6k#ARmMsesa*-xKEw<{!`>gFm4j1RIU@V)gD#4{VP^4>~1IgF&>@%Ai`M;yS$%9 z*8>2G5CcLs^r<*y2Hs;yb^lXy*l)KZj z;2;Qarl8d?e;>|XoeCxIGH8i8lAq9@5heK7g%Qfy5+Kb;AQ;Wclw3!@hOq2 zTw&jpu0DHo>}a`aQi27qKU&;2VyTs=mbrm79*Y;{!qs+Dx7q#PL`z#wMnu7!tNXL2 zg&9$#g<|-1e;O&~Ut}E$#xl};VDqL{dotVo&h~E?KC-AxNy@mmj2}MesO7jd%C?jW3(x_xA|SQTU=|9n314>lw^V~Mfyla zDwHO7+EUq5uh;&43G;+{OUZ4UGq3T_baJ~9yhjKefhbs*caoFvw`gdvVOL~2YGOEz zyHGbe^h#twrSmIJy*7`zr0`t+VIls9ES$j`w;4yIZ%*v-xXd^-1QS{Uyj1(DYgdGyFn`knogfItjfeGx86?5i2Z zZd9b&%bM)hQZ(FJglTA6w4F({@tZ#*dT-T<&Z)+H33;nAbnO)Y`<(*97XnU6q(L0e zgD9bed^e#?N%U6T@}Z&jfdZpjNxOKdv#H!i%s{4hh9p_xh-W)P=Ko+prh}p7&29^X?+gv#!7bvg9 zH>69!+!=45b2!`r%V_pz6Uisn)z`K>A zfaV~reFLH9Q3y~W2{Z(LXh@{$a&Os1#b@(HIUR}B4=52qK}iTmaNpi?Z*d*e+%HHW zR3tktsV8qf@?{SI8?6xR^#?bj8qsZ|gPrV3Wxn!dUYoqqTyLCHtzQ%4pR{GJ*(gLi z65F`}Zj^G-jk#B%3eDszm>VQNwGIEQ(A=#yt%;*{vP|6buHnU}psCdnXRMrIxrg^; zgx!M2&hrDyfGBAEU!)0UM9;+Tx-A8)#|8d zI6f8;H=qm8*U*U<7CxSvFZhDD6{$s!Ldq@@_NJvZbtPj-pXx5T#2Qd1PT~BVgiHx5 z?ViNZ{R#3IjKE%lNI$kSP9g@1dJmXMd)c5|86VWz#<_DJFGmpEFtk#o`7x_QmTG)t zb3NLTtBv`Nc3~GuI%*``k+{+nYPdrBmbPs+-ZVGot_?gUt~5Fgtq;!fL(`olY4!3^;mCFK^Ml&Mi7;=raW6{qB-z~{HONwS^4D46JJTd)v3lIDK`?0fbG zgYuhPTp(62hF*X^( zv?M8Gu*lSEkf>-e1o8wo-OcITz>zc7R$NWRq;)wSY4_LR z#6w+)4o(H0Qpb*ZLbX*T1>#8@Uul7;_BpRsZOT%r?|WM(Z|&%qsZw7?7HA~al;t(+ zi)Ry>Q9B*#zl*01kUEOiWhfwjF$UJ~-`NGu!2Du|DsC6NsIR<~F}y{i7h_Eym&=eT z6gQoAGgPh(N;+V%M7f>0*nC;!x!+;ih|MYLw*>>e?PYO5n6dx-6;0$o)gg-HBiJMf zDXQBR+MpARtCVEKWxrb*E>~iI@XfQ>CPU6<%?Jj{V2&$O44>0rUiW{Kni~WvC`=Lg zFMjS3he?C{$YQEc&=g*C_{37bJ;YEf%!58hNoiT;Cq zGz-bl+(=r6VQ92v&g3)P{GhJPF)8c31u5?hwuuaWOH?+VjHAL>K8xx8Cl$L=*k3@? z=$;lOmt^-#5w*%zOle?Jh~FUb+O?2HBavkHM}CO52O?;{-3z4+6%&!EthB=p0Rvsnm zJ;e~E89r>p?7w+!ev%95t7PKj;ZEdt+jB?*x{&K+@@4OdQ>v(_;Y-=xx-vOfiKbYB zm2e|NAS?rwGy1zKzj&Xf-Fwlt6SR-Jp=;_!XL)a@DosUE-z}J#>y_4*@>aEO8Utw0 z7htQ|ztk!z2K)^js1WY`!Lz>#W0xyW`y3xf3!H3DgwqJqrA2PrH05C%K@Up3{66Q$ zzrJ%B6#G~C(K#jFc?(|4e4``*ER6ylgHC=QU@wqB5p5@UvXqw^6ZMM!wcDMZ>h>EM znb*tohCO{2>i9x`t#? zi_)K=H5iAG9arBy-c;15Z)W1_>E?9lSY4)e<<*u)e8pf)DT{P1BOJDlFcB5ruipo# zW=Fw-FLPJGqPk)@g@NLiW9|kcbCPNHY!c3loke)cy{}ZP7tbhOrR+Nk8AjtykfTG& zosy~RNn2hz@On{6lDqXu_q135_F!$?G4r3}LSbSXpKZ~G?OWb%>d%@t$e>Tw43n_1 zAU;lwPN=%9VqRqrUN!@+Yg5Kc%~7&1msrdAQY=u;LWr{`w!c+(%CzO@xj6AA@@LsK zu9EzCZtdJL3wg1Ps1C;D+zu#=wcZ&1!L^oeAF2NMoi{W|1W(gF9FN<7N8FMcsX=^3 z63EInAC%CoZ1DJW|I~(T0rwA|Dgc$DlA>Rmu9NmLRca#JTYkUBTwKi)sl`^gI8E$i zmPP0m1J9lZl+1sFgGP=(g#t2xZyO)QS=ns=xRYtu$#D?J-ioCes`YQnRjQ_pLv96T zu&H|y5l|_yDrg;+E6wLaDk%+@pnn&mm-%x-u7EbXG2AWr2+!=Sy4}g>s zaU|idzA{-FnM+#2l+w-hsZU2PASfha?#TiV&pJPRLRXgPX%Tj&4<|c`EqEvPG$w=g z6HqEbq?o@L4wU5#{d^{{=6~0REZqWW=+~qUyH;yoF1)m~HD&4V;L)3udLr`jLcMGK z#TQM4o^ITy_NByxBB%)sIFBEdZiID1+>FQP;&AIWX~qUHisn9Gi;dDVPSjsH{j}Lz z<>fK7H=)Ul&eEsyk|3o0TI(ti_+&g>X7_7Z-eOVn>be8#WEvNA@r|IVbH9szh^#!> z^bf36)=R?r@l-^C$O7g?G(tg3Okai*?nNKos0-C>6l7h(!=09<_0#?rS4NPyxQZOm zV#y=^?&QKu6MwYbeAN`%3_;wsl>cYJHxp&+(j@WShTF4SxT2}~4g1~GA2DQ4y&zuVuGj2^*8K7jfI_=jZ+l@jG?1F?j^+?;tmW zg1cW@x3t;yIr$0$T{{u#lXU+Jt8XigtBw&m4()s$KJ6 z-oLY#g$I(D$;b00O@dP<3L@xokWCftW_B>XVuv9rfAc*2CVhWwZuOlvQf?xD@4={; z4VSZW|D^oF@pb7MnoPS-eStr3Fi~*$=D^6q!j3c;})#CV@)D#qfcy*yp zvOb4M$P85$&VI*GE^I`&#HZvDz#tv@DKNpk>)7=0{RPnbdU_e%C1u{VY0)2zTfB=? zwcbhRpcp~@Y=F}~>t3#nq_3)`>2EKJf^2Wby1n!K zC*Xqe_FLI(OkDEr@u-yj2>veq@aI2u%w2+nJ85rOP0Bn}-L&JFgTu4a_ywoS z0blMh%$*E)BZES8 zP!Q0>`WYy`hgD7B(F^BDG!r-bD`?Ss%Q!vFB@I^~F(^2A=IANS`i-BN{5X18RgCw; z{$Dh}F67h1PqbXe$fw~Mv*z_j9M5`Pp^$3)kduB*`#RNlQ-pysC8CF4;MEneqw2*q zY2Z}F2@~Z#`hHcI!0KPo8Dy<*2bXy?EfE7er^ zGMdJ|f;~g4`?0PW0HDWUn@xZy8*Ge($y$CDjz;UQm zzH^MfgMG`J%QKTBwo^tskQbD7WS{%Yky@9Ul8(pTwc)@0&_)O`Y-jPo6B~+K=hEC)<8!WQ@ zmv?4s00tbmJT_5rbvNUBVtk4}(+LDPPjt$Y40DWjR4)gpoh{Yo@= z=m+{&iRzbp_qKv{W}8djugNov+6`l`%B}?as+_Tg&c$tn>u6tYyPgkqwycaoBoqY$ z%Xo~hX}r6x{Zp*6Sn9Ez|B3i>IwvCGY~`;}=5)>oEJiclc-<44njjQoa@*MWPgA>xep6pH`&? z{)!5C9X^l&#Y}_ z&K4JE#j=P$YEE)7_!CioSL3s&k4sL+t)-TQ8`(6gbKCCDcJBNDQxaPc?*Nf~g4Sg+ zgbFIXKGfaWSrkQq20oStYpcUp?I}9K_rDH}E3KvxWj2lo7i2T*j!zhKzm07HuTNRO z4%N&AA>W{F90tWbX>Z}Rxlg7oCZ1!FeqiG!|9GDp%j*|qO(r+(p z!3@4~7tsY2^BM_}o0{<^MALin$IQ*NpsdS{l#Co+%@)kgUa63kdUkvxXoE;D+xe#- z`vt%xQmX3MA9h!uWk&z=u@2T;Yo9I96Q*iKg9`Nm2_D>AZI9reuHgU+&dIm8rK76p zZ2xB@)BAz19kWRGuf>ZZGN=6W4N~ay6;Vi$A@AXn002>L`ujY?l@u;AGYUY=Gs#0^ z7{-}SU&EZtyt|W{EV&e#Uv|CNQ}I*pP4?9lipWpqH~Y2i>d2`IEDetA>qXlA_3l;u zl19^(v>)Hv@#2JgO!eJN6gAKRZSg{}$OjFt{%bsDy(Pjj>SOzOxVZ-R{N|pdg`|)$ zCHrQO+b^jmn}yG&{!=Eb*Y2DW$N1taFBe&N z%Z^D{f3Pecc7dvo?LGX%wwCjPyTAmKtTZ{Yyk(J}pHc_lXtX0uRgE)171TyA=>`k8 zBSN~*LaiRrxM?;rldO8Cpc_nJrYQVWVKBnCjsgnA+jL?? zf?BnZ1iA@;Rx~SHXm#7JtBrN{2clYe@Gk!(E=gX+pQ>lS1WND8V4wQjyp@}tk?>AD{75sKg%8d7P?4`}hj~D-a zF0P43H^44KDj3^$uv6OKGM%DuZK0j@oVPJGE7hz2ZdtjOs~ttNn7o--A;J-K2B9FJ zA>8MuyaY64hrcTKCm6^ZZ~pQJ*2rmwg%#z4SqrXR;XeO*Q~RK(E+Py1`3!QXt<7ul zNS7NnR5z>l78vx+uE?IrlG_7$wm?AnG16#Kl8U*I*}>3yf)&*l-<=dY7Xi+sw=p}u zQ8%Lfv2mbv`298Yea8ulSAzBKrsw^4!YIf8NX6_r_7kLa+Wh{gh_k;>{%;tl5SLbQT=BG-)Ve|PjH`~cqBJy6R*@%Ezv zu2qDkJRzMM%_w8Gh&TO;wo<_EC1hA2vma2ySIy8FyYUEW)fX zKHh?|6VZ?8P6vMyD#2am9J@@PZoqA~yY3SkC)ogiZW?;2=ME3j`0M9~LUjO6P-kPO zE8WQsFp>y{kYu-jm>5k&=hv9NMM+-=-Ds6R}V68S65m#N22sRhQOhN-!V%saaj>@7ivg!Zo%KP_LjoY zhHy;d%bQUg%sAV8i$p@iE7|tg^}c`yy_#~~eh%w_Evax2SoA1zg$MtT;UYNUS+vyD?VDpW%}!^`4P?eC`7**CaGF!(Kw6;yWE5 z{J~A_c9ZhJ>#5E4F|Y(f8MvPDo?jzb#Ukbeahq$}czwO+xi=&6F|*&f;2zYYF;sRq zrrNrhn4#&^X=On3^&g6Q?c) zovTtjc#Yl#-;rMDjQCqDcg%Dya(kJ8g73cF5s!GhJ=Ir7Tw9$Jub?nz6T`@8^{5Wa zY}F_>m8iS0@7rS5Wp*nTP=(VNOt-nR(k0d9BdaZuj=%7HTjH2iMH~VGu~xObTKDgE zR{#2F4X;`?j~kzT*JaR6AO5zZ5_DqV6p}c3P$EuUI4h(6tHnC0$D-Lc z%;Ck*!a)BE;hwSN7uUbtj}|_Xs`50{h$odFyA_8=%-B&U^~j~R4*x5ekm6mNG+jI4 z`5IP5CDQ=shmui?0`}CR^jS|y8dIdf6XJ>e>l>jVUa{xlztLv- znYtoE=J-8JEX0An`Ys;68>|yRSR7n69x6 zI8aKtmL=2;OzcX5CdKZ2>$C_8F->s=;`34p6?j?)qZV*4&51Q_rq+_n6wfO8$Snp0 z4}q1H;cmrovV6Kvs+=C%k?tPW=gZ^=?&6IcY8=m;jOPm-JlS`$HVcmQ1Sh{MD5_h$ zBU+9^ZwZfW3!F!Un?y`vpiHLaM1W#xmU0CPOWL@L%@vKMk|g4ZPO~xAwK8u;Q z4ESV(^&4Golr`^0ju4T*WRcNKJORIW+z+w4cOhQCdcMKY^7my@!6c05B@p*Ua3zUfNGIFZG7-cSF* z6Kc-p!-Ce+@nk;cka0U#Zp{_jZ>*t8G~$kKIYZte?w+kbAE%wOdDwvSh{^rT8HiSH zP~7f55;$S^mBrkIk_WOE!HO~?*`~N8_BRN$*3ZhqpMFqx;G>-WaPVW&$XTK|!DEN) zy*@#bY&pqf{L5Fl^r4hKJknDqWN5~npEqR`R@(y>*&7*lGY0qnHWipa zpa&l|pY5%6s3Ro&80mIl)#ocjrwQ%Q%~tlke27npR{=Ll@&HQjxiz6Jh1+HjQGLg3 zR^ZW_;;C63U<<{bTv8*Dx=F)zVjN?cIX1CCf*ecXb?fA*a1thlob&;P5O0sKYi!ydm zgG5E6I7m9J4UJff_C@6EbrZVrs=9blhBCCuSUbA`ykE<#f=nsQl$_d1Ui!5x{yIo` zS$sYrEd6fsSBpN`yHkVTLdzn>%o27kuPaJ?QAgtd zO`jPQJn7w%3i3ZK^rNMgK(P>pe@z}DJmX*$ukko7%h}kbWTlQD-#F{x%%6kg=Hc3r zahaNB{CXkv|DC+xZ;-@OUX#oBbG-hag!>@Lwzvz3fyiHuD1Wr+39Py>z()d6Rz$h= zRHJTgTzC{Pw!cJVA`Q|1U1hi8^4Kayj0|2_TEH<3boF%CGKeJszk@6Z7Q{HImKnz%AwP-xolw~8pt9(OF) zmuxS=oEDD#OYEFaW`lpMcZQO>8(EStIK%Us^gbts($4H_F31XS&zq5?AMmJtn|@8Q`KJBw>NT^)zxYAt^5_FBEg4ieycD{A+@M;%KVJraA8p zLML(npB?r!sQMjU)pK)!g%8fxXFMfrX)`;3{<)fcGI@6X>8JnI?!f@T^WKvQUwPiB zB(Y5J|6RDhvp@b#BDi2tQY@qeBlllDXvcdlq*bn5;Z{yw8J>&euY(4S<0l(sx-$-| z+YLG$8=#E~(;I;(_mu`6KO*tgya~Y^A}DW>7p7TLjt>!YRS6+Z{|p5;!=4nlUU8`ks5H| zo3=a2EMp#1(HWO;$It!N&8%|S{9UCiF5f$9S=fq1r`3;cJ-stKi{~bQm76WE8vnRJ zdFm^m_3}@ju)F&^nEah=t9G>Ith%&Co}p27X5>**bMa+yR*qE=ZtY>i?9IEAcS}md z`~P}Edw=-8_EU&%#AyOBUwI^0?T3t9K+Ez$gOQmz4ve#nqZz)%-7y4w{N-8>kd>ol zxp30Y-5yoADeWh!xnm~rSXMgI-AmX<9+h8pTU`K-fOe`ApMk~%ut@Ddz6kF8sNG+J z;*y#GLmmU=Z1!188&!YLL9SMY2$c(ZC#fZiBiEFDiMP@a#?*;6cwB{Wu2dHR7nrpPWW)?qEQ z6NKkx@(jIwsJEOWTqOaU$nul|6&x8xZnqi>i&{{mCN$z+uDk4|2wWQ>Gv_suCu+&b zm)<;lUd=Bf-=jwJ&U~+2SBl23NIDZvZW0|5Zrqb+)6Xs)_&eYwCR>CI47TZ7W`{ec zjmSfp$yrBbECP3K27Xw|Ys*9~BNq-FKc%^C$d^7^NoYjgd0m#sYN!FHlCJ+9^wbRff?Vm%3^+O!*4!eab@{ zVJR}sT5!?s)i?uOZDb>?cLp>c&i3^+-Ok1AXzy{{G0H+=29M$VjHyv_oEMd;c1DAN z^*BZ$>0g^zQ$&|kDox^&u`1PQuW(l}T_BDN^#~ni+Wxj#k;K8&JlELGhgMB;^XEgC zzQl`FVC1Wl-sKMiJ4VH5=ST_sk6h487Y)w3zJH4v|ESGAkMuh0rQg$6&>!0zd)u*T zM?U9gj0&m#ANCJ%x%LM@PWdvwz{ar3JFZROB;nV0OEmhznN@oiZ6xvkDQNNUifd>> zH|3q2p^_-ba1IAvh*m?7TDWaro>#2yqvPs4$hlSy*SdL~WF~)omA+3&WC6GBc>-$j z+(phii}7$qSt@VoxpJeI)HzJ-VWUw3U`rk6)+G$gJRUu;I-1f&7Cg-9HpMOwb;K_u zZ%WIyTWoBNJ5|`sE=z?abe?GDS=MvKr?E^H4{+ItwSb7rJ6|+4wVP98?D@ATse7m7tTd5K+bOO}==1Vz$uj!;-x(PgC?3JCgB!~%1G&GAc%&`q z76o)PPA`Z6ep^-W%VBDOEf#kj|NoYUcOEoz8?@xuY`8qh3gf5BE?KMC%)GukQd^uX zw98U_G8ttJ=g7lZQ`(rz3DQVT39P>viz-XXFPhlMWT89uk1%`Y;2oo zw502_l$5I51mKcP@aQpLvJF7iNduH>(zk^7L5-eV>`g*XSGS?Ct*EGo8(2T~NW}zx z1x3GQ*qIk%`P2gwSI0B83cdAqmxQOzgx#iiZnDWs(Hx#|=clT9dCST3L+ww%S}Doy zzsLkqiKNE9I(4Ep6!Vm67T&_rYjjzX(v4y>aS5$Ab)>@3m|-1oG3e%1^(B{@HoWDZ zvnAu57z$RvUynP1taS?#G;Y4Ro&xKxE_Wa_u4OB-3Vj;llB! zgoJ~2mvI|X4pucblWDNS`fGo)`o~zT6QwbZ!Me8CgM;}(6KN~i8nVueD zH-6>UmIGi~#qT6qHqFveuufw(^fuM7!*W<}k(pBDuSi7bv9|0e0`lzA-uI|{gv1-6 z`E>787bx*r=ttV?rlz`-vvwywI?Md^#CcWRY%ajhCLd^KsEE`A&ejAsJk&s6tpL z-zI3G9B=mXyHj7{#Nera?Ml=asF#Dzv{;~cS?+WO_(zA6^`1%Jz3PCS{%}Bi_VXU> zRS@%#qc{#y@;S44veBW(D9ghiY~JLgq=KVX1DB09kJ$}<-?Qe!nL_F0&v1`-uTSS% ztp|sPv*6(~9;3TgF)A%+(3QQb!W+I1)aSeBUjq-XnTL8%T|e_q?9z!`Zkv>3GlOn` zjhhXxSv+p^?H4@=qGuQUCGgg5!maIJJM!Vr#oT-{zw;7K;obE!bJ*C(wQYQnKd)q+ zZ3oM*WOe0h^WRxTdbR_*qNLC;_Dxg-TDw zKA6&*(#oJmDD7seE!|krX>#Pfx0@|-ch;7?(cvol>7fub9qmio{y0JdcxiRB>1gsf zS$76p)qW(s+wOe;#S^`8W^y^P`+#Wr^(zM(cKhW39zZ$!@kiRM_m4qKW1T=5J@2yC zEHb_{{a&BFN4&~{m6;b-X71zWt2sdEmEFk!F))|W{Oqd*Sn4X;@~CH zl?|jO_;QZeON9x43L9`g0fa4Y-@Bny^b4jliBau$nqjd{4X95;FuO#g^3tE6X zzqdPCp?wQ27mH%#(LIsaD5aP4x7YJoaLhuwuJ>g>XpChtMR*|b5j@YTrXG2J0R(au z*Vw(u;T%LQiYBCAJwnDJht107WY-XIIZi;ONT9h!KTDM4cF5p5f}7~QZ}+)hM}-r* z3?zE)O0Y!XM&VQs^@rRI=y^lWz7L|_CH6d9YmVoCTAp-$R2%vBB3Cs6%z^ z8hw`^asBLj+krxV-8{y;J{lvYJ99+j(|aBS`_Ps#`rC>4f(k0F)_P?ogx;tEXM<2L z4(+kqlB_5!&2MyYD{`|@{0UUh_a}Rd?lEiA z?@i7VSX>#F;?5;&SwT4Cv)3I6M_Ouk%=2d0;tNa`vyG6KD~$F%W&vyjdXPD%B4_)( zLIWrT9;)dST@Fq)Viyl*M?bMtX7T$_WD59^yj&%BO2o&+M4GJ!OFMo_kvjo(L=6U ziR8u48R6E2inDm?rYRRu?@4f=Xf@`ouF|^ti4#dl-r$Re4j$Zq1?=bLOG=8 zf`^-*oBJfa4qpkm3Ow|vr3qIevZ1Zb1zsEuANcSO1@)C-PD`eU5bLXACEzdsHq;WT zpaibYg7dtg$lopO`3uZgOHL`usI+XV%PL0h^lWAf#nn!e#Vd0U)+#yoE$r|_KF822 za=R)%$eYqPDs&<$$LejGKboR>t6b6A2fR0qhuw@O@-eT@cxNWTq8}5>8miX(W?;)W zV)kRbd@+fJ%-Srzy_OT_^^geNbzj@Mg7;r!tEj1>*=rA5qlxD04Fau|qn=;Iv->n^ z5nK9%9%s-jfaSw1c{?k>-`1KgPV&;|r#m7EQ=PkC*Q9K6;K6Kzeloo^BPr+>Ok7-< zx~Lz0&(GRfeJnM<-V_YYam=(GC?>pd*ljTO6mW6pT1f<*Jcb?6$Ld9-t}L6yG#)+g z%8uOq0sA&RT$H3Ms|(@rerXX!%;^&Y(4%UR5yMGsMqeuH6d^zwb=I5$CN1Y7IkDO**BV=bLGmQ@HRB~T1 zrS18*^zBJeE&vstFcr(!?Ve|sS1U%0lf!9vqg*xK&Baeu8G5_b%;^y7p&MVtzk}8J zT@K&DEh#}n8coD#E%xd;G!>Z15vHnCtjTW@gZ$~3>OKTBxoLI}JdyF~^G+7Zna@dx#tkIdbYpU%l_etzv@hN8h- zfq~uoWeo{V_uoJ{fFNTmvc-7b3&0?ajxN1RZy_-^A5`nON(9kpV)aX643U?aNaSZn z#KuF$@C{LZ4shBZNsQ|MY$U<0zFmx1AObZFYph7Q3rv}*C{?RmxuVk*aQ{j0QfNCw zj<4>I`4C!6cmbz(rGRb5=;rvLton2t_lmsFyw&K`kqcdI03G}6o=kyHoPQ>^oDiOl zMgCW&42(T@dLC9O0`NC6-AT&AEfHSQRYNXU&_3;VtvO8^Dc#`(98BuznZVPZ>?Atb z?wWX^dXl|n^p-{tbh(QQ8*D3r&HOIxk$f-0njP2LnjZJImX$|51uxufrj@$bC2jCG z9A4~uRn~*IffZj4Hi{=8s9H|Wf!Q>rp?<_yP=F=I7Q440HtS#FLCwf%iE;cEgFyD-vj@<_JgcHe3j#vWW z7+x~zeCqyseJQwVc9LIaR#KiVHjZQ}eRvRVao%rcEq}Po3pJDo(*WnT0xuV|?21~` z1neyMi|OHa9q1$u9Z|5)QGJ&);G=sZtcp{Jbe?(%Eww>US9Pf+=q4NpXL+XvMkX+dE)K|B$zEf$A0j@ z@7%mdp14v)y?v^XINdAfov*Dw`6dO`cjhEIeE~l8yW)R!Ra3BfQc`92AsL0X*$O1P z+z#9X^DzKlPC8#tKw%5y;;1hne)l1!zq&kE-~Kde==t2tg9;gZhA}3no)mqJ*!*`M zMU<#?z|JBJS@1BT@A)vo8hqv<-Wb3bG^#EVc!ieyx7?|V?yGPt-E%LHAz1R^g*}_=6HkhiDdQed$2#_m05LMM%ty& zVrUIL-8OdG1PxznauAa4o#?%_0Og@7>Y!(!+5}zz@~c@SRHV(i#9|V~>qEcVa_Ia( z;(o?10e73==o1azMa)r&00bL@X66dik(cG{msINIqwK{&m!NB_BzHH$!);Ch9QcIE za2`PH;bgMd-DB0EGBCdTWXF1M!JNHLyWca7Kv%Z7j^sY|l8LVQnz8UnNnN0c{-+V0 zK1lQuSG~@TGLxme8evrk^3m(dL`yDm<6w~;LBIRib+D5oY zC=&J0NX8tp&kPTA#8pY+t7cm7zqf|izl1rEn=C{|YL6LMl`diP8ywL0kuAugYaF-{ z@pFd2wfp0sE=cJn)!;Un(5Iw4g-hq-HxNQG)31!JY}JxjbYk|)Px+E!TzX}hAssRH zU3CSnBM^7eMMMYjF6&MvZ|NIaz6|ZYyOFFq=~9yu+H(2D#^hzqukR#Pj&gTjQ_NM23M!?{J5G6FlQ#;-Jui zZ`sGlK$s%6hRqC47EZ#m@kP9iGuU7>f)6}EV4#U4ZQ<=_z;X(82!pfOyAetK`` zY{q1ZPq1bo;Po&D~7Nff6p)yc{|koe8@iU-|mmFLoI0k0D{I$c;xX zRyD9GoG$#4S$^!1W0~`~&SOU5XmDIVNwuVa+n21akA|A*ttqM-vxN9Gq~f5Y77HVg z#l(vLF?MQ#a!`GV6cOm-Lpom$atnQOGLIR|FHxHXfpK|jDBDh`I-yqeTviURm4ke@ zjpo>nm*h<;Wm0@yKVWg1_$Et@lcAyJbw5FWds@evnqO)~`-7OLxT*yT5(?TFQ>j&{ zg~s*#UkTLPh6^r3$?K`dG+L)L%*&idJeSxGZfNCNa9Xvq-`{Gzus!=|{WJU-pRELT zbU(SiGikrOMhk7Hn~-|Qhm@o|W|vM>T+k2UsMP%a@$I6}<7U>Y9k|)YmsQOLE2erE zJwTKAzVl^<4?9$@I>E13pu9XCZ@g$(Hif#U-PO$mbJj)J{*O z#d81r{A@4&g`7XkYj0XL6d@Gl_D|OiP0>%xK{^O~;TsKoSdr8n!l$Ll&^KtN*$Y?}=f6VjP41Xh zyHY~l`@l)Ic#=o>IDB(s)p={Rz&;RJ-Dmkh7+yGti9C8&Uw=@XxC$D^opp|bO2EOA z`cL2Ly(azNhP=WE)eXt<1p+!eXO4QJXXg1N+oIft4!5LiI2F3QeAzrovBA26*ra_) zPcNSbpZ@Tvix4?7ilo_#n2yPsZ(p)fq;A+^39Cq6wJjsJM5255&c6<|(j*gQx&7Fy z8v1;qWsB+r;iYxqbJ#6FIc@5FhS5MZlPK?@WkW|@$QAiC6bN_6CciePO{^qwy~;AF zU9+E~(8eNOOLC`G`8HQZo3eWFeXa(CAuSRaCSmfL|8usu9<;smXMA;T>{)zeudiVI zIs=VsLYu3iEgyYXv*S1-mOR0P>su{FHCJ}W6i#zZ zIM;!>pXwrsbi>$)Qa&GP+~G^BMRg*b$rbT*<6pmpbjzyJc(*B%p>3HJIx9fK(~7*Q zjgN}EMKdE%R=Lum@~g?!j;|}%zl*5gmLkj*eqB*A>cQf{Z0q%TQOTpTrb?5EBo|*6 zGLa~~;eTQr7}r3-o3T;oZ}O$LIe$6x=%TVI%A@2;L3XO)FBDgs5h@fr?{|o<_-HWY z5N!}KN(4idtT0r|09^npWe$&+pxX8;x(CkCzwuI020bJZ1~1@k^6f!j+!ES^jae~) z1wfRLZ$s5h0#(%~2#7Mow}RRMpYR#tsgpHd>rg{}ekR8*_#E`%0bV(ZF^WZ+K}bT7 z-TSU}la2Hzd7Qd5!RRMj8DA$T1dJD3I-ynjpyBX-NDs~!Ag5ARo4yo}BpeS?vb@KN zlwJnL@F(64W?S6louKf$52CqtSF#=}LWCnMN#I0}eHX`IXJTXtZ&BCwdrj|Q=Fq8OFVOvUO*h|MWOg~i=|KG)AZn4O0ly&lg^9j4!Q z#n_{p#LZObnlQ=0yK<4OQ$4IBKWZL!T7`G>$wcD^c=9JTpA#UC9grp6ImJ8b-2*A< z3|k{~hZE&6u2&j2StGwIwVTzu213>7sZRbNEsSV2;Vu+(6ayQ75qi7ft~-j>V2sI3 z5f?b#A)lEhsoWAGRO4ellcz6_wvgXwmCke%p5WB6;WYVW_VmP9ajC+JTt7^p^NJW8 z<4;FN`x_&BV%MMi^M~u~v(zAv!I~5~z1%-o(fYeTA1mvmWrg}IpLcG1imHpP#g0C1 zP01g3`ZaZS;eUSw0~ICsZ0h>8fm;o^>ER$Rg17uQev{5o|A?DzqVKvD&Ig{G0>1?X zgpJR6rC8C|IcLyx$~^IDKpfn-;9G&gMb5r$8cKBvodg-Gyq8EXj0c$-b*`MH=CA!o zQnnZ;R7WIiRD-Jzo!2~_@vp0XPj(BQ8zbWE@w|XQXZ{DWWW0}9=(Mpx^$<@U_R7_b z)-=DkN0>IiO3GKeH(+Ny`!xMtPE(#92-yQa>f?y(;~=vN)dPu(I{PPSjK{b4>jMEf zzX>sf!hpyp!Jkb|XaTMu=-e%$v1P(lCh?dF_f zIL-rd?%hM`4w=d$JVI&s|3Y+E%yMURh=W=75_&C5_K9Vo$SJi-3K?o^Z$KB$lEJ8TK%g6%0n!r8DoQYDI)yASX z2$haTC3(N+#p`Z%((lpoF@)$B;Cn;=Zask_Y&XgNovXo3u1w@{A2ol z;d~wa+Hu+<3B^5M^vkx4B5F=7Xl^bnzp$>4^&)^%0e&Xvm!vT+3f!1s6|=H zx$iy3I2S*xsLWCkXe`x98?7t-mc z4-vSb7(@q)Y>^z+yqRx)C;rC%fCdApio5wR;U)u!j7#SuQF!G!iO9n%d8t^;8~GLX^a|{#z}ak?Sy&Q_7UEWnjzfh-GlZyI1nQ&BU0ECL5o2?K|OW?M=4Q3 zAK95U2_i&x>rGRON$A8kAWkFKnvLKAkLzi%)%e)nPzxYSdipt`WPSF57QU1 zC@w%;QpFr#PAtO@4oKy?kKJ}8ZaTs?MoZ5P`{X=hR>DNsdR13M)R2Mi6$et`}J^{DxExw-Esf6)RxOoFiw*?MYYl|!ndiB z`LMwvu04m(T>K=iynrFw|C_o73V73SK=gtVbM=>AJEU-I2Bx5TNY&wX-t6oLK4U#w zv7modLPBojj`Vf%scC}vZt(+6bfuV}#f=yrqLr?)h>{gu^r!8#oe*akhsmdV%9#&z zer~UT@Dj*onWr*j(d?*Pj_5RgK=_3L;eJQ=U0269lkCu;4*_Ae}6>MV9&qnf( zn6W|EHB;)k^9YEl;?&8^b0(YIKEdz4&i8g9h0Ho@iVuP`e*;ajqIu=uME0;ieE<8{ z2Fk^ul~nTNx>r0_;lHkdlOEpM`$BZE%5)UVihi!vQDk!LNSv7I^*;J-2}IOJJi_}s z>r|FbU?M!bBl%mW%X6VTh0alWypm1S?{oCXY5V_VPAW==1sj&VK&p5eF&Ui-E7Pl-u ziaB#XLgCd(BsY^2v@HUur3*glyw zYs|vgUz>Dq%*hh|gs%x=xhG3*uzwMp0RQ?IGBRY{$F>H?A*#!jZ*~QI5AgPU&WTlt z2feJtN@1aM<|{164R)545? z_h~Al;5u?~d0i;?z19fxmQD^Yo&0UkbQYJeDf883#T>aLa zdK7;wf$0^xh8iU-x7b8X^2Ys18)IbweV%r400-@rs6TEn;<#TfS@E%+1-ckFL7oGb z4EHnLnDw5*&-vw}^tQjTqmZcuf(0nWAM;76u2NEWWE|);z!C}wuF`fc(+U2xNf2XVC~&n@7!N%yI|<_0AJ@SP&Wf(CUc{GU2Oh@iQJ5zdkx;#BD+E01_u>R< z><=CSqH$dCua8*xL-{^2B6H!qdp~ic^#Zt3lmvDU`a*V5!Gz8s{1K1p?Dp57PkFYY zaHWZkEpi%T!(l&PK1?OC_PJKk1%KdOXT~J*mM@POS>`f3Pf+BlC06KoZWr^tYt@n9 z9?+#u{!Xlqm>UfwFb;IAPt)89_4>3F>TM1{q{=7g(lmy>h7*BH8sd;4Fv>&pM8)Mk zZ2sZ#1vyjUmj+bf*S`HFzS1~qSsbOYm7?+%b^hO6_C%oHS(I`aLkb_3J)9pTE6y z77M)03dp`sBCus}6879O`|x?~{Ppa-sM33%ra^{h`?*zt!5+XN(G)12bEkW7*A!UE zWyxvr?m!wuJ(OO45*1C5Ps&h~ItPs+pkB;Z`p#pF?WaEu1rdYK;Y)!uC8B)~fbU78 z@94sJamlE97`qd@1^N*WuUqC+FO7s<+F_WI07v{n%u!sDc<3644_ravi;}!paCM0N z++l7BmsE!i1tOZ>??^K5+%K7#l0awp&yVs%T=wdQ`mz4=(C#9PId#SK3D^1|`EAsT zdv~`U>3>386~Rf`HQU7UUl3?XV)}(Tj|4m{$of72+50n&_hiyZ42X-&5pJ}b9s5I} z_GXZFV#K{HXl{HTM)lY=`nZZ{twi-okcETDtB3_+WIL;C{9*Dx_kHx}#+;SD$n)L# z6Wx1KM2p3bLNq6f%X~xwysR#22iul1$-1Dwg%DyzYQ*SCtEDiBK0KRuF5VbW;Bhx9 zCa9S-lt=X7$H}U2`e1wMXf2R%>DftP7Io|%mpyr(c2VOURow;W_uaLUm^5*r8#Ul3 zGK!)crk1LcD*kExCOHqQ_@o7Ht$+ z%dsqiQ|fiiEFoxt2s}o;IdDPX${tbma*v6$>QnN1^(Ao@bZWwEiUDJ94WnxbO}Vl> zMfK-HCAt3;5Jy79ljv(iD;8x;Src+u(nOq{X<39`-!juUO;mCDL`mHt;6YD7SBUwb zq5t$h5Ky=JR*%@usGF~yZyYavZ@Yd4ozJ74b=a9xYR`b|XA94#l^bWZ(WFl5Q3McP zoA>Xiz)hy3+^N~N$Kz5!=j-B|B}1PQk`CIaxrpr+6__K#oDE@|Y>CR}9ennJq5o|z zOk5=nJ_wh{>@lu?+q0nZNZx(K_{HXheF4kAuRR@IlR2D5{wJkCF{_n~Xv70!nQE|6 z`MZ}FXR>c{F{4zrYS@g|w#DqH;JB0m{^F4LR1d|h*|i4EWQU*H-@yenH!66n#S62rH7nn_rg zmwg{l#;l9Vbh!qXCI1G9evJpPf}6O`SYI&pQz-BdFHnt1`An_^qCQfXD$EJ*CJjvH zC!v3R>3q8bH2OU?+GH6OT%olMBZT9rnXa&dEcQ zQO5m``6%a$!AkrdL!;ZkOJ{j9!b6XX_+YY$OX^YZrBuA7arQc4|8ZVqxkk5g_1dur zDf;d?NRsA+q$1l%BTI~baXjg1!qR4rEC{;FKYFVW>QF+cyU}1Q8(1 z*9Luycz5es}^*&dA0z(ewI6Cq?9e zMQo5irv26Lfa9(7v-V(Oa=b^YBHpizf*43eNRdvP(+l_vrCFO8TPStKjJRk{hE)NQ zLDGBhwgH<+b9vrv~`m*xTI`rtMt_q}#KNb3MP0xIZOz>&|rGWKTJ+`CY*I#T0=I4BAi6=>JgBiZcWXe;Atn9YFX4)OTNMA5q z7b9>cr9n8D`aIO9xN$;uTH`tD*)%5o>N|0{EU7yZU)dK@SVqido_@D{N!i)BzR$y- zCAM^p(wOLkqqYCLEG~>h7VyxhxOCGHy|qW_BnbqaHaBX=)>U(d&ef+iBMb=+7I4Rp=kKv~ zhPVW$P3cUyPJh88kjI|j&nzl7ooW7E>>OPxVLjj97-slzgc-K=pIF$wHK9HE43b~D z-Z@)WSFeG~SRx4=%}c)^T*96Vqx=8+oNvJi-Wtuvcd2kMr`#VwG)6}G4QTx!&<}2> zGi%)W>(lE=zHIP}fVhsE6|16FsvGW@FSOl=x!WyhNuLghKQ9Ml1v!^-EU{n^eBM{@ zhjQ#wE2LTt6aW!LNr1`s-2gBM496%Z6C{%&Q$&@{;Uu%gZ_!e-c8xaq{WRVONAHm@ z^O?R>hT&x>UuO-)UN`BQSlbRyyP|RQB%gj~gx_mpd_{4D>NH{}}5>S)qUqKCA{ zJzwYOu`H!_QEWC?EXS+6aNT4by?GqL8>K6bznFMetVhVO3%s&F_uv2m=`ah0lgU64xV#Vpk9JN^yXJf4g9GK%4CS8;VTHgTZ55Asytw>jbF zRPk_G;Vd+!e%fatv=MLY;FVKx7a90AF;Ly|g}vaMSifw(2)hRf2HzeFn%xg!Wcx2Q zeKqzfA0wq&33`7UiRV@*}ikITF(>nI$s! z8KrhxVyT-|<=$t58TI8Wf;n0M)qHOXSJi186 z&Kn#-MGuuJK3|qtjxnxoX1`=Q^U9fCPpP6FUVocnq9mHM|oO{7uC7+ZN__4jant zsEbTv-!hM~!mZUAWQGz%D;EuftC~QaMNxrIm3}%cUktH-&BQ{t#0)liYO3MjtRC7} ze!C~KGRwbuS52G3=UD$F)sYWBK>){NyUkj0=t^S;PZp)-N^1CJ(jQzIE!3Oa{`XOJ zZIkFnKfR8fBiDagy|!I&$O(7!!RUh>)X*@gYJ2SI>2((W+6R_9u4*L|)~_c%!apA| zd)I%u#mP)huWjcD&CbqlY*(%xyPt6DFp^fdWIpN*L5^JG^t!cvY~Orp2jwFBm=Ahl z+ljv`Ubf8N!*u-zdz0CExSpw&^~grvidwJ4 zv}o%lbY@A(6{A}0!tXmQv;Bw=q}w$>SGTH@`Hb6Yw&iE`I(cT4d@pI& z5hDs>Q3~lRkZr?+J1%wJ{lwDk9^H2WlS&7B)=aDU3N;@FkPhQK@#e?yNxmaE$z_h5 zDv=S<*Dg2T2LsQic09mF?^6l?y2RncMB(Ltd6FJxQN`|W-Q}l?cj2E9X$&>OvUy#- zwyhTzT?5v4TUwgWzrtkI|1&9p1K>VDItvuyrM#N;_RGnjCY?Irx2sprY5B z?X0YR;aJHrKuk^kAqNmpi+bt`oJaC;MIqbh9x$`Bv)SI!9RYGn&19v&!is-&y)0B? z2i#13zD=Ek3A`D3%DpR0$;oRF=F!=~K9KLm?rj&u}QP87rzef~wHb7R(bqQ=@vM3$f zYMyY7xAt2A=lDHB)?pAFx5c14^mqR(3UZLjpaD5BD1T6^p_HntAB6HxcyyhOS|~?E zY}Xv+N(p)a+C4fJCy-2+bFU!b6CWleUZ@;*N*VV>2w5=+5`86~Z1d%o?A2y#vOLG( z>?&@gf*BJMR?~WBcF_DX*zC_QUNHHFKGh*8f zP+i!$sGAV;Hx`>t;ENr8)q14Z$h$Qfysk)AZ`^7xpNOcpOkE)2Z)3v+CnyqDhv?g! zpM8NDS6o!CFO!4%BV2eY*38nnqQ)`Kzdr+kWN74=riT7gO6Dw5+vzkvDK=rFH@}Tt z8hGdHq?@223RqfTnuZPa?0ZY&Z!U32Fq^CUhVY;N{@K6woSit1VE2MQunW2_z=!T~ zqun9}BMvSO7NGIj1PLM21W@Rln!UZP)6$oXEOOroB4{WspfotGy`v4X4)TS%~Q?E{UjDFa|rbzYv1B@Co?75=qDGBS8t%cGKPK-^_UHPQdS?n!pE59 zv-lRu=)v1X@;u^B$WoIqZU3vGsUb@ppWgb(w3CbdcgYz~UHYA!2e)3*Twwg-9$fc) zEZb(Gel3~tDST4=v-ZeJg>b8-_ZLZ@u!ag`9ln9G>Vs8aL1K2`+7x@?)&>5MYNPOO z0_De836Qw(e`#9~5v0w+VQpIEy9{C=C z#Y`XReuV71Q2I=2q$Ww!eUu*EDZJw%t$%K8=x9j5 z-}H)G#7Lbx-j~HD$W>nR!L0=KMw{SsYE{byM!t|X@q>RY%0dsfs#*;YK*3I*cepJC zNtsA4`fo);kvQ%s1;SL^mQyZTwm7mrb#~>jm6e^BzMmmCcAWV?r~CSu>=Jpe?ZjB= z0AA}Gq0jr7fx_0)5QmM2>uj|?fOGbCz)<@6mit++C2Lr9^RTuw+aU@0(2SXz#yAUF z2lAeD_KWkiP7MhIumI7_$4SUaC{M_s8F+eoFy7P+k%Bp3(kj#$M==6mLbYZ-k}Ctu z44}h=6f8b9@?<*Nn)TD9;0%~L5MX=`!pMw&>R%>XmB%t}b&Mu0&DYu*S)C_z<)bYG zigi5`-&WHbo;JUiH98rP6({|UmKv1S51;8T`uJnE0Iie~M*=v5l=s@N@KqD)cbp@8TK! z8DTj;?lYa`yBqY2nlDq+FCpo|=HpPgP*+GJsnz30wd=~Ah7*>NUzxWoeCc+@3H`z1 z1c^bc5Y}6|GTQwvmwp?t7>r#67HMOZ8Ko%L`iNPa#swaR+gR;#f#n9h4ULsMKcS#~ z5RT@OBP5BzxCBE=QR(-x6hze_DZGXKhyr+f^d?{nUyR_f&^nj0`#p@13_YQL@@?zM-mXqULQ| z?(`*CU{W*PuYoprnA2$(I}Acj4d=}UMga7h?M5o9yUN1?Ri0}b8_CYj&bZl2>Vi(9 zLVZ4$ABQP-cq`4=WWyT0^?%m~^+?jN%4eKlCi27_;xC4Ib~|OWb`1wq%yHs@Epsfp zLHtF2S#jYmzSC7e2aXUhuD=Uoz|yM_8Aex#eaiEcV&Yc*Q9~9K z{?OeG&NiprOR=}#rp@G{s-4GBX3VjqS~EdyT`$C*wO+r&5~`H1&bBB&jby~#7%N4f z>?MrF-pSBHD5~Yfb}1R6e4E^9{wyzK#Z*$g|T$Cb^)y?7y9tX&XT$8tl<><Hq6ftU;9-EG*xLB^M5 zo95pzK%Iuc=%-W$4lb}_`?U&9qp_-LPUpR)0o0~~)sGOQzPs|kLt06X|{}E$- zRQ<#@&|;^Bg|oB*Y(g0Vah=)6phL{!2{e1*I zRx>~e*`K5aHlW99l&wWNXieUXrG=5oe@!v{l-nU$FMOl_>*oUl0>v@0VUXKqp%A@> zYSEk~I21TIpz)^HO8_YT9!G=|d|ZdMDF=aBN4MFri4B5IwWSFNFu*R$pSt-yRw!35 z9K1xImCxtR?u;E&+*W@qTnWa*fK7HD8lB9HL?mgSWz3$HGdL?g3PlE#Lzf`5TeXE?3hPG0MT=%*$j)B2b6P zw9_aC^m~9Y`0WxZiX7zk^m6HjX9(=8 z=slstHkYXX)Ua=mKShW@SR9|5TFH|d;!z1>Fv&D}NW1&RuPBUiNFKz13NTCw@E&r` z9lpBEB^4q}=oG1-+f2?sgj3Rm+aI+wpSAr_IMMie|fwgp(7i^xWLkFJ0|a`#tYyH^09$WyYCh=#zVUFz|K+ zV&7VA#Q9@?a9Ao^Wu-z11~Cc#FVNgR1s`hLOVo#MEsK z=s?*Uqlian_Z}QPz&i><1RtgFtDJJ(twxulT3Zbt26i6c06x1NMJ#9}1rmkzzV9I``WpG`auV@0AQlpTU)oGGgaD#g z?b-b#XWucU|NNfJs+bwGg#=-48I2*64VLM&p9=qC`@w|B>H0jB)cjXt84FZ#`4dnp z@I)X!91eS;uT8J9T#B4=GKyqKwqNTECWkkyN3f;{NHE4%ND0LUE@v%|uB)`G9?2ez zCF6^aiv-USVH27>z%@I@nT96d2I8$fF|xp~u5 z#%{Bt?8v<1ZH(sjkNror^0PhK^O3=uFtZ|SCBOb47p7Si{DI@Mw|s`8@h@2f`y%bm z5*ij}tSmK1zo8v2Ox{EjBO{>;RZWLRNB~XV!H!FeY}A7P4vT76mnU>Edh~tQ*Uk;# zZaWe^XxN~uBM;Aeb)1)j5+VZa5TqUj80keg5{C20iUHWvy*!Wzu53iC#XBs!K6?4r zxljR&G#dj%OhWV)S7}Ng%flollbW(JjzwNkrUoyX2u$A%iiljb|C}Rak;tBfhn`DH zEm~*Rg;a@JYr@Zk_604Rd(bhJdE)P|91SO^ulQBhiGc-<1%79}-k2*NGdB|%Tfu{hJAKjS94zoy z{Ac5wAS7WxL-`Nc7(O}y@>@HA>3guZMlkx?{Tw}S z&8DTVonVWLApb0^d((4;ZpVj~%BDzeq&1Tp0r#SXyV|;d%7BdzH3>RERnOSZX$LSu zLsn#mkRg9plAyxS)QMX`KOM~OCbx?{$t89mLJi?wuC(dpr!?vfL5}Lf5Lg%`{`6VVNC9{Pi z5>|rWpH9L+d|M!N91A4eIh1%8q!){m2U#-u%|)@!<70egxDo}j#%tQKbUha?P!zt; z*@e0qt7t8Gac7|Nu&W(QM(F&N^Jw{ybR8q(67UsrQUM<&z0)l2-JF>0(WSGvz*R`? zEOiCg14}p%7c3We^WDhdb#@{IqSP&)aDLoPeEqNpf;P!sfkoX-r}Do?#^nLo&KTmX zeW!z;s(0TB!MJC<23!Q8aC&{PeFj_wpjA;(xjn?#OxpUm*h=}@IKO>ZvlmIPB|BiA z{0xffMa8BnMzOphbif`Xk#+3lVR%XJ2(+UXyWHxoreTFyE=h(=P?^L~u)jI6xMvOg z{PLPe6 zdMtud0hY`G!ZZV1g?pS~EQAJqA2qllw_WBrXZo=xwRwEtcN2izFTkhmL2h;%XTg*Wm$15=?ns{m=B8Fz0c_7#N`IJ*>Zzp+Z zERUWyA9o%7fSbRo<^p)gQZfI^T#{y4;t*I_uq%IcysQ#v{lcrn(mzH|vukIUgk&bV zUFaMCS5xAG0XxXOUhlqwZRsYVTt`LPd+*`gF8RGL-EMkajSds|(SC^%QX_vU6v9lk zruFo0-|uN*B(a@aP{v9YM`f<@6)_Hi9iYl+-qg0Xmg&ej%9Q)ICF$XcmNXk^@lF6D zlRRX=d+WeS(#iY}HV8}$*L#w}daV;vZ&k~4i>Mfuk$1)08YSVL7uHt+3*Kql3TF4x zOe1vrq|-w)K7jDV9)TW6fqI@EQrzN-CSaUZu|w# zM~1SkhG}6NQLId?S$-Q?qifJ`Z-rr9_w&n!f&q5v_E%X13`kwSPl@M_3Zg_od5c25 zAnZCAT5OAAPkzSGuuTg4J#v59NWGvxs5*yhA?JSeca#061r3Z+}%bZHS*Tbl@u5A5Fr@ z4b=h=!EItLF&EaR<`_ZpNM|Dde)-WpLulfBxEvePE`bbuHrH`icN8=gNX1M$Nx3*R z4$$H_UgU^pW#jJ%iNH*c&s7dANYGvmQY4!|i~d$Cc@ykRut-@}O6IgIt3d24C|3c% zh%$cVLXCxw6e!+;`b#L3GOe*Qgv_T!S&)=H2Ir2f%sQ+{Ei&nfDP8*Jd@n_2`pepXUiv+?1 zL&M&Qj!(cp>c+8T0jl(jheOVZa$tGgY2LX1vK;+{poCLErA*w&85tx^Xa0gSVw^NBBFswJv(0Zt_B77o*$6> zO{!VnZ`LoMcwxboHJ){^BM>={x3*$mH>L`_bB1dOr|~9~U5tKDx?}JkHdhRk?=K&C z+2C(5Q8o&04om8*S3oOAR#Z+E*og@LD*Eh#PKsq5@i@%%}$4HX3gs9S$F&g%y* zaiSChrCxUK4vn}}zTZUWh%suvyTMw#xo5O&>;kUZxT8Z2y#88A2W+?7-8DN6_Wzl> zvLFcfK>TDxWi$BA2?b*!Qh+nbNkNssC$*}cnb>~y&g%mCibct4&hq1SR#x0@Uq9)j zFG<$0SiB9-?=L7I1Zh8QTZSOp~=oIV~aAG@a+IModxQ^r5cL#ON0qz(m z$O|^C^h88K48}c4PVAFr7e#+BusJ}vGl@Xz&TL=%uN|YN7>P}al~g~xWw{+oPBo?G zqf0bF!CcGcD~h6l@Le4y`ZHH<8~^9R?f-g)UZ`uIfL`h?Dj{Dqeu@On+)+3;zUMKG zF5<5Rb(iEJx2`+9R^RtF(|RpA2`!vC9Qd`}jLRTw91WH9+NP$GF_e;{fNkF3ERTWc z!PwWgmj0wGsxMw!SA|=PFj99Z{}Wpez-HnLQ+Q$d-W{Mk&X3>&`X6ulOWpAq z;XA<3?96EOlEzt5i{dc*n^cU%2$*2)A=jA>d9XjRiE*{kh475x2qJAiAo`Hh1|xU> zm8gnDNH?Q;=ghZx!a+LnowtBubdu+4q`CXu_IY)wt7J_+IyUyZ+V0*#OXZH#-~IM* zjJZ4NWND|PNxTiG2pX1_gZbrU&8f?83I!)S0Ly1w2Y7yAwGRZ~R=I2=!wWz|t}O`e zgU;7)oq|f_fi4)58-&8&|F2p?$;P^?Kmcv_K48AE!wG)i1v}~n@1f>ev-ao?#MnA; zqlm*#{qV6}KZ1fr86KdPQ58C`^i0}Jep=Z@h%JRV8kDN;~p*xo> z15ITf;bdnl@3ek}?>gyk0%wQZ-`=z%#V0xSgT;L#3^ag*v5Y_LbsC)`T0?6iyy6|Bg9i6sfG!3f`zy-DJWI|cHwc+-2V**CL5oAnY zFx`Bny!fcv^iU4`!C*1RZiSzT>ne^14wk(Mm$T0oM$dm3fJZSo|q&o_B96Nn&()juWIG zpv}b+Q!5szoGCr+*-o$XhfeD^?YOC@c-~5nfVzJ+or`!WyM$S^EXG_ou89sO)jz+S z1OeGj7&Cmf?R^1@8EuxsfeEuAC;2L4?D+n^U-=nyy>48M0RT{HKrgre+6xaHV}wYe zVCb!4IX!8g+q~tgGj>q7-r=EQx89Opgf%oC{T1l=|263FuUN-MSh-b|m`P$;t^ynG z%ZalHFm3`8+YLy^SL3B>2vbYQ?)bg^!mbGRqiz0=e;J z=a}2Q=qgXk%f+01Px{?LITAo&ZIhM^`13JCwP@HZD_ZG8{EwX6N*WgXi6%(A5Fro; zo!nS`@C39!L?)&_n)t-^pGXc9iZ`T@Lz?`6Ab(gH)7Y^WX3+2E#6*+|)`nOJHD?x$> zaX)b(*0idP{6Jj{`}#;xpQC8jedl?8l~<39kf*JH!46@%Fo$Y33v>|1MMmVP4<0 zzU%5*-P~$u742V9J?!NO>g5O+?5#U@=eOvX%66C%*hGksSM-IU4QAm?kRPAe!Sj( z9lmqAJCu7qw-BJ=C0tiGA4o=6SB|I)Y4PqoZ^|$+GZXvhCiqbNKwi^Ag9U$nxq8p( zxGqzW!uDv&kem`wYXBpQT!~c{Q}{v}OC$ZOrZlt!59Jkj4)}^7uR_3QJ81+Q5434fvsq> zZ;U}N+wtM7+YKJF0|j^yXp8?_l;eCwY!c7EZ{Y+1d3DU|-G7jo!9iC=>5YAOT6k{} zr1x&U?})06z`VkO8ft)IVX418VDQuW+DX#{Fdm5og1_y49m(0>aNA1$^XE_AQ%{PD zs{$ETT#wyr288| zir6nl8bg{16aEp;7ECvWd-cLCZT1x=+GmYFhEGyeWp!u*;fWpRSA|FRJG_6xa! zqGVc?E90nTE|daBlHfNx>xLXql+Q|2P)=s94za2z1?bUdw z0Uw)922)XUrfrufKWbEoh_*l978&*hJ_r3$2tKyMZdbookAD8m{Ycd9bd^iS)3r(q4HSh%Qc|RC z^S2B@?C%zVe|K|7#++B#EgnSie~9%H85Y^#fBWhk1aYwXagp}_E2h6%K1CA4D@KGJ zWzLD@HJL_iBlAQmCWnEBkCkDhJ$|bZj`?I?eVE~D0ajEU#B%C4BXYJYPN1%k$S$I& zn@Tk|A3J^qOAkJPtr;4Cjo?sD)^!&Ztx}CP)F()p{(U#PO7t1!#R%9hb<|&d9hyhF z3l#Y)*pi7sG|TydQWy-?rYB5mTr=c{EFis&o^+knlq0C8T(8sT}Z%>x#w@E+TN>VtY&eZgUW|XkM3yjoj0>nTk<*8 z93u%^8VNd6(_^Nb!_3?jqJpxkWRoo`cZ+-EpWQ5v)pEx`H?=V|91jvU%ffp3GfTublj|7!^8bYfz)OiD<;77` zt(Xc8)z2~OWyKqpP^Ocba|s;B+ey9va-Hsv#`ShTg-!1}*xPPE!9&~qXx~MT!C(MG!_0d3 z3v7mNzw0%%H|VsEr{pz?8ziVb@X=q%T0_HfK>MsH35!CEL*2QV`@g`#2_on(;xI8Y z96jC!TjrR~pr71>IZNe=;#&Ps}{Q10ce~yb3p$;xF`y=>#Mf(xOv_w3Zs!k=IFXK_f|A3R3ckxlnS-F@hYjIZc(TU`jl2I`6N^roeOV zrQu7y0-~6Uau!YR$^%qaW*jS0ZYB3~%Ih?xN;ekok3&5U0`9hHfhI$p(V=30Xh72AP7dQJwoOb`6_nckDTNhfz<0k5{{Fe>g(k!xcOU@`S}9gDK|mHc7gYwS z-9i1U(zxY`e0k-~?chbq74W5Oi4VeKOD6>t2rKPJ-o5Ct3nt&ogGMJuNqY=R0OzH2 zYP2g<|KWi&H2GYSlIM4k&A$=6?q^K3Z>}L?$XJ7xqNX*%pjqe@wAdF#q@!R;P@xAk zAbXDhaBjce;3?4i=>ziiL7bn?{5xgnRjyH!V4@uXZX>r~I;1YBXaT``h^DLeIRbz`R{IbfDLnLLy^`+3 zM#c*H$w1gkh_Eij&BeDi_@XW7teM{UZN75Mvi89ESBdl=U;_^FauJ@-8fM6~BU|D) zdN^C&HL{z^j?>8^&uDaSUJifv_tk-@=V4dYTHmU&hw3nbS<6P6Nr0TnhC+Pq8BS#1 z?$tW(t4jALK_U`_FrsPwwQje&5$C_#PMJEyAXyIn0TSZQy-Q<(%m-eC8BpXPtY1}c94>|*8mI*b9G%9LCs@)_^%*(qp$VIpTYGV?c z>jM2uR(3|pZpT+Z3k(6oy_8DCL@Cv9bmaRnyNOcr(fun)O=)!DwPr)khiL0)zp(fQd=LGA@Ze#8J7a64 zVHst&<}v#Jic(;x;9kIe%AMt7bv5nAa??4g(UM#4=_Mjv3owFRw=7V~wxw&rp2Y&p zx-^Ed_4};-{E0N&%p_KIt7%Q1P<1ti&wtGZU?xEA$R;n84DqoF&xo8=4;DfNF1zzX zfb_!dvo3R<@|AK*RLz6qWAr7BZ(<*gb4CFT4w)SV&9Vc`~<+GHb<2N%O?2N2M=tI{J(zNncxQSVm1nJVZUGt%9R^8Q9n~A48*!8?O0x*npN1}wv-|a$ zUX$|h+)C`Ecw-WXPb`FOOp+JY;l7xQOpe5OQ$bo$F&l^}VsSu7-qDFHklSZ-Pq)6N>(l}1;D(OCk~Oxu&Y#v3kV?i zy?HQa`;jB7*tpnmSzt_B^fMrF83$Hor)?c4V(sc#-mKuyq%r{Gx-*UU z_ki~l-}jH+VP){QW8)6}Eu_Ql(kOp+!elI?IjvioJt;+P6(i42%%%86aZoD}467DatimZF52`*pdov1%Tf-aq$G zS5yY>!!F}v4lG4ihtI-2t6MKp>l;FWIh$PE4sh+oJlr@B37*gY9`@h+ZbL&YBSp`w z)~ReJdC3rrcg9|hRdDDh*M=~qPfm)0vPI|>JmI#SG^mvPV6lN}KzXw%geI|Ri=eV$ zQ5%u$obG#2!IBbN8&-T;q$#?MZxucg00bIFB;axu#;GrGtn#9A)GN1xLItaX;t+*7 z1;78a>%7Og@KVao8p9yOoMN~rt_p%m3lzgG(>M)Vd&D1E%1t)B$XV6Lglv5bhMb{<(G1+$uK6W(AB2S29m zlcw^n2HK?jP~8xr0gw`ALg=;e|Al)_5D76tT(C`^^MbhY&EI3LCNk=->ZTPq@~(WB12J>i0OUPc`!A# zv5_Soa-?4Z)41ug{Df6s4I9joP8AS+XFCl?zhxX~2R~}*78?Y{P8bW;b}qej^^hr2 zwUvhVE`f&k&xReC4}c8e9nEaP=7io{>Ooh8AFyw5{}9{$5w#(JP@H+6;GSBPhc~&a z?+?Zt^e6}N!2M*1!|Lt}@oWzJoVXOfrHqx&RY*uH!FUhtN==r;ey0H$$O>;YjSsjB zDi~x1LR1uf{GB|$bZe3p#K!Gmn*7BMVvP}_P77;~i&ir{L#EKa@KbAxvz{=kH=nFg3>ym+gBGX%I12gJ@zE5erq6Xc~P9_Z$jn5 zB9Z9#5odF4=9Mf{rs&zeD!s6JaeZn)!-EL{Ho`E%_M~qq+#?EZ)vA@E%Y(S7940t= zxE;eRVMGU+y0z(5%pB|)JMQF%T!BqsCseC6JYfX&nK%7QKw185$+u*fL1XY-NRm9Jq5^5iup1CK$|$_LCJG^=xGdDJ=Nxv$4vi`%R#%0;&W0 zw^qInP)W%nfMA?^pm-zP&ghXeJU0FC)`Sh1PfR*m9HYeKpvNIhU%f7-LOZBmhX|Yx;#V@_h{u@z z-#=X@0M1UI#{efrsVp9pq>U8vg6N~xrGx6|hm^zI{846Wu^$=>gmCP0z6iOG#EH^0 zEPOvWxVT1JHNLUHQ>Q{V-gxqznTZE$@wO1W-++~nAn?`;`70~ABNI*?z5FKkeU9nD zcMb43=4T1WRNQ7+4Q)KH0u6DwFMj*(*h2TP~$jZd(AA_IpjzwO~huR%}H|~v3&Ie>30GQel8%6z$p&fnVp_E_S zGMDg}QsHzq6VvhTAfnzxqnQi=9#Yk^oJ_@=*K<%_kNVgNO7#2CQv62k6-}+>C^L8z zi3>7Byh$sW7xjR{!s+(;?2eg_hkh=R%gWeG_czO7d2@^~2%d@>(TGZ9K@?+0MIdoZ zvJh@k5YwMua?izT{t;;-c8(qv+MXn`8flCOAMHs|1zS@vAl&IdD2U8bzm`rlL$v5e zhaOT?0Y@{f6)J@3GGQ$mY9?2|FH>}=z`0-m{=OndEXL&j{=Pd57$rXXK)1yi%yKJMqx6+ZpM1B)6%GGi<>$;9ES{j^KGh!zCs!^PTiMrlrz(Nw1ZIqP2 ze?&MqVgEN^VbXGz9#%q$rHVggEBkmaft)nF14ZAqBh1CDrYTO z?=-W8#2_Zg$M%`LSQwtY@vkOG!F=gf0=KK9K-s@>Qu2nZjG^w|DC*ec1Om|D%IT5Q z@)&L~A9zZNUlW#s#KK}BAH9>Hb|~p^O&R4<==I4KlX9aI=fO_j3*>;MiK$H`()ybG z{VI=to(v&#!hqo71^W(JL51l+woDDi7JBAtHP=Rr78EJ!a-jP z9D;c;`iiu4;pg3}q5QEyM2LjG23g|5ssY9zKg?~I`HA($VR z-NWUu@1caHgsyU&@af_~NR>c-QjZ!x6A0#oIw0)YPnWY%$XF~VFi56&wr}S6?i-3E zxFy75;zo5J9oUeWs61R=R9sA^wYAdAt}2B!C6}B3!cU;)7&3G>GpR50f4DPC6cFUc z!%eUC>I8{5`F0%Nc}$EgOTtsc&M>8zMjB{@ChknwiU&-zFVeM2&z~A%B<(N)y{GL7 zQX>9}F?n0izWQ?X75=M0;UI$CFRE4#G9YH$Mw7;Tms4h30NeW252+JDdVMJ=j5(;7 z{B*8h4khyFnJae1S2HVJOyx$9yg##xfQqKbVOUY6+UD;mVg$^uGw`u`G$kjp4Z8#B zuuQdpERL@`C~N+E0!pU}EGdm38B?xow|tvTM?^QLI-lAc4QjU$mJ_EZV@;n`5XN*{ zin{@<@TF)3KXHL*(y}RdVf?B;1jvi|RRad52@cRn-L!`JoXiy1*s7U&!U$VtQzDQ3 z!JlN+n>&N~@ZxjZP_^U11;K5sn8A^_(G%J6wZwR1UMIb+aoc4=*l2M_db~B4;n!VH z*rNSC{;n*;UcWax;twfyLG!!b5Q4QMQ;%=H%mSRqPmNo23+o9cK$s*X8JE*7 z2wa-gIRvU(YlNc~G?|+6Nv*F==O($_yw|-56RXH%b&><|oAdeglDp)RN*lfe$3zED zgBI9b!`mC+7aMj%UsV5@2nW{;Nx>pW9h+>b6e{ce5gd_b6K5=nd4B zHu_fFreAri2+}{n)`N{<$D(119HoBG`!fqC3n&6LIyjn%!>28(rO%)xFnOU35&3}p zY|eX{hKBkXMruu|cvjAC%-NqCI_S0sg$oICu6&+&9?cuqsyVUe9h^5!sqtO8ial={ zN~dN(gAGq&Q=*uO_JGs+88P$sT}N1`uv5%kp#8ivvQ$fy#GJH&IH7%b=6zjUgo`?ojh=>J3bU0Q}pCJwuZ_IM0`L#L~iG4hEzdan#19%f<8}eizpQOMy z`jB)r7xIBYDRs?}P$V6V%1xzQFtuQ}A8=T~3s`Wldz*^%bV83|`#Yy84LG8ip@ZLs z_69FH%hp}UkqozfuI5zhQtvQp=BxKLd6C)Rw8D3#4vxv_6+4qtdq2?Zz(m(?4e5*g z&v9db1aJctNuy@_!bGKS%b3z>vQk%h5qEefLP!ztLVgYKvrKZ*TKx93;qWaufy5Bs ze^H98=D{z*JZ#e%4@K-`f%MlH0fhP(yZ}PpVF@2*lEhZ2R;SDID2idTf*xDJw%mw^ z9IgkDEY99Msv0^KV)pV@_Dox<9mVwvWt=tHor|=|fI;)xzc7epgA*=LZa+K>{rhb^ zfassk&nJRa^PpBj8ROQ}Olxv^Em|lX)kC2X^ACHp;VYMb{1AjuIEjg1rsyOEy?W7@ z=yWgGODH9bXjQM8_@NX-V+mxYBmomo6H)&?iQh20E0d$R=CmeFzV!ie^A6;2r9+xq zJVUgxveE=$B&GPB!Kw}rbG4Q~z%<^LFu~q?Tv(wxAl%ea#54TKS3NVsh)mWxn4eU6 zg6;y5!oSa2jvTRdwn4lHyC=a6FQOUZi8AEvxtKx(IR;a;EUNeD zIxh}*^ypL?eigX4y%;`sb8vf^y$hNgnQ!2c#!Dym68ay=0$^B6L0#_|@$ykEmFUOO zm~fCH68$l?7S^yWx`z$#e`d^hWO`4W#?5hfUF_GVNJ^0c@#-vPe1-3R8MOp;@ZD#! zqxiU1?fplS==T>Kz@@Y<7^QHkV+63-FkqIicxh15p+}W^2v|re<`s=LFFEkguz3#J z=C!S$?g{@S(+2xdWhu=kpqiuHRTfYqJpW#Da|rtef{FHP%Rjhgv>(#YU6TGYX%9pN zA6-5`66Hz@U%0$gd$FUC7Ig;P(ZCYyqwZ(YC^&&~j4UGX-F-WWgE!PMy2Y^tpkG@n zzu4AIC!dt=`Jr@lGh?z5wanEh;M$qfXuEWGQwi(f{}zK&(8C}+RM{PUHak!rnBH@St&0r9fuW&{Tr z;~q1+;iR7feklycz!X!ZECIufIyeZrBbh#hCn=4HNOz@GJ1CO~uW%t$fFwXc2VZGc zp7o#^FI6W;0<2-G(BwMaNI{8zWE2`Gh)-(0N2qa0+el$e!ZhKO zbS&ot%{Rffl?(}un7{958o;}JaX$fM%I`O4vM0 zJNMEr`&ozumNRa+Xvm7jMT}^AbN;Moh`fk};eR7}hXeaM(3|55R6%bN(peFH4>qZ2 zIw{#3hBD1AWg?9W#mD!4tVuzEQ|*(y6A}{16+{X!8%IdE$C3s_p)A@m^6SowYk06< zWQ3lqbAnLB3U;(x34}Vw3Y*5zti{jTT`BXfA>c5aZJKevBc-r-R>l@HzBe2r$bsrZ zP}v~T$14+0N+xX?((vM)lh}gVj#rhoP!~$&lxpOm+`>fs-0Ta}eHov{fuyhU=IFfT zNusKZGr@8vhS=mpCW47q!-I26Wly)?E*T=&OD-xXDxFmSi2(d961U}yLy3Y`6hCeA z_~{+67s4C+zPLF#MFd8oZ3aLoE&Dxc|K~sf6hza(*Cn&Rq#Kpvh1nx*!RnrzdKi8E zA%cQlyKX)bN4%a`#Qk#}*mbJn=*HgeL7I4a$1?j!!D4p=C45^#1nj3R)_HTXNf?!( zj?YCHKdztUFJraZ)6(?@d4jyMDdrUYRIaDujt}wz^NA{olfxf<4}2ArlpsT!3876p zClqZ;>O)5jZhTdFg6-&lLyr5lOKYzF5_2$91mf4rh*JIdxg`G({x zk_tk&?MoQ^Ey968MOzZ`?^|M8BQBcX|JZ}#3U=2$+y+rqb|KVu?{X{*n^1h_Y62FRn zv(nTxbdpxYs_);fi%H4v>PG7V3*T6lsBig42Yv7}kQ_X!hzqV^82nJRtcfOf+H*3y zET52{7`3rR0BJkkmJbdApDWchoZ18=rBGa8=`h0M-4(=bYIqy|x|QVw37p7;|BtA5 z438|_wzfM?Do#h0bZpzUor>A9)nUiBZQD-Awr$%+C+RQyJ>S{qdj8jsy4ITOnRAYD z4=aw z3b?MI6j%4BnaT>+M0e6}9}0!w7-0vbHQc+?c;3$9fehn~2LqW#NSkUfjLXx};@*PN z@GJi6?j*2v5S3FNvhla&zo^oDk!u0`4S@&FarW@WXe>Nsc%v^=2g#I6!B1bT%Pf}* z-=#w$*`bIZIaum4f%iTxEo>O5n~A0oCKC^q*un5ZM2Sy5>kBy!w6X@9N-5)lw+A9-Q?jz6Zh*ax->~S zL+y6f=EjVHB^6ckAA=XeJ{N;d=zo-O;#U|VAY#ek^fVZW=qmeqqLu$($iTw{nmU$p zOrfmOE}B>wi7c_V6zL2Osd5Uk`rWvo<;-pjLHTn{u_Mv2smhjy1CrJ(fQphy+-~pO!x8zp9rXv8ze>C48`u^KI zQ$xP^<@%SIA1wO1LE##WsQuPeJC8AGXd*I!t;BhG-yPR??cJfJKC&!e+j3Sl!$oxKtQAk$kXpIq*TdZsAO3|!mK+^RJr23$!P+ZM+ zbf9k&=Xai5iLYx{Xnr))O>N+@sMyx#<{YuP`#Jv~&+Jf-9oVdnQ!Fb$(c~{2zv^nb z6*}<{;he$H)vR7wqi)MZf+*BmDnxbU&%l?>)Q@IP8#$oNJOO*CmTLBA>DlJBg?k9A zUpv!OE;BK!Z)INN9xMTeCtmF-g_$)Xjp&$VGeO4z74vFdih}vU)J2GK_WXZ zYqVttl>vE^Z(%YI?;BEMP;$_x61I~OoV&PEM@~<}@W7)YYLcJ`+)zFas((YssY1O( zqgUs1@m9tK=iOP6+mepxNv?Ue?B-u5GpsqLfX5>FW>~@QJNC}>7x#vBbtvNCKfqHQ#a%dc$w0D|TJ;P{mTW}uLV zlQ$gf06}EDeZ-O~+8rfun|BVq@ppDPnQ>Ykj~JP>u!D=Aysk74Dj>pr?ndM8Dw!zZ z;eS~G{rP&E1mdT>>%H2Y2A8{hFjs)h(60x3-qZC}49vl&_~hq^mU!N*lS0ZY{KD(H z45h*M5}dwA4&okMiJNujxGL)6Cf{x29v{GJ6$yJ&cYr{7=1 z$yM=kpy_7EknIAJpd!fqvfM=%H|V~16) z!?SUHkXeaIvL(GVvyNg-_?=%AHd87ncuE;0zHu7O7rS1Wg+HCTFST1&YWwAK`k(S2 zjNr#uddwLaAg(9p`OwHzMT0=RFVaFp^9RdJAF@&IR!VGlU(H?Sihe7usmfVuB5Y!M zT8bZZf;50CK>;;vN^>Q%0r7Qp+Tjxawh=^dM>UZ%h}Bum8|sD#rE|a+DM*wC{4O8N zcpn7^ak5BYKAVbnH^0LflP~e`x`e84Q8@CohVPiE#riFCwbe-yl8ohSJC8fXPW;&X-#|Lp2z>?cbzTLE|GQ z4ABQ1Ry9pTE%C2kP$Iw>NmrGJ|CY~ZyF>unmjM8Bgoqh1Oq|$x9oDjj5b}rryRbs3 zy?7A$HO8Lkeo;-e@|YHq<;BLEK*WD3q${Yp8y(9fnr&v&zH);tNg$9145l z7v}CUtaT{W`y4<~JV}

&4S2Djtj`F3++s-^q2&s?p&n82Qw$8<@P2DDkl!@{c-jbds37Z zE2@Tb{i*Hk-V_bTEAm`#SV`wnE3GNbNAy^l;x)8;5q&Uc^Mi{+0mHZu`8^|8_>F1f zS2zBr51l&~1L2ujxGHhhUnT1F&DBOBdN%4W>H5`sI~DYyk@qcghCat(ueG?yJcK8I z&XXy=Y_DT|Vt^6f=(E)8W5{#+@6!#?y8P0>o zNLNF?Aml98_kw9^T%}<30|(=4R(TY^nP#C-MVlpKXEPAyGQQ#ORCr~(#hI(!eYR5G zzCQ2b+atbSafi9+o=_6O&z?o#0lKGvac!6`dDuM(VUeXWDiRq?Kjle@lz-WPd-xiO z`1fNDue-mosd2!t;u!gx0|t^ol0MtOQ$)iG9M5^ST*;Nbv&g}a7~>Mv_^?UmvY(4< zL9bA0sj0EDS{4^U8l&#Oqqn=cccluG>p zr645Y&OAvXKBGOATJDOjV_wh|9*-eomLd4M*kem{PJ(_Y(NhBrcio+%yi?9Ns0OkN zXA!x5FYW7)1#2k))YV?!$z#(JUF|RqHQ29- zc%UHzYqfv}Q@g~wIXM>&SP7s=KjODC5Q7dd!S5-1y zdAyn_TK0xIA$QNG%f-4;sV9w!jHe2HVx$uYqv1Z|SGGhE`5g}K4j841zE)=P!OZS5 zEP^o#biY%f4s?}EEgVNCQ)NBu*cz|3m*z3;FIF}N>8Yy z4T;JDCvz(o*uTv;%+xbFJjfdQSs$&7WkW=IQ01j%%j44Ox=-caKApy#EA4WKK_7f!X7(4V&SZ`rG=sD~Y;2T{_nz8$w zoB669u$78%xtwRvi~PLVne7LPJ>39D)Z$j}n}h!r?qLIN0OYW>_CuS2xXpHkp_U2(Tw^!ygf5 z-daxgsuHwln|!GIs37$-9ey_ooCt4Uf^fC@ zrx+)gZ?Ci$!XO(co3fNxgg5~!py7-o4!PX`_6 zvzY5deH>n&_#@?V63_kDbDgyx$E7MGxlU>_?mksoh$(45L|d6n)NCPIGng3LujU=U zS(Sd;m1}eR)}TADJN9v$EdOK5*_$D6p(47dAwRYU74lH}VmKw%t!jdTPMRG!e7@6( zI(>14TvuO%W+l~ih=FL7P%Nr?ZHvEQjBYiI5f!_kk{u#Bb+=uEC!H`Jw5}b5oemQw z4-=a{EjJV@0ID4H91|k}B(ZrwP#}a4kSEzG$H^d`!o%gXF2>PWobz|E{?x>`VqCJ; z4_9+k&ICYIp4dA4(f>Y>ybzF_Nc+CbDHG$?hT_$ex(RJ{PRf!-GQ`orB7s||zYabS z!jCn1$-ud%On*E4MxU@=Ab))NEv?GeMsnjxgrW!KsdDojKO7PzMN#6Ug8v5nN}kc-RJR(@z`7?lFzPbp0?cEbUBsbF;o{JN-6SRG=J zc)M;g_sFskM0YCP=0NrX-Kbz|N+3817?lBTg|MTCt&((j8$u%41W(vyFY7-l# z?-z~SF#CheNEo`d_Z>Bd)H5Q)bqwP$Z#7L3(+}Y~c?$pmFt;0XTSZQF%{AH;XDb(I z(qp8`Vpr()Tb$$k5D>51CvZ1MQexNAxev)nhC%+(uvlyBz-=78=noSK8%W#}U3}0m zVEwxB$ZDf1@5R~liW)IpkTiQmo4fXEIKaH%4va4Be0ZA?1w>~M#fRKBh z5^=*KHd{|ew}NPCMk&Kz-(V$XZ?14YcFHw8qCy1 z^wZ&Ts#XzmN-=R2}W-0vr)tU2(k zpwGDq{{e0R?IK-t+NW@1R=h?Y`5kpmyAs865n5DdAVxWOI3(J;AF|GkNf{RQ@mN|^ zJUripQe)%BI!-;fzNPl3(l%9AYVXfeE?{mDK;?ECWGMYre`+{1CD}?(I&YEA!YRdG zQAxb$9hRHfnIqX-1u^@tMSOi}Sc7v>J7E7irF9@i3ATizGQO*4jQSW5NJ?<}&cd9G z+n;Omd_wyf<(7G9uSF5?O#q8?T)u@z2op{^=jSEPn!wA2?PUU0g35ou0<%KCyu_j8 zFXB7mDqK{;C`=s9gbaF~nnSr0sr0fk)de%K!f~~1a8O$477iKZ&E>)mo#0Zwa4=zz zVw}x#7_YI8RK}H#m?p}<2no?TdWykQ1VJR`C@q~z{H6@lNk@cgq5=NsfJJ4La76=E z3sqwq8@cku^2FSQQbVXA@a9|`++j>rO;`oO1EW>qG+v}dIcfGqf5uu`3`$ZQ9WOr& z;FstjJ{FPPR|c&ihea_SJp*KYteg;$VC4AN7f73#ktkf}%d1u2tdb&Oh0zw#S%KM- zQNP#|j%0n>SKlDtZ%yeo2OqS6!GL0~yd~95`i0%pY*&H>4L#{SjF>XVPaUdaOXQ^w zomQ02s@WBNhctfr49DR(h_N3+_SO~lJci;vafOw4*v2&;!bP-u7#6UxpAUJ3B+zE- z@0ts|EB6~y3Kiew`x{v_yFw_MN3y?o&M5+QOIZjXGNy8ZZC*~8vf4Wn;e5Rj;Cif{ zutPy@OR0~(jm8uyCgg%54P$}^htSt3@=`{d$2&kt=*z<_v+H|0725}}e%;}k2}z7s zUwfrxMq=pu=@O*?LoL#8hNb=@!Us&jLM#}R8^$9pn@RrW*aX%|ENDLX3+YhwK-}#u zsp|<2dI-^+Ir^ilo_s7-SF~Y)$GR}ahoqOW7(TdqL{x7LW0C=Lz(9|P@5+7#KgMo> z72n7F0>6O;F^-gA7vz7}G&fLQtEz-H7>SSMT>^PH(2rN9<|}3-Uavkx#+3!ZpkNfl zZV!%FY?8eZ$`I1;d-q74*mfgxteRRqjonuY%+CczD*T16Gx~$RCe#8Qz?eR`;O);d ztpiAO5NJb+;FTZxwT3lF0j&k4nkvnCxmU@{P=!y2N?_0(ILp-fwau9RWjt@6ZB%+I zsPQVENKXpK^jfj?KKuUCIDpX6^sn3u9omCPw~(dwQEpNSg+>gGfv-wZx4EXvf^Vl;IsXCA@mxj%1?M0LGswD}$L`Zh)jI(dJ^O z#p?A>o2cDTqRv8B37A|v{J{0QZ-c4vKRRynjG_PgJpI4}Lt5bMXV=Y4fKQn=Qg}$L zUfKD1$H+W530)>JJ*4ub9_jn`g8&JIys#FAnIFpjRwX;9{e7YFwP(83;A~Jjk5LQcQTJmb+Bv3%WkUgnG!aKZo{JGq#@st?5AsJD z`BBOk+O02(Aha8TlN1@KS#h9EjbVtRQ#h@x^d`h{T7l@^lP``;7d<9QCW8lFKt9!E zU|o&96S-npMEpetToDFz#TsP7)SaF-q7w~}>rOcqkBX!*rB#m`*GIRGz$^cOCJjwo zb$l*`K8Lh0s8>o!^VIHg+xPFdJw3lGv--}=5%68Y5zcQ)bjfwi(XNdAdTT2&r?Z=s zpoYU30vs27wr>n&NmwqihU?c;wX}x+bi*4c4);8?<5JlW_pGaqQ$ zYWhLKE^Bt0oAo!6kS;XR(xAmb(gRMlQq|fnDv8C6b=+PEcV=Ikp>-e8Bl$(pMHJMfPNc) zasf?y&on--)Ms{MOvW9zd?-&B5VTygSmPZqG&`|!DEoJ*@ z5!l9sJZQyjuUc%v6t1|GJxtwD!O3#MG__osD^A9H%(kPwJn;v+o?ykDx`QHVx-TXw z(tBMP((&Skwm!E*5dM}-{e-4sa4`WnxdW3cXqIkOe2-LDs*lNC3*t0U|o zdfM2WH}-Ib-Q;RMyDRG%O2h zT@Q0zE#-QK+@y~E>EBl#KN;<7qZ~7FP9xUnG2iCoy<8EIY|jL@inEaJN9B{>5C0|2}Pcy zynq~JuoN8I9#-KeQxS4ZRcRS2omVfhGOPF&!p$hE4(7{f5f8x_gEFN!bd1RFag2;; zasSi)rN9o>#FF3;*`RCCcv08xk$s}j)0uG(#w-#)176DPhM8lRO_%S}lQeCL zmwxv6NT;cz1C6|r_+>J6e@s$mm1UZ9%S1rAE6KTocpw86?xj&Djomf0Y{m1UmwquI z;;dThM`CW+d%DNm7&@On|1z_2k)<%`C$4HX!Zp*W%CdyQFlr(ls`LmznUJ)U&J{D| zu5xQZKGe+6Vfe~37LfcH931>}>n^wrMnb&liT@qg)7r;FH~{hpt&#S=QyZW_JeqX; z>Tn9DjTOl|?wgyxSS42wuLlVV=p|vd=SuI2yg&OMR1@jHgqCx2^|A(s2b|o$f~8es z4>8O`?t(qaka_dlhdAG3j$&-X)g?-4wsa3_5E<#a5|qcR;Yb-c3jDt={o+MM9hv{V z^b?`%*hhwlrQob9(|{PitWyy369aO=tBKsTVx%9oLOKLpc;Fi<;W+#QuVnM_KTT!n zCv*lbRvgmsGkRe_*mF$s@C1nO@X7%y)RkuEU#+%ClrI4Jrl13ytcVcir>y4=N0H99 ze@Cs~GnCpJ8GM$9qIt?y>2TYbFNNF!A&M_yq$dnG-JB6GbiDTLln${HYAcr6gYu4K zo%l$Og?}irLlSfYDP3|Hi&0+c3Ti>U5V>SK&;IzK?VJ59CF@dd0P%VyLF|TuORzNMXww4^$9i@WuRkh8yT{6cF zJ~`l9fWd4mn@YY62mCvN97?H{P%P7331K%_kX#cWNCD4n$?|Sig23=l3e&$hU&k-D zDln~)n+NxnCKbna{dXOri^~}G2{H{=YdzRyIDcZVi>mcJb)f`${P~jHDXnp~1tl@1 zq)|Jueqe*nMpw86cZDA;@XkoU1lR^1B8^}RRTPdmLq5qGXmcUPmP}w`){a$IUx>JS zFt$JZ#lq=U`?GAPGp{-GWyMw&T<1_S8&V%sgKnsfiw5rkoLmUPj^1mm(479;`b!{u zqcP-8+iWos#F)NDCmuf=cHfLD(r-;O7{CJvKp?MJZ?lZU;DBuWzd( zalPJ5&~DjESnu)1e3ey*F-m3`vT|#z9K7(>(S;s_=sMZQhIPbcnyTE|S`9XEga^*%zh1SWYps+>HdI9Yz|ivAet8$8AqSEofG zQ4PPGW<9`|@JkKUQt2Qlb%pgSRt`qVajgm%g3ccCD-mWCgLqZsA9b`Bv%=vGz;ZHh z>(mv~88YQzx>iJ*D4m2G#`{;W3cE|@++O_j67j4e3;H}+ zp-K$$spRNSgVvEziK9Lr7f?R@3h>Dg;w|oB@ODG}*K-`If#V#k2waCu?!8}H8n4&b ziY>|tw-zD%bf;vimfO`KEo6|!s9?8Lj1<)5(dz-QRqOPHGd~Pd2ffh}(>RUelyfg>dgE{OrVwd&2ps3;q>UW*0f?XQ%vMyu{BFbgS z6xKG@6940{PfG*x&d-naEBCP6;6A9_Al+?nt9=W$xoTBL@q)3D!XI>0t?dh-!FKb8 z!+4&AehZ@Jm|@8!D)qC2A%jxmCsermc}IRH@kD|tJB~mzK3SEWTI|PuJci(LG}A@< z9fMX?&(Q?O9kgR(IEbSzt~^?9=S(eTU?gCkdtuO8Usp$jOu!q9%>RP&9fsb#3$cTN zT5;w^SBQ-9RT?+T%EnplYO|BV$;n9(r&~}ofGD}+B>V!8PT~e|8+{`~xx(L}VcYfF zWz18c$rxAqoETlQm(jI>fQUrlPWC@`K$f6&7N`H+_{rmg;Rb_zVKv)gIs6EM=G74v#EdvM4s zCF~~iECm@NNf-lRAr12}5WsuY#Mmv*>l+^x&ql+iHZn&i1XcSrFLY*oyCI)U6tEn+ z#D$;;GpgiP%Pva^BjQm7t- z(WoNI%tF{bX}X`kTYGeJ^h$mV;0TgOQ8uGu3$m||dcz6Go_eatY~Md zwZ4CQW~3P)uudM3gzUuGktHlpZ9D_5YEY_}ODOxRXmIY%h*Gf`Wawb%t#@QU5f+pP;CT)Yl;5)RJPy6{Ck1GAVqtlQLhn}VySj6a5M%!l=`MZ;Z1RG zZHem#DAEUk*u*IL%va1lkN>>`A=4}F&=P@I^m+?!nw9ctnb^bOQM_ZSeN6?Al;}sf zI)*v9{JwoGQ?<5ZM{neTQJ_IvQ&Vu378&lp?NGbK4*J@<%MJSYboAi;pqJgvXu8hI zkQ+@hIVY>#=v^4n+aE&MVJ_`|cd{!BKG%zE8Y#$o6}e!=<~-o~_!|!)84d4a6;vPn z!4WJ2sXs@EDA^C4hRuLK?RYEPDY5ft{p~OSfy{FYH@vrLAQKFu<~r|Gv&V1u2#M$& zFAwa!1ZUX&?0J=qW)eA8?}gtrtut7IK`QQwumC`E$s8?>z9F!b{;(j;-;rr~pdpR! zCz}=OtrMk_7`wK1{rraCPl#|uRy6jm*$AUb*0ETV)i&XX$3guf&3NgGKxQE~1clGp zTG>CZ6jOO4{sM6l_0<@OC0l_r8m9%wB$yKRl*xBxIykU-?>c;&gbJd%G^#W4)4K{S zAP7m-czdH+Ys(*peQCfOp=Gg6UzU-kQZYqwBr*p3%Kojsv#3RAbi^V#%~h>ne_LGP zi;DPGCWaJ1rInoH&V3ZMrJth?-PFj^FD3i{{Tf@5kx6Nh6WLxDoMlgbvU`>9icgrg zh<;`c-#wA>48Is3_bmI4K23qYK&$?Yo#9;r(pmy0vlH?i@>8{ZNZH>jBrir3mN?k! zgnuflTi1EwYD5W<^`D)Ud%oXN+>LIwzsbt)xGU^Vkeyv8`7{IwaS7@5WB8%JB(%hv zG19%l<+x`bvhwg$SS;1PMNIQUovCtvv7!4-zpC7{+lxK$J#5=ThX{NNT1yoh9bU}l zeps=xw%at%mvB2vxINajmLUFFiHOTDiL|4%^{`xqj;2r34Ck&@j?${M=jhC~I+;Y@ zIA!Y_=7at>A2Q^Ue5;TSKms@?mjN1Qou`o^PDAygG^mA;R8RHW?WWM%##)R8M@w_v z9}^J_F4ac+q;Xa^87OUeRD!uZ09`CNd7fuwMA}UG=BM$eL|cKo0k{L+_uLL-{Hk1U z#XuvIy}k+3TH@IHL;0J#VVSY_W59&8H(?yKC9%R8>kL@2BSs2DVf}8FuYsQ9v8!>ZH zv8-COdEW+42-%NUWnNuwBq3u7C>Dv(`2nX5#JFHl=Rq6mD3~#mWAMv*iNMU`z|roz z+%Dql?QXgl*CkNu2nI%GRgRsBG0u99PIea|))bu}9CNT{1)F=VlRm%BA3E(+HU+~2 zY&BeV`)|*p9=#IWpy`lsLV(X7)^ zOITx|U6Mw1QBZ9&Ysb}gv*2Xb(j=enzc#m7CBwuRz#SBX312s%+jSiS@at;Sa%D(${|^1HpDn6x1a?YF)!W#puQC{b*;KQ)4KIP7+0lQTF-V}Lj4-tjI? zLm+}Yf`-a9t9q9*lN zj7KAIOEn|?lYj5*Kk|6#MMeYZBGb_?@;g^t8p^Nz23Qxs*fgsvM?NOS z+-utcllo0ERUoz?28FsniDes^nK{`hPTw2ebX4f-)%21>aGy;aoKeSwc@0i*d1*?( zd-q9)_&7{!#*$XYcWCC7ZBq{T_qKGq8E7bx$!m=cVFMrC$QzOhGiBs=H9Lsar*-4* zU!Cg7D;$5HM|;-0sH?T~91|)|Du)RrS<=uP_pH-T>kLX)x>E`})<-2xJ*!$Q$?4m;gK-4Byfx6m*hr4;riei7_wH z$$DmlD;pEr5|j0DXeMJ+%eeFeoF}_m9D67Xe2sJ zqD%YpZqc|LsUxBnpAHkHYQN+^3mud#66l$aC)n2-ONU3YeqjK=XQ1e!9I zCX7xPpP}jISCs$u@bIwRp6XhCb-pIpBDlJo{O!uoz_b4IPYDR5?tEHaxqvQ(an?lu zv9pUBnTrtLODgEW`GXM~0lKxV9cbY8^j`LN)6U0?hKJGAK=nn>_8^uDo3H!hN&A_g z`(FT%R83udGi!1E%4&3rr{yqQT0Fe_^U>+~W*6eQpap+~@z1&UV}%b#04+2C0ovzf zKWCz6R~LK>Ym;D2Iz+(dy$+#KVUqGbZ_VL&$|i~gcxoK!&)@3rX+k#WGg7qk1*$Z2 zj5{W$hfFb+&5rv^vGL$Vf+O&DBl7I0vu)V%x$N_*&N5>FSu8=o?|D)RVKhPT?}6eu z!{=YsFhg3%Z~hIZy0gQyNbc^pMZ1X;In9GBIzExlBZ{vqZr26542M-H3vv8LVbc>w zklP!fF@6?87J>rE_riyq}cs_x$Zatb}E7Jh;2-a4zsy`8WI3E&&+CLz3uzP|w0O=rD^O-)`a=E0P zeoHlo!@qW(j#oOZUl5P=TdCD0e}-%U%0De!Zj%$Ur`cIaK;hlZiPn!UgNy0uQBt=T%#!?GV)soJSkM>H+X zO-I>QN9NjNot74p&Ml2)mk(@{bIAhFr(7z&k`%yjC95@Ws4@A{u_9vae98fiO7MG0slVVl{yd{qFF)Hjq&R(Ox2) zM<+dZ0tSf$r6GxfHQ~uG5|Xm@=%D(Xg=){Lk}!7rxm=CY^Kns~z29A}f}4?$u>p(V zbfRx_9$|~e)lSC!LG^R7JD%BP*z08%hW$G>H$K0cxj5Pe7gIn=5(B0|S|l79Fp@g` z(8uO9{k$u0ILpABA?QaioM+8``I*yXewVk+YUlmZy7HUFHrgXhhPQsZ%j9PA+)Xh8 zva4-PI@9i8j^2u_ky^kEOpe!E+Hd`#4Cg2Y`!#Qxe0LRTZ*cKolU>8Xv5()%f?HkW zgS*J-O&^jrt1Kb|%Z^!h!Yn1%TeFepRFhg;CPPeB^Ak2yPZM}4FK`0Q&3dbmmIy*t z=~al+wxf!{%&0A@Dq3JhS3hM(VWJxl5r%aqM~0vf8-_HcK(TY*3jlvJ3_|-4SHv%q z*0MVqpr=3#G61!?@Gi)L=;J00~6O6YKqcd|R9s(>a6)vgR4$~WU^(-#f zjYIc8ER0AJyxl?%6kAElqBpb zO~WI*KhFH)5mv+vdX?hY2|GT!+5)<3s1MyplqQ`!ze&R*?<3@>@mYDbsx!WE`_>Va zySl#-*QSd8hX7y29h7p-~vaAxwR<%AA|4m&YnD|06w%NmAWq%U5aEv{<&*NpRp<$y6aHrlFk$CzRmo0?@NW_wEfUkj-nEmP9 zQv_KhB^44u>;7n8lYU2JH`Z;z$5xRavAWYY=^-z1%*9MWtRT&BxoFbDQy75fx-cJA5(a7eK$7s;es*4T+Qes@jToH#`tx z5R+FsarbPJ13$eF9y{^hj(8eU6y?DR0|W=5qI`}YOeU`KUf!>O?g?YPPUn6EdTiF_ zB8^I`$H{~e>z|b$#f6IP&R(nR3tnVFyN&h+lDYC~mpk%iQR{pCZPqqn(CbVr$^sqiG+7}mdUbsM6fK=@~>N}oZAPVyC*RT`+8wXl5DXT}Su zK5H8U@##aga2G>s%_Z?3461CVd?f}OQw+f1AOM$z-Fk>$P0<^kg~nxJ8{>8Ox;)F~ zHL>K{LPqWx>hcSIzr8Iw_N!{ia>bivxoJ)KDz#Bqgx1IycwG%@#FE=jZ{r*^L~}J2 zVcvOrKx}CbU6|o3&j`Yx#Q>t1Hl0~HNLR=m?!g_RmoEd`n%ZYuueg^R9c2M-se*VL zLGWz5>2aAT2v^yb%#pOR7W?P!qe)|lYC68_*L+ILV>MhrBP?UYV^hY!3|xiPTJL=3C&6dX@{CH;(XL)&2cTmB^{4a5Zs!e#IMwKD%kj0Fs$4N zEfZ!?EDgI<_3B(^`>MvGbQ2ZOsR>8Sc~882WC$G%3t9k*_d(rw0O~WDwj2ZK={hNg zl78o}rcEfJew4h~u@+*bbTqPW2~by*G_dg@>aRI&cP`QzN$sZu&Alkcqzmm0@qUzQ zzTgBfIQtkt#>Kjl-F9-4aD&{wA6Adm-9hT$6F84zQ;3YD>mb*eq4FMoUPumEgr&5T z6sRu9oI8nlRn*6lYQcp^lle02@gfl2^@R|T(aJm*4e$ay{=Zpmw?;xpLp`gojC0u zJKm*yUR!SaT`LqudB$kdnrfaz6zzjuZfkRP>q6ajdo&kfcEsn=pzxm zT9v~;6{Cm)h*WTtLyZ&|JiY2lsCs~R?O>?bx3x-pHKNJ-9 zbq*$)CRcChI4>9Rt|j=JNvyRvzpgMW9_!j11=}EezKs4+iyNt74|2dOJU&h~-LH{y zZ&_a||JD@uWH513&YxBI5I=xXneVu|zhU&s_V4XhMTTO$F<_^?lo02gB~Rj8!{+UA zbf2Y*sTPa190{1X-p{aa6wkWe5f3)RyoI$Q_xYB_A#FPxqd8Xwh#SCijU8jGt46o>ljS5z~Spu4IqQ1t8MJrOb61(nC z6S05&eflWECl+(GAPIExumCSx5F6m*kNv)0#Ok7wpSw2T4@2@nz2xs-p6?|wldb;= zlxoYM;V3$o$6nNkW5K8x#w7=k(Q1u zO(aDGkM*l<iTHKa@D+{SSJxO z5T3-8M%Jbbm*K)+tW0`^zD|Hv2yXu(2Hhvum)&({+Of8}V_w!8=ST9vWoS-$Zb^3jNhK zncYf#+gMddD$cs&(J$n5u6nU_Q=HM8_6jNcM;f2rQx^e$Lhcd2I#{{Re>Z>nYwPlo zFzGHS=4{RPkApI*s}N6o+}2#SD{b6?NJzWGoOKlYYVcxR#zhlY;p0__k6;fLk+5nJ z0*zy$_W4jEXiygFn8Z%?f%l<`76cexN%8&IH79BI&sTWbaJOICb}Q0N+8lOk)GUCT z4WZzdzd4ih>+uxWnx`=KZoC&%$_p$}eCdjb4CZzbRx)c?BKyc9B^pKbIDC5q&~r(L zVx!$uK;_1N==EaL>}uvaN8uP|`jT5jF^s$u)1!h!ny`44^g7zh*`g|1Oq?_+Va%+= z{Z=>yBjP#|81AM}Yc{-Ll951cr1UowYgSW>^czcL!m8H2HZGDj_sg~Xs-F<9X4*8; z2OdZyQ1y>*dmZg%AQIiCkVPOi%ZgpdpOloEHYmCBwXOI%C7T|+WIhr?VK9v+j66EK zGk3ppftTqm!Y#={c(NXuY8D8{pkb5?e#Aya)M@%i;TubpY4@ku8&@jln7qEgJsqxC z1f1isD^<<^>)xd}?K3%O^)@d+x(udo7xN*Ri`kP7NO+*P|J{c3UmXrE{F476`J;90hoHsIAvi!3JRTeaUz*S6 zT{d1=XpH%8(HL={u#v%{_lQyjbgV5U9LP{ZgBa4=TqjA z;U>i{^LMR%f0ZS~W_n`hLLgXy9B!I?jSt;Z?6wbu(NOZ=tF{ee3j$R0Gps&)|NS2j zi>uZ~w~`JogVNu0l6m8V|BcslB{9p1<5TTB2suAb;bmmO|4W^XxXbC}uty#m`)=Bn zG7be4YAn0i1Um}WSiD#7e2P6@j=u< z2{*31mZnWUtDN++n?Gtd&!`bpID0KAH0h1Y&{W1=LGhL6G<<{u4S~VB>jE$uP8gm( zpgyVt@?`V6SFTQR$khek*+{TjkD~+=!w0}Oq_6%X#j*I$&WuAn;b$xcHO+F0@s1)4 zwXctYwCGu%Z+%xA-7?=A$=+I~jzZn^5Xo1a{#;^5FpN99kWrBVA%#0laiTL z9qGn8ADdZ={960ae$5=tnq0T*$m9(_~q>ueg`P4!7Y$R{j@NKuLs|%z+{Qc zH&DNsn;OTk?5hK*fAmYEUQ3Vse?)zQcb)t5b<#9Bjg!V`Y}>YN+qUhT*l290v3+7T zYHYhP-`snD-}SEf51wbu%$~jXXU2I527I$gJjiCv!;0? zr?NwzN5|3MS>5}Y#!9T+ibAbvOyngCwQ+88vbvq0=e&LMqwctS;c?L*%|>AocZQT0 zNkem#L3?$U`;ht?!xM;%&2CtQ63BL~#8g-Ik{+p|TfKL5O|aDK9P@m=G`)=nJ~OP* zMy&a;G|j(s9g2nXc{%*O!DPE&FMKU>G!z{k9Oc19Hf%N{Du>sLZX~QwRc9@mE97mhg2&!gl;*ZaaE7fOx9fj*0y;b&WmXAUD1mVNV%>{~>(Vbe$uFgn-oJ_Czo z!&CeP*03xd`K$2tI(KC=3`C16Cch>x;Jswbn8SeP7gcccHO`A-*@D_^UYH6=VHCHF z)Rh>5TKpepE#Hkkf!beRfh3sDAFrds7t~mK)W4aV)sb&@B-!ynR{cpW~CfihJW^2-xa|$FQitsk z4Ah=+mSPXi;f8PNsyBP(b0jU_3jKEi2HutL3VeL;Haj2x5<7KwebvJ zlgqxUn3ilrNzvunC{*>%_$(*{G3g13PJ{{Xf6HsoQDfixvJ>sXtmVLVhXiIKGDK3$ zYcN<{-PYw8Y=UqkEJ<1H2(S*RQT#qBF*+DF-(qLEt2Y^7D&{3U)~ZWc!1mC1{1=qt zU94Gqx?+9OK(4();~@@ZyggfG%Z9s|5cK3+z4Ew=F~zH6*BWK!J|&qHI;Y~rTNw^@ zW(D(i_pavUp@+vk*SDpnOSEV?Nohl;m7-^ubksUyf)X@u+qWKD(r5(!wHSVoole?L$8vE?`;i^c7njJ%=WB{u{2})vgf5{ zfEB%_+-|hgr?AAA!Q{372bvV;Q3E`vINe0~Ql9^1t?T9f$5XvN+tBXE%g0;vOXJYMIL>h(FMuH>DOlsj&MvETYinH`!*20-miUaBk{6@z@!g88 zji6s9gZeqT{Xww`rMH%w0uwVb^d?GiO8CfxQ*Zmo(Cdb*Y@T`9FEd|=v`X%$DBzUx zaX`S(e=VD!DX6}Y-AbXsR0Q-K;@guPWHfUd)U%WJ%=7cDhgSptZ(U>cFyU_8*aL|j z&Aw&K`NQ1OU#vszDllVyWRSUd!x5?HB5$?&|8@ZY5lR;@MSnC5@je{b%y#uK?efj% z(DTnxZDchtDM_+jRGek9@qJj8o^)@_lbuffc({%(d3jDTn-wMr(`?*$F11}%dhcGg zwL*-G^3KD0bST}ZMwJxJ51{3+;CRes#JlR9W$6+Dlz>vqF(?gZ?ifo z2zLK@Z+W_0jg0#ylNs1*58^s;B)dWes|iW62BY9E1%}54Y~eV;Q{nqp3(LE-v_mb` zLN1Mb2HMP$`K1xA5VV_&6rw5y!!ufGv3jl0H?H?jYk*VfT@04?rr)XT!v?p#rgw7_ z`3#2DDRG}c)%pS-H#7V>KB+M{UESv~jeH>H=1AS&`8_Jv&TEkHs4&(bi=Bqy7u~L2 z13|n&zSI3|9(0FL6jlXtS9ElQHOv5v64Yhq?Rza^Z6DAo<}YP0XBb-eP(xR#q#^BvTVZK6sXSTOiYHf(T`=y4*V2nTX2)tKgSfZ?eWv5zQ>3lsM zUP+ShrsvtDZnNLFGgq%^;#&DVP=%J+H!8LhR~+&@utdMt)3c{Hs^R1vRrJ>+}yla``ZNm0~9$q+95OUS~N>vG`eC~ZqW-nF#TU-0rr z-oHS$rl&chyA|WwiXTuxj=VgxQ^EKYjM0Hn+g#k=6C40~p=dI4$=&C8rlv02^nln~OuhS;S z9L`V+Qx!_(?7es^gJ^~+4i+U+KmMx98p zaojf{Ik-xyZ|SwgiM*-Um&4(=FgKMF9aCWk!9IOMhGJe9aqgWEP3UGK*3!%mcP^)#}@LCB^%n%n0v(LUG|nElRT_>0CG>FI~hFn3OQBJy@eTco(M@Tm_bgwOl0yRZ)3!Y! z#*f4Mn$0G;TfU(RDDyl}g^8Jfd`&Ww&y}rE!jw!<#lWBOcB#cyD}X zgwO6{J?J^Ze&Io!0QmhjO)}H);UALX_!`mds~UU1bvAVsr&wsolB~_YU2tD|smqTU zqYXfeCdrPBRaJsG`$zUW_)cE zsaBV}4%lp9T2%J0-` zbLCJ@x6cd%>2H77_U1LbNtJN$RzCL+A+GT`%?&vqkOYGqx{K!jhie7{rN_bbRx@T7 z;y)aLSd%HdEj)!8s?QSp5Jy`M8t;9@$`_hW0WH=aVYc+UQ4NNq@56QgwuUUtCswpIw%0NA^`p zxlW_1l;R7zgL}kAmz7lQc=tYDhU(8Ze0Q6H*ef(`dP)6d`+7EK?X`Ga z4n1#s)DPqIxgF<;Y{?6t{VI-cG108TL5P7D9-cYo(-3VqiHUEeOctG=rMsj~NOIch zi}L`=b3jaG>8TS>$U&aw%-I^gBvz4moLP(4=B4w6eF(%7;Q>9L#g6^vJ)P1bi!m0v zR8x5rs#b$ibCZo2i+4?)$;)Gs{KQd!bj1-FTqt&f#WnSZ{@#~^%cc*guu4rz48`<% ze5ki+sV_iu`>v-jEF2H?)F!X5#aQQ$$MSwe#QkwL&CHLV(_mO#ARAYzpSxrJwpkOPFG|h+?94*62&kzY)K@$a%eMQbKv%~w)tN|t zzxlC^qCKez{bFa_8z;WD;B(dY0@7Zympn8Z z)&#=x-zub^$_poF96i?3TkXK!Iy=a(_>RWGB%hV^H73B$jC3VSkLd?&0!|9l#)iGs z6vqz$BFJ$!#t}ozJd6Xm$I{=nel7t{2x6FL(=X`b-e7YAAY{NR^CQy>%R$Py;YSPT zhQ3ksf-3}aQiq1V*(#grYe5bGx}7siEwJ^A8nd*^c2V0YzZOLoe{b{IH+;mjbpZR} zdK3_=x3FS;Ht=?BQEZpr0&->ebS1o`m6ntBaz)6(jF8eZ25dcRK5F(M3*)q%{(en2 zX1XJ~K`CTf8f$%lsyX#VrsghZEWMssU6l43218F1Hl+7=Z4oS@f>1P6(DUNG+e}5^ zixy-cP{49pHt@8h!sMHj7u&8F<;T)=kK@NReh+&nzuk$3XnnbCmuw`x=ff-jzcu%5 zQr=W$2}0zx_p0~r$OZl9tPbelO>9=w1yf&|216KHLJIVy}J znNF4Uvmdox@MbDt0{tqIB9=eHAs#d0(@ z{k@10=1l>9!<=Uj2NK`vUA4+A+)g{&Q8oH z_$r=|P>G?RYgRCEdQ^oB6!xCt&%%5i={0AnlC_9;=8MdZ zAD*TJ^8ec*{z-589+>TiiE?36THiO$2}kue-)qG~)J&l=`Kw@Z8jASFP0I<*vQ4AEiN4D5iO#(MSv& z%d7q6nD=W&V6&WRw!qgQ*&K#0zT8&X)fS&t7W(Ok?DXWcLQT8wc_+)hJE{LFa`x$= z=aE}^r`q~1V)8zPFmwT%g7&Qf5Q7~5jown^@W3Z453#%8akpwEnZ250H_R>3O-#^L zgF#Q?nAXh2RU*8cqf%;_`wJK9t?`Tw+#G5RCnPZWNEeO_;fs^4CD=W9FzMdYQQ4*+ zsYP!e7$KbCF|*h!LjM3cmlZx2{{>I#GQ|{QZbM=~ zro}s-U^AE=s1v$pOR?faWI@r9CYNX)KN$wxN~K@yVLL}5y8Qz17c zw-LYWCVBsO_lc3ZMcA}UKAKss!aWJlOLY0kDKKf4i?@lMn_t7UC?=|6zH9gnWi04& zbFXTJk_F34n$F9Uk-L^`-mo{WuRa@|(T$+}j6n}j0SB3=^~@4`kFXaH*zc!;Te@xVOxDfAaDp@E!0tx;!frtnxty;JMpK=*=a() z3`oU<6m-H{&114Jsw<}ZWjE*$4E*_VUgHpbe1S-mD z`J|8Q#7i~_mIPTqU@@=1G3vRJu-NoyrJKN$D%ml95K}@gU^#q>`%?ks(5C-Chee$U zI*CqpRo(~o^#m)hDZBr;r5M<|z0uoa$U0PfC?E`WTW1j`B|f`?n#{HAwD3zPh`j=r z?m51Al~bnv%W!}Jn4WsYxy4a2N}nPC!;)ihR4B($PbD_rFrt_{as&FIpN4_6zoy{Z zVEfMjbgT}gAwt=QdA&3uF7HxOxL6^@x(SNH%T%{9tQR{Umdl@o>*j6jGSrKklpc48)kj02Y7uAyKakc&y6t zEEosSLs0T?h*IPP63|Y=(3w}_%{-xY9I0Y_j=##bnZK2N?%1b*x?JzFc3e}Lw4ev~ zxOLlyuSRX7UQ)>vq}?4(R%<2X&ar&Zl|X`tF6ReB1)bA1!7NDhT8Y zBXcSYt3NN*l=TwH?1GdRgCzZ@Y0k(`=0O4c^9(zYLahtbBL1K7;~pXLQiVUEXkI5f$o0srQuE?1&iGi6Cvfv5pFmf@*5t%2bK9 z#lp;F2Is@nB3@<-T91HL@J{mWlDr%>eKIL{Td zVOpp04xPa|M$@pHEcTkwm<{Uc<>h+wan|ac8z`uA-7@$R$FE@tL07n1kE0i(p-#58Uk;LS*=X2(_IqP@`{B<;Je1zH)yMz%QQu$E$4^o!$t=CQB`+nF;NFviR;sH zQkzPP!{VI%ktF9+V*B1C=&H~qx7E^0MLr|PMK|?J{77j6*$H?iMK=Dui`Y$k1 z0B0#G_zx>ZwN3k69o{u6zwtgTscGyidaFCyT0C*(Cm{zDoW0=`c5G_s>T7GaRay2E zk_m_U$B&&`g#-SwMJ?CNmp~Q4onF&@upPoMpX|m*jfmrGu71QE#BuzPL$1_FSGfK` zpE=pc?_dFkbv`++N@EhUF^Jb;_p%zPK^a|W>9cX%u*z`Y#UEwz1!epS29kg1So2*% zGS8_(+gNb%s3Cn+DU4w-`E16zQPp&PhQ`j|r!xjhkB^$jW0aJT}<3nDMwM3BaO12)r)FC%XahK>fo$u}@NseX^AnY1o6EM}(0a;Lq569&WSTCG4bWb}HR z1(&UQ&x5{VV+ByAp@h_~w*MXbYj&IB^oC^l)0b(p>SiN>5{O17+BIrx0^#+XUJa3T+$df_gZj2H@ktgMlY?^ z)k{@bqK4PGvX~_3l>72nhm`d_E5UrUo6#)WB<0)1z&y7K?iXsoUcp>JW8Lwckzq6= zU2n*zg&&yo4iLqP`3;f0-Zh?{8=r?R%SuJdp8;ykjQWw_UKW0#{U(|IW#GFI`!Qm( z;FG*=8nLVyieh=>#z(tdiM%2cylwppLpE|o-Ooi zeha_!a5aJo)BdgroJfIb05W>P)nG^T&PNi-ujeM|YaEDM*F>y$2n~H6ElPKbdmJ1gVa#_4o|$I-|&x#e^psy+i_TH(W`mD14K*6J=9n7Y#Pk-uq+M%f%#)>ngqQ>4?lq z@~s@EJ*$4wu%wn`(od>ST4wQ2(nRGL#Wo=(cut)IIaa=cRBs)oi3TSsQe6`{%OEHe zu(8Be=b*v;6~7k3V-wnC4<8e5OQ9@*;{I9>I#`$wJ+=<>iw0!tYVsc~Iv;a0$A$R? zDi$mic#S6}lb~=2zq5`wqPaCsB(p0n2*_Hxc1*X>)xX;Awh}FP=)NnkxD-EDE`_KE zpddgLh4NTzzl5IrIHt7+%6;fTtU_m4E4$oJV)P69UyMni;O<{FDNkatu5o7t#eu_} z%shZ7AfCle?_H)SL2d{tSq{YeDEGBV4r1UMFqmH8P}#YH^wX{QUl`!xM%0>ghP&Fj zf)G#R)-m*bOKQKdLFdlWjCiUJ!fFRJvF|wh1mlV`*D@fqSC;*8Vr>&MH2Q&$0#ELa z;k23{^e^t}Rpc-jgA5t1Lv+IfB;87kG=}mPe4ZOuU#uALwB35W>JuhKwNZs)e*0sv z0H_UM43(CFnPeWyVFV-hbBZalEW)IiX$>tcoT4&Gp`10NBz7^KiC=^ar$LWcWhY?? zB~e~gga}ts4f|fg!&IE7{za4b`yRyrhXbr|q(b@7vpfG&y5IOsS(=;IbRz=>XeFDmA--2U@lBU8AMVAuLLIg^$w2N_I?#du$)?BCk%gB zSx~g1>c9tNN$lebc)AN`uun^LXmF+(FP9I?RMiCw1;1ha#AJ4B>|^f!d!EBtR**i- z$wpEVLvo}LkU;9IA2-FvKtAVAFhiKJ+lyQ=QvVSzW!#*G7azc$C;DgH?-@kvZoi*- zUryPcMa|kml9iD$%YuMaK<3GmnZVwC_Kqjehl{w69RRc9n?iWC3v2wV;ucqepf-aK^D2=19>ba+KMO-_EG+cgDwlwW_clshpBV4& zgc{BkdF`dKsI2xLAk<^Mw*Q{YKR-_c4ku~5-<%x_FQp1S9E`ybE{Fv6`=c@kc|go7#4 zl&XmeL3gLrVPD;G4!)4i2(QY#vE^kKTBZj`tCh0JE!0eBx>PP;^}_b}ap0gZ4e6Rh zz+q`2^mJDmkQLmou1o~(P|WP52QcwY`%0ZCoYJ@=dU8CT{`DKU5@Z@t)Q$ad?z z-k}axz8wavx5(T*TZJr9-Ca@i?=1{;iW%YHeP5YiReS@c<;og%nwH1t)y4B&z=t-U`{ zxEHP$w0Hp0|49Vhr`*4L)-SkZVYhUgJrt(c*nGbr6et*=i^yWRX(aqxCeY-eLB9m& zYXL{D!}j#aDRjcGt4L;mCcHLOqP` zd5#T_+bTDAO|_+GOq(ZdD7*3k<*CHbKVI@r@ySE)EEgP~!$F6U{hR+xAyF>7R0sPE z^84|kbfbAjvfW*~`?av#B{w~i@k+5@f9nndYtEW@Q&AN&YmGq{H$p_TY3Gg{G>jB` zsJ+T_KX)!fC#&Sr%tEE0{OZKCQplZ4qRu?(hpsJEtRN(SjIXSdl4SSJB!`&}5>MkL zPU1w-0KUi4BD8V%s47el*X@VJXaE#(_`dlSo_AGny}982E~YT&Dh#aaFQeduz~^3} zITIgwFRO_>!h)zwG{sr7g9(As7{H0-7jCGm)edw43-7N@Gz zUrk%@NliEhhymYu6iisoj&S3M=+Uw06-N8^Qo?93T^SK@aV02)cq;!UgR?+JzH}kq zlbAP?*feu%VTti$>=Qw^ndjxZh*)6`AcEjQUs0F4jskr+`zV5hsk#}A!1_V)iLY-c zW8z>pk-^hQ`%EF!8^l|j<1>XE^Fl$$xg8t$@RaY#+at(X#dm^uZv{P_NQVx=#c7-4 zN5w;4UY?9Y244u;f=!`necRqVi1>)l0&G5bZfEe^`5pXy-#ojxKtFzK%!3)5hVg{` z>HAc6ai876n<{ea98u!0Vj>}Ge+nAQ_()pR5CFs?<>!)kI)WgGSUDXH3OE8#u}O=a zLJkDZ8U#D$TwPK3P}cY~zFOS?;{b2kI{a-$k{kQWoR*3olonJxElmyk-Ttp5T{_;| zV@~XKOkF1>R1|kNU7VJ*61V^OYh{Q4@wB@LC05*t99)v?;MaVl8Z~HR%$Ag*I<>y@ zXljBQaFBWGeHk}!`_l#G|Nw6aet3!*4hW@ziUfN}5t= zW$|C+Ex%5Q1?kG(PfJ?Fob!~KdYV2<1ZN>-7rh6c#CRr%aU%j71if0Pe&aX-xpG4e zB&I2{$>kr?ErlgP0XOBb?&hTI_?}1hb%OQJ28ZYXCL<{A$`4@m?Oa z@;k~v;dXGOI8n+{gFnw$689MxZ&|Z`OhR&+uf0;tYnpokR|y%VG<@If`F43uMwZ+g zJ?sYs@!2eyjh5RUnjKhlpic_^vEo7SI@|)b1^Qev{$*+Yu@gI#;BGZlK73EDrSgk@ z#1QvWjQOU8of%Y;o9vQ9rM_?7Qs81%bj1h}Lci@e^mxU^BlFy4fpAqJdwJe;zxKS? z?%j4hXFJ(5SMsa*XZ0QDB~z=eB(LXeSIUVzZfiR(2Tl{15^crR*0}>^INmfrhWAq; z>d*JcU*6x&q(KQCaA1fCN*EM>Ypm$5UE$y8r=-7X2 z)M_Z#^%kl&&QxV3!;g$Xa^^xFN(dGQCJcHSrK3O7e^x^@;PF!4sL=fj*SAg_difb_ zMYR>ZEtg4G;IXh3uJeztpdudE=KnO}x1IW~@QxiHDfd$b`v36rg{nL=~8A{5GH};a--&+bk5Q4@pUyg-7_)L(C_jizO zWyYZ?^MWJ?6+~tNW)vWpJqBOj%o+AhHW1^Lz5`;11K08z39Giz!hfaNyuDl!wsB8e*!A!yApQls16X_H-+!QY? zlk9Gmg?lfF^ME-A1BD5M{V?LDdBs5j$TuTJa7$3eU^3q7v1?Mtzlf?Gp@YK$mX9Hb z#gWw$k{b%1B?%o3)^H7E%=+|~<9{R4&2&<;?2z*NKvczm`Uov|eHj>uE-NX>az;68 ze7I2dP(oO|A7EMTHjarCf_avj_HcfME?}Yk#7X(}Spg|yjDD-`tJ#!R`k8?dgbIe&dy@u`g z#pY1TB+ov`GPH5zdvtEdV#LMZq|s@tdMg#7QQB2>?bhStHELDI!eP8DM(@j&a^I#SA?^h$ z<0O0wR=Oz`PLlb^#uqQ|dDCAgc*ql#SpWNPX|WKdls0Jx=KFs8_0;2cQXK@w^`83I zFnr1On4BICMow3V3bku>`fsR3$bGDFh$LXvZBjy7uz@}k#?8G8KBd&fku3hEfehL! zs6H#q5bXS>6*JxH5m#kW&=C#Fc1kX(sYHtGLL9=xQ+z_aJg&J999r*cgjrd=na(XpN-p>k*P>XS zxZK4Th#!8&m!sscjLG$--*9Lmo)8w_d)$UayJldFWt-|)&%g;{dLNYz@XwnZr(5L$ zCm{}levfpOY^3M!SZTQs+{#^7h0F=jPWd@+H}L2 zKLF8qdrRCL)wpbg+DnX&QLW1PwVkt|N~?y4whT{ox@##6f+~A?b@l({O1lF=?cPM~ zV%d_^MW59`^^|-YzTQRKWEbz!yo{{ny-fWuF|sg(8GzX$U6W|a=zi_`H(*B!A=gX{ zC_}n~UnOBK;;fk2lj+k_M@SC^XU2AlT{jgB9IT(oI*xN%{ zRz}1|W}Anm)6jOfxU|Uf&Q-(6yKiPz!u*;%sz-|%=ShO4;!gs%`abC5N`)tIMkBQbCgJOr6wZkG+=r zX(_uJ>a;fD*Eqq#0!QV!`a+m;Ug}Z~Q%M|j89wuV_~3{P!LQi$NUFFYX@q+tc+_o$ zm>v^Sppb*~COuq_MZHrD`_`uXqFlF*UACnqmK@T*C$8+gsx8;%#_T{1YB$Hd(oDo{ z0VWIF{=DR$91M@2w@r}qOR?cz#>pYci%A9rYJz3|R=;pcG2VRjZTlKjDy%n?6-zOgi5Nu~JR)5e%mM=Z z(XEmME(a|DQ_PXV@xsF9g4KN;w9@W<{TiBO$+Gr(R+Uxp{1D~4ONSm7?~{FsI+YAD zZ0sJe7^yB)(M5}Z zNFH*4wUM;LmI=X`K)#z#7arOS2opGzw47vs5zOh)e8wb7D9tl+ossNs^{}#?kK2Zg zGc~~j0eNFSE%>q>^amxUHFO!~R}Ab+2}M6MH^~i!sGKSONjn8}(tyf-@FZ=B7}+4} z0K#LY&njs^#A!eu+i7J=um3J=+|qEEW5?$l*Zn%RuG@Bb5)IGJzQ1|$$Z*X>C)pl( zHcu$>N4j|~BSAe)aM#Oqh>yoy+WCI;$oxdKjPRS1(*LQI0geIW_?1KlrLY&~_WJJU zU8%{os~45S^tP^If|VNzW32lq#l*DVKO267n&V$~dPUe+wlEmToOX&Vg$)t^+tk28 zbO~)3;be-|w#=lvf-|=!N_*`w-ts56hqaBV95XgpyO!OtqXgBkA)+_J(FZ@jqRJ#k zf>=%ccG@&*9Gp|Tw;|Y;hKAjX4Zov*SEDpoZFgX}zMhU}@u z><(vJtr|BHFj8x&X}$K+Rc_@>>PjazERb4SVtW4fs=y5a@!RCWWK@sZ^&mawUS# zTQ%u6EI4&w2Ww@PELgy^bF-RKlf(0;U^RGWHy7=yV$J7OW z7|mzE0YMr^*LVaPEq6h9XXY8DchF(0Z1=F$*wqL-{ac0v!qxLMpjWT*ILDsPJ=gCo zqjCxR;$VVSy}}wriBjdYG)AmUZ#kAr&O64mTNUPT68xDG53S41{cd3}_u#>d{yEhi zJK}E%-9p;GpoHNG*PsU$4h{2%$Ft$?$7&0;U7O>0m!t2B@9Wc&o%E+%Kn4@nOv$t2 zC6_5U0K}nq@{*TLwl1N8qj%D^l+_pl|7u#$SGb@ORb#zSU~OS4(WLNuL(P_5*{Z#^ z`?3GLTE630YM8Z!y~|0y4$t)6lRAnyMlCLE^w6uo;TK2m^630v-@c|GHFL@OKfbB4 zo6bsERTjUl{v<~WsXi389T8&IHF?dHnMB>95l7DW%K^&BJtZ1Dr^?KMozIpY@XJrQX`>I}G`1xwU$xL0f3PvR=Xq4qVDs|Mdjb z!vJ69BSDPZKp(j2@!l&?OodK8O{@E*f+UW&13i5%QfX{2lC z*H2I=H)g&R9kZ>d1d!z)z`p6~C@=KV&h zcl-Td*NWFZ7yO|aI(j3&)cRxV<(~&F2Xw+SB2%{eM<^bSBgb3yRL)be=Kf6m~Tz;_A;QT^H}T(sUf zzoYtee+~Fbb-Ex%6FL~U>)bovPjxV@ip5gFRK}={CF%rgEw)*B;r!s~A7+GG1|0LOsz-9hH6+wr+ze&{?WJug zJcC*b*tB*s>V-JDBTfZCPlc7w+$#dOnx&FzPA|buSQ$s#!r&=~rzG_9U0d_sZUM#J z>GH3wfzRKboPjUdg&+N}LOJA&lZV+C>~lk$`25g|hAgqsi-IdRw|Hrb62BR|;$o?d z6rthKLD6k;%JL~LffJQhZs20we!^i}#>TOFnn9gl|JZvW8F*DaT@c{92{IItd$%Wq z5r$&@T|~0^hV&`p&X8oX_iJeXwF6yWzGpAf$%K&pBiu3oI(=>%!W4}pazVSl z_^(=%59mvVo%!Sa)rsvD4ieGF2RpxE{59&HCGfa}`|esOGyx1vK`p$taX2P-+zP=p zz;ztFwqX8iI$oCQP50XiDJa_5DX)8=TY1johru$WZsv-xEAdJNm%+t{D-mPROf6yAU4VViG?D`su^~=w_HV zn0P1haCZkYB<@zU9q?D)i`PzTI!bPZ-LmoEWzpg{m?=N?SL}zc#tGM0!PjD*y<&Vr zoh~^%|NMl#JIMlzuK=3^>-%Lagk%g2s6f;)(pXd}VWuz=_*#}?GK6e!z_07lYiS;K zV0E)1bHP+VGIb!+Zi^N-a5F6dx~wt!)%7m3q&B%g#~>NTw0NX0-{ZBe4QMOP(vYt^ zZhL7vURO`5f9Y-3C?x0L;q1?3Rpj`8FV02+IW(z0svgFgHab$%3cF3--zv$CA=F5( zXkr+i+#{@E(a$=%!&$gO=(G0ps z4HKK3t78rW!LmBelA^=J`L|-lkn4uqZ}wwx0Pb*Vh!XNBAtt#-uPl#Fro`38`N|%J z<8>NCmRWe$4t&yD@*?IQ5n}BYKJ2(TE00h}k<$d#wDnVZR^3gMezX71;}?NToqo(h zz|1Mfpyt9H!7>5`j`Yz%PCrx;!C+a|e((%vqUgP3o^~^C1!oH{q}bLCCE3+bd^CY78e#2l9Tg_=(N zF1sN0&~X{3tt6(Eda8a}^>!z4S8n1mYA!V*QoetDF;T?+zn%r@ATZrimbVXYy}7C> zF#`8(o6FA_b4cp%*aqI)yLR!zxnV>(^*r+F_O&!sR+2Lre=Qt@u^KxDXfh zp^C?Q`^@KD0SRcrRaCj?f61QLHm@Sd?(WFxT*6``cl=m}>L)pXWBlWjh@hoh&RS2{ z1X!2b z>5{t5FB}d$SmXbq2qNTSGkt&bMIujHnT=r)b`qgq3z)%Qe}yLljkyBq?=ujjh8YZ z)f`T3&W|`YFDQg%`e{9je!`+e-tG=bPnfEO1)PNvFQuczP=X?3r1diqqYG>^4~DDP z0oX5ahbY_AvuOpj#DG^Ys=6V&DpO^-5{tjoIyK)bs@O2}G60qm+>Hqf^5NZ$kcX>Y#CmVb!l&mcwtbB& ztcM;Bb^3(vbjfeE?)!Q&xV14EK(%dO{I6yKNM8~AQt`T{bEK1mX>Yv4=YfP`=QOQf zR`Bo^+YFS{qN!8X77;9Hf7s^RS;c}$W7+2BMUbnXl_~0dJ>RCrjZiQX*8a96K9saY zM-JElTHbNcE%jYXqxBq$KRR8(87tK8Kf}=zw z;)o$zjp0p46M=z@N)(IbWNGbgm0ee}o7#b2wDknP(u^kVA>MJ%>Gg_4@M)-OLrENA zhzm`fRzx|hA4R@kf|!KV}dAfx(6R-g-m(CbU9)mCDzeH$^~-yPBJ zxbJzQ!6)aX4{VFABdk#_kpOB!MD!YHYMOu%=#nAeMnkj(f)rY$WA@Lw%Gk}kEr%-z zz~y-WUcT80R=Wf;+2h~CMFMb?IsuW4!UBIhPWF-hCIwXedWX|B{l$=mLV2?Qs>JPu zE@Uy(@Ff>XLyM-3KBU=2MK*5n14S|?GTUXNh*I<5ED8|MnLjc*h)u-E$Q?58e&#?n zmNm-Gt`or++EfIF{~|q%E+19VmaDb3-C_8!-CJet`hj`wD0aRJrCs|C>?J&M3E#cr z!0dOtC-k(UFZdCw&&N`u>J_pb&)KMhF<9zV3nmlsKSdO1e<~7+dx*yU$iv^ZFdtH+ z)r`Owhe*6DLj2wNV^}@jk3JisjqiSUB#yTs|AzqX?xYNcVcAvWT64@}GNGtTo06ll z@(Qe>-QpxIO>5}Bbr&KcD0A#jI&WTVGHWKp6RVsPkuR5XtsX= z@|KiiK&dGooZjKz*zboiUxsizc2*$|4IN2Qj8c1696uAM5VGSTjfZji& z{t$48fc+@#0$;G8^lEGm;6ie8ffO%5Ut@Xe<%$il-=_P3twbjH-L>!A zkF38YU(_&YGqCh(I%4Gc9OeBVydU-+dfd77eU4$I%&#H$wE`r;&r*7sj02`g()}il zz~+KhX_G%sN%8+?x9W81cEvtuVW@A=O6oOABI=h;81>gU>PuBusM zjyc9bSsM!23GRR^u}Im>%1?ouI=`^bn~y>mWU(MfjQUG1ZNkK{GMSDN9G>(bkE{3)tWns^P4aS0@_lZo^ee=frR8Ea`9w(QyZEnNO-=WwGBn$?PheOBG9_YNn zj^oo`gp|P31`X|A&_pZ4eSFC=AYcKK2u~Tzk%pC6Uo5u-G$9n$4UP8 zS??#`FNCLu?)ONoxBZ+=>59{cNuAcsI0fO5K;Bb_^g8?o6QZ7;Ua9WOpF8j5Ef;AD zv?-fS%r2}IjjCm>TFq*klTTZY>96#c^{Ngl1VgajRdXhn>F90&srbU%4pC1G#$d4KF)=sDQ5GFE4Iy4J>S!=w@+?0 zDvZsukI*V6?utCT9nWg=G=5XdP-@18ee(s&sC`Or=lIEK)pQNpz4ON%T{73^*8S`b zuM2$dhi_@=&vqM+vMbZ_=!;bj^O^3E$D%edN58J)R^vLMkLl38i3Zs8#RSW7b2gn! zc9IgFS{jNe=*MSrZ|ztc=dphgxmTwB4YqyX@?tU^{@&fUtibvZNFqOy#fVtn@^$?V zIp!@waKDcoNM%NbfIkxO(Bk~fUu{Nzok*S>L!Svh(&R$G+J*J`$D zPk5YpzNpS=|J5p0amH6FEBCF2;A)MVgR`zEiqhxLY2(3?@5Y-5(`hqrZB^aM(EYYS z$3WYjoQAgi=M@R-$t(}btbi~b@krZ&Ib;-Z0^LN-KDzGeLvi^R2Hd(Z$Vz>JNor`a1K#i{YU~N!*>^La|`xf%NWltfPjGjNrOsbn-${34{{D-nkFH6p2 zwEKe?OgIRGPB7@wrgdpw>}qh>*Jbf|T3co)H2+;XS*v{wal>V|VB!TzO;eZO>YIXYQ{& z!;TtgK*Ana&ZIix#zBUmR39BORPD%+&FARcD&4*mr>L|)HQiJq{{?FuQS$fIfpDe6 z0nQklpIP1)IpR`i{IbDy!^Tn!XOe@C7a}tX%iUC3ANOUTo+gA6{hM8QwYc?7`Mhcc zlIOLS7gn)FWWJY+>+FC#(D_@oB6?bi|Ljtp|E^*ZwkW^62-L)byG%iCAeu$t=|{}@TJ{{(Vm zk;f7X%Vt?e*s&YqqJf8fWLoZIg~g77`xqBZb3vbz508liU8bmR zw5@MF?DBl+^n9@B-!!jmdEHC8j1NFOS!4O*%Ni9L6ZCIR@Je;ldx8RGoU#Lv5+C zpFhwdz9pG5s0Jm3tcQ7=87_Dc`Hoj@3kV0Zv80l0Az`7$_sxzqhzJn%NSZ`EHZSZnKGSX@dtB)1Y{NBb{=}S0IJ1BcC-Fe~Mbt9kHcDYWcwMs* zfC&7b{;PZ#mF|(0TXU6^o0x+#Ig)(Jr3HnmQT>O#YxD=s1 zKM78_VA+cEbk7U4pbaBEqNEKfZF2a70l(}Zyyb*m!{+*P-NxpP;+W39s=529g{gQP7x1Etotk8dP}S5Qx?1r1Gn8lt`IXAf(PIsddS$J3 zkLrI}o**(VhqL7HsM5e;iq2tne~?RI-L4Xd`qEv-&naf|OJT?iKxz|k;F3cljPu)g zL-GB`PVjHu`+pyIIB`#8E_r3kKr=Y)wr~X~NCs^bGW;-D&li$f%vC1JftXwb4|?SF zMMKfOR-)XMP!aqfWG3xR7ZCJUTz{Pv`f->t-|>N4YIcm|K#U#K(~I&H@JC9su4<%4 zWoSp&8->ar^d!vw?&U?i4rKgo<%OsIyno8HpL;jq+<6>d_zr2~I`CDLs;>vxwDxADZcO?bZ&)y&`t)mXjUGRl*vh+-K0WLSVZqwJFcBWc zlG+>H=5?y++gH~zGnORbltL}vpQ8(mpjxTxZov7$hd0g#3&yvwJ%$e|@M$p_BG1P2 zQwS2!GpS$SAzfE-c$n@HwlHqC(lCKhi2j|X{?Ab@;2$)HtnI~t6?svhSZ-WA1-O@a zM8py09dN3M-$xfoP|YKjMk0nIc&rZq9izTqKnxI!KThngc98igtwI?V{6{Sp;kFP% zAuWq)ve(uLVHnc8K>Vb{+wCP>LWP7LrL#6?CkLy5J~KYvlTq=;-~V(m73ruiTn1G8 z2Snu)L3y9zB70RpWPQBiF)(&Y`NpvSN;O}>c|=w| zjjLqU996rb6abF5eQ!(NWoS76wV`{1uYro_e-B^9|4{c*aqa9H00c|%%qvD3Wz7JZ zf}3D5b&^ei;fx4VuTQj<2fMLCqJ+Rq=z z)GU)X@>RE`(P)_Uer==TnXb+7PFrtlxwB|kbJ<$JV=u-xL(Ds|mIm4vZv2=47%DDA+<;kb#YH@YYP*e(*0p;V+0v$>}rF z4&5>2QN(tBLt*106wFpE58~{{`T=fEPM!hFNe=WF5SS>C+^>97$J>@{n|IL|S2xYE zoBdh{I@Z6&CR0p7fs){Z3N(D?!&+fGWf*F2LnwB&y{D4LM3*f%Hm!(v&v3#5gnH1A6=PGb%Y{;1SaF9CnHPd3s zVQ3bKG7m!FsGFra7*q{gLyoJ)tvqRo1n$lmq+vfJw~T1n#dmORo?(Y=W%{?=xxQv^ z$aHRKxaRP`_D!;zZak!!ENA5#blRhi?<|GgZ15*AAff1bDthOG8#P=WRmgV`R*kmoAOdc%VN(-jFc$qAv8LUu; zRn{00g`5?$p1gLYq9i63ksX|n(d9b-2xnW(>*_h(EL|4rSx)VNhw8j$3jzXxecR#S zg;{a?GR$NHyT{DKyJ;};2o<-77Oxx5sZP=J(jdQ*V^SruEaSmWM33=EXIa$ryIhGngp4?&T1< zDWek*X$*`B|E+l>CBUln^<`^gR%(-wQ6Bp>dI|b>+qVvtE~AvP@p@t5TVbKTA4$z1l6&EZ70P;rqGD_UK-XN@bb!%sQ7Z&aK z*Vtd-%-dCjU;(L9xInmHNbD&b8^BMUOO~jM>PRQRcu-3ee}j1R#0G|c7Q54`hAGEV zK>TLFPB&^Tm~#|Gh*oUgy%BMH4&%(0Q1MYS8f(s9M!#d;mx6m?yJ)@lB5OVHW6Md1 zJr>J7_T+QTyb<(}i)rsJ>Z~xhKVHYM#0AH=<2)X}_Xy1Vq(K;G*wyFanW)*;{fU#) zFOUR2IkUJFA~Y#9&UP7#7oy(Igz2X;Gwl-rVKDz7YM09a{=ug}_pm>7Rs8n&Lekv% zF}A7EafyAXq4uX7=TroWLS*Q(s|)f>DeHf}&HujI{|BdyicN)@U-?O>5|zaK$7bEy zRr8yy6J=?v(%QW3Wc!u#H97gUcU-mdtF3YSbLh|YWy>bN z@1B~)2)+OIjUhx}$S@4Nl2gGg5gdmqQ!Z3O?*Oo;^KS?72-4O@3nR!`=OV@MnK|Is zI?8>m$zn^(BP)f5IS)JFps1Y4K&niee_s(22){Z_U|%^ez>|Q?=X0~zz#POE8;sp_Rz1;b z9xn#J>E@-L$r0dLgT>Hw%ks&cPzZc}zZbUGSIH|uTqfZh@qx zp+@>U1JLs?z(3ob7|lb)3AGZS+_GTUTU#pw% zqheQ+U$+Q0y98eqG@BaE!IHC+e>NNl7K=AAqQAziKVLa)F5k>-G+Qi~#ho-M=ZjDi z1pAYGDLZH1M#A&~(KTzio%JMS4Qh7zVMF?VEzXlYAMeZ76}B>LJ52y^N{R(4DSaM} zM*Y0Lj}w=dS8buT9lH@qN{S6lI%TcL=RJ5~@-8MjjG_%b(l;@RsOg%L7}63IKWTHB zI0UNXwa&0FE9cg!{Sw{>@64_a$Jt!J`_W~><%$wi1B~6ge>RL3-z(3?z%n;^kW#)D z2oAuqs=|veg31Zil-_oIea1IhySOar=xHEjX(Et#$uy=WV`EZjGF$oidU&kuBSrs3 zGLo0LPs;=82OCpaE14p@HuU{dEs1?btK z(GUQ~0$o-K_E#x&irS`QHrND?h2HpAfC(FdH8EyZ@k4O-3faMIn&jP#|F!CX4|9RM zc*NzUAZ)B)-UFKm0{(plthfo*M!Evf^=MS1`gUFeJFd6NGb-iLHpesoJat#T5<~gURvf z(@&=E?o1s~U9&=fx}4YnTiKEcHox~hRTlc&Or(8uFM^Q*!?GgpNslf5(ERna8Uo<5 zOO;dlM|SN5Z{HYumH*#wP=m`5lnWdIt$NP=o4nT0&v2+4yvkeM=(n zVYZ+AiNDmHxR@>SFXHjPk%|94_SpY}-3;%l2JrgAi|?-`5LdCS+euw_AERsXJLq7+ z>H0indETGuZQQQgwzvC!!MJ{0e@-RaY&n2g$Bae2&oyS)Jo103xpp%i;-{Wn-F)3m z+dPHBajc{Bxxk6-hXH{U5xnBFw$Fj4F^{N3`^%$dQ5Jnj+gPY{kdt+xzL|Ub zvlIj+2MFjJLPAUR8vJm3?>BlnHOs+%zw~_4c9v`*F{i{}!j#40SrIP`+!eHIsG!BK zzYS2q0JR;7r;ZAEG#b777K?H@w>-B|8A?2-S*C;O58PD4J#3&rg%+!=eZV_-&7%7RyP^W8c(=yHX5?Qf) zZew6SJIO#R5U^`{DAWvQLtiGHtXO>(PGqajh&?I~6zLdqcwwcnhe8R=2eOQ5fQCR@ zP^G>_51Ut==&`t@{a}obOSt9sT~U?CmNbtkhPCiH(H#8Z_q_hV9Ze_0%G|wfHx_jFoVJ?7HLEJpC zfs}Jn0RY_G+`N#I7Z3G3f|}%lUrDjL11(TI^M3~$j$rsIQ7bVPqRS5sNFL{nLL24utwXw))3sdhva;NeaAO%eJDDjNK6Jh$NDXw?Dwee(m=XswRW35 zh@bx0kyIFb+Mp2Cf`*u^dX-wJkd@+5M89Z==70-_Ot~md>;6g#zIp=U5ud2x zZ%Av3cUl2Xfote3jibI_wm?w?=xK(f+cO||bY8sllDO%08 z1s~9VDMz@h)>b#ab6ZlIntI@Nv|2xk$-VhAo|R*nmAa-T^7Zv~%s{MP6B8CrP|@2f zD+^2q%!ZAcGR1yM$+JW=jX;&={BP^Mxcd(S1BJ-y*81xrIluJ+t#O4Dl)1KM1`kKX zhb9asTD6zyYt+T~B?4-Ft;}5PXT?z`$dFA)4cPsL*^d?;AK`}#aEQcyqpS!I3DMD7 z45!HSZ3r48qN@lq6RjCsJM_mUfeWE}Vv_sqx^}yn7YopBm&W`e@Ia9$E5^o3tq( zbg=@+YML8@rTWS)D+8J9i+=RMH2rlXIH2n9x*as9XezEVhg`_-5`VmjUAAfrJiK6K zj!BaVi96CM2 z671iG9=^X?lOSd>AH@+F)Xblbab@9)dq?bp z?`i}fh%@6IKnlTe`%rX}tecA-ju{HuyUNZ-E3R1|Ui_luA;{Q>X4kCCNIq`%hwJL< z@S6Itf{lf3{7G1gFn>+Pfv0OC@hbTZw{ErHJ%&Vn& z#?;rh2(x8|qvPEg{M#qAG2|!;JyRpdaQjuN|L0(v)JRT7j#B7*e<)2~TQn9Tc0>VP z!Q#+!yi+dy;|t%K21K~s{*g>;Oeyl&*JtSU;T^v(d1{q*%F7FwhTjy#(^Z8G!?JF9 zCxOp>-kGnzkI&8EabK4*6M?yB#bVO87`*Py{`17d)L0h6)yPI)05W8hIFX?6USN)I z0yn9o`80>`2hB+Ou>)L-9TgKG%zOACIJ~+&-Ve1@e{LY zDo}qVp}Ol`l3u5)&=_j8z>LtB%iQ+YFNtsrWWlHFO%>!aaN@9dGXAea2Ir3KTsUMd zQWtUoC+!X=3BJKrXyTx3FCTF6I9{Jyk!*kYb#Nrn9xm* zS#!LRxp+Q>>^P6c7>W-HLFJ^{=E)eV=BA=mn=?KpQV~vqQ*kmlMyOVRHK3T9@P0<9 zzMZB$3-4DSIoIAVF^w{C%xLid%_4FYL=mz$R?=wm_5_-D>4I2n@BW_%X8f^bk|54C zl{iBU;i7I$22bc0zw+?eCj{|)2K`5J=|m?`M&|OSr)4n?dbtib*0k#S4?R}E@BO%v zp|@xV4bK)OE@=v|*LoZ~8;Q7Qw!y0q=cftyBM0h&e)1^g%u+%kBjidL!+396UFJ^L zK!hTr^n|=p_`Bnc@5%Vt5$bC7BxLYh8@}YSry!jP{z5VaC!t*lq<&@Q2Kwm95gBpW z9Ln+&q;}N9A7aqKz?=7?EPfa1x>{h((ybc zB)%LT74o~wHZn2>pJp$)xU(V^qlGb=U}{7-96gKB+W)@}&3~VrT~4oSk+=Pa{ao*_A4CFbWMYdO7VKSKel4*jYkGU9U(C2M+}hMoQ_q$w{K98; zNqzC9@Hm{M?XOO(nUSQdJC*%I(8L_J{SrK61k1&T_BXzR+1Ovj=h1S7d_1qWoUYFh zW<*(uQ8v%tUR6kJe>(wY8(ofK**u=*M`BbE z0;%@gP4v2V6V*x**0jIzDA_hd+L$;Qwm%g7xD6x^N^DE-uC< zL=@=gA(AO^f(jCDg>Uzt)a&}x93=vXZ@lh+Xn4LTX7}B6M~TC5-AK@Dw|QxV10ny2 z8ra#wR1<8exqyip{#HU}x(K7}#k4OgbC2WLfH)xd7WZYd{bhiJM5*L}aL_v#iD7~s z1k6PRb}x3$#0ApAlz&t|&6k)XfImB>_w~rpmWfG1hRN3VPSEv*?>I~>-1TwJf%%59 z_DMRl#}dUGUa;D#5k2y9RPEcF=2?JxFuG513pt*z)9In|2ADg``8v%>`fHdZ0pXxm zz@V)g8P9ALX*>jmNX*UMemlwGyI2~8!2d38Ix~#_y0*1C#Iv%*MA|wF{KB}o%Y!P? zX*I64?E?~!2gY;ccbGqwyqKl(@;IvVa7k@7q#^_hj0heDIIjx5V|6G&?)@px~uH9{?b3}oDu==Q^;r=L) z-Qh;7HA#m^p*~KKGi?)^Q&gv|*9QMVF!peG&J3iuGy4ki;&TYm`gM?f(d3%+x744L z@`;8Jk^JCn4z1PYuuWS475&M~{pL1!Bk&>-LrwtEAqV}tdYG~^$SXomrq)!G42cp4_Q6Mq(vdO-_o9DVuHEgXf*wY7G|^eYKh`{bHChmj z5!ThSLZn$7pi@uLW^&Q0l$_CXJXNGs$J$JqYjE&Z5=QLtT)?B}E1NA+Ksd%2Q4NJC z%t5c0N>lU8#RFcw;h=rk^)Ph!>EN{D_!ZR~>ZzJK#W$T^cC6@>?B$1o@$ym46P$QT z^k@2eEJV&|;9_XY@a3K(NV}(-vp|&-(jf`k%U|Z24mV-`b?)GpcQhl6fR_kdG0@`Sa@klY0C|2Eqvk znQ0+pgxf=v#w7WjfpERrb0JdpNvP!qqP`I)oujlV%XP9-xzT2R;<-7VtuDSuFVRwwt9cM-eeKNAuoA{-@6dq&GWk}$EP+Gm546A?N z1MkHD!`%)~?p@A5X;)Fmb=U8B3zap4ISTpthe#h8=WDBS3|Glc)R7OWc1jo$I4NG+ z2|@uXrpXNuWSp5>#Fr-`L=>lf5LnhZDaq$ib9W+n3eD?l1w*p(4zrYwh^+WzcF6IZ z;)atagsdaiLs98#0(!J&VWiZ!B7}yB;y#)&q&{3mEQ?3rvm^e!K+nK5Z^+UR4yK&`zQdy#+$wCqm7}Ldg4VYWEx^0sxt66*!GRFrAUv6v=y!k6gPrO3D){Qc7LZ8uEzBTv7)%03n4RAT?lkoX`_c|PvvzqX5|J~a z!x?dJ^1ffv5^WOH=O=nQ^U}V0yJ}`_b`lvsyrT;^O&c7(_{$i16wuA zQ3uveHuOCXF*okKLmxRp*Z#vlA`B{W@~x(141DM(=`50_y+Ga|Z}20VprbB&rAW|Y z^Q_f&|NluvCMoC?Y2FR_53!QtjFZ1@!@+*7Y*Ka;(tC@3^)4Ry^p19=hVAAWfsU;} z*D?=tq9PVE3gas0@jxZT9!on5{a2%N;Jq~;-^hALPd3bXEdCiEyeRE(K7`5cN&`k# z5oZ82J(j2#S7*bWT_wZr=}W3y&IroMzAlnBSA<;rwBfHpDRpWKq?pIeXqn0RPQ)E) zZFNnN0q~SckG}$VdD=~3<4pEHNv_~#PqkG`NbXX1ew!(aJ2sb1S<>qbQaqlnT=m#j zRnc-1oq8!laAc-|A>-D>#%Qj&K^20J{)Vs{N`##8#w8Rs+(9M=c+Aw--3p{~>}?@A z0p?H3vduG{f02yT+eT^XJN5Bgr~|f(cfF3kw*;4n7#;fH2fEDT^K(l=dsWt)DVt4( z0J#Vh$&+KV2w7Jyy;gqkr_-I{Gg1%_yU*!ff4MjH*cfwwf*nHy9qoQYYj7ufO%gJ~ znq)%o09a}@aeU#xn6i$k{MXSRtrfzLaAY1*ik5qHXGZ9J;JKk}>tec^=<%1HUtT~T zdtK;GfI7OX?w-ffu%l;f!JxtS+XU?%cL=Vp*Tvox}C)xeT`WS+U_OWqPaYC6CnP#N!Rl4mlpN@Lb8kY=DI=jf?P331VA2x$( z*E|8t-p$vCHS}!J^_hgV)v5R2YTt=owEoa}6=~r`lNECXGah!bmOLspEmBAaWTj82 z9M>G+d?q6~&q1_;BL{(g+rY7?C$+w2(k`a<(9P_^|7>t}uBE6~Vln?y1n-i70*g)= zF!MVr6NLVx*&8{&YP@JLlJH~3%*&L~c*ar$`YFU*KfI)MEmOK@b$SElA#%m2guGq7 zt1Q+zlp5yiPRtf*#zDB4{izzgeEWu>1oG;NLN z1eTT;>_e@Xp@0FUuKkBQZDi4Ssy)|kHLMppHcSMRDYJMq`vC)0tG%_&x-ro(WE>Y{ ztUE0M8-k|=nK@w7!(P&6is&_;oraD!ba7Z+^^K5Bz~V0~mv9PB4Mc`#U^bCAi5kwc zc0j4Q3sR?$xjxJ>M=C@?y{C;K`hks}?qx?p>Ul*C-dm4;43JQk+KHk|P1n|Y9j+WM z1aPL>u$0A4J#fE(nS@b3Q7Q(5L5sr=>^|`D`45( z&9K1eM)!L# zGD1a|#SY4xlgK=i-Z08GjGZ_O_CC-E0>HTxB|=WNA3n&~{A*`7BoKO}v>Uog|G=^V z{0*9c`HB0ae^mCEA?wTOSt&)9ZB0u66};ewn+zJMn7HnRe(N{?$AJ5UCRLc&Kwwkb zClcP`v1q!>zb6kRn*o42^YZ!r!t#Qz0RFyV=V%wLFSva_>V2Z$wHEv+ZZ3axcqX+8 zvo~(rrEF*E6D}?mBjzz$@25PEghRX|lPk8KOW3 z^Hcz~xfT?4T^|(2e!gVOAAw2#Clm&K?;x*W%P{nDU;@Pj?AeTN)3_SSbDb?|eoG-b z6w?{$mNOzt6eW?M3)n2#9U;H?5M_2v@&N$EEfKdo_seo-x@b0xVK@SbKxgEHyqBxZ zI}HSCH+ZHhr>Zq@;9*`#j=r-g1nq>Wz`V~J!~TT+P??A zz}=0+<& zRg`WIrOAl44rj<6T-|xz?v%VKzCs$0G3U$LF&u7A+bwbnmiDImWGaK+#`kRuOr%xG z`Wqj4*Ow@8y}*ViWKR41=Y{-eGYc=IzWmYOnhW z7`jtzKd-;UbgMQJS#B+4mcCBEl9Rtaw-0A?J}D26 z;8Rir`8rm)o!AiwoNnh)BAB^?OLp{+l&%?Ow=ljwuU|>OV!u6J8NRtXBwpD*7S0ay zyBjvHGvphYHSuzL^9mzjAXjj`a3$A$y;FzjpC#R2o}Ag%`{p*;n*k)5<1h*kBp4~X ze~*=3o$SsX05!Fs+!2I4h`@R1^*YXK3EC_E=O~W}q=dB!K?NN!$J|+$9Y^@^QSdL1 z8Mel^UjvDUc3qBTR98y&5HVgUe;5P6;wd+#4G&A&C94`Ftn`0UbKRU0n`F>&p0C%a zy@kRiFm7-k^aj4IM7?ppprt5j0+OIoHS-Iyg#~TX(<51*44!w}uj}EKBtq;)@sTM9 z{14#6iRq0Nd$x!z!`^okVX3`_>00vvdwx<#qQ%3 zP@>j$FdGpigtc2mQ0@18a7a~JXi4UliCO6<7{;LU#WmFvBuGSNWYLgdGMnG` z1xws2`Y9nf_iL>bGH+<38PH&F4GNWG;2qmWPV0^Z-KE4XM*{nZ`7P5-i~Dlxk>T5v z()v@8z~6(?T@tW)CJeb=qjmEtXAz$-gt;sVakD;n5)l~<129P-ghTorF)3KWrQ2yVGR7px>++gG_mdlc2^ zJw_RCW&4YjwWB?32ILs=xEfDp7?Km~_k;h=_G<^zzDs}Oui3Xhp&{Z^!&U#wV`#tD z|BYn-$92+;;rpn%(bazfAOL!BIY=?a?2gcp!f#HdzvyYs8H)Tq$UUa@MmE-9R-c=F zliwDJoBU5ki?+WyQ5k6aAi|0gb*)Aob3SE!Ubnw8Dg!4?|!1d#W53nT$o{p|Aqc-L-ZQt=~iQ#TI&je_ctn2eF%JV<2W!Ql||7I z=m8T>eyC19k&x|79lg|lBmjrQ_ADE!y&ce@YydL~$@L~tGqWoD^NOnXgRw>JA0W!P z8U~qRL;gc}N5=gz)q5vobs$uMB2xV|9LKLd#~Bei$Lltn$Ng44HKp7SwiRd{Gp!eH zmEt_{R_}A%SH*Mn3S1objI^w`D5C`xU5#N6nQr4rA7)%Uo~IRjqm^NpO+@@JAytv5 z+m9TYjY?b-jKBF)-Cqb_f~l)}fxApB$ z)zMhKi`*?a-%rQZAp4e}7Z!v*BNH&sYW*0d1T&-u21EK9J~PsFrFHuwJ{VHT=Oo^& zMW-moX)vym$xS)e)^Gkk`pI))%rkSSIpPe8PM+7GrnJIZj5-5DG?Fdn)htey`$Nfr)CyK=flUDERA`NqVJODVU01FEUTw_e;^BY2X3XF%L>P zx}}RF!mb4Yn@|MGeh3JE&((f>Q6g)B4@j3&inlceOQaOVA7&U{MonyB0`99?HS03$ zZwOIyAq*hbmS1~~z(K#Au$VGkq6k?cf1ADD&sOL&tJz4I+)A-}5`<(ypi8YiNQq`; zEw@>W;^CJi1|}`N@7Zx|;k?3WU%xdxPupTit!-GpMJ3+(%WD=Y3y-rFw@>l^DGPmn zOgprMJ3&Jln1d|q5L~7;7tks5-?+@@+1s`8aS4Gjay&YV-Hxun>RDt--D3&=$dh$t z+V)yp@b0dHUWmsfel6?YtFSnkPF%hwN`2%Z2EgymJB zV=B-c<*w2Ug!%Ak$^ho>?RLZJaCR7$_+)$B^o3Q-=r@}&<}|O=$y09zrxND0q*g`uGfYd zCC6Cuh!$Rs`^;L&A8$zF;KE1DB)R$U;%L$9a2CIBx^cUeecb^Kdp=Jkk5A0LT{i zbMnV5x1#TZph2I16@L_VO{UHSst`2QaW5Ndqs9fhE&LKTbu(b2B*&+G0K7nh-q1El z0#OL3x<>Hl2oQj7X2@h^YBEW}oVNe8`b{?XleShkr&%8(>jMK3um3Q&>+47>4*6W2 zdTaz}P3ZlMkhf(Tj05u+aHLHhKoj7 zXeEG_fd9TF2V#mP_)pn8pY*ePGZMJm>i;ZY-pf2Cuojbab|19d^UGruQdD z`Su`OgfNE542-{)w20k>!{qSA=;EuM=z}a?gZ7x+pMfjum@6mLY#{t19p~`>k9goh zeP?Mgps6t3+@Jv@A$;7Nrjm9-%K{dtuC;}TnF~tl77#WjR7(-J?>8i^Ul;KWYHA0^ z3||Xr87EyUi8l^-OMHr^d==awn61)1eq{@fUvkt-$&INI+2m zxoWkLVtgM7v@|{BDW~%*BNs${xv<0cJh%rsoMWf=WKgs#hrk7~!il;Z)z)F+_v-!QL5!6%<#u>T>Ui`W0S~F2n&4`I^sKTQ3 zJ|8(8pawt>v1WTIkrI$0Z)P4n?Y#6_9W)BiCXgz0dVNmYnc+Om1VqGln_M#36F7Tt zQmQPddi%`5@h=ES z0Gq^Nsfc*KfAW8sIlnIp!s}K`*rkC?4fr5I>dDETAvknPySO zR7Rszd(2*x#)89kSjVkM*qoH2AjY~4Ms2+PeC4O2s1BskUG4m@Y|w;CEqxOCdt8}cQtb49eO7lsKiAKC{$B#;CvHAh4D6N9*teH2pYdkQ`_8~e(OCO=*;`7$NVu4_3>Z=sgv=&)5i(X%#nb;v8SHHKSPd^B|E zze%0kN?E{Q?~?CY!9vKWyoGVRMMUX+oh{$i%lQ;@smRR?Q)>rAkRt18w?#%oT;Q0< z4^4JUXv?c17%hT+4m6AGLAf*~+|0l&gu^xNR5C2!aJogim{Z>(g^rytLJF=gX?E z40d5e?aeR=YMqS~>nIaUgG7WQeM=q)%k*We0sQ8K(KNxM^QGe=eLj`BWabSdfvulM zQU(p&X<;3x@mP!&ch7$loX7k$TU2y69XkI##Flt7xEGcb9x#v_rHgrpXrdg0=Kh<} zxbe6=PGd=`_#(p0GV*#PkjF-i>nJHK6d=0;Od>|bTdC`l_risrwEwI`%xft3J2j~` zUpF5>;L27HxipUM$K>~Z!z(pM|Qz{oEmh< zf{XKs7*WPr((8>~5N5tkl<7D~WOg2ApZw+iEU~kol?9eZ{iC>eDM#Kp_?XA|S!I zhg@D5_Zm#~-gS1do2a=KDqFnaMgz6fzM_iEZV1gqqlTLtPw_NAy z!c;O8>m$cqz(UB%D4hyaS~9JeT#1WB;iqeub-2%RR+cNRM5ZocPa_?h+bi@)H>UF} zQ~ZmQ6l+in`!u)jXjR{;e>t=`hCsVe1>iBLS0c zC)UKaIWar7ZQC|Gwr$(iB$;F;wr$&XW^QJ`-S6JryTAI$)4%d|;Z)VBQ_?EDlWN)O z%-HxP(bvPl#seahO-l0>8Cc61SE-As0DhI+mffD!aSq8j(IaPokt^Mlld&ZrYcZh& z&wG0kC|U7k_B%6qRE%gwrJV6(fI<094+_YZD$85~p`|7RA)D8YdXGC_wQ* zXEDk0?=fPpIz7&ef3P1S+anY~8BoibTZh~l8w^TM^9d$#q4&mv7TRnu=w>isD0MNSNGO5=_v=H;gIdK& zV%jS7Fp3CB`HXPALTOS2`HCXb#V<oRcr06JNwLH}i?NZ) z@)iNDp28ZYV-%ga=UVhf^t-uEfT>2%f6qIUjOxde|u=+l{!OGKq= zACEzVzuwuYf=CeqeG!UQN2|^ny%y83Q&r&#Z;5$)yhY@*7qm`!GbO1@rPv}zRVA4G%u)Xg}ZKEhk2%I7_^#2+sWeKq+8#$h);D#&MFA^pKc) zanI#I51Pj#vUV)KMCVsjN?McV6I97by zDQQHhhNo$R7zAkLxdsZ03Gi8Rz%cR_Gq`>>S5Hs(oxfA9VJW}tk7^9np9 zMDk82ee=$=Ac$*yc5X*5y%C|Vi_0RhcFqOTuBcbJGV?_E2~qlpc?8v$y`Y^81f3y@ z`IY3zOdFTrBl6Tp1ZTb;!YYLFqY$&{*mN;wSn-esrB1apQxcAK_^v_i%)C>Xxz!LN z+%rpVEGRZf2m_@`T9$q?)Hfy0iPlp!LwU%?um>Z%}aCq z^SX5ggnYDI)L8nIqCblat2p8$sGvI4s15Ko1_FyNs*onk zxua*NsncZ>6}6rY2VQE)HGe&gdQRSubT=FjKK-`5G_X(JNJTES2t`X1-41>UQ^q^n zYw2zIuS{_O=oQpwp|**5xp@i=KFF=B&?^DnX4QD$I;`ejKFyEjTta*)rdVhmi&)wy zrBGhBJ+EjNjIA{s-0l}2-~tFFq|!t15@}lZL9GO(2~)k$wk&t()(mInYAM>&5vA*c zo$XjXZc9zzKX1lE!f%skxssQ zaSo@;Z4|$b(9Av>`+orVJiWI#1K&PAziK6($Ed2{if3TYmG$63))30(%FJAu z{X2V!Qq8DKOTn0ep>r1R9L2PM!wc9{!Z1L=fiQryusN>uPQ|3j#>`30PN$7J$4xpF z2To}xS9C{t`~d5vf_>yJIOb{LzfD)St4aTM*$8)(xA+03^M+C8G1BPZRt~7<`@~$N ziP*G6j8#np867?ds`zV?`{`2!`F66D zrs9&7r};#uJD%4Hdr(aXonARyP&7VJpvWP893^Znw71kftKv&&tNZ=kzb-CgdDcD1 zo-TirjYUa2`P@K4!`pqGtox&QdAVfA#Cl%l9wZ=mc-q9QZEt`E{MtRUoaI4zXs-3^ z+g1$IX5@cQ$Jdj8EiOm!0=|n6)TO?M6AUWmGAe*oGD45?W{>$4R1tTkriz}^6+ukA zrrq;+dj`{FVMW-F8c|IG;T6zI(9@QN1R z+28RJnhI|yda?SaGozuxFnSO+mb$w>4m*7YU99CPw2N?K8rgZy&LR)tSS?sb5=A(24%6XFA(j2&IaT<+GhXOoHM3)Vkr0eSF7b%g|8>;^aOMmgRCJ9ZXqw=D6?C)H$ zSWeQ|OQtH`xl=&v`gM+<+n=kQ@%jOe{XFy`4x?T3&!#Sb3-qPScgX_OB z{{eR3+0y_!5#6l@Qh`4@h{2+mxm&dzw)L<)vpVdNxPe*1fb6C%6^9o_*DsG zYp}J@GqD|Prh*V*GtxLOws@i!UU9|r`lIQ0GIs$}3w~lChQO%SPgiFBgO$up{{3aNnl9d z3fSQV9gi)iF)+hr-{33iPC&6y)Tww*k)zCR28KbZgtAuS%tkWi4+fK>7UG&sdMU1O zi@psN%G8MzKAru9c`U|Z201cN^5`WscVYHSTn(p6>baJVaaHrr?G&F6JwQV055>=A zBnK{}@GXk4hSbKoKV9zW7&?Rh;nfnz4nm}&eRH2;!hY*`2T;fZ&YmBZ;9=T%CSvVm zIZBeN4!iSIL6q|;)7^+vA3+X}(Ok3DRS!uliBbyJoNBJscXY6)ob&#^EkaQb@NDrx zel%jDBL$5kt}Y^j-ir|@BIgp4r-0{WeW{OisBfOO5zTRXbdn`{KPr@UnI^+L2$rx( zN`4=r$(WIl6>VKg{8&krDxqDF8cES>!s zU74E2Qh5)4aKYgP<$Akq_f^yp*TJX z+Dz|q!Sd#h?_4cJ@^`T_P^N-I95yuQ#cEYj@XjTHZxy`#Q`c;(6W?Y#t9dKshxs_f z1M`InzQkPmyg~$7^}p%j*_4$n@+z{!dem4|)1eQlEd@(fV8Sz?$2?JG$>*NB5P{-NPk{|B)2P4Jo&(WGf_fcQ+fz zQmb7fQ4x~T2j{IAYF}+S$xVv2-67bk<3dx+%zKWbC(sOq?=c{xNpnC`+mJ#7jRGXD zLD=6u4$|X0!+95~Bz-WnH^kK#1K>$lVe>;%i4s6p@{D&QBQ$)zT_uX2n`T0yYnZVj_KDY(fUGcv3C2 zp!}-gExQN|`<#i{$P@g_l1pxvwh|a=^l_GN18J9#_^&&Q)J)vXu!-oyOZQk;nJM4I zvMSmkv*wM4ts-gOC1gMxG~RuMBon7*Uj8SMU8sxW?$6_Ya5b{2!R6Qr5`KrddZ;{$ zOgeaW9&(n3oxMCblEin2ApABI@hf#gwGz^p$l({FpeT0QDb#s=DQoO_RARr{O!-{C zV-*lXQ80 zfR!YSA7@DNPHJwgQ5udY%a2OSl&LKm#?6^XU2o-3dK^r7BDou+iBs+Q(ZFCSn$)*c z)PZI)dmIP1%1V~)x^tA?sRSrn0)iwZMh7kWubY3cQrN@ z8JJla?Fp8NK*k7J+$UP;s`BzS4D@3^=|a?%yZKD(E>8{&d$m|eABp4W6s8Tc@h@7W zNH|ii8nT-J<{{o2px=k#8RaDr9(DKLSDxziwpa1dBMwd0(Nz6?^fZ*Fbi8b)OA3^q z(s9LGW`Z_`DhoS}bBxwb>>!%@b zP8UzV(v*IXPYLqa{Ps|P{UJ*|V;N>z7U|)n%XSCjMoumS^nh)z%L>~Yr%X)P49Kce ztu|mls3!Txw|^|KK+T6)4LZUfC!bffa9ATMZ1&dpQcEL|aROOkqVThSD8o~aj}K2) zxvqHMOPCl-Ymtf8%ZDWgN@Gv*eK7GVT z3U|%UC2Uo@>Dex)cJ5zS80Li4aZ+WhGE13j@oC&$s~6o9v_7^yil5+70+(BK-7=?ZN0K8W-V4=*`A|4I|G z>S7VPN5+>h%!jzg>o3f@IW-jMpZFx;U8$8;<(y{HsGW2$__=%sv2*L?xL9&zZ29U< zgPpr>4-bLMfP($r(Wg%M^RA7j@PkPou?xmj-F_moJiX@ih_i6#AE1pIx*uv)E|S+S z>=X3jA%ec!4DFHqzKm#n`R5A7_66~0$*|V9$W{d;?Er|ivpj`K{K+bu)S5rw18IWK z_*nauR56xz@M`ZziOBaU!(P*hCL!YQq!1?M@Fi)PY8v?~u1inM@i|1sj97zeI}0A|kA%`XYD&}jF0k+K3lS^jzaw<+{hb?C29Y;kSN2MX}N zc)md&cZMfHH;vQ^L&{ZTF@4Ab$N}~Z8&N-9e(z?^mBc)~z>PWWt*UBvIH_7i!AfD?X`TCRq26 z^0b>;n5YYr@aW?yxo7*33$zR+;Q8fY>aqflk7M;OXbW)v3p=jRF7FmKT;c}q6yFfb zWL;*BWIZYjgdIezlC9XN8R(=>_TqMiEvs14YTNEBp4ZvL%LvkT!wD!wYz(eq2=q%} z!%@7!vDyQQ)*wKH+Nq*=P;gGUah4!3%uOTUM~(7{l1)ig6MyA+f&(^s^I0r^i?_wP z>h)V=1e4|vCHMRi2@x~AM`~c=@MzuK7R*xy?wFOuTioBK!q_UrJ@N8B$Gvsk=+l{xMms z`Gwyq7W_7x=RC+zeU79FQC=JkDYNjLR%mDNyZ}gL=_{-GHC<}ikw%CtB4OWa*x1MG zJt@)=C=lgHC>Lwv7gd>SU%#Rfyd`Z21+NVfLI&TQ3htp|HM>=1jNP#F6dov^w;Xu3 z@Op?|bH|U{$_J%Zc6SpuE49xXwbVwx4HQ{Y4)ED2O{ef^u1bY>z?S{Q1qP>HY^osRYN zbpwACCdx6l)GEW=#8M3=eNrVs{Bz$F@-jFT>!bF}B!PauRGyZD56*aq=avI?uBzX< zy4KkElO*nvKUrJdUfQuBxGS8ZK^+d9)2EFrVH5R1sQ_@^r4{mV!Aq)Wh(0Z~iYP9|K(D`Ni z!{slY+zuwb=K5uhr*iJgXk>%7yLN z-9_2$Mv;BVW_t3=2}DMg#<;y72wo1Sp;Q8vv(g^f6ppr27*%-SPuYC21l+TRA@Fe>rlYSOqVRGeCobZe>Qsxi5a*bfvWXp7?kopZS5o2y z^bs4}t@0tV*V$0BPa0+oc}5MLvLFN2Ah3mVh|M90B6{ws=_H+Q}h1m>x!Vl78mEk&s1r876-QQo@ zJ9*h`g2A1Onm{{LecEDWLwIr_b6bVQsw*BEqt-{szS)1uBttev2cf=w<7xXTooxq> zz-_8R4_lT*v44|ndW5ODsK{?#hP%LG>%&(Xc5aqV(#fwyi+7dAdxEw)OWT~he2lh+ z(_&Z{FS0v)fj5hX3Cx1V!fu&ajZayCYW&$iu@QpHte@5QsDL-Kgr{0l+8l}?Epz2`BVt}pr(9%=Bvff;tCg`tI)lB#?%Ay0t_$GtzHibpL z>@9`s*E|z6F_z;^^4y>+&_~K&o@CZ3lYn{jyrQ8&xFgPpBsL@yL2qHgy;; zYY}4p`(I#UYR{Y9O7I-zBcm{8 zqNASX?&Gr3rjnGKpCDb_ah)%M7{N6ibW=o6$8bg@N9XmlLsGz@cVvt^^T@W}8x=ot zb_?ZXXGC^gjIF(ubEZ?<&SCf5#EIgdeayQ1`sa3LC{T$vTJSsgZDA>c9sWc~xl~)l ziITG8CZ17jE{BD@k)N&2OH80?U!(`aO$h5?&VGt46xrr+c(RxR$~<+$)QeG!L1h98 z93qxQ>4hhRbRqQQ^Ik4}2CrJ*Pn8&NmWS+&n|v1wGBbRKNnrL`n)-9l^P!sCyQ7H!?y8IZpppojZWbA^m-&{2mA8N0NMg$`|g$h-)D8 z?|wX7He?7TS4+J?IR#=p!MaFFCrh_Xf-?3ALb)nsAYiTzKL8wLvccxn6vkw5B<*0} ztJ);9=S~dlWv#ZkM!bOAx-MrFP*({`n7&&wMIXFCs?$VipE* zJj{XjikYsO;@cib(08{U$?d64asHfpyDYa4x5YZ;`tgfO(w}0ECY3x8N=1oV^Scuh zM=R8sIC!*3V7l>NUVGKCds(m?i~N8;uO6>(21Y{aYX`)zDtg`lbm!GVmC;K#=vjMg z_CBZ(IfxnsdGg4ZcQQ|?q0BX?jva7oPo8CD z>jh~+>uV^0XS@aKiv3JFr$_nw(-+S; zXb+MY@P8Y^Ak>IoTzcq!dKHoxD)-(uMRX9dN*)e?Z2RmxLW2Xo&$fGo)6nlie1^_R4dvP|Qd@V_7me)Dos2rei{m1GN450dS8m zl8#Kkp~~oEi#;PgKfGScE~rmHCS!XBRWFpUcmk#?dT8Y^R30XDxZUw&$+>({wio}S z#n=F2R20M+A$!8fQ6ZYsCuWgs$f1uui(5I4H{5`qI~PQOY8;olu`9;DMMAOe#YH zc^_0YAIbl-kLK1d`}t@AEKvd)B%*n~LtT+mKjnApv~*M9FjI?_Dy3=^aMygeT0a0Q z&<^1w6^h{S3UqSAWQ7h^B`_6eG@lfu0&TTl%^rOF1+GM6uVk#PZotN-wUnBR)V~Ty zRq#rn(%P195CE?czW57uC(!*b-!KFT(Hg#D=;id5Hb>#k(%499yA^M&rO0i$Fg6B1 zJkJBM)zsfiGiVo03V8y4&a+0A*Ns^SQa&hi#69cEIFXMv7kX@j@qGKFq2(=O)-zEg zcMg$<+|rJor;Ls9x>6u-yYvu700=@z_%u@*W#nZ>yp09TD9jm!rMa@&pm0lE{t%}; zeqRzL^3~JyyE4CVZSms$w{#P57x-Da9GMn(<-HLJ$iwKpesd*kP!zpS6&0 zxPLf+gMzwTLzdw=9~bY%#K;fL!4FvjF@9E((-@Q7W4}2TA~W{-_nAnuqMNqzeOpSa z8=Jikq@B`@m%^5g*aJKtWy*0*K+f-9R47Pq*+5=Ez}yOx@ER%hZ~My@Mj zeLOP+x!v&sVUE7uMZ^*50RAM6e}bV+#F{xvQ!{GksG8|L0;yM*k2`~-+i&O6K!i>r z6S>^{Gg!SuIrX4|yxnuBLr423MN`rpBji2|g&7kHCcs=-=PpzdzG>n$;GjvsDE)0k z<`B64J?Nw@Io=1W8sqK*;0NtchZ%LS(|jh?v;vy&oqUa(dp3I`CCV8S1eTwa?A~Sf z?BPXt6nOq0hL-*HZ>+)I+g9t81~1&Be>UATo!d+$b*P4RKp1-Qu8!1QsSw=uzp;1A zx^*&F)$1YV-AYe;84;~ep%AcnW`YIzkU*Y8efo&U6@d+)n3Q2HZg$b-3eUDsDJxN- zuhLGvR7)h_xz+OGe2j65HnDJjZTz{B8aDNPKP)eIc#kscQy=Ra?pk;)5!4I}ZoDvm z>%|vAf78NxT6q`~NCI1^jF~}eZLR_Q6>8pui(AqadOk7lLAVvVYN@KYMmudT2OLa6 z3$zX*RxS^cpPH$N7+1sZz1b>dR?Pgob-1}Kfk9E0)RMwN!ayYC?T~{RUs8s6B{zC< z)@rr#%ncT2TNSWfMD~}Y-N?^?!m_AJziN`03| zv064xNB1zZZXdos?O%SVY64+~>`=YlmiG#|3Z$ia4yvSYmk&3KB$cl;J&zY8Th>3RnPX1c*qL4qwF`Yo z3T7$Osy$)0$|lZ++AtH(XSsFmf^>D-v( zCnj5YHhhQ?7YRofHrdXt{mZ5k>Rh1m7#CfG7~P-aIOc6|u!$4hv!YO9019C*)tLl) zw@Mj1T$U>qH9&Gm=W{E+t|F^`p2cQ8D=QVs!ebz(_?iWNF3AvF1A@nuWP2Dd6>L&I zM%&`Am>k~$!FwX5zGlrZH@CIh_k+@PKWJv-F7gRA?AJCC>_UcmkeB)U=JBbi;awCG zDn@s`u3je<>nx4TvZ&Om@Kp<=*c1my7|`C5sPY7i=U9rz#bvq+BYyaJNG=v+#7{P7 z6n<4I)QUDUQi$Lgk{sw}JR4u3hA-IN;e7!eU+8;p; z6?i}CYx;A~X&AJ3*oh39J>}?2D3&nwr!U`yz=YA-Wj8%)M90p@5~Ci2=QleSu1AmI zdf#tIucfanlsN)@9P_-Wj`Ct(-0BN`<0?0GJaf}xLsAg^t`3(xflz+@M~$b(A}li_ z>1Wbwn`L-rGt58RU>tmd*^S)qC{%+l`q}TehO!#5!08bd`uH% znVm(g&=V1hs|~obA6OG~0paucDb-DDr^8(A(;90w#xK-~*x{qyVz)XmWgAwKK8^Ha zQE*E1q;`cGDYrHd#lo_e_I1XVxiq zQ{}c4ql_^ccRMA?d3+v`x1ZN&VOaw1q{}q*t%%r4PhGnL;iz4;J^+8{~Ll2h$rEKSk` zd}ZHan~oaU1A&&lRelA_W0I4(VRkCMN_=QkV3Uo+5tDAFosyD|=Yn1uu!?_VwTkV< z;sv#x)d%^~k41(WJ|2#Y?H+3lIeFGDT(NlJa`ccLBXkuqWtuW0fZWXsJswjhvLYg8 z2oCg8kbP0@Q|;h>o>d}-+VkB*eDxyI5uQjuBG{!~MirO3-^KuvWL3CTP=gU_9)^T{ z*$5;n!d;q|=LG==%p^1se|X84hB$~XUbg2aWRN(Xf3q>u6dwp}gPv*ak_g0YIVP0# z13IM`eb?lTSBqX*$zF{yG=AM=Qkg7}a}$^w?TIDMyK}df5pO+^l(|rJ^Q!(>`;pgSU|=}D3%asoRFSN-g&r2P3~i^pqI}x z1P}H7JfdV`-Zr$^q8#c!HKNRJaMiuuX2!kIlu?vy%W8e$k-++={-2Cyyt|E&~gjyzu7Jpx)XsVqeH!DNxhnn3Qhi` z6%1osJUG%%KCtbhiDkaDGf32u$YylGx;6LjL!elHVuwl?c*6d>2!ZzqR6nADv%W&) zgO8(GLu6;p&*TsAfi{r;@-CZFYEsL^;0nmI4uPq_sFy*?o`5(<&zJjgABtsPS=OIW zJb9f2V3Z;fF$fA6$K^uv+ouL$Q*oOv;Zhd_ZLT*Tp#QzE&7f@beY8al#C)(`sW; z>9^zA&#}Q$H`#=JWMXgQ8BfDe*(zv1{C@ub~wY}gME{1$E3`#~Qw8J)cCe`t8A zFMI6zIm_iXc40qYqhq7@)3}ta+fwDWw>si`fO!z$K#200u8@;Rki+a3gla%Ky%xvL z#k;x}Kmr%fw{zj0p3IkRP>q~!(Cj{3_OUyUk^P1IEnpobJc{6PN`Oqv5+`;Y#wI_8 zU3=Nu*cKNz$k^B^o*>(mjDlwP0S*O-P)DGDz3OGQ z;ibu>%I^Z1wA@}zc)5*{28=1UX=L8Z=|p7kqy++f`|O`{Ia9w0=FN@j^7DSy4mxfw zy?6de9c9`XXF(yI;>N0*gG$o=|G+%^Cz!`#GQttNEFOe5;TiiMGS0RMDN>%{QKFKl zB^r*C>u%;f{p0@aylDpgEb&C0FOO@U?^Fe)y?))6!uN>>j^q~vhAsCu`>LuiTre&z zNfnj)PGxikdcncW26l5n#D2&$M;fdCJ_}%xH!Yh`QMeZow!-j1Uh;N#qw;_ecE6~q zn_In~xV3gJ{}yP*OzH+j@K_QNBT@zkXpuBYQMfJ(67MW*F{Cj&bD0MoS1y~Zb{_$D zTPeJbMdVs?Q{MZY;Z^2Wd#1c2DpOIQ>7186r7eaC&dEjdjc+rkYz|dl)4_*^^Rt?* z9-f@9M5?Z6>cQ%8>38YVuOwm0et{*=o_jraBT=(}p6+(bfA`QU^uG+)Z||FJ|1vm- zuh1g;MX#kEJ>-h8v*j|WR*E{c(Ww}aS(XqcIs=nlF$7vKS{Hw&rkG21^UJff^dfM_+3 zK0G#94ti2C8C6PAWFu8A)N>&k^TmZ(AlRC|T;blN_qB(r>sys+7Z4w4=<_zDw`9)| zO%FFuti*ZMIrb6aXR|jK(W&~^^Ze5-9d!PVz;q-!2>#)Ee@7rbq+i1DbbEXN#ja`5 zN~$!d=r)@=LrISgp2m4#9ojES=J=g%F6$?teAg%}IX{f=&>Dl}u{<+#I-WG5>Vjg+ z8PZBxc*cEl=Hp^pw+--!a8;tS0>#aZE%<2}P+P>&(KyU~X(QaeYEIZhS~w=RSl8we z#_^y#Z*FpG6_oD80MJ}bn2d4)=cQdW(=*d>*bgX>1%~`!$i$Et5>a>nN-`_QT5{uM zdZ{Nm-Pk|}>0i<0RRU7?a6}CCV2~%VN-$$mAVG^_%A;9CQWDQHGKp$}-01Pxptpq# zvLcq}h4dBC7^mL_tX$x@E2URpaNUNQ`ZSs*-yT1F}M zieQ;I1Fdj@zVvNl&*h}!4GqOm=mP;*iuzHrBkV$lHYOKfy^@y(cw55D!vqN9xZ~e8 z)zZrtU>&MoA_FrvsZ6oot22kGR;p*y!Eqzqhmd7sDq8&5U2lis?!QXYNcEfQ&;FQvjQO6|zcaQup4j(&FY(jv9hmNpD9{lm`AUCxa?2RoX6A^#v5nB zm7wUQ-sIZIhU-0|kb{Q2TTCz)`A)oAiCQqWMT?!#q2(_;%e z7rkv|<`(T3snN1z%305K%-QdbvEi)(O`ME`gJOTB4jSiaP&>v|s=B_N)#*uAD5XlqBcKjbdYjVn4v-gHfXiDYwvNm&;k~V26*iM@ z+=kvG+0H<*^?1PalM4E@;s5ivusFD`*)8OWFAoN=oV%=|c39VT^( zAYMHk3>@o@UCKi5?Ct8HKwg0`B9_<%ZzaCF5uOWGJO-jWefJj5)M})9HJpCyzPK>^Lp|x0r>n;!p;b z7X_p@q_vSTx|B3T>&PX`m~dm-yQY7+qX78rRU{tbA^tmE(qgO@g8DamYFSbIK2Q5X zmW2b$Pv-=9{`J(`!G5~`?XAbg`u~>CwSUz2qWw*Z+vV!n@uoq*>q(N9NX(sv&9P5|$uAg7Rk z{*TGzfFvztt4cexQ_(lL=c)(m*}lV#y4KeH%RY1@Jk^YxjFiv&aT(={#VQoU#Ta3H zq0MXtR|6CztO8~#dIk*9t`_u$7y(kpq=eGq55VOmP+Xg20V9=B)MfRcU@;hE91SPf zpp|60cpPgfvvUjrl38Q)bxas|iwK|IjCb%6xZVMaMCN-3ex$XlzVpZ{tMs2Gu<>fu z*QIjSQhN+$LsE``A=WwM)tHppO0}mlmesZt;w!Z7j0LAgYV&E>C}t&kagMM}lM1-( zS;l@vw|A~)_x_UsOCcZ+wldD^g)|e0A;ElyEP^Pq)+7^Mx?H-mVZ&pCR8o6*xZRxJ zCbQtEVHJrQD7|x&QdQO7qLN#>pO*bG;(VeoNirM3(7~5-VZ|STMnKQTrNb68gD@Abz)SYR!Lb2Q$iY;0FX*3b1h;pKA;dVV! zOR~m$f~Zh5h2-9b1FAggdZi1NyJy&baJB=ZN)nR7l~r*wValA`44dky)P^AlJ)O&n z^*sN)=BVQ+96i&Oi`ISgLPr7~udkVc$>Ynqb|a!9j>%<6U?8*pxk~`PMU*G)8QUL* z6cSOh(kID;hQe31tjG-k8;tcG=!NX{Gwy^4dK*)qt%~X}><&4V?6>U+9@=gKRyGC| z6|(a_pfwEBBBH62Gs3KVz- zwE&F=oY zVP9!85ZA&$T1ul9)>=hy+`(|Jda5W&>XFR%vvLB4{1!%h@?#oP`6{V**X`-yPp2*# zPEh%+o%#Grto-|$*vWC78{cWkrB7`22QoA5Ueqf}&J4ADmh|$kpafQ{^?2A-ZUgE0 z7X2(?u6yRuIY@$=%#;3FLmiFIt%jkWhC9m$tKnE@*ASedSjTaO(p7B%n zlQ51-bjXlCgDfa{As;SB%eeiOgBqDd1;?ItnAwgJuf1tXUHFozH%N!+vB8oVZ_}jk+35m0*RSZNy=3e+MI~mjGQ&;>>l?i zeu*OiuVi(hCz+WOX=8jzoDI&<9JVnAr@IX4`52mj>GH^;)F%-Wp5ppx4<7K*=rMwP zr)dqu;@PU1QJlhMY)1$!$D!L?ap5hCyIBNYBuG@|8C{y#rsa8Z`^OTow=+F5Bk5|` zRMfqKbwzPrG7WjFV76k~F!1}XP0=FysbMtD^sN)#t=LB?Ev5)wsU@ul%@~Z~51xm} z2N|&+qP^i5WBWi~k&=F>_6RM#9n(FbExC(BgbTz~I83jaJSbm^-NWm7DD2VGz zFuHz|!38~cd3^-y2PX1oxf>hv{+l*|>&(V5j?5gJ#E}y~h~%~4B$w3_V_%+9dm>*F zKjwxKb$?r8zWO+SzSRiK460=&a{G4S(G$Hz!RtBG^Ts?QSJiKk2?LSfbUON?ALFyc zeX{u0d^;K*wq77<0w58?CxRfh&YM(nt`M_b;lwG&cFA|*^&1rSFSoKEIURKN?0nUr zUto{`I%2+Q2{70m-&i^j5W#WbYwGK#J=%$L(RFf72MmXgjKEYF>^WRRbD`kDU#2Ve zifxzhvER{GpO$V;^wLjic)==CeHM(<-+hqp)&8XgP*Q4jz^Pe1UlPEp3A?bbU1HO;)G_gL1?DxY}k@+~XrTuB%YwTnOTDR_Mc#VE#!^m%{#RJULWB_y&81AN}?$kI~ zuOyP_7K>vPh!P>(}q z!iMwJ0HQb=8Q-=##jL!4P)Z%ZCn-U1qz}CxH-Ud49wp*m2)CKuCi=gYi%W#Gp}uUR zX~nFVo;cE5oD6grw^Vef*>Q(qSa^tO=8_VwD)Mb~hy&-dwUyUV25l*rUUyt9RV|yF z$j%=(%}Oq9npk%{oc+G2iBgUPJIjr4HRo7fGXDF|3h<7yJ(2X+++A(;8zhc6*zqB2 zmW`7~j2O;Hv1W~A6A+uE!_{fs3)KFQ=Gu$oYinz(h+TNP#rK*8tCe== zBO61*O&n$FI!OAx#_-t8Q0@6gRkf^{!e#V<2Gbunm^3BL`Yo@%8>RREhpVd$i>lq) ziYOq`B@IIfNOwz@bTfnqNDkd8-CY6$NH<6g4blt~uYVqsyMchT54 zz_i?hLdS6e>YAIa;wVJw-A6l3>+0%`xWk^6YMND(ZFvg2FjP`?ji_vl$4X`rHJPeC z3@SSg62tu+8iBR2r_r8}wzki8BYM(tnxN|9%C_G*@+jMR<5%wq-L3O|EpccVh(k3g z*%GNUUP3FEL5nN%+Q3!9ZNdtsKx-;k`{Y6Vm??q257{1W5rEd^(J7aR_RThjtlYC- z@ahtD>VzAoh>>ryApN0FC9m(hM)N`_J_fT|8Hh2DY8g+9>>@4?FM}3aEaLFxx$SM3 z%V%sq+Kldv0NGAP5kszD+B;ZPGY*GoY=HI3vf~QC6-WnU`)tJ7J@X>KeAmdd(ND}= zrI0C8GiQ6Cr0*C7{@$qlS}EAYL{qCktSsmkRkrmi^rsnm6Rm*Rq?SIqWhkeanL;9* z;QMu+3%`G(Cg6MK%*UBsSyA@6+X4-2#dcgL>yLdL=6wvfQw{R=tl3-)#=RWasK`hG zAJ$l;sUBI*QkBJu$e;eOzzv|{9^C|?xRnKP)C^WB)vKZ+0SX@tfY&@Ea)6^bmC)x3$e5PT(9^X3e4#_gKhCUCY;ffh! zh!qBV4Vvq$?W8a6i#QyX%JIeoOO7)y2e689E@AYoJn8#gJp4q(MC}#gF>cX?x7>02 zb*ZVg34$KEIx`q%Ze={?fhli5prXdx@5~lIFxh(`OLAcRm&5Ormf`{)w38NOtbOJWJ#erfwa?ZhxDpQ#@H4 zgCV^)*x|m?yau_MYat?#_Aw#gg_HNZd_1X1gfa)XwXgh0xi&Xhf@Ew5Vp#D`yk;C& zn}F(uFlHpp_$whK&^L0AV8#z=oj(i{?4IVIN&-`>=KCw+`oKa%(1~4FGiS*gJ?F^Y zb*&|47YXgt&qvWy8iC#rqucXIl}eV+rl*t-G?~@hbR`|<8y%Lmo78C5k(;|E9n&jy z%Z798b?6W_m!Cq>3oEAyf7o3xDQHPVeAEj{Z?+%^JF_S;LeNLsbWJ&^F@ ztc$7tl6t!r)qTtq_4+Wni#Q|U)0^tFH}KdxCa|ufXMu*XVauCNBW2yPkmDESV9y(b zx+&~7*eChl2KLv_)67ilr*8fxbQ8&cS>6Y#6JgY~f$k`+WEVYcv;KOPS?z;~33FgN zur3rFV<^xMgfO3$fk){Pb#RI+0;Zh^4HlvJd-aRbm&HT{uP{}}tV5U=s(1ESxykIT zzODTv*M1Dsf9sDT}Y2I2IKh`P5nrY%%^rk~Ga2ltZB~v#jPDngsw<;#W6b?_L z4e2{qP}fyUnX&bE5-3tRH-9&-%(evCfxZ-(mxt;yq9F6rmrkYH$~zC!ylKEE;-h5NkK*R~V3=7pIxJc-u)av7^z5QGe-2ZimuIxEFAAb*{6k2Y(9-)|gHV7t zkry-47$d8aGwot>SJl9#POz(#t-Q_=GJOE*JV9Rb;*B2MD?qm5s`qGjo^m*E~~HPu8% zuFdKYMmlYa`vRf->5u^;Vb`Vk<(e_k$0W+OCRbUEABC zvZLJi7$5PiWh!X#Laee#Sd(Q>YN@d36d=fwa2QP%TqP*dQp&?LMNr~@pzq)fmSQPQ# z4@W%qet~^4%sv(Jt`%?M4kiYs1q|DZJ;Z=4m6?ajFUPS&;ZJk9LXM9vV;M?|{qxlj zpicOuX1eA&NuafCK~LIj=a0_o9Dh?vzmweQ5J?r z6(o5-JuT$msc9%gr6!+e9Rh)^ha~D2-R&0L8$0S0iP+}%CNf4C(>|IiAaFnT(ggpe zCkK2v5^b_T@Et9_z~KQ#9_ShvoR<)sTnH1_&Zq2U92f1p8wlX(LT^4l+!7i&rrZw^ zbQ&)(rtMc)y~58FXD%1se>Qub7wXrhZgaCGziQPl-}!D=CmC|Lm|`pMB%c;Mov~u| z9+le9#B!{2JU&03q?EyT!acO^-Cq&!-v;@!T!soYM#mTB^WA?;lpFh}Y)INSF(=6S zd3LGtV)MMSw%}@GL!p-Y0_0rkvAzA)>1zrotT_In*SWITcWW!YoIoW{WjezPN&lK} z6S>c^d2;1~A#*Zmpa0k7>9=;VTg7S?j3-Cl@eob&~nhTYj?HO!k?l zeUFYVscOhjJBjP54F8&RelqD21l`c+Rnh$@;d}n39eg^+MF(RCkqeyiUGm;VSb?(! zIYBZd!;FGjS+%<@*&V4^ZNNl35#r8xO(wehWnZC zT=P-0!Ac27o*!MvS0LSdAX_dZ)XLY*fV ziTUif6^I}RpmO>E7lGC?YRb3Ngn)?*Jq@9S0Wr}SqJdEITUv}&Rodq&Y3}C!t&L@7 z>%)-hL%*V%1=X@b7C*Or$oI;pRWn+LUCm0Z?y{I$5bc<3GYilNAIvtl`8!V$2wdMl ztgLzTvTA-)|0w+^V7SKDBh_>#p? z-!{jBRgL7X3)0maWQ#9$H-yIiC+%YKb^d+OaJJ6tAqo+n9UQJneMOzscI#ngMK@!h z7S4KClOnpJ-B^$;mT=$~g;@9P8&&7ZCpY|5?o>byz!P%stQ%QY+IpR?{^%O#K;;!u z5>c*G?HMc&;ekDSt^zM#imw!kE%u~E-|)YMf z+j&0&B|F-v7_5joHgG{IDdd4yZr|)$bT$H=8$ot%E805R2g^}96JE4BVf{Br_4+V*b^$%c zFdL}=gzYWh{=$p4NwL4+J#Q^LZWv^IteH42@k>A7M#y)*xXH58B-PeQMyG|@xesq4 z3UZ7w0iIXd`vWqSHy{>2zHkV&^F*xE?A39o-@ujfZq$A!*QSR07Z--8BB>&+>-+d8 zx0+DB+Tv$le1UkiYS94`w|r*w|KfaI=m%^Pi^JGpk-z-SPcFb$Jd9fE=7}MvgRzC? zkVKxXf{dKZ83-#~!t=O;Mt89pw+{>IU;GCkTU6x@<-8y-cn7CVl#_anv9QJP>ht2imHan{8md3ZlBof%{#IL|CU~+z~T2j8!mt(RTpzt-NU|_4@kz(e`B&xBCaz*3Prv zIc;A^$spxcM|_~7L@<2crko@U1QNV#I{SSjd^bvAFP56$xrM1L^46~1O@$K>er|?n zKu>Gv`>3TXnIO4{IGovNbwV9l$Li`%I;riPU|jq&6<9e|y%@6Pd_=OeBMJcm8xKeO z4FzNfOsL=}p9_kl7G2wG{2krKXXwP}0#O;Z??+lMvra5-X(0-GjP^31vd;)!M+Y~2 zz1-qk>0s>En#l#cqfCfwa;TH8>Lo$$8V(r=O6W6$MFV|t5o!ht^wN&;b8)$;xyq=0 zGq1apf~{6%p&W%}Rdb5@ZBUfhkJUpzbHx19Y#?JfItKgKzSy|X<~_-lpn3+*h~gea zr)+H(eeNsF8xrKP#oqPM<)@54T@!HYFF>Cn6-|IY#d=oFX#zJ1T${DyB)l zVX`awk>EotMa`~bd%I}-P?<+uZznzX%R1`)AVxUNV3LwFgHN#>HYBUX^DOlKrm>Sy z4Z=3Doee{K4m$$~hvPRhNCXMfFGdbEIm4=aANnlZ&RUPb!S9xTOBMQidd?37@P9gr zM)O;AI>N(vZWZ(Znc+q59XYmJ=)6Td&Y%UK!A6CMUtXVH6Xgiyir3@Ve61{C-Sfj! zI^}!Zuop%X_WbarsMuAkMaFpM8SQ9RtNTI!$gxx;V_Gz7dWe5biD%R^JQ=Bqc=wQt zleNr*WF1CN9#Ah-TipsFs$)lJ=G5}Xp_I{N7s^I z7_H%Y?K})i@iteBg4pvlc1-G9Ssf7H&r~tvei2V#j+l^hmot?{`$rbwulvT+g?|(k zN!${gK#KF_KM%&@o>hrQ3Y*rAa~nW-~aUDM&{D4)Sp5!{)srS%bWnⅇirzb%5UHHk2@ZIQG~Of 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ⅆ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 P^661vH`?MS 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 J+#d43zX7#zE*Ag* literal 0 HcmV?d00001 diff --git a/infra/website/public/images/blog/mlflow_featurelist.png b/infra/website/public/images/blog/mlflow_featurelist.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb073dee73bf31ff7a839e8d02e2d7786c6ea8b GIT binary patch literal 424492 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%0AcvV{P5}HB(RJ3{+XOE>_QCIF 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 vj|9kcd_2gY^1UmMW_;SdQwyJUV8LXa^w4x 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

dB!`WQxj(_53i>NKYi@seK*ao>359QT2+4j%Y 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%0ATb?KL56mK{?W;7d_;_7^lh@ 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 z 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

EIc(ni9BV2B%g6m` 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

2rdykkjfjD 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Ð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

70gKnLv}dW2f?(a%4_$@vTl^YA)#8CcW34+m9^G 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 z z>hQfd!|n~A_RAxet+~#UL1z0cRah*i12IQMe$7LCa>x@=0PO(gVJ9>n=Gd$Im;TH0 z1AUTXt68tB(pEz{^>ivDJFJVcPO0-|S&3FoLfRbH8}6J_u{Z?M4F!gBf8AbY)Vf*k z@P)Ls!)g_7CnRdW8Yj3?VL>Fm0G0Cc^t#xm6rfgAkqCFimAhXG-FhS#_05o=72W*> z4{)E}b!-_-3^)c#l26)TSNtZR(ILp$3lO>@8sLQjsZ^K0K6%mffK(qz4(-=F!GRp! zoG7IdS9b1IJ=g2q;5U10$6Ho+kdj9F1Q4 z;a8D(@O^gjzu&@`ohUqj1T7J~&VN6Gb zORfY^A4Eo~2tr$Y7uUHztx{@uFK9hH{u_QEzUJepDyqCa-lPEg_U34@Ld!}mAz8* zfW?mXpL1h>bh&5naR(bXPdj&2Q+?~V+-i4Q%;xVBy%-$9^l?U7EH9xOCyL#tI%J!C zwJ&Ab@?5wRVa@38Ss!XK<;+QDCv%B3XnMa^iW;;)oAX|-QJ2C)(&n6{ znt36lMXI-X%j+hoFX`6Vv=3B!;2REC)x|syT|U-&q!}ifv1J5`CU-uv1ZJ=QyLnm> z{z0@lRrmdnc^Tzq@V$>9JE2eY-|+5T_>7y$%h?(x`qk=~k*ZVR_tgE>yZo*`@XPBkk)_5*Y?0R;xeC9FP zw_Ffm&k5J)ElZ%0qwVO5skd!)Dnz-O~NFh+Z}yE2D$u+v?3$_i?nmbvUH#UQ>u~wvOJ$X7mB{M zfA$%;;0u>u5g)LjC-%s)Xk%&VT#d%c%Jeu>Qn89l_is1<<^1El>M5DTQ)iE!+=6c5 z0!>~ZRO*94t*DJ%4qrGA9M9&1Wp4VVd(m)FKXIQP$yX=5i>i?d=||!_dPC~?44xF? z#Q;TuR($EWKSym+yP3*wgaYOUCW(`3CSodj`t`8m9x~KZ_LFz?jdoB4)FFSnic-A2 zny-N+W$XY(-)*^oX1*SOUkk6~`pOngXQl_LKA%~AObe;A$F7;9;fr|JCw;0zhtA~# zdWWX-)sH$N$|VEO2iAgfXV3^zH51r$g6_Zft@0aek*V!@v?o-_c6sC3^u+uddlK#R z7Ys+{;%^+ww!*s`$?_V?W{BKiA~^Ke&#D<)*ZD-m0wikJiw0N|4c{Cxh}aqlK~9;< z%sPGabaI?3Dk{pJy7XlO&}-6^_J$h|t`6z6gcag215$}`#?!f~qCD9);NM8|Q7skq z5vSxq&?e(gXI2J{Jsekm*o7^W0?5;u#B2alY8Vz4X?`AgjPT39-RNG5dird9X>0q@ zt`Xs7Pe?xf%8Hor?vkUu%M$Kl)zjt`T50mtN*BKvt!W9vX)~AxH;dZSMr~{z`Z8?$ zNg{Jw2>&-xqWfOK%*Z&dn58=+mGyoO`EB7JRuSaHHm)^ql~gzy6#ZXtz}4Hor+D)2 zp)7}ow|G6MXAji9!XdU?EdaS6Z4BaZlsn~V-_fr z)rs7IKmt)?2Yga{e)$@B{q>Z;QfHchD#H#KUM&D!VX0%QBucHO#nw(DmTx5v*3Ijo z&w{g3SAka=i}TdJ60+ZgxL{+;16!%iIP~?E#rIOaB(=Ir=$Jjr-?C4V!ZM{9p6U}X zRSmB`)JjOhxiIRqTWe!RZ5p^g(Ca<78LQSU;9UmgE|8EHqbJ$ybR8*rC`fZ^wkrYG zL8>-gUF1>Rp42Xa6~Y|VN$=d>HFKW;{##LlfunQkw%h8URMZASudA59$14C&q>YLB zk5M@*FsH(kZgD?&)4 zmrdFl-8xCK0@nat2ZAx$1`l0QC}zew5KO%9;$I~@9co{|5SfM9z8>nNm;$?m@t4~# zta_g`bhK0iF#tw+X`RgG(Y3Wl>ey391<}?`A1B7r2Hz)MbWubckqCHvB|kPk-SaWH zIlUGvqSLL!Onc>hGTroKaOL$m9e%BfpJ1*(ElQ8mus{Qb~E8_~QfwsAR7`7HnWA#r`Kc2RfV)6@k4MNr%!!`!9mdA@oeqpg(!cLlp85JEv|1~mc~Tn4 z3g6!U5`|9?9p~7%)N8xUoY*1`3CUGHm~gxCFBwm=s~YF=toC!Ypf0iTr_SL)-z!kR z)$7kFkYBvEY>0WM*eUZMw1gJFo=aq(B(yX)g;Gt^F=3XHFY~u!g8-{k{=s{!)JmG| zSgHP?hkHzr!m=C-i00O6aTb-z|A#hTzEnR zhnSO}!Ks!Vwzwy{Kg~D!?Be3&TAqbE+ySA=dHfOce7&r&oOes4&>za}ho0@VZ5|?m zJI#0dDnE8|1I6GyD+7HI1-0Bb{6}fPR=TaoI^})otuKwUV8YkgePA-wlj5{PEJ5Bg z_#`EC@AIqji)U4}qKCHbj*G-?`OWNfSbF&4axbpuUI*Ks+jW~$yA$ABKk!uMXKok% zfq@CDnMr5iqkD&$)TG0O6i-<e;_PTP*EfO0pD7NP*D;%a+Q9ku6+r zmRvVluqYiwFY~3WY)z664Rw1j4`xduvtv9@f8BOIT*Ho=i%O5~%wi<0i~Z~A>HdX8|z=ZQE zK!U6v&@A^7Qa#X~`kZukDO58zFM=8%ctYd8Xx}mV#86^$7)`y*^jc9j(XpFVb1;%~ z9unjDC%)yv7@ix%aS;W{nY`bNDr9w>y1AQ>1!T#n9PI5;wgAHX(+$$Yk4Fbw7p%8R zV*u<(*X{EcRi|tcv+Ps`GHG5}0*eM43FB>HndfnB;vH*V8U8W;hdcUL#XBK~;k5Cseu@ro(r{S)hdUMGQ!obVXqQia*v9f z0!@}DPX%`kg$}RwKI(?)BksX%^SL=Sk!#lxle=~iC=y1$-_%Z@W)ob+6$@+HVT5=&r zq5X%dS#LyYqb|;!Izgl2nUz?d>HNV01F)dba;=GkH$NGlYhkZG*jGr*?7~ktT`0Si zXMSFgFb>el!weo$U%uCO-qSEQE4N`bKNPaTZAYk z7_r-)aO$Q?yW7;=W$Vw*(jx)+!}l|20#c~J+iDS`YKijyJ&J$N>`c@7EcpKh|xMDBY(A1|fO|p`nGCzhv2Y<PKg?cy7X_C&EqZyQ(1-doI+zXu2@ zl;oCxKG*MBv;S6b!6XQqNmo_dZll^`Q>@RRJ;y41SLfGcOR^@cju zpJ2UpCieyNclj$QUB{3oK9AQ}VYq?mcME4)@yE1FTAdAU`LAWq+j@%c)53ym^Bi$v zlWqk+g{}N|h~p4XkjqujbhuQHk-kb_OP$snSnkJ!5MW}!-YKi~rlDP~ZVg{X?fFDF z`aGpmyBbee;lcTAc!%q;YW30UUg<#A%1p0lg`Fs-k0Z*y|Zu`XVuxz^Lp6Au_>TCcbc0J(rd0OOUM_Yc70@tojT5%w6S4_vk}MBL_xU!@N>-fKAa|-_S8c3 zV!A+@!Lek~qK@pS+Mq*f<8l2~$_OTGl+J;vK=xriYc7Fc!5rW2gvN8`R+`o!Jl*Zb z&4ZaDxgsq7H@!Imp4IMwi&S#SiBDt!PcGBFEQAU7Q^@>67~m=QL?|Vh5Hq2{(4=n< zvpAN~iIVWq1utlkgLE?{Sw^e*is{N?_Oa>d9YECic-9+0)?=M_ti#fgeY)#*yZgMG zpoEJCk=B~I_L`)DR7Hi=h{5+*qLpr>G=QIz8j;|L#9O<#DCiFbjoe!LF29mG{_oiv zPxa;oK5D}sx12Bb8$YD>46UAu?$$lyz0~M;vFo;Y9Pdv{lU0E)AY)Q6slvMTM)$J? z7T_(>$JLoS2!C$IB;YNB=y=)S5<1;V$W+9%;rbK#1WF?c zd(;lyZp^O-K*Ixavib|gZufgt^VZZOi-H-GYz<^%)CuB{c9Qa4olagw^=Yh^Kh;_V zv6j#jP8=(f{aKOhrGN^p3V1Em7G}wpih?8t&6tIn0Ov-_iS+vCKj7gQvRD#ed6E&k zx{_wKzOWCa$5}8&^?;JC~il;Li5M{f`I~_ja4-W zhmZ<+;l7pZQWPZD&YN*ki2L|{-y8)$%~#6=-di!Vf^Nl5i$yClG@PLnUM~Izno>^W zz6gYsX^a=+3X1+AKL_Fs=2_^dW?To}_U>=?Nfac|h|uw8=LiF-z4gCk>6#Kshgd(@ z0?Nv0H+U?>9L&pIex51ab}6a@6+(QhY%9NTDM)-8k-D*DSp12B>ko5!iDzFbbmaYfXHs{vzyN@mwoD_tdpiS|4{GZ|tT2}_EU94Z<>TPd%* z)_OD@vaYlWkh~dThvHP5C}8Vn9j6)Zv%v|V`aCFS=qkQ2uEh)Q(%(=qqtU&yem#j{ zT4GF>8^_0B|EbL|-s3CKAj4z*cetAsI9hQ}NWlBTd|nAz&LR5unUFQ?8!(vb6?&U} zUW06-U~G8GX-Swu{_nnl#ip_9!1O?!21F~F8G)W1^tsBCOT*@7HiH(M zD&|g@{}7e5k1Mz^ID2yKh~&Uo&2LHXtpz_Njz}wjUD7EX zQn)px?br*rQuF?k7DD*T-0T1Rr35wB#tnk3TlyDstqE%X)LM^zHTXXEkp% zE}ndr?-@_I=yDDLZ+(cr{eNtI2Uk;Vw{1dzsFbLvG%1RLN|h=QNED?A2%>`2fOMqy z5CTC_MCrW-kPgxj1VWPz(t8VCI-!IbAUE&(opbNGW1Jtb$Jl$1@vLXAx#pVlKY#C^ z>H=KwI?1aP`LJbqH*@C4KPK9t!Pt&9txyLaZ`Unvcpygeq({OzR~TF8>=I*=9=sVl zCH6I!%kXRm6G&$YahEMRYzmy&1T4$Ri)4)}kJ?E5$ov*FVm1@N<(0Er{B9_mM`==d z^^x$ZB~^{6&QkEy*1MnkOZvILCih~B`cf9^V&Y%io+S)qYRBu!d)+%;SZ@wwN-taP z;XV5RkbJM0C~22RBpq^nnJzEhioYC$FEMRX;^LE+6F)J@f47`ZWFmc~r%TT-{kiy} zsHBNXt;avmE9!_wlIcNnAHOD7as)C-0b3Iylda%kt9LW`lFlnh5pkKEi`2>?tKWmJ z5_Vg@m1Vx!fHhbHGol^PcNIfaK)9^P>+z|^qT(Xo3K_Y2zM26&v$Y(QU!KG$Wkx9s zqSZBj$w!wOX{YWjggWGPEMY8}0>_UDwH}VdEfgU*giBVtJc_QEn5(vJRLQsvec<>y zf#Oi+!SST-vk1Uu9Lt__&YnQMO0~yvwN1swv zi}-*R#dCpZ*Y^e%a}g22FVvp?diUw9GU4Ja2N21(x=Z<9;?YGn)Nup=@9oH-A^dI-}ve?`ULdC-Ygv zvL5DdbN*GWt$`&CwzNG@X)j*O?B%$2x6PrN3iGaoVIdnxEmN$JkyRvXME0*QA@8Fi zpTGYOez4|ODq?MMcES*kEBW5pml0~(77}uhDJYv9$lhsv;a}v#&M+l5Th(k`@LYoa zP!V@4_P=1gIfI&Olzn@yjFHsTF+Fp&`X)i_4%>Hp09#Hs!KkHB+9tw#1WAwKEpE4y zKb^eid){kxxHT=&#pXNzL+@vvXUj+LZ44t@0|I*V%fb_6CW~&B1DyX8C#wiM?$A)A zBou0QA6SeLSr?Cfr-wrOcautPlP#!&JB<(Mxh(wX%$5b!|5D!nhPvwxw;H>So7)0& zwV?-Aq@Ceu*h|i%wOLVl%9dPw%WCQTWUWvcG?`SsYu9UVXu0AxYfxw5&;=o^Ann6G z@X4@kk#}S3lSYC?FW0aCRqXhj|NmM8k$=kgKfFS{3Y&2>O~oav5*za}g!{(WOZU!3 z1jmCK;0n)+y&JTEmRHheYtN;$Y3L050ty42AGhCFomsEplY>izX4TsCwhq1^*FvB0 zbJTnS8*fx+b}7Ce2=LviD$=PZ_oW?n?fr!3T)rPdSH;>SW&bNh0}1Wquf+WDq$UEt zcTP&;q%OyfI@tySLZA=3Xuqhbf<6=)R%HRY9DGUoK=Tj^nBUy*p99PQvc)WWVm!EI zKM0Nk(gfp&PPE2@PzShS=x5VGAT|OGN`0a)Z%@rj2f>N0`qTdsyz;b2oN@E~Ltjmj zO0VU+1?tNXW9qjxaX9Pmyd-{{e`X09gT#qVTOw$5E^&Jnn1S!e6sZLDU&m-!xEgtX zLYx4o%hKCD=1xCRHTTuu@;5h_lzFe-aKwildpJ>Hr;nLG?8MSQi-OKn6c3U$#ZMp1b>S}HEFd~j8C;Q#zsNL`K?&8MouA`gn?>25A-e?6DZFJBY zYim&MIG5dVZKiHyNU8biYh8nSd?!_^stL5DP2$%QyBG8ivRJ!O$=&N}wYpwKkyCIK zzhgoVQWh1El>d>~PM5@})6#?@pP!|dl^i2IbmRoSE)-q(jXLPyOSyNJ3i(0_Lf+ZM z6a>-&vye?*9n zl=S#^gMGv55O8$~dA9*4x(Tr53@ubdjDBx=MkgAQ=2N==st5m!@WaJao{nk^Q58jf z^{$J#4AWF1O!>)ZEND?kSvJjkb=W_S=9?CN0oqYCU6UjuPtSFY0`k zlFt*QH$>)1HFz&rQQDC*3Hf<+YIZQY&QMJ{6ybXoTrM`}@t=Cc#4x2WTa}Q5x;+%u z@y}`bNV^qHTW(u0iY#)zxqGZ-&CM})+RM&zS!PnF)F77etgP1uO_Z(Qs{!gG9xSXK zFC)I(@^&JAGp}daM7n6uXB(z7BfLw3G@k+o05duWw1haDi0$R27UuegUbmH!&(f7b zgYZ72f_`=f+)L!@QR0$=^+vL+hqjVo+xgE?BlgYdno3G(>LHxI2pTshKPt0Hzc@oan@Krv$CsL`0+X>IX;$NZY!>#YvRJ2sUUfOvAOB7K=_<7yZ?a7Z z$zm49XmJjr4mR!^(POs9T6m22DLbdEXFFVEryY}HC!@ZjcaBsUOZ;0Ec9UQ0DQ5Y; zofJ+sx}LR%_$`~VB~H^vt`W6pw^ngVEr!Pu{e2+QM|bu%;Jmn<&hu8Ox|biNI$xcn zkWZJ>J@CkETq|&rmRdm7zT($oD(vKLlWY}(w=2XPUJt>pD(fnzC$;eKj6-!88(ctu z`lA-%=Unsue4NSBv%?ipN54Z)o^RpPYNBcn6})F0YM z*M=b(h+5o9!^v&{#P>A-tVxY&|2VX$=j0awzr>^`c!j>tY)bdUZ6B0xGoR;qGJ-pn z4_qe3mswI}7zlBLjoVuLeJyzaPeNK-fkUo|Y6yh!sI5v$3g6~2-7=lyedCs-l%27^nPYoSA_vuT!8W&ie%Sz(u8O=zs|EB0Wo!<)W74HC8Fd0d~|>5VpknX z1RCckK&Asujp2y_mKEWFGp?pfLYOl%fH8kI&v>a-$NbVx>5|Iv+y1+<@-Rltsik)w z`RoGxEzyLC?)Zzqjj~R@iX+()rNg?~N_fq33dsw(PTBQyJYV>zwElHzV|6b#pG#Z%!1>;j z;|H@)0#$9~#pFXgsuH)~feBy$?h0z)`H}(s!_4~(Gx${rYhldsn&;Q@#oH;TC;s$= zm%hC~;^I}Eszd?!h{lscSI=KJ(7MtX&Y?!g!mVH!;cLgmXthVqKSn9J^r!y&n$dl0f&D`A03?3xf^;Del%y-5_<;0 z)30?GYjuAKgk08T^l9p3c&0F+8V{t}$fhH#?feLGJl|OD{~Ew4G~WLHU9enTQmsx1lK@F1-j==}BxO_i}~0n`QkxbJ}S9iJq(wea-4G4Bnu@o#P=s zA}1r2b#Fd$S~*NsONgzeu%8Vh&X!iPVQ1D1Lf&N3jBrDoUjx9TSWl1Sdm2i9ne5Wa zpzzcSBpd`*4Egnehf~hw8p|E}3x^fFy_BF+*n_Ys7ZCFSyJEl`?KMUAFnWNc!R)8U z80M}|XA~z?UDg9n6XjX3-KZ7dRpw*%x9YJ2Kn!aF#&y(;#vWwR&GL7=+xR-+(1&pN zHLDS1y%>5xK0%Q4>F+tu4O$jr_)bByz&Uz7r;g{#&<5b9Rm3ocYWksk2mKE+sh&*g zN09dsIx?dDJZu2R#?;Td;w;VE;$MD8vVO6IL87_BIPk#hMGJVfp zj_WkM=(_9BBRUPgTJc3*vUshaa)yoLPiY6>7G}$(gz2W=Biri@#KuENa7b&}TLii- zeVy1kqZtw@TK%nd2Ml|5=9&Ft{ldsJp(beg)OO< zxCrQclW+LkeaqK%``4l+EZ-$xJD#Ph)fBO9VXm=#UU2=_6D2mIJcym=y+~x`wJ?79 zlMQZsIzU%d0fhE5;nOe@(zH{uQr#QTcNlF(G?Wih(Bbm-^b=5XjF6$$>8?d4lY4K( zSW9e#$7ucCAmogmh3+|}n-sz%2>KuN1DYE~O?5(q856zIv$lPs}P4O-0guuYx#d-M$!m2;}nd3+i)f3%DonnyslpF_l<*t3LHKfcv@ zj3ZT%>(a#>+L*1$dWU9`c9lNcTUOxEur!xUrX^FB-w@4BM7=gZ#6c4o4m`SaSr`y?@TKHHo5Q(kftSZ? zZLRn7G%^4^pzGr!G5jg?N2h^RQ3)RC1tnZFtoDvYyi05dDVEc?%~Z@X%2Bm zlv}XEJ^h8N`KFcmFw|k)D?+hM-pwH<^DmH-ZEuZE9a-A#T4|QHd-OO;9#a_XcrnBV zHe|vCT=bat&m4bclok*pdY7qcw9rszlW{tS(jeCXNNtjGk|z@}MKn;dBT*Y)cIbkb z+#$ZIdCrV4QpingO>a-7kIGK>%KsDGjXPO;FOjt~RG2I=k}fw~QAbRURdm3ed&Nx2 zzvY(KOqrVa=`wy})?nfRAsApQnFco;(7wsAa&}JQ@+V`CtBR(Wg|XX7b-KDu$^Rm- z545zi$3pkqxTXIa03d)2V_#4=ioIpE^c8bHv7o0{dPJX<+*WKG+&RA|ChxZ9*F%pv z6noV8?r6)SUdl@b75-3@1tGIJbJR-r(4Znz{&<8hT?bU|4r)^)QE0)BW}7YLZtE3* z45h9W3zppk$qQ7)<}6|_rY)(X(pW%^8?R{NSPAqZifFLlPJ{9eeGxsgV#}mMz2WD} zmk&IA4?XBuEX>k6tR`>p&>1QwxE?*zxk*b^eB-Fgiqu89F00%2#^sC}=UKgt7eS%@ z@2Ka$U1?EHxHY)4SHmP!#Oda00hGEVP{L-Gs zE@nbFI|gQBf4Fw`nH=d=CkeQ!xc4^S5|is>lEV}`!$VEF?nUCooEJFIly#qE&jxEI z2z@mGJ1rHDnQQHemy%88^j%y{saj;)V)&Q9`~MKt(XMssq;9Z_q340-xNY^G^k^lm z&nn$I^EwLjbhH(9ZTr|0z>JR>5YR2ou)WBgBks^LGWQY;0F_sP-7i1R0gx)c*}H=$;I2Xg*1m9cbJ!dAzkj_>lokGVUQ;qxS`fH(*q@H75G1J? z90OZpzy>W$m_SQ2P;;F&GBuxm+=+w5o08$D3SMtwPE=uA6{Mq|r8O$aEkxAc@Hu4O z?h=Z`8vgjPt-u8p3gv)l<9~NnfE(^Ytf7HzLa(@9B%fs1x=J#i>zi1VB74*ojU#~# zAvfi2ILv(mvW&L4pv+s$C%f2>+Ie0-GU8_Mo&T1GmRUM>+C^sYUcINWvnVWxXHW;^ z_F4!uX!Wc=`6j?=+~&M7xaOhp0jXePHP27ly}$@8S!I+1RESRgd~Z1{Qp>KoX3IIVgeyut{=(N(LlMdBS#-M%}*=g)xM z{JTlK%$Tu)F}O@uiS=!BHUO>M`XBvZ49gkK9+Xx+G%_nriMZ)|6QCJY9(dew@e*Sh>D$5HdwxTTR< zuV&B^c0)sMR`497qf@FQP=zs{>CIEJm1gqEH0Rl#rG0mC~~B09+X2-NVyszt1J++K``lHYw(*HA|__)4jrVr;F3moP~P@xvS-d|VgOe}1^$ zyCBcX66elckyuK55A@Wpp~2RbeQfezO4}X&ydoj9U09KMZ82fRM;{0G`0QbB5z#=A z`E-6OpG3hQl^3>r)Yb*Zi@;s-=U75)4 z;C@$~Yf}ENt1~xKcEK-NV?L6;L#?6e)4hpI)X82?AGr8m@?ppE4cXJU$l&4~!`Id` zJ}3usob}+}sKZEeI)1UGKzYbyQ*Id;!XZHNP>s29*i%v&{OTTTIb`j}aLZ8JxSvPW z!z)Hxu2x!yH9K08UrzhQ{@V*+m1+iuM8@#zxG{A9jjqi+T1>WO-H|_jBC`u+QUZ8W zJwcvC#-HMmswN9NaQV*oa}sJ1O%z2!wkd9CwLBZ%Oa494YT|R=@RZKU=hR30Q@^@P z)Qq#4PAR~NNg{l4vz9P)KAUTEJZc)nUPcptFgBD`^Rrk*Hc+8;B3ct2LkR6_Fq#v{$@&5=b<(o9a@qy zjO>MQK%>rL5xsGLTG+s{V&sNI}puy=6q{?U#y9tiFbJ9>1Lunr!D ziEEL|CnxSAS?UK0!_fa>wPYFS8}@1k_rnJNLuvin6$&!2+%t)CP4`P{=rd3CCh5-< z-pwj(&2iOGO7OE6`Q7kAx3WgG<{Uy^f#iQAI|3}l-fr&yC=+HZ(#O}54`$9M*%pnt zA3k7xMbGs)GDHp(UowkLKV@a8XNAzBX=}jsR))CsfeV0d_ zU&HM`GGQYFO(y|J|B0V~!C)-(&KTu&;paF$Qy`B|Rl_qAA3v99NC!OZsT%056HZe2l_ zT0~f&_b(0QpQSmP&=H=$YqhF}>OX(buoX?53pGPnpT6CS?M{O@+@E}vl2qsea~SRd zatL;J3zZ*Ip84|oMT2ap5pJz_q5tZv+1pa_$-9{VAj0;V>SK_*pE%8Kv(Ozb4Pz!< zkIe~PQVpk^yZBCM8=Z&S&fq2^_Jhv+=K9!X7=>Ak-n?)J6xPqzYX;cK#biV2m-;tV zS3M(IwGzv03N&O?6}lqTn3N7Njt!+XlfWtwJi_Spq%aruoNkE=PhDY)S`#sx3^;S3Lp^P4MY)u3a48 zePf&@I+dhy3FFKy3Xg)WYiVSd=9laYrPWE5c`Zz!_w{l_FQFUc0aI?#=ru0(0pv9M zj8t8N)(@g|3cvUzF?$dpS|3q-5^D~)<(ypc`vB0MT3*$G24+T zr{xX0)_@bUR~ml%Yczc?*}Uus6R(FG_m@X?(9op7{ex$fwxZJsmyNG}Ko^9zu}{}r zuu9=j%PNL>Ec9j&2baPftk)?d|4Z|YN zkGpr<25|2?)zJ&rijOAdhh~^08jWPBDLN?4RJT?TCLL8~gYg(a&7${v76N^e_HIa4 zn2y_e&kk16(r6rOY)41@p=LI(@YFr{!r0Czz#PzXusO-qyY%BpthaXzSfK85azQr< z;y)@WspL0m6NuV>qi?Z$(FfBRBEJ^tv2c1^w&YYK?;baj);ou1I$NmxS{Zhw}RV(B>F%D4Fhw)ULPe?^>| zz~arGM|1rC7w#zk19w8N$(f1$19u#9Xa}nL!~6Z1vSin)HVpy>$;`}O-`!i+31(Oq zjyh*VX2j)ia zu1$!1%;-p3rBC5Y-JA%*j!^6b{U}~Y5BK4unboIk?=g>yr z<@lLJ~Pj-iW???XDVO>z+F%)}{!0alfHyPnb zf3sEC=VX??j+Kx0`L>df_{yO4bh~QZ6Dc8*+w>piY1C(I=zC=9r#jTiub7H9lcT<$ zmLGn}A8k1ke=T0CZ;K8QAkKaf;$#_)Tam9Nc z)a8kwiW_5xP_vjbeJRrDtthJ(vB9u>NX!suhuFC*Kt`#Q=cdoQ1vjgx5W+_E#a`A( zInV>T-83;JYs?t&HVpq`gAY)U`2op7b&4U{GLcRvz(>yTCs1Xn8&zdmN;1^)JNRf} z_Jf5L#|N`lYxgXu0S=1{(pjK8pg)LO_e`@?x}`7LWmlH5kEX2c8-gV zS?Ly5M=K>B@f&T98&te0n=Uk}Vj=v=r7{<8W7o%y01dZNp9&j3rp7OFSW=2a|OXUS?PQqc5yHJB|y3L)Jbm#iPPPEPq@Cof!gq z_Aq}Xx;V4gMf(fhpDb9@jaB>xhQ+tZ0+N}9Wui59ZDi~#>P73LytiL4y2W{yH5pV$ zapKmeLxj&lj$3{G+WKpkd7oO<;2?N8LMm>uhV%I*?AkY*)s@b>OxHyj!-;SBob9ch z2^OdK6%kPOyF_vgp zQpv7M_%oOMgL|?<*(I~u zui0@Ya|AAo_)G-~c1i`=lM^Yavr7pr_S)s~`Q~FSD_-**d^Uliv?-ZID9S>tt|Gl) zvfCj7wfS>xk^NB#teAC_Vji#PR~YojY02`2V0xDv?X{0eVC>6Qz}4PtFs=U!c`VCA z(!nNwYJ3{~ip2#H@x>a7xIhLL7GD&jJ^#t>M%k|?+1)IS;HJwOTZ0#USTdlDQyx7c z;U3HCP{jiAE#zkylx3)aOW3UUPbxF>Wg+==C47k7uNjbTUmNo_r=8dBCJI@r-x^-- z`bkI3Kl+o4j0E5=0+-4o;?>U+xlHR!uQ#WFKZ*p)c~mX>g*=j%b2XYyk3IkMQg7AU z3x~CT#Q4APE6z56duarGoht3wVf>c&NqyDL!;gN~ZP`(&RE1NPP20tTh>-vbOTcYE zgUJf}{LG)zl|#ZcPsoNhxsHvV!;Ok+yd zy#>mn6)=qJ$OV2HySt$xLT#QHqbzl4*jFObZ{fl6zDXriqXM% zMwWf-HF31n?gl8u`?EJda(;2AYE>%iJb%GGT)uggH|zIaL~f?J>;n*ISRAc#AlcfF z;q@Dy^6f8{*!fYam`mOAi6w5TTPs%`FTt5s3Ov7xoO?cRLm*GEkKkhFZC#_ypX??p zq8WPkhy|4syB)hisg)aD6$31xeN<1CVxAl6RS0=WT;b-vZ>$wxEI3>=*k9Wavj{}^ z1-+;)Ozz34`#!a%%4utGoH3R@ITj)v5pWKO>4_F2xDptRN59&^5%8kSG(l!{MeG6H zjdB$#*HJ%L_*&plI+}DiTH3Ry%UQ)4Wa&Gc>A8?7QrOeuPqV*8h3>+>fiKKfBa`<0 z@46I%E>wC=0Sx#5Xl;8QhRho3>Rp6SwP|ImXNgGqf$ad;;DGYOOkl>EUJ5r{$Lei@ zkLc^^coT=eFOSyt>xaj+jkeyLMe+tB;}U<&*Xl4wm6Xn!bOY1OY!S~U*C4kHH~l<* ze-eGlL|6-gh8<#ej4FF8#2;~oRxj7?8(qJU10 zwy@{*fuig(J_k%l-LcjPAk0uR+?&XQ8&V{t^gzq*k@DB0RU6~Y>8#s-xXoWjhbKO! zE5opA9x#>BM}|~~padJQMF3_ffdGl-&>j1VQ!zI93_e%ti%FJf`lYw@0uoKH&lAO7 zMVajErI2w!K^D~ICmk!s^baqwUL6pFx}LJ~TL^(n(10TPi=2IS(my}a_@wuP6|68j zybzE?Oy=Kb!JHp2->Y$3AK4v=fsA8%ts-=*E&hlX87oFNvYo2*eu+x)OJn4$i2~W*+eNDR6oh=f8*E z|4x@2Vra*BSC_MjWXC53zulFRS!q;#Lyxv-h`3ui7%0?ttW$sTW% zFD!}>XP&A?4#9RH`nK4m)bUFvI~%1G6+kSb_ z)|ubt#TT2PW3J9PZH2XC3u@i}_V&+8&&0RhwrhTDj?-B!$ z4DarRXbUOAKA=^F!!~VkmzO$t%fzKc!n0RL3iQ9x>VN6J!#KUuIdx4WQe7e2^+l{a zFH@9_%z)*QW1 z8^XnPkRwXfEHoR>K6!KdbDc9a?PQ{dDX}^7C|GJHM-Bz-fi8_(V~mUwyph8o<6u$_ zq*IwSM+*M?B*<8UyJgj-be z5x(Ukeh^#vSCloue&l@Zf*dFn^`2NMJKkQ>Q4YFfqwA_NM0_=tM2~WTGymi}r zi`O6uSQl*+d{q?Gu-Nz@u*M0|BkVG1#QivT-1(l=KU+{QZtNI)9RUs6>7U`@93;;2 zU{j6Svs;~?s2U2P6)Sa`P^u}_QO=HB5c#_v6L)1KW8g98LT=Tb>C9dXbK6b@YgwY@ z)IUAe=ae`(3RDcof4b=OpWGwyOukP_YE>6V(I6b{hajb*Nyob%U18f3;>uc(bTP9?8f3i zZMpU7tB)KKaKlx8LLis^cg+i)%{I;T>3vO^2b$~ld*jZwnW=OGKJXh$ZTrvJoH+(n zu%Btq>|@*DWS{;9GjNfN%6OG>c8{6~M_Vq9OxtF1{2X!@?L3+&!P>SbNrx1rxG?%HQZT3c$-TOwXCSgpIY4pWs$z50_5DdQXaCz@00WDs^1N%iF)L;u|&^qtRg zO|#3uFyXea6YkdEOtL8~a-^xUbn-U&JYa2Q(u02GbS}WoI>-LeTRrx-d05dndgG1p zvTU3$>jl)|mf$wA(w9`(<$2^l-mJgwcv4G17tyM+SkrTe`7;bDH^Gf_fSDd!Q@X}{ zB5^=_%qNrGQ1VeIO#;XksW-WBJabm#t3%7Z5csh5*L%gz9QZqAEpb4#+gQ2eoR|&c zs6AQBmna5`P+|r6`0MihZ$2ZS^Shd?i$o z!f~?SS1=FaoK~wqB=`L9RLuwg9QdiEX{kb zRw9jfyqv;s{285^QWT2bo=qz?!La@Q7(aHrNh}+eKG~Ot^TU}N{@i(m_I1D5cLCnP z8NuAJ+)O_= zyXc@6pt2O~#LqHb7~+dv`McrH`A{`t|Jswizh*kX=S2pz^AZi%=}(`bo{I@b!AjLS zj4{9PDYaPjd&NOTo|ak_n1}mzk7FhkN74HW6xmpz%wr3pKox_3g(xe>fSiLS$_^G* z8!BZt0X-R!LIfFlq&1k$rgRLhF(TC@!L2Z2UsJBIMzlO~w5(qJ4tZ6>SG)SXf;uY# zqCs`m%#t*C<40-kt?VH4XG){OG+#o4>BV(Ihja`iv?%-id5Ig$G} zVH3==j>FOIU%~sCz<#?x+x*|T`JLy9xpZr_?#(QI?j8ONOfPzr@f1ut2sx?Mhhv+vYpop7<+u!((o^-l`qz17IEFZ_td`pg=-?i zko1rCl#^jAp9=9WyoNI0M+b7&)#4tyZ`vGG{0TMHj_3$A+Iv3OINVPbKS_DUmGWSK z`P!V%;ws%$J8qX)@xF=ALkBE;#qUOgCgUEO|3ccWErcB^ZJ&QZIJs!l=99L9W(e`s zV^||ZSf!1Lg)HrtAC@Xb$#J|!*FG0fP$huJcfYg9=IRZ+Ez~oQgbM5gQt3`RR zUiCqopA?a+=S6JjIYoq6d4js-Yhs+ZHI(2I=?OsUv9lube*KNNwts6*S+vcVW-vgn z1_Wm6-dWubN;hxgR(o1@T-UE9rsjDAHSoLCM^7BLWJ{+zsf zIe@V`q}g&-W?tdAUBSw(-5=hx`u~Om|5tJ;Ttl0HG|X})5Zr5$`ECQA)+2mzK+gDL z)-czdd8vFv_c`!&oMunQcgzrEzoa)x&_x=+!mSLud4_MZh`iR_N5lEOG2|_4!{@_% z`FcnV^-3137j(_>j}S;?wX$n)%fCABlO#yWR!=f|yBrXDlhd$M{tvI#ptPL&B1T1Cyv{4})(%rRHojI}oe{K@ zyETyJ@vK&d@h8;VOovc&rqO1(XTX}^ttF$unsycJW>oc_{FLi$M4@3a#H(bn@?jgLr5dCqTrH8yvJS`755pSwB zXUgwWan?o#G=W7tRPgZ~sr13!gIDm|`Xcy%Lc(y-Drc6Akhi zdT;mPqUfUcdO_v7;r^BtfibI)>Tib{85-5`J$Mx^c8nQ^ruXX{s`+r|@2;AP^BN{8 zOLrlp*+ze(kUz4$w-pfAuO3!E42HI)djdQ+zj!tfx+x%JRS&5ylO zSF$fS^g8emIAw#=X-fk}#wJj_VoZY_wO$3AG~+40F$?0%WxB~7_Ai_{M<-^Q#mRs7~D6V?&mUD0<)n}^K$OYV&U*I4 zBY(7?)(qlSzJ4sVWHqwQU$jxkSjku#Qg-s2h13!1D=HJlii21v=8orcWxOIg1u-VO ze;z!CntDf>FgHDwA-x7-g$?W8f-cOnDH}Jlj2ZXsKfb8sI%JZX<4J#Yf1u3%+C$Op zzvoyvRHyROfVq}m7HYtk91NXbdfQ|00k?WrW~=@*GzOH@-}?-#o}X)R9vPt0mQ#p) zQEk$E?`{z{c3HkBGrQ70BZ9+sWiWmD$W(1U;6=L$_X25#?9jG0Mck>iQ%2(z{Ckx=sW;JFz&pJ{IyTQMZ@59xC7d*hq99f>z8Dy;`})Td*6! zwb1Qy+VL^`+hUTb45F$-*M*QG?0H*h1Zqz zpU1YP09cMiB$?rnZDxD3P(%YQ<{IE*h`cn0+K~HU0#pvUKxIIUkFsStU~{Nf9bX?g zP~KgU)By^WFaQFQWC3GVJ71wJa7B6aeN#->X$QzG>L9XDR672wNpcqV?t`f8Y(XVH z#IB$BNYCQ5xrIsM<%rnqqsa@7&3}zkiuuMK0z@R26HybLnzpje1JQt~-76`ARCmg+ zZMAw5_3GYw!`*;=Xt>!sgDuhckcAYfk_Nwy)my?eZ{W; ze8C6x`X>!w)@G&H0`QbP+pJ2wN>hv+v%`kRLbxi~_AyTQ0YDn==~{pb;gr=Yz4x(+ zi-WbcY(AMPY501@+eYXFb_($*rE$Vqs0z!PBlv~JC%!KC!J-p;E!wj_KaX}& zn)ksLI(sYeM=E}<jx5J6!PkipO}X35A<)f8b-c(p|iOaVWydQ|ZC}ziprp zrPla9US=!u5C?L$TejF?<~$FE(Y5n;l&Pks&rj*1;zm{W-34pnNf}1iuR1>i&(>=0 zPVc0iQ5C=cc2n30r@5425S5GrPIg955viK%l3=Ave#xcRQ%35=Tz9Zx82_;+TV~r zKV_*5K^Lwg_V)e;D08z1TK=B0Udd=n#tYfCZ@8LcQRoZtMJ0 zHg%Md0nSkfc1`s=>SO!fpxx=JanRDG`ZqGB(z3GZcptaDD=>aBPs1*Y#el8tIY|EK zJJ=^MmqAJ+X+Kk}Y+Sx0v@v*TXi>@Sb7=ft$CSk$#YhCd7kGkH2=9L0z=Yb`O__7x zRk61I>->maTqJ|5FArfo^7Z9BCy|Sb>I_@j$x(0all$%z(}TOK5+0r zx+;S4Ew4)k`W3sI?fWN6GM3*4ba#E$aE8iC!~T$>GD**^6DT;nsQ^_7-0Y5EQL_*d z4)vStwA-2qSNZ#gd!)p|QKVWhvOCP&HV@{Le!4cc{MTTss@OXU2uw!04G7G9jrD5k zHOjAV7;s)7T76sA%kk0$QFS-Pz8nQ#Yc`D{mV3HrBxwszax?Ur9#o-Iyti#%ohpZbbcHme1R%E5rs{orikj`%D?5v-!@yaKE!%)}X$!G2ct%UiA|^*||NI9VNJ+yOX$lvOcXXVsGqV5~RYz3AixpvecQ`KVWVb z1pK9oGsgjE{XIAXHzKJbB9(#_%yg~OTJK+7_S-N=3t<>!BcV{1M4?w}bLptPJkU>^ z9r4{bK3O*9$K4EM09B$9MbPD^jtj1j$?Q^(yOE%tIpbjphA3a?J6Y}ZF(RFgoR^!i zgU}5w-o`8UIFYAjRyGzPCGNGlS_cH-*NCSQq zs_Vg5RQMk4I$uXjO@L*+teu@~8y+VTQ@7k4Uvs?K+C+xu6@5)EF+F@gzFG1|?4cgE zgBvMzylTW@6ywCO-&ZrZu`Q`P#aXk2xxy)XX6;qgPw`v`*`PU5iY=qWX9x(WoW%w# zuO%GPT79V#eT{ehz6CNT$r^9yCW{|XJ(94u*sZ<(S|{qfbjG=J`Fn}K0Sb}%#vZ?) zd0#<>=Gx(5QAO`J+X>*NLhY+?&FTRJQ^nD1*!HIv%M6MivI`TTg{f!Z_`L^h&AEH+ z?Jh>OnG2m7b;ohPZYNi$8DZWr(#mSrerGuaZkiO#68Jq;_Z7 zsSKOzEJs$G2x1>$L%P#7BdfKL(1BQSyUJmnEBEj(w`+VY^So2*mG(~|?v-2lJZ8cP z6;S0Gvt7(#1L?Jz6zfV)eFd>IdSj9k`c8L3*zJk@(lGX*Lr&(Eq6CF;#ZTL?Ygx8i zZ!`}OcZVx-Cp&)N)d~6DBob!SD`2{7=3jllFENIxO3q%o>>HNb9)<_1-nlUqePJA5 zJR-&oMupHm4l}*q3qR>jP_^gviw-XTiLV%HwM^SVE)@Rxp^S>~j?)dnn2*Xf_ID%1iW~yzKAssd&76_xQ1=&1j*XUfb2{G6BnC z3XZ6lRnLQQOPh=A9Jh=N3&ijTi$|}0w!U51TSEoc$=*sh0bg)|~Yb??*<-XKL&IEL#034d(G*@tW!>6Ux71FRlXVktz* zZf}A~6sLli@SG;smA1>MxKl>HpyzV5| zvmLc(_;X%z<<#)Hs+807v!|TVLuR&MZ)P_K`pUO|hr}1c<1@6*=qY*$RktO}+>3Ss zR0L@q_U+bae)iejOAIO0%?WbsWkGL6&x!hk==Ao(UwQSm2qSqQ6Oqntb<>H|aSWxY zJhN|%G2T?tVZyrPw+8+BBdn!c6~8ADw!C9s$Vs z`s_2@|7TqGUu|;iOVDbW{u}z0Q7^LClNENctUL|u`ChczHSkk4!9Qj*WB04MYPp1m z|6o%~UR~O-L0`j&!FxKjbRuXq-EUP~x@@O=vJC}{3)xD!CZ~K0xW|WOx!n?Gx2`!D zzHAG+Q;sLiii|4z_StcBv*;#Qm@A<)u7i?+B!ad!&@ zD=idFakrwyQrxY$2B)~Y2MNxb?|Gghzjw}=HFHn?yyu>sz1P0hx;|?oBD5dZ0H9E5 zYr$;KB`cB&A7iFB-a_W7^hZ5w1x&r;;xbx(($Ewa8L>k2w~rjSyIdPI{0ys;|JUr- zYjk-v(gSqzR%vm=+)m7?*lF~%`}h%oNoHT{ouJn5$js$lrmB7>#<_Fb6bNAnw`>Z^rtQNZM?}?fD;@UR(4Vz=F7c;Hs1I{RmPxylS^ESso;U?_b+dpQes3W=GaL^ zK9jgi!DGgg;|`{!QQs^5!HU&zj4I6iZA}CBhd0O;r+c%}BM6|vXIp4D#d~C6$&4@I z<5h7S6-;#sBMTXeuM^3A)L(=WcGA8 zt3>asjn_u~cq;viZyzlVl-?)TwKVmc+4QUKCXZxzMzm~W8fS^~k*E}#8V*?)xOJwD%6T}`NbpTXNFnl&;cy)>dnmt9zHVh1JF^td9GU>iABgVt<|r-Lb?Y!*=oT1q5^o`vz#7!}M)nE`Kz zt%@2oQv`$CQQqo9ucQb3gQn*G^t<%**vw;nQ0saAV6Os*FM+YOWhj+}X&2pdd zos_=X+{jZB(>yV7fh5uFPL8U{;S+R+`1EJvQmehvR6NP8)qTfmqz}@A#-O+G5jx>V zI{sp-2wZ7p5qlTgEsJdw^xyPB6--Y8kc!A-&*A*;qPsetVc0-$2tZ6F_ccgs;Fos8 zs);leVYolxui!!A7+J;Rj(+?R;^3$s3=WYIIKALRHS58_xRV^#W9ozgTe`Mujz?nc zcI8T`ugFBrW!vuAzI}~mSzE`TY;jdZT#_0F-kb6yjd)3cv0l{c^ZPY; zWrO`q4brOy6nrPU-7kFw&AyXn^)ZiQ_(Emw(UJpK1huv5bM#0aFZ8IHckb-iv)ab4N&s z`?drIJS`zNww{#y77QtYHx|2-Aq=$gAvQZ!dsCDa5*`zVl8YbQkIK1UV+Wir?l09! zrO$C&$4Y9oTn#x+$zzD`tm+=_?G$7XEmt)G3RDDgP~rALTM3SJK3s%V9;=&_rINoy zSj_e92icpEqjTugts=H`S*Cy)pC$eo;}PWrT&IN16TH zMt%$nGE0t0Bd4X|Pzac6oz1I&^;A~jeoW%}jIS^81APMW&`qLM(m~2w83*Ar@3(L5 z4ZdS9wVb5rbrvWUH8@IFPF$*nT^dAzy~fv+ksD2kYW~WHeJ(pEA!roljT+`!%ThYu ztJAP0y!ht_|5KhkHXm=RJ1RLUh8a9(?I861?7J61Tw_V~YArp{=X#`BC8HBEACQKT zD_CQ(4?71MbC^jmqR3D)Qpv|29E{78dqai-tUWE55dwX=2l-TNq!YX>M(ve-iz-_; zx>i4Z!5txX-)j!&Bse`jbx)XZkPY<SOmE z8|gotueyW1GJCYvLO;r=}Al77<-OutUgd`TUj4zx0-f8rc_DcI?IsS z0I=)ViOQaeR*9PW2sH8bCM~(qhX!q3j>gp7{|xvT*37y%8Rv|=n68y4Wk6`){>iT( zmyca(4iRUvq1U3%?$9T51m3@3GFTOxsp5R4tbeVgS$~nN8*_3nq6r=w2|-sYyLcW9 z9a*p99J~6n`|DNfeh5Hw18gRwUu&fIIK`H_(b5BdxG^qQTSeu#U!VW>pRA1Vu^jxu z+U(;ctGNyR=?KcX6vk1#6|E7~?jgAwlcM9UqxPGOgrbq(`Tg7Dm%j&6ykdmx?HYk| zU6vVrGKDCCp6=FIO_fPNjo{r`fKe+{md2b@?<)_@JR{5W7Fko7{oa*dAJ91 zPoUI+hjlJIYJnVtZ18V}%GEv+9)2j5r1KwKU4YCDen6a-rE@ zvM2l!U<~=gr^s37(Ddf(ZEW7DV7lBGPcK%qUphwFGEqv)UhB^Y#Gc86h)y3Iq(Ds>@^scfzJB2Ek~6NP++%V=mk>c;(w5F) zhs9L-IicCQlW5(;E_%kEN;^d!^dJL8Xr8@Zo$;vEWP>m^h09>2^hNDb6OQfYd3sT7WKw zf8s2G$zYP#R!#kyN=I@la)=n#({H+8B&v2yH4>2gr(+d-7B8-{yBG`rwbN#;go}RW zfUk&Iwl$NB?Lj+rgb*4Xt>#Y^kt7fB_Tl-~<(l&RVk9_3Hen7m z2<9lL*aetcJ!%CLRwbNvUsTrh@pz77oewzQ2*}Non_o*TTv4k0(y@9Ln2_(+NK!oR z<}zs<;&ZjmX0FfR65}mQ<B)T!UIB}jq2@s3B3TY7CD zh|StF1HHA@R&9+!e#VwjAXs;PZee1Z9u)SX}h<)8|jeN6Bn20J{3XPokwM`wAndGAA`~0RtHVm&4c}QjdzFH`=CJs-HS*qMYe)qe@ufzCgNClhY zp$;lJTl@}NV?L74yp6OK`RJtB%Dw?Y0HUVLMzrFkeMsnfx5STaXvx3g@KG9a3dvDB z>&_3u1^nn#?n3vf~7u-7k27ds9~YhW9g4EOo910>3{P|zfmd0CW7f3w9r zd#7<%3ns{<8Bf~B6+vtjdUR)fmTFLc$r4W0lNlf$A zaO1G8$p@Ga`4FW`U|;>AeP7bXOPvoUb|b1|*sL&X#=xZ=GytyM5!K9^q_Wr=en478_NyGM#& zSz$NPJ*VZ`WC&YXIeIsPi`>HxpU#?mNVaVH-@?2txN`%K&I?I4XOfnN^-_}rl|MQo zHJa*PwZNp)r#}o7_0XZAwP-Xinrh0l43Q;j?3EX>`THZ==0g4 zW~8Q6_EMh(w>Af zXULV%<$K)jZrubo=k1GK+3VdlZp%{uDkPe<;wot9&A##TD-k+l2!W%EaI|#&mgY^g z3_}$SRzFT{jpkI5zQ>=}A1fI*`tpjbC+F4j+&l_d#$qqW2ipUBP z0SS167=@oC6IldU#taG#8}Qi+8~;OB;^rN={yfwiU+r(Nhhh4zO^VQU|vUG`zIy4k`yuSh#}pG z-j)}-SeoOxHseuYVIFMh@bzxmhUh*-F9?TKI16)IQY6p>?RBY~xaE~A81J@IzA;-3 zMro&NDxh$)rpl}ZFZLm}XK1qxv#@>p_7z12%=5I!rqa;oyjmA*qcEoD@UY;yMAKa1 zgWB#u5u0NN_oz8Cushl;pQid;{H6*%PR$3>-HOd-&CuOlb(TdvK#8~NVHalNTXzjq zv}^RYpq-n8jC`Y|mx#(Wckw$>3Q2@T!QP3(mgtAZOw`&zZYG^&O@_s(Nb1G@R^`r+ z=K}7lO&_pC=G7|Uf1J7hRj&S*UG$dKCM$9}@*p`PC(uxDNkT+v=1H!_QfEf5wi>Xc zo_Mv0tvs@S0AA(-4<7nU4~S`)2_CiCw}Ph2;EGuut}7x($ookvhmr9Ket__B3OZi+Ct_>Igw;gT)yUkV5^QEXj|py91&J2eb}9xuk9rX|4}G zUaqcI;W3k**>wNW<}t7)g*l?C0y~7nsC2~)nlT$kcEzp@?R- z$_7hGn^KB_Ve;;AV;e!AW#KhQAV@BlRxA$lHPwaxd7j*8p^)tP9jtzw$3I- zCqJ!2-+OYxqbIlIweoFrTt$kE7(Lg_J;FaD-Ag|At)8~`E16Kwgmx$Cvb=BUOO#ec z)yq-Wyv3_5cZ1_96wCX#?O;+bJsS8)Pp#c>%pVo9ZGYB`HKcZQGsp`v5blZUAeL00 zmLp;qGW(*o@%&-TvH982v5G7_Kf<5PQTP^&_MqlTS=(U9>^@#*po^srKuI5I8P25N zRS-{eziwl!G({Ug!Ah9niDiX&tkP!g1lv$C!Dz&W)GUr9fHVrpLz?iY1Po6KlOP;(mcc7!>eG=Y_O~gN6F%!oj4R ztpZ5j1;eCGXGPN%br(k4J_a2NTm;01x6T2wGo#|zRMtbe#E0wBCYK#`(*Kk%X`@;|a7FW;-*dwo~XMQ0_T&pU59=<1+ zH=h!cH=Yv2ZSXvTHhG=AX~JF_^y>+cGa4AHJUjtBOWYE0Ix`+i`;PX9y2-T7@#xh= zaH|cR#&4bFb4TJ=Et0}tFSh?dV=o?qR^OpfDn}FskuY<6G~Vu9_eJgtWoT&_1>eyg z`fQyPs6T3bcs*L1_7ZR#?PbG&e^gMBD|mHm5o!QH^~ZCq?OdAhR5qd!9{Wev9#+se zCn zX4cC-m(_&MdD4`xBMI%s*{D2 z;kVP0-W!sGYjp|rM9nsB5~C-hF@G&yzx;)V&DBqHm*eGjG*{c&KfoLq39}<;?i-RSt zHbEy{$mwpz;n}kAhBEIzU2X+9s*)2&Tr&j*zExz>b6Xek=rRM-fJL#7rsSpQk^ey~ zJ%E~WLHyeO7o(s@b8JGc>fFTZfQnGony0^U@z?t9*C}|@NY=%z(rbqcr~&36r%U(mh{#Z5?!p%re-A1y3J?A%{C_&(ANC*I zDxlx|ASl*7ZB>PyM&jr0GL{2XG zW?;W2-ZlL6gee5#Ht+E2nzVe+t)a<9<3?o5fOZQkv1@M>J4&)6bGd6{+%S}x_eHbT z!7jB3TkV1CFny{;hl(f>J>6iHx~?@~>%x}u$MNd+TWO_5U$jblasv$JX}vvg^e+Yl zLVB)`b(_^#%khb?0%Z<%DqakL2Pi)Jar;QGU8yF-wxlTKQ1sZ2 zf+rJJz+}c@a@BV#MA#FHji^!#V{}KW5XN^sO_a%nD~^kQ%$NlrI+VC2bNOpN1LS3rR%(tRS)=^rt<@|i#Wm4%Ns4aX6IrloI zII5^%mIKk8s!8MopDk)aEd~z6tJn^x%emJXb~{u2di0M9`v2TD|8trDleaB%!2@wv z0Wr3D%NW%WXUr2x2s@`D2a!E*+94|)Vh7={wGd&$iA=xt9)ygKW(t3ztH6adq6`<> zqLHMW3Azze5`(Wr%sMc~^1~Xb#ChX;v>9H_r*fU@c&Bp7x1xSkd3W9%iyFKJI&bE?5STJa81h}-VAf)N^u44oo#vv&0iN;W$ljc_e<0s3ko|O zZgnjD^Tyy-oI~DaNCNGJa`jiC-^Ypp?WdNAXN>hi3i6mlnZp7@Z5u2nSXknxF4&xC zMVWxdv4c=2>Z;uxXjIu_Gp7aN6hxJEVP36`HsUVQo$Obu@Mn>?-F*f*LfA7Te9A@% zoSH-x6bE1h`;&nF=`zf~icX#pwyaU)G3Hwg5=nC2T@4+1n#&zS;QJ5woz-Td;ulmn zKX=r&pwwo;KvGwOKXCeNP&2?FIIKDeZFB@Iq(@?+KJ$S|oYj`g7># z0itn1UJrA3mRKUdFsR437uT$3+H{6XPe&;0{w<`V^>kRGnpymqmfaV*&Ze>0uYaf8 zyGNzgS4p&X)V)*6T=czTTI&Pmu2Zuh#8xo*P5LXUpn}sf0}0y~{ane4&Wy$6Y5kpq zQVuob`7 z7^oo1Iz9r_kQFoC>SYK-raMiu7;F1Gkr=hEk*DQ^DgmTR00%VK%lA3aC$(11*U-g4pL>O@EY zqPV)L#=N%HevVukq7WFis*~blpWuM=2l=Mu$+9ORqxP{~&D#r8m_6t540s5jXV{X^ z0jA-L>3M!kTGznrgJIMh!{Wqi^xYF#kI@pC8^ClDpctUc_|);O@j+ieUexM>10&Zm zUKV=HLy@>AVK0vM)##Sw!fQ(fz0(FPzm@i}rG$8#FF^Z~Vf?g2KHh`JZ5nq``ae`q zPZ#i`gED|y0S|jkO&thifd0S>DV@C4tA(~o#3J@+!L}3zvf-J^=p#PeXHG@{Hxx)p z4DwRERiGh8fGwnIl>rPjbGu#J52fR^YY?U~Mr6DS@4>C`uaeAK*uu8&J3a+2`lFEn zQx&~#m`RIh7*v9=zgZRQvak*~%yTzSfur?SSkm8PMm}I=k1HqeUHCplMjs{Qp~h}T zcc9(Y(hyDi9aZtaI34}wTA=EWNn-gW*t4)zYW9(Rg13dq_fVe2lXp77_k%lv!p|}3 zNICM6i^UH)Uhi|Bmw8Ix{(I=b|M36+SMm3sszhd4U`2MlR3gpU(8*lk-_ASUUwx4W zAC4yRLLDHwJDo|EB`XR=QIL&f&EUZ9=ktYuWwDUmKatTP{{z(Rl!Mcv-X>UB0W1X> z@=k!8K^lozRXVBWWsrJr2S@Xpr+XhUU=RUE%A<4qePE$(Kg2wtm;4A*Va4K?jSsv3 z+Bb?_s%4Vi#;*m=+n9X7Yzjms6^~)V3!leu-lO?(ohh2%c-pe~Mo0T|QsOj@1`t3y z1xjtevTzXqWT*P1%BtvAcrK{+7|exd`l{*4#?n?PR4mto0i8kb`iC5?cN z69=1s#D@xVF1b{OB_T9;YinTOzBjs~`qh=X^u|9;U}gDHypOD)>%F78Qwu%^3%7he zk;QgRM?8c_%@V%5W~|@S>=ahFcF^+$lp8v7WN?@0(2SS&n#_N-?Z-kGpnT%KNH0y} z_qk0B|KXGPzg9&Mj)iSjq)&P3-2IS!ucb1V_i(D<8JIXpBKCSQ<7rpVk9JGE%%5Kn zZ+3(0x(0ZdRDhoLRYB2`1zrxP0*TA)s50{elR_n~cGXehN%#g+0h;v8zC7N6zIU z$+X(e@XJ!}lctx;TriW28lQ@1!n~`dJuosO;;wgu23W+ZF=adKJlS)oJ#eVibyX;ZWOaT>Yu!Rk7;f3o zXLP&oSTU* zmr8vz%N=?)uD+8qc@aC;@7B=9Et$$8-5A&f`g(GancRU1ByHnufkC)oh_nYq=gmPX z-Y{eS!Osi4ASP{E7bARzL)&Nqe4095mHuLk#Ye2HY@kge$@8KfE<|kA$l9;=O>H69 zi~Sjstz~0p{R}F=ub%GiYGc{5%?&DJT!)r5utT4@axcmM6<*2AABQiTjLQfyA5*zM zvAF@?*qr-=OtoUnl}qfOyIp&XJ#(#^8F7`^DGQo@vOrQlDwXlg)CGw>AUs?7^_M&r zsFc+xuQ#kKA9{V(v6|gxQ9`!lwMICN z%cH;kheC5^pKhM3w!RAcH|5C0k~)U&N~l-=@uyzl8)<}<)DGIHM^=D{==Hu*UNvCk zlomLGSYf_LPmJrFYToyOsxe*w^f0hZI;q|QFMK118eQchTNT? z3)B6_wwIcJdarIF+-aV5k`v+P{7vH9)L=_X(xo_+!#3w0dselUOY|g5Iu~AU$ngd4 z2rr=@&(llc^aBc5uH$yJ$)-Q(?coko#fTs)iPvHN zLun4|h?WUyMlS|O)kUJ0h7IcT(@7Q#r!cs`-4Rd*PDIvvokuS5~AW0*tI-mFU)hht>Z$x71j5Duf}>7z~^; z@BLhEsLE`f2qT{+JfMgPL-%N*-n_-bT55~QB`2cMyyPqJJ1}@=>*|jj0~ymS4dwL2 z)^Iw{MKS%K!Zr)5A27+lf~pYCgkfzq7p%(`Zw-ek?0cfZMT169Dkneo>5+5{)fu&< zYwsIxb4f`J(A45E0t@=a@r_(RbW?DP@H>XAkJRVDrmbP$?z7B(dsG+fCH3uB|F%!_ zo|x*U8h3AZ7BJ+?m%CPCJc9^{!?Fz@p*tqsIwmfOz=6pcY9UlfyC61c( zpzKff3ZSjv3=M#CV&(yzz&@YO4qJHo%ipUOPurOK>}1LRoMGF0 zGox0kb}mCr{X$KCfjGg=YEfLD-?+c!Yx(^n*dLsaW8Mx?zu`7r`M?mh{az2))3}k5 zeu}zYSG8}z9Ov2T zi{@{?aH|p1lDEbbmyE7FP3b);yT+7uawv0q_wxQSQ6`~Hp2Qfobw{1UZS}X+vGs^a z7Hu_}e&7at{)8E>RtNX;p#QX}<-Sy5l`AuK>-FyPZ8-Z&sMl*0OSt&@NmivEqBT8# z;0;9$ew)d4G`YoZ048H9e|kp&S72_h5X6Twtcsq;i&|ZZXuFw@29ZdnvpEy1xe8Ab zw*1##{CA9G`6`r!C_5)<0wuUKBY2HN9G)AO@L+*w_FrL#gI6`-pTLLO8T=)*2CIKb z9>KP^WUMYeZBqaR>=Vq6vO=`=-P;R`XFh?F^Z$;_zcvXz`Z*~u8Nq6ou%uBfRw^=r z)ui{w_Vikdp)qt8@zIGvXbXHDIRNFQV3`*A)#dJaJe8160&#b7@mPhr!NJMcj^TvJ- zIFxLz;3l`KXGBd-09yeo3m6SR8#e4XOwdr@8;Buvw5Hvlk?a-QF?skVN6<`AkPpF^ z;YV)i6J|6AS$B7<_{(&R9O7JV1!M)>^Pl)WJ78 z9B50|sQwT|S9hC0z)X5!=682Kjh%bsER`$uE8`OI$0Sv<+|e4Q8z6KYT%&!M#~sZ< z*Qz4Tf8N0>kQF%|gNaOyZSt}_io5-B6;aa7hAqn^bxlvPryVo*t>I!NokH^37-3lb z;l{_a5V7rg`8g1fa4?Y^_g%#ITqE~~N^JpF9h(F&)SW>YSaId=+}zPS%JMoaZ|zT*9}B$IN#i$; zf4vW|lpiN@sx@1_Qrn5sw?=~^+Q?%7h!FyiV>Z!1$$u``rgajlUk}{T3WKHGAO4Pf zx46aL9z213nY4fS4B^B7IwxeLK4wQzuRE7zYsW*ClnW`--Az#eC2Ea*)lBh!v^lL< zX2|%SQF)x_^&jsj;YZGi7y{;7RYvu6nsm)4Ahr&A0y5aChpP);$bp)ZCT0PG7AsI>Un`rD*Y48Bqrlu;2rD!sU#6ZKVSxSJ= zIjmopS6Yl$5Iptw^y+s>vomp&!s1@Vdeh%Y?=`nOx*>-y65H9n!vd-&!v6 zZ}Ln*H;Lo46tr)tz%m0d~QA4aLfqCYgAGOkceOF7sUpaV}+xL2nJPn@+#%-N>FslLnSMu{WgXFJ% zn;>F+HvIYGBa$Zi5kJG&ZoEJkF0jSm{yV!78zA(=r1Y7}6{MBjC=W#J%N>5V_(=y- zwx6I7pM6M*oAmBPt%U)QTz)NF(2omH;4|3Bj{2?s6`MO2(nUcD%pC_eYBkhv_E-oIof?#a-uPD$ z+t+f(lO9Ll+fHNiU^mW^zbE{QZ6zBZqB&iqP$2$-V3O02944?@lBU&FygLVqRzb)qq$9*8dfTvUpxZ3WO@II)gxs z%>-(!)%xtQ;4gNALBja1Q4Sfh_jDPRoC>^ZM)4woDIz%hz<6OoBT>B<;|;@{rK0c+ z5EQoBbD7iE4_ZD(dAnCalw9`v7)P@t?CO+CNcP{{De3D;zA#a%{f&}Zq?V+ z$~WfphL(`}%&HHgb1W+TO@+f6$A4q)SwCbQrCtypuwfHt<FY3s^SB3 zswuoNOoL*Ke#z^dJvIH}y^!EWP^D^UyzxdCkjMExB5~@A{+oeF*V;A(o#A1t)+ze> zcK0ldJCYGR#$uQD@R(Ke^`;30_Pt1ar25rbgWSuUJ}un3NTJ4;{Zw&3MZiSr4{`H8 zMvdNGFH3yZuTy<9EjKJ0DixNKDvnn>>}&Q`gH!{wf3C>@tt9zb@l7@k4(7}g7khJd z^WT054|+iW#y8e`VtnWJR&(9OpB{)mjLi*Z5u7(=8&J`Bo&ii8k`Ry$#=4ZZyxvoB zqGKvo{D^Zjmu-3;^h+}$wwKA<+;i$No6Q+X^0tae9Zr(+miZ>Mm&EF2Af-{RO~A=B z4CASx{6~?`yQ?xkG?+MJu7#Itd*dJTw9(#*`0o6vr1cxCa;IlKO&$29V5}hn^?-ty9?o(Qm2HGZ~yG;^t}J6AA@T@A>wzP zNSR<~<-b#HKMH-vM9Nb}F{x6SGuFHG2B%y)z;3jReay>@sM4B2q!iX0^QL*g20FQ? z%Br+6;(A`^J>(!a61x4k`MV9o?uU$;_cK|rxR9ns-dq*;2B<)%kK={HI(*$MA~p#g z|I}Y$*X~n`ri^L&lcPMD|Zdl@I|2ah54{54b3_( z$7H0|2q{|>MWb2Lx9I*gIas)a=ix+6q+QxCWmQr~v44FWJ5oHmm&-bDBIWGPqmL5( zsiGHY;zPvSq6Xf5FxrJZu2U3-BZXQb)IL+VC>w$wo4bRzIHO~*tAP4t=JutDk1U%? z?p9Q83~iBQ0E$hFwwPk_Pe~X3))`InPXP&lpr4%@nU_ouy0TB z7ayLNG}iOzwx|q!o303&jEv_i71DDmQU`QK>zfO&4)UIzk)&5{{08f9VZT&KbQtS< zFaF?G#a({S44&;0%hm*5UGA!V9oSa=G@?!NOatBM>ellbA;gjVU2ZYPxG3k1(Bx=t zhI|Gzg{AGIz7YL@Z8t^O6S*;9n&hD`G2gtK(N0EM<|xc3*th?A_bS1LFuOsN&P6cW zL{AB?Te?XxZswNMziyiU+mp8(D{1I6C&%U(^li8%Gk#aHASRZH1ozK+R%0^(t~=1q zDcWDs`8;>I6>Mq2(IxhrM8kT$G!Qa~Yt=G@Kd2#_PdRnP|0G!pt;U$N6w4}BVh-N? zD$Ckp*3c=g1;NflaYDWC!tgZRBQB4-WySmqK}UaT?#`${9`c&5F{34$Ecjhz|H|oCiL_Lk%v>&LBFadT2yN1U$97_8uBVUwfm#{={bHBgxPNfq-puc>ld~g6 zsWMR~vdcKJ4WSSABg%NE{a}kc-cV(1kZsMi{F%mv+!-@vNiV|S-kVfGKw7Q#VZHUEvp(hfLrYm>-RO8d|eexF6g?4+nMMTLlfc7q(Ur5U;WGUMlks8 zAIA@Q00xdaYB+Wx51#r@wT9JqrM^J#r*9K&?mqS4Sx*|R51{264Ri%0r!A=nHmmyK z^LLKO%ijSO#NJ@gxLTy!UF>SrNV|<`hR0)7$}^Uf#|az7kMVU}dP)8clRV0+Edn`g zU2N8v|1X1=vOHPrHojL#D@zrwUH3Jt!h z>k5)auDUF3Wct^-5b_}B+^MbB_oih8(wrQZ8Ng$Xxn&kcKB^REnICU?cMIuB>F!D~ z><7i-6nmlt!jao4y5m#O5?|a$J%7X?4w&D$*X<+sIxq$ReHI(km)()6U4OR=k;8NL zd~RxVHnE#r)O(DQtD=qs(V82TDYz}P%xa+agPF=kN_DBH57KiO748hDVRsTYVa+}$ z@SaaYnQ;;Fmy9yQ3j^E&KlVXOG7G~p5ApP;HdQHUZGJjNy`>*s_I*|vot|c!QKVpE zVzMp~ww4eQ$MVqaOj96Qm<@XxKuw=mT&yeQ+v8g)S8;T7R7=pq#v1l1k`x1<%gLH* z?uE!2q}lnH)U>dl#!YfkFM45jS9hXZAuM--6=GG?{dCPn8Kt151>;GB(Tb@a2lbqs z;H}_Vb2Ff=Lu=>lK^!~*$vphQ#x;0%ENScC|8@44G6gC<0!@GGQAmLmCA1^fS&28z z!;+@tcX+t$q8YshkUG{K$g85W)b%sDCyJd+r#U9-;g??m6D%skyiFE|JC2eQdmqSSb;5FsAj@b{aNuPPqN;r~ZED zo<&tC?NO4esGYt@F z6+)=v{we9fU*1dj{D`~*x;H12Ep5@JUs9Sq%VE1GSrL&&ra~GU+ZDlG<^#Y`P*~IT zHDTVQA$Ue}taRJHUIO68EMj>=+wg9idW4^Nl?)Mymt-&kvE(0-GMB24Bwtzg;q8?}3{6c3%Z3xM(*aDTXJqCZfWh(LGN9n_dX6kB| zmhE%N?(W21qpux};O%3U2rP^Q`YjTGkvt6_d2)iZfZLn=1pd1}X@pXf;WrlC+dwx{ zDd+1LzjQ5zcCC@^k8|4t39r|=NyY2lJqn*$>xt4)hA~LJWEGCO{3J3)L7`G{7;OiL z^ucCSc_d_^NC`De6RV~$JmbZva%Q-@-h)$wOi1OJ=5!6E>SpnQH@RKMtp`2NMEa%J ztG2d9G%vpt^@wTejlSxPpPbbDDBBs>RIUGX=63tu;k`*dj8lhpRO)x7sNb#ENk5mI zS>%$Me!WYz@hALn{YB_0p^h{IcZOA9XO0{(ez$=fyky7 zGyIC+4LU>GTwJQa7R1e6L_u034UV&5V+tM6Bh z?2UxCDydVw9B`Yv`87&e(rt&9#(K$2vgEA_>_~^Sy+)&IIzHR@->l;)73Rn1@*3Uj zt#OnZcj-wN$edEv;wx0XEqYLY|UgPQvf z)l0Ba^J@MBM*|~e>sqXmw?9X;-mv>M`G6yzoQtgGL@)J@N2vHK>?Hq?`A0kH{*ZNk zb8@w-xFm(p^2k#~oJ!87Sa?5FD;ufEcc6y6-~Y0^zL-g}{CxP}?x8%sTK|w5W}Y5> zb#GJvNPUJt`IBZhVSTc~&B&~f(2K;_!PhpvxNs-y!J25kzqaif&5;Wa!4LrIL2dw) z7@gS0Jt&`Rj`9_~^h*HAJJ94e<)07T%~+z!2&HzchYfn~?4%Tk#j9S`d;Trq?c4fV z@SeECLW2g>YlSKBlS{io;O=c;87(7RDCny;I~TEZL8-L{Lqc2n0*26}^65}28N#M2 z>R}b4zq~wurpW)>_BUFJRXmxswG2b=w`3H&2Hf3d!V#8oRv7YXM9Bn?%|I@fPAA6f!LvY?58(Wu3BqLd~;s*H>bjw9Tlu}qvk zG?5AC#1LHq&}?{#i8VlFN{{oujFsNYXJpd&;@4Ijs@k5snEO!00`Im{g_R;*T*$unG@!nK|u zyWm~OUB+=u(r}QY3pZu5s)-#RTDadtBvr|m7t8pxuGz@x_V1U(@!_u1;p1HzCyr&m zBQjJfc5Bp`eN8o+j@(_YRQEeETA~wL_q`ogHvQakj(Js+Q$PldMQS+BUg(*qNdDH|Kb!o;dq!WKPSiUe zD~D(C7tMJhVI5g>4$7~}{0$fHmqe3m9%$^>yoT-=P<9fqt9!=+p&(74yas2K`f;N* zY>cp}I%TrTW$NP=)Y0@;z2lN0ri@yJ=cW`{P%#Tgn|%E&U+D~Le~ zj3BV!AUZBpnX0JUKSbYTwUbQB?Usqk)e@1vN6;yt0rp{4fn~nAhNO*n?h2SXaS9N8 zjQ!pdJ^uAHaKLQ-BIP6Lb7G>yk^_5?h=>E9`|B)5@+sfhQ_A0>@$s~s#0Otqkq;vJ zO9gzGJ0zwOJ32bLly$6?m6a!?k8X$$eabMNkTEtHIi&T4lL?&z&%nOO3C6vW0Pk_~ zyDjWVb{K)v5{SJm$~P6bm(lMo=*nV%G5$gB@b1nxVeT_auZei+)@tau z)jrq!p5geXE>PgyCBk}pe}d8kh_m(twV|yb^$zE}8qEo#_v1iE7)_WY$qRJE@;--}V7 zzVjCvFv9hEp#>I+Zli9+LVG4j`@?kg4#gw45$p`SD|KaC`g1xXrExAdp(x8VSp0-W zn#kDKo{Q6D_L@wG8;CDtHZz0o{2qnt$i2BPlL))H8mq3UJYl>3p`u_At1>m(Ia|?g z)ZY+hS4Wy|1Kbw13+kfh9rMXkWUg&QA2rzDHXAn1~ znRNZ;v+QS+F=j6vn!L%4vKroDG1+w5t9JarzR>q;;z(JY)mf^aepW8ZcgJshPxQ)K zdP&{t@ECv|0F7o z)lzn3^$ujTyewhZcu$2 zhg|oExSd#4zKr5(<7!>Ncqy*%(YuOAP$UD7a! zAl)V1-3(o4?&tnJ?|IL8-*x@5|CqhjtTlVh^}Y5d`JWFvzJ(rL{`Rbtxw$j$31eh~ zW&Lr(e#8Joo6NtyvK_raJ$U0}ueV5`3*-fIj?>|y)kREa&2&@$TFW1#uB9R4aX*}I z+w}EYrct5-o@KcAq>_D|P^*K47`n>Dl}MStLT z2Z@i|SVGgq!Az+jUzD5}rdnhZQFLl!PY6t#7BSuKc2@likv~wcDxJB&rn%GY@vz_< zs~-j5)jr$zJU$x9U70MM#oC*?eG0t9em>3YWh`Mog>FP3qFdz6fEJ~?wVaXeBu|al z)z_IrOxpEae(XBPu%ft%{@}bQ#+;GSs6W4QHry^ro!TAMiO%kh*vW8`YkLzXkX^2V z37a1SqoS-7WhOAgsQ|YvddQj&)PC=;3}plN`IZkc; z&J9DsFn3WHY>tFIV=0Bk_vXDx(v7nOHd8b!g7X3$TfXu2+Ngn35zS!_7&d2D0lmtN zG^N?<%*{=hxqiC}ktA3P-$e>-p#AP!@Ws5H%ksOv9n>eTVo1E7+q`j81P-bZ=!&53 z*vfG_G1ckEiw~upv8w-qvO2P~8P27nnvqkGn)G(~d)b#u2>vk=`44?3&c~}Qw~^Ka zhZ9juQ?qz6>?;$vI@P2Jgj#Ro#wS3?Vh4iq!83lbYi6f9F`Z#rhLkULuRHl9b||M* zRf@jdOMDwG>fA0-u*)AE7~ACwv_FN}gxM|J*N#~B>la*A{S=pF=z_PV**rh7HWt+t z`9-)dV#ecCtNiO!W_`4FP#*aD46o!x?ZYkk_U7xN3w83-A*sAiin?WAa~+tT{Jei;>)sheHY*AHAN}Qlw3>8hS$4Kp|`xS8>A?Y zd2{=mqfAI3;qN2r>@TAq^wptaJ2I6_(LYlFs(5oIY%uJ*UX24kpMWIwOeTt)Mja8) zyI^H6MkyFajPfSSGsEU$C9IHjo79%D2letqwdRe`^OlDgZ%Kuzw>XmDM z{_xoL?ZY3-$7F&<=M6bCf?($d8O*i&s3z8V6S~AR%2_tmS3MWvDwd0P__Z8_B^F#% znXu|iF;QF1KEUHMuf-rK;fgTz(H?Sp41)=@a4CSv(CB#_+jg26F2af`Hq}e>J^gUF z`gjXND>#UmI2Yvrd2@Vfc>9a?gc~%y*6~9qz{3Rtl_}j|4EJ7ay#r?qUAOcKp3yb< zV{}7M<%m2vgK-)3qP7}0kZME6OgO(~3**$>UONs#S_l}_t#h#A`pecCgi$2!(s%k?&AP~v{TjICNvlw6yUR0~|IGmF9s<=R*p#=!gLR5zK4OH*f(Qxz|Y4)F>i)O>h64_Mr ztx84yEVe)P5ulmJTan>QyAgs5EMf_4$5sI&9_YW_-wB{*f9#*#NRzgODL!+Q2$lbA z_fz|=-@Z^pn0sK|P8hy;^O6)Wwt{)RIh4+8G?+pb7Ak9xYHwYVZL?06M_`iXsN%zs}L;lXuxc} z?Brt7{*fuwc)7JA#qqs?ukc{dk^4$N;h6#OQ9 z*n9eB$_6WbSM^Too1!A4;6h6ymo~f8-n4Sm5QShF@l=_ipdu2>CkCPhi9NM73Los* znZM~Nue`54N;&?S$=pI)cB|f?jLIC z2$W?co4JhoK@|9!?6PHV81dU|HGh~SdvNcUpMOODm19VhU#z&7Df@Ozyi(f5@kg_| zCc@5t#ZmNj!b|!`#6CXOxJ&8T-n#vRadI#pNlg?Ewn~HhqLhSGJ%$bPc$>@V53|lU zb`2g>H~h06rqACRt~{{}I@pCz_;Xul>a&t{?<~ zr1q8bM|8#K?>qEYez$4K+G!ckZj^g$q>`q5GINJ#(@B3;aeXC)wuo;gm6jVmc2FbN zX8-p+c^t)i(kD5TGJaeV0zjvh5G{qLDNo3&%N)P>yQOm5Sp1qVvQK*Ru>!7Y8mT%p z+a8U4uOCE#gNfQ;k?OIyihEbRFp*K!Z&gY^+8!n)Osp1=d(2`js#&^Gx+(r{+_IUW zb*gvC6^)|F@EQlaO}~WswYUDx zyqVklswqW6vaDIIPvj{`pXJro&f$s!7h#tJ{Q_Bm=$wMW@g%P9s#?()nqXI7OATpy zMNcYM|KP&G?gk`A7%w+`Go(6}n#J;g#Xr)2Y$INC3+T+Xc`PDWiHABmB<=l27q7qm z9nsc(NAv6zR1Z{5EhB%~{Y6Dd)FR;$_LC@zW6T*3im8Du=|7z`oL|F& zxb=%4elus?EM=9zq)vY#>@N{=q;Nv93hKJZiKC?Fc5jL6qo~E7RTQIxavt76Z|tplBi!07&B&p}p9Ky)z_^j!@@p29Z`<0)4I}rP_P}?0-qFbHix< zl0QUD8BV?Wdw8xloU!UM>M;~rx4it(|K@(F?Y_^1Qr?q2$H5Y2I8nd8V8s2Yv}8hh zt`_oYapV))9Ngpz8|trml_}!8a_-pXYhXeyz3p;o@f2-xNpM_@J%7mhDY}UV43=}* zdDB+0fcr8M+oub|ZAlE8^t;E?be{7wF`U|W_bH)O~|5e_ir+5j~wyTI!uCf zPMyXR+u6V0Qqf}Y@7UE|s)JV9c>5jpVz_w8uS(ZH6ktwdxn8S|h#wMqW`pm=Q4<=y zFyQnp>R&=;Rvyen=qbJLRQSH?oLe@_`!h2!mn_{(>q#4c8AjFfvAiL~~u$e(xDWJH=t;^>=(9)=G;DbOdtK)l`QV zB8vyCw69(~bG|V=zgHZJxqihFV7f@Zu4Qu)E_-#=tk?cEK0qh8))Sf{O)$f%nV!p1 z%e|WEJ>#Q@-bR`DGbg3-=PAjk-*qlbOswt%>NWE5Sx#|r2V14bzb;D>6f5fa${4yATB2WBh7P+u`V}IwCP#ivOaKqA-45LvCZ1DO zWwtK_{ROa{sBp6I3PnZuY@vi+?VAMK?=Rv#B(m6+n9bSHcFVsVHtB<7M$U$PV+Obu z{0)JHKNyN2neF1~I&uV|=GJ68gGou86V0G8=$hV@m4>Xq+g%2_2_A>#(cFQeYC!UK z*OVm7zac-2(VJyXzm0#J`8?HuH?(oGbYK1f!JF31v+-{0F9KnVT zL?^Myc(u00;v*l~xz665-l)s8{lUpPoxV&Wfn>?}J#Y9Y$JaKQLvABW?f%r&^oLRmE$!y`mbedh3iDS~U6R6wN?N4hM{ za7+RR3hTl#Nq4dw)@l@j^I=0sGmrWu0QN81{l`bk^bte3Ig8oc{ho3n&wcfr=zWMW zjEEx4UfFMf&M_HX4v1#j@!@1-fVW9@lrF4`oi9+Ps|Q}PXC=7$^a=R_seVn6*sln| zvsjPvIgdjPQIl2Dh*F-=>I?Wv_duA^Z^8XFv5x^*KDoT+ z_Al-O;Fp)wCht$miOK(8nlc;tr6ADI1pam;m9uP5pDG=d#@&`-OAUo=7jFx<-x*=* z=G>#k)MWFcNj-9ufO0AS8}Jo(h?k1+GPfWjQ*eOhbxbDgL!h{rtd;xNn-l*66(Wj+QlzkMqd_#A#&H{a2vet|KA*} z94d>k_9$vCgo$q{9gBr<(mlvhv1!ZfwKkYb4%|rO>p%M};O5=bK!&XoO?g6j?S^4w z+2KK~;HECDiA&RUov*G=J4};vhW$_1iS>S&cI^;Roh2CWv0ePG{QQIZo1e;KV76}f#4>qq zye$7{qq|S=TGcm7Jg)O4wnQamtIJK<1v-Z7dyTT{dkqWjmy6q5&^`UW)~b48COn|D z*kXlXt6J$LC!Nw6U$QhV_T@XW)7ht-_6-(mjTXr)_nRszn)3NlX(`fIW!X+`cZkHlCV3Bz>tI9I7f8dMUv zp~J+7Wqr?BA6O2O5%W9Ly*1d_dQc5l-WhbR@SwOVD8?&kL39yJBlJ0G%VG0d6h$*p zHeE#ONI4%Z27V;{5GZr~>a?mhw{=}8P&08%ynXwH%_LZ*fzU+FX&Hl=8N6;O10m_1$$Z+SndA02(Vl^@linK zPH0zje{?*`D$ONJg*VsGU1J#~I^p0RpbwJOX&uC69wX|T%B3*x$g5pkW@Nmf@Royb z9U*v4`@r&1ph#9nlucK!iFTeUwa1(mPBpWTPwALoeZvN&;D**Yy-P`x$BxWRLlmal zpr|aI6X0uBO}Im4I~{sK6x&;LjDG2%9qeEsDU5`|WbteQ9%D~dGF*V+#Zz;2E;9s; z#RT~7Rv>Tk0;>wnD-3Ug4d;e`xycVq0VF(OwzX;wElP^X?;lSQ8?@B+e2)G5zwHfL z%3zfZ5i)oyZ6~j`MLtBstn|}YZ31LvEY|ur6_z}QmNSiG8GodVh6X5|OTW<+og?0Y zP~8tLG1pcyJz|?h|0(7o+Dc9{Ju<{5-cGL}Ce!!3(n-m0>F+1g;ncEk#7B$Wo@hqk z$F70GJAFynrXS?(o0UE%7hc_NiaRV_(3ejC(WflV`P;F*DgMy#%>h2Ug#TI@bMx~n zX&65q*>AVJxJ&`GOqR&D>*BVZSA;g#pRtk`@AnruTao!(+FlPmihjne?@LZFb#B3? z!5%Z159~~U$mToU9ukqai=Wx)$Zj1K3?zZSicURpGLlFT;rXPviuvKlzYZv6n$l=|IJ2FMbK@`7 zamy%md1!0C8;ahX7u>usY;u6B<9`z{dw=}$v&Db20PbEfE0HYWD1G%cxf>`srXo)2 z{|H8agFm+P{hF4P!P7DP=x?gbP20231aAjSw;sdm(*=)LMnB41vws5}R8(|*sBJG7 zj?F%}@!NmexBt2J1vDi-CB;Cp<@7xG+nmAaOlJZcxloX^kl2KCL6zYSf&O42(1gB{E2skG?G%>|^>F>d7lr-mJ((-r%0c4N ziP*LvCLVPKg>^~mh;M}f28)8*&kR2Sd@wEOxUvF6?Xy2zANu|h80W*crbK2P{wyl( zcF}PDlP>rxeDh1xqaV*!nqph?4R!*E;hZO?0mow6-NwtJA|j^qY1h(dj&U15--(4| zTQ0k&UfHcJ`%QS@tUj8#oi46-36{bZt*Q}!ez9Q7D79!AQ_CJzM|43WD9pVHx1TUd9(U< z^GHsc7^A;mv7x`g#bW=QqWB&wLc8nn6`(>!0n}^3K!!A`-F}I z27l^R7ulxP*UUa*(v$i<>W+O)Xokv+%%qo;*cx>S$L_%?-ZnT6kpW+tzVE;fo4oNx zyWaK7!#lvf450QcV^8_H9Mw~HE8}&wnf1bwjq}&vj&vUkw!KtAdvB*Mwkl^PTx=)! zZJ*}ar`rX)zCw8sWeac%nbr1UFU}g}zlVNZO>pVrt(`4F)EJeB(OJnxfT&;r$+)e^ zdLO1I#cp5T{}!7HsDamS`cve!pB@S>c(9>6lO{yMY3nwLobgNo0+h$&TbJ z$9@PCTalHpSN5NnXeJ@znyFc`L&+|*-{N;;;zWx#3m5&m->9o-5tw`uP8i+ylXb1@ zJxTwx`#CeZXEQOM@cs>APfnANKEgNbrXU~AAF{+gDft<;7y?6PROA&0lGWDMy1 zclzn%jdNsogbhh(bpvE0Hpb$fhz=V*?IxOEs`8icpctaEkOd#%fqqD!NE4U zD7M2mS7Tm!4jY+23gv`Y2E!^O&~Y&8(+KMap6j5D*38F#-*Ysy_NP+dzvT+AGq={OJnu2nrsTvFTuhw>m+QoJuvTv3E1MX`ftr}bY% zNj+T5o6*PF|8g1q^pVzMOF0@NsXMi*lce}G(#$QJEk|IW#ww&ac$5aYDb`RZ&4fe` zVG`GU*GKit?&lsQ}s3*DjT@O5DvOpho(tlo&f zge!{sOWznaarl)yVteB23V@OCH5XI5KiPCqn#7zA2Rd0PEM;_%rwe`l6E&^~Zo%Zo zDe{;UBUJG9yb+`t*PkMim`yQr%O92V}OUox#~;A z{qIY5AmR6K6SnGFy7Q{p_P5`+7&o1$C$#2`)(ttQt=0T{CMabKSYN!ivn7dg6H~lf zIhGWoMmpJ=m?f*BbRYjNgtQ!@oRi(G`0yp%0_-36e7TRwUnMeriARIQ!}He)w&A7m zaqwCEzg24$wN@Q8d4$ta+vr+!-Myi8%4q!%OkX-Tc z894um4!rYyMV4i*x^te{jRmvl_p^h;GQK6x zwPa&OC6VS(v8xzWVcjP&1Yi&-y`LL4*vT=p#9t4!0E4d(9^LKlH&Bw<)VE;xP{tDL z;m~&ip6!oKa*^K}nn^UZjnw~oy4MJMUa2&B5v6`Go5tJF)}9-LX4b`JSbZ^WGJDZT zG4gQlXDNuN+eemZuD>K_po{%3dbjbgs5KeZoGC@7G_+fs`j$*aLR zTXUT-@4g^u5h}#+9Mz);g;y`+KR`80JVvyEAE4{Ey>PC@F}O#)CKJtMB0MIfc4!wx zAGBM{DV_#H&^q{EZcd87{p@Q$5*1lEcnZe&8%H*UfIYOmhz|2Uw0_upy8jWTI5`SL z!54u~5NA!;yRxt%f`t*t_4-P3ivM^2J_sFa$G zHNCiZ_oZxGG$p?{YqRxi(jrU~O(Ummm;@Mb8Lf;aTd%b5l%Pz}k|m%4iP~m(ur3nv zHPb0!JV|WL;TXTrDQcrzob@>PA?i_T^6@HMq4WONUK7rA(^6xcft)VNS?$K9kYxZE zdirJE?$B8R*Jj|m>;dvPHVqJM;7c;4~;rBBrXvYd++2AX`}q}l^U0n#nz8HDAtdkIUX(1 zT_}JPKwe|dfs2S@te1y;@Yb#{SjNJviS*yar9gqamGlol^+_U0y^2c>pO z9>2YcjC|%EVE;rzgwH0iXyaD!Upv~Y>_5*_({A54VR~x7Pehq>Aqa53gsiwnLo5a5|>nV>j zKrzc$X5;{I(6a>~jZ3fIsBuk-6~ohP1rkI(a};ngh=waCECM_m(}3&2bx*n&-o7{Z z%o8RO&B|F*6o+8IzRik;ps8~4$S~CexR$RZ^p_d5?3|+?*@AKXqs8MM(;3c4P$X4k z9~NShtiY#{RB&Fn$gPn&RoS!^J6T{-mAUp`}SW8<3Ij{aYp!gmA8I@!GY>)f@1hbKm#Uz z8X;QbYh7t9?eWoRgG#&9pxINlaUlAP@%#_t-a<Qc2y3b$x zyk3e6Wtd8>uiTiWY{A{t0)&C$kw3X8VznOtfmp8+7W2J_lYvrTZrEh_>2Q#}ykb4$ zy;$>6_QezPq4|%#VHtIquW_rF$iXM8kWsjUnRh+ZDyhKAdBNNBQu zuJpwFt6PZcFU^RJSkR1|s}_4i)8rw$NF;iVz3aS&&L!(X5h%f z4mQY3FCdq1fMO3*-G#QAEPf1JT=96{_?%Y!r2PfiFqslf;xZcG0C>UGt_dBz3tT1O zhNkZf=D2dBzz4bhtuI8M_UX+Th6zCsTDtVrR%e(dYk6>aB;SttkkyQg&s8P#lkZOl ztZ~yf5brhAYl5hK5l!-E5v^$GEZ$xsWAmT!inCwy`8O^|?Jl}ikO8QDL{agbVY7Go zT_}yN#oGkQ0)sQ5+mBfITk=M>ydD8;7kn8t9#xiAq#z*`Oy7>n?}pKg7kKvTPQp?7 zA|`l(v+$j@kNr-0RFtLVVHh=|8Kb-yqhtiXxtaEI^nAPZuzZBaqQcYlg;6g10{w8O zYgrtxWjMv~PE;4BqCm(A8n%r@iqAW2j4joYxoyb}`^d~!_Pf@mA#NgBr~M`8SwCy5 zn?xd{?fZH1s;}LCZ<_q)D1dN}MPQ?4q_&>d#j(5S{`U>S;5inbvRU6GZ)qjW(c3h( zwVl-(^D9Xf$72dwx?b$EH03#fvGOg3(%TqDe4jUvPdQ21jv$39LEa_SEEHEE?0?@p zq>V1l$EOB6OEfv31>sAP1W~SwfFxvvKGBqc^!~11vKd}| zW!A1RF#m)OMPWSH)|YUZOE3~W&FuN7^GXMveXl}UoEbEKP|}z^lTyWHki|^otdnIl zjTvb^fe?a=KpNOUy)f_Xh2e75Q28l6Sx$zvi`$v<1lxe&FVA4B6pIy~aNuFTa2(|+ zmavi$5a(PGq|(fC;1?!|+>+;!^u2t&f@aI&GY~4K%EGV{b}(&vE1HrF9=x}H3!)@# zuf@4)PI+%dPhg0g;14*cS>H8$Xk;1+)<->2p{r7?Q^^fu2&5FRx z6#o08{&S569JapIrVlW&Ih7om`N8^D!KsJd=N~&oxe!~0@RrQx)5x}cP#nMj`Z+AD zHT|`3?+-rB*3FHie7koDoUbJF4|CU@qyrcU36+wDwLx&sdw<0pQn*sJj$Mhyat2UX zw2sJD6P2_cI;rEnEO>Y5M%lP5x~*7`lnNn@wRe3tnFIg0$BYWXB{5>QGsf3PLQ3R7 zu9X?YtW6(V%iJquUS5OY;uE+SoBUx57`hCa$KBQaVkQf<_c#ETTo8ARbxab(fF}FdAHk=TK`Zrt zqy;4%atr~&ZAni$>M$)`iQ_vB4TZd)ZG24APn`Q3&1aO4JqCs5wIsP|h#PRC(oxLV;v{AZ(F zd5h6DTTLf;T}jU)@3IdM8Z8i%HYRg6hNCdx;!#*xC8;#iu$e7)8Bh|#akk`lyBrvj z0C5iHybHC*p~a>0W4Et&^BFdImeL*N6Lu1A;p#^mU<4X`1sax`M2cTv1&C~Q9o@Zc z^sG9VI@gb#fXr*gn^boBZI1ziT7F}KiJbc9IT$lhdQ;?<;^_mvpe02gtEk4{WrV1id^*%mqXWkc$S&?|LVjAvEg;Urw+5FRI zJp<(ij{R@{_)l~2$?@3T%(mU>D*i?YuV)A5U}}BEadeB=wJrHknIbI>pJGXY7i)RS zq*~$IH$h$n6N_Jd-+!<65)1SW{|KA(pTy4D+vgpI4`+s4_dDhHy4Ao|*c7-{Id4ySE@e8dLNbZ3Q+j%%teMh0s?Heh6J}5##AM+UPGRwg9 zP3B5UnwYT9dC9gBcR={|*gp-|PLx)A93MpNIyt;BGAMl5{yz>(TVX6MEcqqU*JvPp zOh^1-qL(;SOH|wcXwdnhgTApYZoxIQh&;M|xfYiW{g32*6AcA%T`8fwa28kWlCPkr zmF9O`+sY7d0f_C*Xg3K!evrco$%^>KULs|1c7%SCsgJ5D$ZlUExE<# zJVlVbqM(yzi4~=4B27lGLYoPZdIZ)ITK%#!JsK@ zfydNaF=hE1qgr~?h%v)w%y`QBSOYuva6xNY8&%QdB&$as^zXkd8IGgD2QqqT3?J(2 zolb-2eIQRp?E&>(BjxZu^AeYB|LfG2Z=l3&$vHohk-;S3^TW1}crCUoT#-F|WC-%o zd~fMjy5FCaq(&BO1kMNejQzyvJGWc$?ax}usu((2wI*-gr;;)w_vu0PT9Sqh-km&j zb`o&$$v;2^lDTYlU%=olm{9=Eb6kU8hmu=%2w#_zsJ~mNx0M;fKrrGZu1;D>#W{VM zcnx|9ldCEaD_PWjg!qKH#cd8mipPqD%>g0DU_@*01$uaO1q9y|DUQwbsK!wJGUH>o z;rJ^UY^##Q{-wqe78lx_IErnk2YgIJ@q}|aA#;*7m?T?sn1?MFypRLcIModhnF~IG z#*0+4597N9v54@hZH<+YQQ{$27cURxxY#ssT~8~6DHB<@?w-2Yes|-6%jw~nW>d0j zI8#lYCGG7NR8~qn|zBXIJk~CMWqi!OQAW@=E57#Fd2X zTRO>PO!)5<4^PkOCAzOq4p2G@?22A)RtIbpNlUCe3Zi9I)CR{ro#Japxgi|J*)z3? zsN&Gz)$sZf7HQc)rZ|FOi7Oeh@Aj9SD`bu&6-jpq%ed>izp>6=?G!g8=5oA$58yyP z=dkBY=T85k@Ur3+-^#I7#SF0Nby*8}Z|N|chck7AQP_9ivuA_DrKLS)A3s+kp?g!D zJ^$h@1q;bpw#cYE(`UeSIgStR#6%U1xxYm6SOEEndFClhRc4%MvxcleLflfBcqSe_ zslae4lg3wKz9tom=j0cc?^|(H7US6dC$WPDZ8WGM$~l!qugip8u_8^({@AFWmf)Hr z-me!mmjCZnLB$By0X-swZ}a+&g+zXwl?UTDN$++Evzx0Fgv^y}so8_o4d zJmT%j<@x3fr8kD~Sqr{GNYD!e18trg?npboz-t^NutcmDS+)EtsjpH zdkX{qD8i%yQ9bIAoq6^e^B@CPWiV1GLj33*z>wzkiBs@UBpwvs^@5yMnMl|HtTjeG zT@wMr=yc0Fm<5xMj6T!WK9Speg-Qx@!(V%LjRjwYmvm_phWnv&0JfGRU0Hy`9v$vW zA-cX}?grD0R4RTWnOV?y3?r1m=h1Ahwq0hrkL7D5D}ptl%*S*;g2J*Sm^F1LJD4yO zLW=Q-YfXq^o)8)fOV<$zFW%#V-JfwV$&XX_V@J8IkCQ##S(&lGvkmlz`}rD@!>@rj|OuOB(#93|cxHPa^MQ7}d6 z4i>kX;fyNm{3cKHJGvx%_$XDj@ftr%>^9h7HoKJ$S3i*lZARHf-YbG3YlxJ=0d3CC zL`t-n-Y&-;e2cJ|Q-m*fr+G?*FE%uMF*dkK9uxQzCcV|a7Jwgl)c-0(vm^&=xYffD zUIScQkqwBxU%gKiD5NCg_tT5Ae8S8#5EzRqRxq$PFE#^44CSDoEB#T);Fh@=>G>N- zrHHu^^yBScw?+*0@gHRylxx%fzUSJ}2cS}AQp@^r|4XAyS3Qf~Fp(+@QuzeN%A$Bo zqR|KsW^si70Ag4|fL0(8KA4RbjLylYG&e2$3T`$hg^Q2xlLP3mEW+DCzn?4ad=}`{ z8&?$R)51%-Hg1DAvCQipFzHv5`2U;)}sQ$x>KDn^q9LT}r(!47@#hdsUc9 zzg|pt(iy{3Lq=Z1+^fPl^C$Pyzud9*Woe-d+SsIdR|^oHXk`rYS9 z3=4G?9r!ldljJH!{a}~YyDMr%sW|G+Iu8@z<+>qS>t8HbIYAbIHyS%MP$W-P&__*% zEOJ;vG3&sZmime9AkH~wHOfDT|UMdVz+M!iQm1j$rSc9mS!}u)ei~n9RNS0_cbXg}s zQ$ZJ%p6HHUkBJ5Q;8{=d(x3iva~Ta_;9aj%FY9^}vI9=){6v9mHYb^Dk((+Sb0+jU zjkGF=!+VNzJ7UX}9SrsOOg!0@kmwoN+U`x&x*^{Zc3D+y1NT?IELtR}|FE#72zan3 zbbgYsCa_|c3(cZbh`P_m|6LzvMFDy(yfG$3+&uBRnFZ1RMtoiNmf@?KJde?<;~L>l zr`y!t0tLs}h$JUgQVp`vRk0&wCo8mg!uK8v*mR+E;%Ajg#>9?)O&Rd@Q|K^*vLtyT)9Q>)RBHa*7a)@IhLht62;Jttb?H#6(9; zOfaNV6Ilo1VrY{bRcHWd^PECxyL6)jb6CM-^K&U0$nzgqgy;o{{xWb0|qCSm12>%%BxxA;0c;I8#vFrFzxv*m5GsWJ;)z z%o{W)UaA)3BTxBsu?1&3P0P%52G878wl^aeZ)dL3%^)#6c zSt#s`C%82hw62U}d_PRi*AN-7N{a2^Dhcmo;pROBtXU}#>`>8WIt%dC68)uz={o-Q zn=p~I4*D!%8E_RYlynA(Z}jpuXMCkAt*RS;`07^>_D|FAICltq@^IW<@!?eb!DOK*^(R6YnIlRxdHPQT)&IE==h1NS{VPtz#lw5)@;8#jwkyxwIJa%X zfNBh$Y={ywUD=rWX&Yc=V^%Db@69d}TxNWI#sI0)6Zo|Fjh#c$C$H{_xm?9rz@NbbsF6olbDAMOOQ z@H;pCDyV_)q=)vmnc(Vk38ajki{3zz!d0I);6$OVL3A|2g9!1{IWJ{bu8%Qj3|3jo z4hNafQfU^lW!TofW|g2_Sof`6!v}cHh-;2Of=CiRlE8yO&yQtBFg4;ya*FO}B(n)5 zYHFPSJ@@E?Q%O9_TAz%|Z}Ssyr6yL)%6V1n^!}Q*J+WFlWZcV{TVoGMLF>H<_?A$M zKdWOb_E+IqmjCJd<_P)x1P2_DWQP|DwOY+$yxDxQ%&9~6G&)!7hV0l~x@KZlsF03?IAOQ4qonr8LX z9YN$!79YXfy>xN^g`4NO71b7ey;>}1beLtz2UslDX^@m(;#sU^*;dR@8y0uUBFrN~ z>Lq;5@frds)l0Ia1ksGP+jTAqPv6aS4_hqUqxV!tGE~DW-EOxm@-6V=#oGOMu_BwFk zidR`OH_HS^q&nT7TPl{HR*-pYus>N!b3XD?zOh>_qf*MC4@29!L8WN@-|J^8+U4^o z2Mb-U?~eql?`vBdHBLE7ABxx)ubo|M(jpV#xQ3RT<~`!KypJ zeF}W0ZD4l$!tCjKQETPFyHjPP4K3?avwQMG#s{-!zxDe4e{7yjf43-7%eNiV8=%+! zQDYlP8G$m_xM>V>yqitzbQaCm&~TzV9UpwA7K!sAl3N9owQ0T%vTv;>ogytq@A`KA z1-h^`yW_>-@INtIo;?f|UI7+uwYx3tZ1fGkS!mY2T{wwOxr^DrtT#^0+$F4G+1IqJ2(HPWhIc!f z`!gs^s07F{VCC$jJgO&GLKZ@fzPX%$V~tDSlbzGuw=CYYkUybH__Kzd#za##v_u0Z zgOXiENAUsbdUlX5lVf>3En)f)AcFOekT}zOz!~HnGc?t9?{--Ip8Op# zv*h(XKWI8^#PvU6_Fw4)kl0!LVd$jdtnW&JD|c1nnuz#okF#Sl{7^mchaxe+#Xq{rly3St>aaBS7J@?G)e+* zKfFUHV=neRYgIe1pY&A;EC1?%?yWu(vAN4KQ$tp|B_)zoZASR?WjvZeL4gPx`gJ3B z(#a>d1&JcxkE_v39i6fmh1S7;J=|odnGfIWb!j`nDTlGW#h_y2+Ok_z=Bu;K(^Tn{ zuc=&)`ErSiYBql%t=S&dgj1Fx{&i=|sFvp7!;50XbCcPqBPD@m_jk+_i4W2}x%&e> zXmv4Yd|N;B5W+74@ifXYf+gjKc0T%h>iHl z$nN?`>jccu_HciL@tQRx|0UeKet-!NMZf6*@|QXGC283ZS_Oj@kalI``X8YyzuQ%s zo0O{IAYvbK$S-h>#6t>uB*@Q77>41A+m=QjRk3xqaM5b9t8XfqT9jII*^Y^{^Z}}C zh?ay97AN&>YBcMBO$?|Rs8?maqp$<*;XR?qh!I3u5g3URua6V;dQ+mPyic6_zt*o5 z{Z0r@1NK4-#Fwyj*79+Dr59Dir@F)Go1d#*2Fdis;Ip~HEldYJFPHKCEe$H1%>#g2 zpckSv7P-@^*Uj`lv+=*|+&@9Fj{{Q`QPxQU5$OpK9|Vi z5lCvx&G>2#E+hR&Y~HCgHl6leu%u~UT5!Ti*SuqGJ;(w(=Q-3=l?ZQ&(=bBs&12L2 zH1;x0XPQ<^RLmjMOvmT%rKuCo53$)>`qExRXmIv(|HngG0}gA}9o(rzT8azEd|`7i2Y7=I|hb#deVS zq7j-rFl|Pdzl|AieOt4_RhzB$yfp1me0(v7L~ft0OjqWK@0NVJk5d3=V^i%XAM4Sf zc6(7wEFkCR{D2h${c9walC;5==(0k8GBV_1>pj-S!Az|xaYvIiz))NS3IDBgcC_5# zE`@7^^%Bbxr~A=#XjSMLH!Z!!2ofF2Y{ZRVUt(C|wNI*i(d8xxWm@7w`3srcj@g;T z6WYeH^x;-;^%*q9@ec;TSRnxl%{3}Ctwhe=6&L*J*ewbsXUU>!9VO6*5~!r>=m8aPHG( zI6nX ziy4(Omwt~$t*`7~xOJ}c+G)KInS}Gs>weihQ%}_ST~=Kjw<`@}D=9~}W6}4^baME3 ztY?$ExZLxL@`ElGzYv{|A#3E-C(lW#zsN0l8ltCl{2GN?Q4p*_oYn8)&TM;|Jj-uPCbzy6$O7BX&yYrhC?9LLV zsG@`k_dOC}Ufs-4`43zuQdbDUnCZr!TpPyG62EC~!Iv$%N@7(Y#v=^;a>L!CTslRL zzx5vBJXOZ@>E>*R^YX)(XM?eCVO~P;^=Ayx(dkRoY}-gPGH3Np@?+o!G6!0Ou{By~ z>or2q4l3IzC70`BqQ=&8*EX9c{=F-scfVWmpFEaHr(5)5O}{C7zoq7L*X`P0FyNm) zn{QF`q4IzkVSXGDYXz;|D=_=3IOM-|(z}yaj?8^~N}5(IqqT=+#JYF*y-YFqo4 z%q3WLle3L8D?X!vmx01#xe(fbHXx6XK8YK0?G=GH0i(mKX(B*3JO&;MAA%>qe|`pB z8Y1t51)%&>!{70G!I#cx^$g;hw^>wHATKV%sQ)ztLlj@n|Z2{vg88}TzN!wYeLj%>390jU!fPNjT z8)EQkRP35;DHCwSrSklO4hCk{vQZcdRLF05i0=R4hyLM+{=*Xq%h6gHY?s&V>uR*= z2B9G%s2)UQr*cAV)D|8^Og(L5jLH}L#9~F_^Gc?$wz^-niSsme$SjXnGw_sk#jBCI z7ef@8rP0nhI!h@>o&Rd0nvIhc0#E7Yr1QE}!!<;w5{yX5#hF<@?VI(x9@TPN| zVZ^QqNQX$3GfiJTA{}9=0E=0sLYR5x~d=e7*TI`{`wF5@OK{g_UpkXKqiN~zTW|;;M%fz~ljEo%62qryu zfqB;aXY4}06{3R2Qmgq-5td6M^iGoAF&|GqmCwz_nX=*RZG=ElCPqfe=--9TreX4( z4Fzhc$~Ag6>FIoZo@z&5X+P_-6+L?>cuTyQfJ^Ckxrz(8Fz4(i-dX?nBX2RF;q&8k zn0cdRYV_M0_ZF9Y6Qv}Ly8nQ1H7){hd9&W>_eqIE(OSHg{Jnco%~pjW>Jw zpv|sqTjRi6kk|}eQ9!)+@Bw5 z)w8G;eyXJr;PcrcT#-S)tN$kn^kZ$d1-@`o4dt z)|3m2rRu1e-B5gqIKA6q+NCT4(@5h8J0DM7sDAXP@<91}?GnoDbu66eG9+QG0((O0QYmi%WCooDa({y8VMJ!PjIgM@`5GKQQetj|vvL-m6or?Vx@aQX zu0wxjvgPF{*XbO_J@PHARw{uX2}`ShNnsw$y`t4NkJI5QudKNoUN<>fTBEcVe`x53 zLnsM%F!W`--D8JBpr#pB1Mh5FGZI-R-#kfJ&-T)FT}MSjquaUX<)uT!AS)bp18_V$ z_iG1*d^KR{B$H?Y!st=}p+R(}>(^)|K zgZgEnRUleg|Lm15puUa*9PJyXwh*V(*~!5j3qh8Zk@!Y>MrOKWT^mG}!X3$YFF&1g zN>X7!k#QW%%?EM5P8t^Z0u<>^ zS}RzPvTmHS@HW$xE)Ejl8xNH{e>pf8`~(Rd*f)v9%bl=h$lp-BNZdQSX`Dk6S&>H! zSE&75_9UY18$ri#v+fGU695!mF@hy;Xl5`T0ouezBY=P|!&!BSA(cFiw*kn%^{0gQ z+QeS#5Q-sO?$f-XyDT^ z*Eg@A^;(nbSx?*)Dp#q$Ru-$*W}$BN7!j{XVihrut9EacP1jb#q_kf(oD%ehHg%_Y zwr!ExGp;gy@!z@-1^*(vTXAf<;Gak>mHzw`RGYM!)P5s&F2t4nZAUtZ-VMD@#dy1g zggkr5;C2^ClN*<8FUugKy1yfCE3*Yr?P#X|5JK)kxYDASx&1>=Q|Fn-AG@Yq-{x8d z2=OJRloxCf0a%sLv|)wzU6Z*}^l~y6e#7Hqqm|X?ZRYd#$*J?*iJC0lIOd0z3=Mfp za~Ki$H83q=pxQ!)cWmnlx?sz|$8OTEFdzU5t5>^bMrXUOv;{O4=aM(S>_?_jcpu8^ zb~m~;mfq4=cT6~3?b7^(fPi|)W@bD*n!2Ryci9y7s5 z-6LXz)Ig^fHWS^Cp_*iVtUP0@@vhSSxNIEj{%rL#%6-^mA&Ho(MTLr?lFM{JP zW^#BYZ-@1nKv@^`o?f;1+56<7%hsY@GJY5%3~$RY#))-```*IWldcws&YFJfe9wU! zs`co*CXds)c|=q2hX_-J@RA?6y)tEM&UXdWO@6)xeb(yQ-2%)v*D;OiW4f)hA?Ck( zh;G3P$qgQ7Gi?--GJCE-;Hr>*Jg=qcY00#f@EfTaSPzID6Bg(%yyy>@BqqQ`p%9@3 z%`rb<8}Ynpu!5hWuu?t__gx0SUYC0y|IxN&F2NcX+68&clTp`(<&h#tTvdW*+Mx_F zLRo_(y-!%VGvPtWDLyJT#3)|cVRl-kE>Cu;bn=Kt0`z>R*$N2J2*_?XC zjN4&ryE!!Vvd4E`-7m14TU-A4p8-K9LXzMV%(CLCdb`(rYy;nlA+;LBID=2#EB(}2 zDP_)j()x*IJZ#y)|N8-N2rmkLQ3gxjE~B=9!C05s1eJ(*NV z=L1U87pdgMJkY;|Eh0nQ!3kvcm=~8gK4YD%YNvx&!7w!HmrMUs3<#yDX86?Eqe)ez9d2M%KxnXkU`nMw+yKuIPYl{ z`TRV?LNeTAIlo#oXs=dRH1;9fqu;LR!uhcwpg(R1#!7p;P?N85R%g;bQ^O>`)-QTr zOZyW2%;a<3vIFrFr;&*v@X+P8bkt~yuWbgnxvi+M>im3L>mm2LQ=a|)P>4YO`XT4T z8nZsVeD3Lk0#ZFz^&<>$p=qgCk9b7d=oKASTB$31I$B&+0sE3aIhTS{C!L)u@)~BI zR$$Krt2S>iY7YCS7#lKgIJQExEWG$u zLUVt6FAi)QYy$3h-b9U>rMuGcZ0;IdaA^Ef1nwV_`~8ud_&>;NpW_wp_k{a>`Mxl! z7(r22IWg?7RB#{g%Yk8y|B>6xj8O#-L>k~_j{`Fp#qR~XJ^a!0w^+mabz%gsuX*cX4o7{zpf=|#}5dU zI8N=2q5G$%{PLG=2-_c9p#`f0Q|3cydUx5gUZb(XZajzaE?ixCe{t4E+j8k-L4MRA zpx$pwOh6_afO)zwclqR;S57||XLdKmPs@Pb@n+URp45k8VZzPz?VW0LTn40w!lRVv zc(nqtagyjRKa}(Ou~gEEy?jw>6y}3Vs55V8u!dk$39K`()e>dvthf)e)ycy!mG&Tc zBWtM@46OeosM$%(!$(7f@cxyv2;e1FC@ggtsifJ4gmBH>j{vo6ubUoE&|yfq9h2&b z;Oa?LGd<<9Gp*1XqmHu6k^nbppPqntdnNjdX}VC$hEDGw&FOnSV9+plL5W)*n{aU3 zsq`GzRbksB=nQ)>0*vs6s7t>HT~Tk!cvlvB@ke7fs(K9q2+GfB3kL(}qF ziIa+{sotS0k`W^;Zkoe%jX>Y8C;*M5aj3Z zVjP2J14oF?~-v|nTsQV?PNQT=vbXAV_zfGGj@qHL_% zs?*xNkA+(A#mkgckI$a7&?+f5HcqA06H<%y;Yw^@IYd9U)qb8HHoec&*C@viymovd zD&rbXj5(6_dN0gaA|CH#i|R>0D6N0}Cj5;-EyZ*!hOCl{)Z0`$RbnIU96x?NkJ}QN zT(wUu6-OL#B<`R?M3dtx=OJ&AV@}@OK+|B;J^jBk;t$SGlHSR}S2_8?Q`)%?q}fRf z^yF_^2$aFtTOYwu2?+ZqwxW*l#0j_iv$|#DQcasnZaQ7atilE>W1H`~2b(=XY(9vM z+*Ze>AG;X?%nuryU`d+iJD1`72IM~)R2H(MHwjpiFkSbY;N*dj4 zQ+SxKfN_f^6=IzTog#u5U=bYayk=m5PhdfWA!`HMXuB!*8JW*_?fOnB7f`aav0#Oj zGi?lEN2_jkgF_cGHe0XwI%s_!1gT%e9X8 z-_Bz66)rei^-fB=V8M4opR77Sb4AxJ#b!H`B9Mq+lM#a89-)0MnRiqHa|DCQcVNk< zOLfDyHXfq4nP`HZ4;N^D2DR`Am&RL$?n=z%$jDlZCQ%v}`u$MYTV@hWoR$3^wbEIb zr@3@sRv%P=39WTebw^O0+|CEl%i$#on&JH2%t``JZtZa?cYS&ktxu)y1+^2!XRyOB921!sl~4!lTwKa0vjh#m^r}2?>G~4YiZ2I8 z(+^8tx*gLC8qM-&@tdE`ile zs%cbsG*y)Hwi)i{6uh{M12z*(y-sYqK`mvN#_PQ#a7|MZ1t zKsqxlw7Dhyc^2C5$)^Xf2~up^eE`kw$8!6lZZ%z$5KmUh_GfGurn**HcCFUuSS-!+ zz7S5YHN6YCozLQbC_I{I|1A40C<``2{Us*5xY@O=_#~+4*S^}T*He_NfXuB-#YlK~ z9{F!UbTDYRGB(C%9>>vF?gKD9Z$EJFe#u51y{(1z`N-78dOMlZ*OA5R`gblU_9ts4 z3&JS)&)d1NGQJq_xD~czzNun$5%rFTGP~0S&|CvzzcB~p7JX0yT4x}LSB0aZEnRHX zZp*6snA2@(*2tyxtW#s@&&~;F?)}la_*VJEmvYW0ZfRj48Y1J;i%BfJ#JTOno>$qE zX^zF~bV|kd>)?!}xFPvMWk%^Ns(BOLm#muW>P9OKTKp3d*rqq_ViW2;Zike6pqv(+ z&etZ13q9!=pYoh-EAX(n4kUJNcYX0u{+h=Nhy z1>7bACz1#c`XSP8f9#AS*+_$2Szjv|%GLGze9{K?;~lA{!G zE>@DMZEZqF0K4{Ny5lriv#Z{4JBlVh=l=FE9lBt2Ie%D(p+0PO!FUuLA(o&O3IYTe zFmKX>>+WcyT5zj$^-9|tG?+tNW`+^Uor;rc!@Q=Tnl{AR#t-#eRbL;ymdCxkOyB$Wr8@ZMD;~G|Y~b;H^x=BZ>>b5(02v)U z;E@p>in!wlg4drVI?=45@O&Ued9M|*YaQDpbu^_MLvO-Cx-F**4HHwmhgOVInK_hGI2wc%Z9rS6DmP8_tw7FfO4r3qqvcf0QDI6#$ z92o}aCL_mkV5@#=@pw*L4T@*f7j`I*ak%g7^p>1Atij_iv;B<=B9xsa{tp)bh8wns zlJJc$G}cBmcf1!b8GlIsTe0z2nyiu0eq70Xc}m@GNm50uHp$|AxP3bnaVGP=GVI6F z;iG;wuK7Zi>McfXXo)PTgOh5Kp5)skCKab>QdYDn>L`$h1xJook|X$ZF{LPiWhIfL zT7+CNX>Ja=X}_)XRgYmOxQ1*sx75d{Yv+(ftr+?>T zjx2trZpciym-zC;7ULS{DzFDCuE%bdvZJr13pnlklge)tY!0?2fE z1Fk7@lKqQ_ z$l!6ByZa^~p*uN(qQRE!TQF!+yeEeG`(H{O(3oQ zFlk}o*N1jME6HJRth0U$k|g+Qs zFjS)nTgT5FVsLsJU}+t?Er^q->=y+RrHRhicuej@g8iDeik2qE4n z-y!yLA#*Bu5Q=YlSgmlJ-H~Hjw8$3wnEIwHUN7X0@pM^I*dT~~ACg61He4fnWXPoOAkrPUxycqzDrXFA=}_AW%j66U42;wyj8KVy=psNOn#9q5&|n)a`rhGme{qlN z6g@=7lRlj$8Dca(Eu}!TSXVQGJ~TLB@_en$K$Mx3;nA1K{|glM^_ebQ74l$D&8C`7 zM57K=pM=~{FL70Ivm7u}{$tUCP=;Mo-A^KxwIogV^+o(_G$abIks#=|ucj}e-$TGp zLL3~XAVgFp zUW!WBn}e!0X^tD(CON#)s}QHX8=MvxnC<2vT*P52+pAGp7jMbFWmT z(yyGjCA#~Y_z0OB`@#Sqz|MF2vAtb7bllLzgO%F zFmdVKW6fFu!dhBd=m@ZeYrO`P*J#!lN;4K=pQiHZ4{L1PR9%v+R+~)>r|wLW4meAH zxpD4DJ2toYBz2`Hf2;v2<=w5PwCI2w=JJdcCcb*GvT4 zPBNho@JrECBe^J0ED3-g8(t73mBR*2oA%IN36XD2B;wwr0e^}v4lq*Vn`&cX5F!`{ zTV-g(uQJz1#c#|)pkf`Cnkt|@&<$!pStPI1T!nWi>ju8<;0RXAOYNf%I2phtTeSYl zzz%sA8~L&29z&ULI<>w`+<6W_wERV_ivy1p9|+# zxCN!Yq-#ti%k5T$U}fGjLKK*(KPgWF+Fz6Y&TUrsK7L}n#|>c#DlF5AgBmfBUBb0O z&zbGg8Mpi#X4O1Smbl-Z)pq_>Y+;_KtKsOxB`}b#Z){{~%0wj_UI#@H8oKbLZX{wg z%-rvM!c1DF5CaM_>K7plzU+;r=G{LcknmR_``>(t+1(5e{w|3NfmPiWt7m^xGrA-~ zeBlS9;G;~R*onGPq1`4&F!agkTQ3aMw7kG8DA6Ulp;0xk()%S}rt}G*@v-LfjzZ!L z7|s+>Ob3C7K(qArNz87_uG5f+Rc83(^}C|DSRaPZ(#?%qfi@qaI^LDdZR_9)&`1Kq z1rriTIoa9RzQSLhX?aQcS4QOz?BRXGSb^SVP6J~H+7R!*KBFj|GueHMG-NE#FM7`_ z4I$DaO1FMrWsqK9_j(VKOs|xvKA_4%`Nz+3HU&gxrQQbOZ$ccXUoF!;Fy zWry40SCWQZu;qZ}fR^NYp?u~qOxDEwb+b!wQT+3s&-v@jKfRPPu>9Q?_PJ5_b>VUP zSRQXoC|xc#gr*9g-d?WdjmSQ|jk~(Vjf-SP*ar^el+&Vn+xw0XUl8!C@@js1Kkj%_ zD~}le(zQxk3drfQ`9ZqPqGpYP*e>6ElU77=4!HP2l+ZQEd>bX=2X?-1(iZ1FeV561 z%BKI><3|2n$wZW)mwHtPPAXVoiSitmJ6}$v(YQ9tuWjChagSY{8^Sla4^!4vJ_&@g zLX^`aw+8qbMyuPoRIjKF&~Ec2i@ghoDWA`W^?JFKC;rVqMl0t+<>vuzz85Fy@J3KG`{T+}#qK|jds*tHWw=R^=8S>)LMQYgztuG1RBWShWo|^iY!~4C@a5wr;%|acgR6qX zS*Ay5l-5d$Ek7$4L_Hw51Rz(<1PpL8gt5`85sCi!^G6I=`ZdJcVWU~oIr%EYMyc!j}I&?q1 zls4tro@PP-86Tq2+bGI*tt_Z|0AI`r*iyl6h0xkT+xWX=wnha&fPm(lSq0M8M6?LG z8+{()IPY&~vaNrB^3p-*YHOr#k_GMw^8*YB*Hl<*Mw2X&WGzY%KUA=8L1&U6C?v=!rRhx=K>EPrR zg)vJzCoiKP1|sTMI8l&1l%56j!aOh7zZX5x4!-guXj;EVtw{(lyKki=%f(v`!<45q zz+r|bu$;AZt=L!IFf{+VDR{<60$==f18Gx2?NG?rVm{}2@((lrr_ulS4i6p*nc%V& zx)e14I3x@dUehi6ga-Zyd+DQ0i)9%tcuMR`ayXRnJ6ZsBEE*3L43)>sN|ly=XLm5J z5LD%)DcbETxssA+Bv?riVxxke`@t;T=ccUD=8?f_qlqXKgS{tMk%Tv)pF6K` z0G-5TgSAq7j?n+}+yv_041&|#3@-X7Gtq%D!&xT6-#A3?ih2H8mw42FIy;O)Sy8>;;jo>Lrm33f!ALlwJJ zOBPH)8G`eVrIjV4S2>J!h!K^h(LIMS+%!#k!coXGt|o56!Y(NdS6 zCFXWfHIZj=m2mlknyzqu(S7NO>ZFoqTnA_3#xa}d(qU~@hCQhHG_7JYE6-zOBdwuP zf>yY#jws}5PA9lni^7Y>%2t&{96d+tofQFmR)Q28pO`CU0-Vr8gmD06&~5~Q82-2C zr8i`*(@Ui*Awlc~eB+pzjv|8MSnGn_wksYHyB&{qj4(rviK9m zJw($rQh8qAMZ`GE9EtD?vTu1d7q)0T)9EnHS5$z6U}NCFK`sh;Bc`Ne#J9{Spg~|7 zF$H6ut2IfsTfe2nK%rtaMh5=$L1fNxa`={Ln~f(HyIZ4Ke`KYQ$9&dA1p4Uh0f-HI zgD=%%8g6ZK5sDxl5u5a&pfDH71vLfBMZiQFYZ#dQ#jCsn2>p3Q5kRc;ZAEs!r@7EL z>ckxl;4OBF2M8dX(LkgY{npeI1HCEOXyJ&BvG~gPT;slwYD$%zszt;G z0G}=h_eYi=Qly{fcFJ5;e24P z8oL1wlpt)MgQ=AL!L5XtO?lVzT1hdL@>a6~fg9V)3>f?@r&OnisE4t`)cRhJx9oMm zkH=K}S6mY`Rnf5&$b zXOPpu70u<~9u2xh$$7*5;ZCsyBww0(6ZCcesvjd%={8Rn4$Z zbxvt?zC;J8aoba_Ax|KowjC@p&0cGHbsUlx`vtIN0IWsE9H9cT7hD=));1s&A~Eav z;H|0AJKeYOOY_x0{sbAR>CEB6{ELXr%#Z!)Z69)Rf9LT4xGV;~|23rl*ShfJpso|1|r=V3EfbDv_f7XVWbd?AAhhCRBYFkQ%HSKV_0I{17A&R!M z?wWaa##hZ1<9By_6eTkP?~mi+aKcK)ki7?0+Z2Wo9Apsna#&Lou?DugeAHn^aA>rr z04^dOatv5$W7>)eoera3I1n7E0zg-P3{|$VDq{cfoH}L|6$hUhvKnJ6iN5f z{p-ValnOuTm+J3UN0O#n!s4f--?5-3<28{)_-}7+fEm1mrL07W3%Iyuqibv0HK3q{ zo~x8TC_>Q_5v8hknzPcy9$a4z=|iQ1$1B=Iu~4C_3?459QJ~lqbu5DF=}egS36NY7 z1ukC@Y0#DzJ6id6C-drqx*BDz?8~0$n*1Sto8xwUo59B7{5`pgzyr}E!~4~Ey*wQ$ zfAUs4FS;{2xzXl&5EOVT#m3Mtr8&n|B=kEakVex>G8+!Hgw#@F`gszW1EkAr5Ry+8`%HumwYfwr6x~qUN(F2{QqU?f9)6# z844NYlGYZi+lNok&+O#$;P}UBt5+)bj;Rdm5E1R_V$y(w8lbtfv=sL-ZNZ5d^c;?k zL}mC0gRX&sO&-tnl96&GkwmOjw7vSM5D*CZSN@e;A9O53&y#o70YAN=c9(i2qGI>Q zb$(`Uq0|$Wpyd!3Es`{BJ{yamu3@E zjDB7UxSwy%dkt2r%(k$@KgNi%0m}>9+_;_A!XSXkIxk5E(>kxt3TDlE`6g|b%NqDK zE9{0uu=#h-MVdu}92+?T=tu9WH_9*%*MBiUt)HlRYMv97&%~fCRwa{yZU1RK4fMkM z3H6gAQvfBU-#-kS;nyvHm^QF=ihLNfCWa-9(Mo9YOvBzqusvzCIG)mWa=gRk!#g3% z+6dj$8su!WIShaL`jTr8W`SSgi4{~S2rHau0SR2`{uL}}fBuHlV|Yt)IG^eDwrIa! z(eY-=4Y4}J69LV_Tr=8Ink})R6 zC%~P^bPfZ{oUhQq#Tk9ObdGnvFBdpGJ5$l_uVvhW-K;jn+UWJVyvnbq1hV5}>ik+@ zM^LY-o3H#1l~xIOKWk|z*v{a0F@Gwmrgl~fel)*BD$nbnetBHo#4)dRX2(o98hn6q z%wp%DS*rNUD6Jn*qqU=+#y!uO_p>Q5&I#I!n|lAhGt_^Ll@r2QvaINp5G|OKh+sU- zgT;lA{EFzLyO&Q?((`K(usB_(r@Qu3y(l<3w6CF!&{-*4Rg|<6oCut;X5H2vh8gcl zUAyP&5F9G`yNzFj1HC^9vk2ox;@#@9Q#GX~^Auz^81vUFKThC}?QXY+>tNY%BFKBd zH-K{GP#-f&!)jxEz(}7hb~iS9QxTJ<1b-6)9xejH;DfO*q0U9UzcZjS8h2frh*E>!5*}D0$+CCaEVgg6>7nr>AO3 znj<8&>$6pjQ_STU)?iMnpFhz(U)WNYSB%g)PJ~80YnRHBC5k)hX6hUl6fwJTs;yUFG*PF^r`3QzDqE`5mJf zebmS!VX0Z@M`NfLz|VU_MFv$SIUGk~7Uqgl?Q_M8#|t$#IC+ z%rU{ZWWL&SsI0V3JBK}7T#8(&U0U-*rMlZgCui;dq^P9`-cP{1Gew@;$|EDF_U2L9 zI}e!rZO?m(Z{A7Z^g^p%Tv}RxHCZUqt*?o-Q)@OY41tVCG+?}M6mPu1k^177f%t^Z zyC9q`+`%OdlGa{&s0Qub>uG!4$>f8};b2j80euy+AF#3H&GUi1 z-M`8K3y>v@Nt;O3)q&xsNyd#oL^#Ye25_{J@z4oXq-p^Ft}sM(!#cPkjHOn+8Xm2V+m}7Ca23tfsHQ#zbW{4P!Ya7M4BMM!MA+MF5QQEteBTcx}MwLP^P_* zyL_P{xQY_wk6ut-f^Ep%PNuW%)Z%gQcLotIGsXCYNnc|aa0XUjl#H+;!w+n2ZV(Id z7!gU!%SXX~bKB(0#Hwm8e%-7QDr30kEgN0t=~b9Wxujb#f47?MiXMF`LHmYSHTaB! zb&TO9Us<}J-oMIr8XSOnAj&2k5FO~0BDgG)DOfO79}%6dS2g@=$^-%I)DS5fi78B5 zp9Xx*>i~|E`+H@)1PnreCtPK zSou=NN(@8tp)>Y8THPq6@|zf{s=iO(Mox6HdO(o8yIAb2C60MD?T%HR2q|qsaO;Dg zX;$mTS^bZB0KRa!IPaGb^s5cilVseOqMPV$yf|d$j}2(;zM)+ASHHCU3^QWZ$`hVh z7w#svdrRBxKMpj{gv9BYye_6!FZb_nULmOErY&Fx_F@9=Y1@PD?x=anH4>(VfcW;|=1|Wv zQ3g04dFB4xFHq2V-MJsm%oZFUi`4%fKx5&&cG%M}KfD&)ts1ec(dKGmOQP6=5NC$F zSiQx>{aYP$?c{Wx{A^iIkX2T5KuS*>3a#Jv@>EBAWk|=HBStAb6>{lOcUKwIHl+>2-npBIruNBgZp{JsNnS!)shI!El}iT z0Pq7!J0xFG9*MAnQpPLdJp}YQe+Kn_qB0Vth2glBV63cjyg@n0W=3HyCSO>cN6OZy7XmLzxKW+4%L2ZMXKcNvHvE{&!dzv z(`K)0eA$XXvM6bB8)t96uRZia1q$s zU$ceI7@Y2GO1`e*yRr?Qqw6f$ZR3e~2^hGF;D2QGe~cm|FnmNnmm{Bb zT{GZ+Gb#`k=A8U+<&oROMawb+)-h)r_R=M~R44E90uPUx$=iz!>r_J=%HVtsh!;x_ zZ0*5Puu*KbM%vLtp+uskFB6;)eUc}*5XH%NB*RAPoPXMedJ_RSusWMi2R}WttMpoK z7T@g@O%HxZ+U-8IaN&IU0_T=yiegTS+(jQt%EUm+LbGd%7iMtOmeuwn0xZ&6qnGj9 zm+9|O!4CfLh|zJa)lgo5QcCVTrY+U}_`2rmpV7KxUovHbQHtXGsW*BHc3eHHI(esx zfX%t?bYSq8oDoq%_kfAt9eq-}-#(w8(WDA+0b>%~2ILLB5zd8?orY%DzupVSqN-+M zC0Uh&)-tWX(sZZ5O6VHHUA#^HsdP1x2SJ3%0x8kg`)>NC@!N7uy=bN~&1{`4u)4)> zj#gEs9_W`jaQg034Fc{Wk?o=cZd^pQ5erT{P}XpN0%}JlV1!Rb3eN&`0~Uyy^QwiH zxq)uqmlN<%7k0oWha1>hSq-Vvwdh(i!cai~oIXmO>3ixHac%mq`5bD&1{(0uq=E_G z!k=F^LfyrlXkaRXE%>y<)>jN{emFQRBz?W&uD{Ky=_DIKKT08>@zcD-y%8E&{yTDT z%D^SdZF4}TleY~+^d{^oTa;7+rd($4oY}3uG)JBxN=-!m@bF4DJ+A(5T9iQXxhP4) z%{NyN!o9VyS-0Z)Ps04Gro>bJS7V^HhXPCiysN2}){IBiT!?gLhJAtH_X%cm4&TR0 zg6ysaS(qW5?3Re>MZYL8vUlaXqbG6rV;GF*opoBK%4GFcy(zHpJ>Rz*Payp+Vjw z&!(xA^Dcp_9^on2A!PsU6z&AkN6?eLCaKyU%->SPphok6p(wpD1GAJ!U0P|5RccMb zP2rTMwFp;=ZYsKTv^ad}N&FBnu(*MhN-L7e5UXg8l5*m*U$WaRu%DrB5pW8Xlg|>1 zHAofLa~Gt%WCXsvL zUwn+hBtzf)pTJ<9g$ma(($~)y;CuDKC{PLfGC2NEtUx3HLL$}~8DB3~Iviy9C)5nJ zN(MCf*f(0zG^HZI30&4!#$IVOnuh&heLPm(C;z+(-OIudJ`_f@hdbWzA~&7lrY^?1 zC}!V_8WQSk`5a1(G#7$pKO#Wl!dd@Pd7@F(s^5IlFi2rTr1zU+Zn?1+Y2HC3X`teR zEO4e83O(37M#3RmEV>M;H!@m?$kPswt|&qJNg&?*l9s;Ou0U5I`Wtvt8Es@! zRX`bF#6Bfb6u%AqKaGt}1z|vViqvCvy~3PAar1oNKXQDQC=~JsXFJ&}%GT6g zc{fzzfe{lVRTC`?7`nfQ6G^s2L!&QF#SBuJW&UR!`{L~xU{$Q0eP0qsj1MYKkahiQ z;b6Htk@0ji3E4^OcLEx5!o>&C;dBlARe9s9EvH`&Z!|_UE=3Mtj1Gk52qx^04~Ghp zSf9OYc)W-}#o>ZHKpu%HGSMFdjtrT38^OzWy7sf7!$~-D*G*^<9@TU?vq7H@+E*zD z>dYz7>dXVlV@C7#48`tR^A;CArh+Hf5Un9WgBhqU-X ziV5v;S3lHb_DX|6i7~rj&lxdDO`&9Zr^1%n$tI+5H7$`8Vdpha|X@P=a@#e7-@DjYFeD zENyjdY6nZjSX`YliUD5alf-~?p}pP!OTkd6s#HSFB@3cxV=LxkArl`@ zRE~!F#?hvRIxUaq;~~%TOw~(IKAhm-9qP_MOlvro`6p6J}IH9l&$`|No;tA9x))n4c|yfBKDE z0>?i8H?;rjXw;bzVq6;FG;=y6wwB=y_xX0$6AN9CG}J+WCC^k%x{8=RdK}tcUQK%0 z#fT@GY=X&E;U zApI!;Y!eB#n*mrHpNH1Rx7=M;9A6AIh#?qpuSRPxR?ZJ@IqO=~PTe%4Qvo`O<0e;& z54X&cfdh6>*n5t2iKkTGn*THK{qwG!AHt11qb6^09=pRIy@ywYULSb*h5pLKjn~+y zsoQhBSuw{(J7Zw&`}gwRbbL|t)-)Ox5#7Dbb{)MsT5Ujimm+`R7m?8+<}htn zouUashPVDRYR8j;3XQayouqW-E6X13>GM&aRPRsWUY#-B(wtclniTb%{2wdv=?N3$ zcEN8iWvR<;K1p$2Q!wEPPCLgaU|SJda-Y#RshOYJ4mG!8audj$PLx;-sWw;9Am;4x)z6~HqIPv7eGqOX2Hm-q4D2j+Be%y0r;klMH(WZO8b?3w zsQMyZ5w@xJTibC&!nIJQ8itFCZ=iYpNunt?Z4*8Lb{=4+-pxNtNIHaWdkW@qA8Jai z;C{!wIz=)oM-v^F;NL{iIIa0tR*9d5P}t>^^E>KXKNP06uKsUi?DP@Y_;{|1 zu0fG?T7!5-1{kM(hA>Y7HXXb)ORyu+^i>Nvm+`Ac^EG73(S$hpF$NjERAe6P6%3Jz zYWF1aps>e8>ixY-dx|!k>pc3@{`Z`MK8E`37;Whc|w;V4yf& zp58LNDTV6LA#KnWEMm9~u^81xjSFCP-DiO4h_^GY!@DsDpF0QDMa3)L3D&8+-oSl` z&l5Y|{|{wf85Y;JZ5f>4Bv80p65QP#g1cMc?(QDk9TME#J-9oCLxQ`zcIEZE=bZcc zeqVS0p`a+%u3D@$*VuE8G3Le2;=^6%{vqik{P68CDd&7KmB9*I3q|c&Tn_f+oBI%K=e01^-_cR27tGRE|*!togUbRRo8Dmp( zuR6%BC9{bSKE7{0&Ab!l(k9ENu8mWflu@^lhYYl1Z+~*L_x|y!=~nI5m31H5lI-=> zw(yHoC*cj{B!b$gOQ*Q@UB!zu-3sB4EbnmJyl;tak1%(M$$GZ z;mGaTP1CD``!(1$WaRa!E9bGQd~)L`hUt7y&qSxg_Ke?~KU=ls`pv-et>d+2Z*p~n zP}t?G0;qFj!43S3r`O|{*RkA_c=Z(jXHgMDSWc<%4kG(Srip*2)O72jE$ZZ)mVKPW zD{D3vulCAx?38$H-y0l0`<}fLCA&KFZ(rYSfX(>b zs!*h}Utgb|eAU^@BU8^is_L+F1#`R9^-S4~&t9fkj6 z$p87u|9SCaL`XROm_6?jHS@Getnk}@RaWg!fEtPAHQjGZz6!TC%-2r;pF?`_LU+1H z?A_p(j41&9wxEh7?o$@^+EsULF>$2U)m_p?FOL5mW&K}&TBL&Rw2s&#{Vv2Jj<9I9 zhk!nLq^CF|8h`q%D8*&^5kS@|e4tQjWySwrocHh8kb((Tl`V~JdNgufyZ?{>gzjB< zuQtFW&WtO8A!qMVWkm($(Ieu(1Zg%&4krmRIZEbCCz2(K_?nd&s z2fCKU$mO4T4Mp)+<}a_Tq_iy9_oJmY8`aGx3g8nsi`_GM+#4+qh%YUlTPB^g-EaP$ zH>J0YXXuqSQ)Lw+;6=CZDH?4vSM(0ON5J2wl>f!eJGY4?c5UdJLu!yQO>IpkWs3a5-3Sakg zS%<7%YP$QK#!=>kM2(XUnDR+Zmbo5fYQJni_BX-VcV*>2{y?+(jRVZ?Z-Vk$nEOAs zgg=>IcSv|QnS5S{8VNIF>)jX++}}X%J_Mb^p|X+04r=EkAG>$sp`1$jM_1kw3`VGy zkL8)v@ltDL<>g;X%PfIE+wmn}nMjd|@F1UMf`@hw)6=2jP1nM*=D6&ISD!yWh~Us} zvFt@&C)@M&SH>{)A9JC~{efy)#KhwQ%pgO|62FsP6Kkdpn@5S0u39NBDIoI?#c!X{ zvdwP`*`~<)1E+H>sU=lZD&oe<%0{^W@1qK9fLNXy$FKIv^(<9 zyk=U7`EERihF$OV|IZH&A+ApaAH=AQeZPe5NfjPrr7bVHhi^#GL_jnc2F@G( zz3T-?AXQXY8{WutmmNBJqkuYbt9@-W0nS$B!$dOr#lj+?=SeT@D!jYjbOON7jqi^%;u9Ry@NBedPC=yKTSiUTdOt?5i zeX3QyKE0QgM5b=t*3@V{4*hMIX001)<@IM<_|KphmzS!x@n>l_yGbIdfZ}(IX;r5; z6DpjJc( zi&@G@Ys%u&mmjw``y(VREwyT!n=@%>#zGfGFT)Smcd@Ecj@mLGB}YTZRj0DJlj-|6 z4l_dOQ;;VEDliW5(&J}~xD%9$WGNgS5lgggbdu9X*HHgM7~r^vKfb%S<41?DExNL5 zVPrPqJpFZXu7y0u58@+O0Yt{s-F2x%wy*!abE-c=N5}R%9(;U@%Vg-$2KKZ{qzR}7 zRe}nnu@a)AjfVI4&6v2DaKi}YY4_bQdsgj_)g4|Q8@BH+jE2GXCkaaj2R-l^nF@xM zTH=aimIwX){XiQRN)26&+C`OA*@4a+1o}p@Ys#gN(USH|KUummy9Iu5<>osQyz($} zPmAMT{Asog8ReenZskM-{yIxvaxok2i;*T(2L?;*vSl!uYi>x=i+n z9oH8qO*Ce7njigjCbLT9>AAJJQqbmkv_XG#AZc0ikhsAgsiLViyzjD{mZdJQHEb_; zZz2z1+cdVxhI*-5PUXU!>GV$hS`?PwRnx)?d@OW3%l{g$&*-BW5n;3199Q4eL?x}M z58Wv(eZ@U&G28qUab4K|i2V09{fi$EjStDzIg_eY)@Z#tR-DY}hW%j|F8H_E+dw-U z(ISV>gi(CbQe`1FfRRz(_AKKp={T3_M#DS+#!F=H_vCf$2cO@$insX=Z4=o?PK;(-TzQq{A$If~bho zU(K8g+2--z#BphoYZ^tx=PlyCX{$)k(uV7YxXX^pyMxx9WwL4FjRv_Qft3{}GP+%- z%nlf9J+~0j(xbacKWb~2C#FsJBP`r)7$PhrwMj11GXsz3a^1d1H`>-;lUm|+nkc8?G zyVw`I&c5bpp=dFfT>a%G18wG{DN}OxkGeTCof^3@(_IV z+o#}kOEOUZ$;r~!dZZu5!wvLEJIxyyg!;evC4YyrKd1ss>X#z;)rYS4@MRo3(H?tC z*ecDsyp-_>_sRp8nn|p_h7^v?N+jfRRG}01#8!5WC$e0_MOLDwS{(aq|4V4AXgNzr z|1Ii2mrpG`I6(nI@?`5`A`+gN!}$sB-Qs+6GrT$$ITR*(gf^`aM8hy6l#f_D)uOC6 z10SBg%(ddWbSpN`tNn{^Y;t!f9RYo0{@7g;IS&6&fvl%c3R*b$R*B+`_0~=HJ!aUC z-DDS?DhYt-Dh=IOI1sHydWHst6c=GJKJ42jPRUPBU{Gt?aqGIarA+MzT_ zr{ISLGg`R-%1bx-6qW`St@MME&twiYmBEo&Ia$)+hBFC~a*ONx8L{h zyhYoC`yYTlVwH8GQVW(BqX*1I31Ep{232tQ@bLC*=-u$pP_;WyJ=Qfi?l(yv%bNdK z!wfqCX_=|YI>Kp>Gb*o9gkR$nvKXE88-rg}g=MurZ=n2jQes(L9|rWarW%#EO_g7< zO}}0|K8@e|e8(v*eGm<`?Rh44jyxCocx*>JOw%rHkGZ=$MOscq-A2%t1D>$!f_|8! z&ubM9WumVO^XwXHQSF6ab&9@bBi`X5cML^z8C8>0BKK|QHuG@%GthmW>CVSeQUK+RiD?u$M~BMdw04^6 z>amg1x7pX`o-kM>1_P{FQU^B+fyF!Ze~&slZ1VqQ}tk@Q3s zFB$cwk{AyQ%N(9LBM(nJ5~?rTrXMexrKM&3!@~p6?!03tZNdMSLg>X}xYBTgrCQ=^ zz6Nnsc{!z#QQmN1Xw3G6hpb5O5M&%`bJfY=AyclA26WH%c4CWs@Nsdx@%7;sPdCcp zgF38uu$Xq_+j;6RGdDLiR#{H`g12pCl0%hyvoDoV=oI;0Xu7`gf8e|Z6DoO)%5uuXAn z%}{vCNyBA!cM;IP?8%*3u0z@fmPa_be5-5y=i-5?bFjWK;?&+15Ya_ z4)$*P=*E9bH~v-lSbPs@V9!WcUf-i;bn2`{GjZWjTT4l=1uU#tY9c%jqO|KtRkmYb z|Ml}9sMddt*iJuu59K7sT_p%9;SG&m{dBYE@%n&yII=vu#?MF(2rk=dAhWYKk9DD2GuvYF7l1X5*UaA zjU6tPO&zu#op)R{yysNN5Q)7cP+Km`o0^=CDXKgi07Pol`GbZZm>_$Kb%89Zkpu(; zs)PjFrgEN9_uVs9;@fB7}QnmD{&&@BqYwnuP95z{f8@@yzCFj5N zY}Llm#xlm9_XUpiY_>JsxnD{K&3!u*tDY#hqen)3vx9CFekVQ8imX15Z(WX%=DzDx z*UF zeGW#%iie=BHlV++BaNxj?l9~XxW?E%Vmv?slzF+m33>ztb2YdStifK46AhwGHkX8G zXV0!rx}N%^Brln81#=J(oD>of@_7J(tm_0c@{++(IrFtBCU5&IO}2RM(XQ{W&7%OY zS#!=3ptAUsU~Zb__mzcEByYcd3eR4cictFco^g{o+8fL8PKVBUO98n>yNK{v9;$TO zEFyxZ&bDg56}}P-%8@q(KY#&nMRrKSkjIR0ZkOAI;^T|@WiRU82LNqch$z?oXmTFN1xPl}K~pdKzC9IGMmA6bBviX<^H z5zpPZr^icmV!PnBWycyJWV?g8@+6Tnp9+S!FpkX|QZFCOZ zb#2a688E2b=5~=gOhnsBm7h0NqcfAU4{oX_04sb-H%tw^g3^9~c-lXV>K(-n=fn)? zk8POy7-6!Vm5~F6G;XooWYD^##iQk6J0GcJ7dJ`a&3u%m0{6wUN84OqLJ*U8pLJOd z9w~;uO>DF8XZh%>6x3~!@q<=}gx55XpdTU$`6wXM+evau z=yx;-M8oRLelON+xuDYHH*fC}@Z|HrlJ0xytTTahr{Wv)#aC0)ugIhaZv zvbvc3+v_=k{qDLV)B3A;BTyT=vpx5z)ofwQ)ga!R3km`O$v5@}U+p~Rg5UM0BI0SU zUZiCc%Kf11;2d|9Z+F?*=3j|@Ut&l&&}Q0;+|pn|_;b_QIzoc?`@!sSf!Nlsw>wz49*fods=?IB;HKi3=4J1yWmV*RE`PC=988`=X8?pH5$^XijaSQkf zs`GK3;K!poTrJg^4ukLS5)2xa*fhppACJHQAe)=I3fX}@YKJbu(5~bStU{_2I6Y`F zeEhZg;8>_;^()0>Qg;Zg(xjtYlmo5rET70eV}p($c)iE^Dz{SjICpX?(A##MoD6Iu zz^3s$Gc=qh=z(F$CDZ1H{br`|bs8Jgr^!X{K^jqrpRBK@ybdHIlxIpt_V| zKyk`&;ja*M$~6pqnA8Mhb-M|exL}cxj8Uc zKKmntfazfe%?UX3VUusAJs;|6z3Bq(2b!}3z~ZbH2=e;HMNLWZtB}~%6$&yidVDkY zHd#TuSt`FjvwR1v^C={5BH@u8!i_x}9v%jISZIojNR~adm%ni6X=gUIZV@K86PGV- zU3peGRV)QwxQyv8F$lX!D?>uW?7nEb9+ zE|}Xl~sgwjO=Q>NF&K4Rv}K z7ks${`L0Z-UEuqcNrCT{KtiL9v*>Uk$^P(nZjNlQ>TqFET2nnif>u>cEse*m?B4e6 zWFvABxv~q&J>ogB*X2F*?BEr1e9_4D$5#9-8GP8zp)eH|4?8n63G%0}ih7~aCtHBM zT$+(-Z~c(~T#3Em;p(bOs{TP%cGdB>o32-B2l3OIr7oNfekO*}4Sx-?yw8ZakNmG& z{E03-KGNM#+Ho+PQ)zCc`u?ccxzfYFq8mrlh{LhvQ*i{^{t+8Y=V|ekYzx16@D7Ym z2fG=4X+DkcT)O=?)$y-%)qgLXMp0rp(vV`@*aBhoRhuevn#M|dH|)2<*<9SRG*R2g zW^0@kQGFYks{}T^SR(#}5%>wDA`KlfdLvx80ouwi9eY;T} zsVEfE=RGilmSyT((xe$*kZu$joNxg}N-6SfJzU9>eKU0m7h`JMkfE3kc+r_Fu%4t+ z1e+^QKdx2MN6-I(b=rh~{rWIjikg)sVX@!Mg$_cWvjK&TQO1m(QK}_ZB0l-=2|hcMiww+-dVkqKYjPy5tMNhv-a6FM#JAzz6@4&K-M;>= zy*oqUpX$d$B9JI>e9RWhzQ#60d~|%^X+zmOf}D@I9ljbE@hL<(geFEcc1ZI3I-1z< zveZ7tA+B>UP|!yLo2G%J&K^R#2=Gt>2Z%?Pdo&j$90l=%XH_2$`h4R1+pVd>eC9O& zF|S-3i=w-+MT*`^+7aI4fPqwhd%8=edS+VGr8wchZp3;K~pTq2i+z%s;Y#IDm zDyO?W-6cJ=)a|4Ee2^g8HB$2htAVJ&&<-hF-gByu>YtQsfd&vWbJxn3vOr$MSlwYu zm<@enn|9-Hl(f~=IV;dim0kyk)DP1URd!s{SaN-K);gPMssoxKZ)V@yiHhSQ1F{i% zJv@wlk{aZ{fpX}t{hTYhW*dJ0ZivNhrmnjYI|}amkqYl#${lzICf>>g~i+ zD&-R>((PQx!LcoTFF5*w${7S#3(vkyiaKo?vk33#AH8cv#1-_*S7Ksy}2U8;SK8E`1u_N*a zxLT-DCT+7iRMXJaAz2xciY2Cq~?S1A0H`cx6%4wlKq@= zRc~aTQAs5WjYXr5ENQSvl!#+*g?Px=voZ$6R?UsF*eQFo$ZKfuYHWfs{hdMN9y|TLWAjb5yZH}tQZ!i*A2G6JIeuZp72Cj$GeABVwS|ZYTO>@>s8Z2sWr0EBB9s*j%{{R>djL4Iz($;2k0y zvL`{{D*W+7as{zI&8GJoR@1BWWp=gIItB~F!n?>XyN-gW!OVE|h3~e3AX>nrJisID zvF09Tse~P{pl()Ydt>izBfwvW$^?BjHsmW(br%!UHMlTc0pnicV_6FqKX)D^sKiHuJ@QzLD#$r07h$q&+%rfrm4VmIi!jY~IthZu? zFAfXqIF1Kk=zXD@0wdZS90pFN684IbFxJpvHuGw_}ilS3k&jS?NLA3-TR{+ z3!hq4bIoQ?MIa7`q7p@w^LjrZ}DVS%yvx7E4!y9%;UpHdsQ7#tK?%;vCP1>{CXM`a*>(v}h4-b85? z3o@;@+QofZN`NE8hp%_tHbOOOBohdAl7zj6a?ovc8XmcSI_sh$!<9GG8S`T9gp2r$IkPuhBvWC3Oa*pX$dJOP~wdy;x;HqP6L(z-;| z915hi0TBDkHJqQEw&t5oTXn%T)9<-LGT|?2e64QArpXwN;2$!FZQ7g6k+xZHH)vKI zlpcXAyL)(u1FAX;W}|h7LUKnf9a=P6apH|-$3Wwnjt<*^aq&nq zfZh;0nE}?gocr=2A#Ns#EqP4=Jwwc-GMe!z#`iHH$}@-eX#P37v2V6Lw@+fQfy5n~ zJwfP=h0=ITPbcpriv^@T4^Z0m{#tu6xfw5r1G&RU*HBH^5fQ9JO{yd-H&{ zq~*?gRM$)*s<}W4!?58YNw}SgXOivrkbW>+Ldu9pPZD7QGoxvn?Q8Ib-|=5~y%QN4 z1@5AKysrC8+Ivrla0>LvD&4Ne=$#X-rg%Nym;Um-{qGldF}}~e<;%pLOBpRqO$%JI zu^ifgetz1ijAe$-S&39&d=U$7s6qL*=lk3i2LSz6!YZt)njErHl{sY-2%3c$AjM<) zq&`I(R;>4knvnT*M3U9W0W+$M58z`GiipLApnTM9j@V}#w#DKNk!VDnL76`X>55cbL~ zQvZ5+y2c&BTxAWxH?nqpejXM#u@6186B zF1drgVpsEDTfPuR9pYS!No@TyJ^L5)NZ%K|IHiC&;@cnN&nsiMJVSp5e|yfY{mxGI z-3kjat+gc23)@s?ZFYKf8WhvWPiz_mSkdpTfl*lE8oczQqSrNBOcE^~^Skdoa(EY3 z*VSWXj3n_=>Mk4&0IEf6UcXc`1RD!kgyeCWmv$3*3qOZ2T1D+5s(;$3fE zLBl{K`%$y+tJuS+-j2i-X7^|+*phQ}7m&*D=SD{n8|{v;t9t=I91vtYKDa6PPcqpt zivL<&K^t||wz7Kq%k9dB^$gKW01BvGB3?X(a0P)yVpCwKoJuZ-S9<;CF2hn~Q?T`x z&(|jZ-IJRT&(uM;@rY-|ScW`Y0xv(Y%Ijm(hDf9rnlw|u5+L1V!!*5$_O8s@cIU<;&kPPmDiCC@0w&Cs* z!N$adtYZ@%Hzx>6nP-ONDTCcM{<8*S-DXWG(=oS9OacnCYT^)-xoi=74^%EpO4YH> zxCKAg64)+-*#VEI_~XH+$y+HEPEegP?6q-3aK%ue;l)cjncW=vcY>}D{#G`}p^I{E zlyUs8&{+a2eVf>28nEg6w6IMHGYUyb4lwhp`E0Ggpo>*)vzXZQXF+Xndkm?SL24*O zLy*XXBFOQ81J?JLUu0G%QQAt|HKxGb==Z1)-sUecqz@@7t1&rzj34lL`#O9MWS!tz zncVz~*;+{Q?Mb{}pGEQ1ndF-St_8NhVjv%0NfkWXcSeEFksOKm6Ea|8eHhuwRs-iqLO@T^P&ET)Q$b%uBxIL zd8NSRZT;e}9o=L`lA!&grYix`9uPcOdTpksmvcff-b1LWRJUj@$&q==WBd`3CS;R6 zpre4l9m}2G7K3N-?aB95t~bOQBj8(wgl@Z+xu>FV>lO$O!FJTGMzn!|R$F?j$aogSDmvzSvut=kE^lV$1S!j|N#kZ%uJDcD*>`nz{;bxYNVp!87HCu)#H8Ic!5>rg zQ?*SJl6n$VklOh~qq`zB0M6A0;OHcOayr$%Qx>auu3*Js)gsq+=PA(BAgi$ zm3QXpDk(p2)NlegdJAV~gHnQ)xn-IJ-C3T`+Fz{0LCHP|JUJl$+>h5o$Oyw}vx zk>VQ`y{VSKzO^w)!p$0!L`QAbulcSEk@fQq>cvDsd@m?F;G{;fNKgdM#+<~RQq-(^ z1kF-N+kST1?_D~2TwQIgRaOIxv##ARr2kCXY16kS6-beY;WDV(ypU!})G*3bmn~Ji zG9em__nEUxCy8a}h_yobz3^!$IKqQb0!<;ZM3n|4Ut_KH^{2QrM&sWL1@p=r98bGv zXC=d2M`(}MBM(i%s+-7nBEP8`)?#KjL3FJ02C-M} zJ_FhsTcg+MmG`C&)C>w zJ|WdAX681G1V&G!mUeBW5L8h4Fb6miGO(5g-I$6-##zWYq1BOuYyl}hRmm;)_DtfL z_a-u67`HhiG^dOVoRTIXHq-jK_rL$iRbG>{Vi_-4=h_AJ^1e@ z?94IE$9yJY-x6^1=?^s)e>Gd^IDB)W`_Nrd+PWV0^!|60k1<*VH5)ZqAv*LgBB)1a zDMWAG4sE7UYsydEK^yq+F0kkNTosn6r~DXRf(x+7T5(9>W_y$0qwWvAheD6-UrUMp zN{jzp(D?l7-7QSEl;(2G zQfeY?CUKl3KLdllqcwB764{)2rn{7*ckF`IAjaMub`w)!za5ON_Sk`-J`;+uR~XV5 zMCLS`>=-7SB{~;5RYbRjzyv^ZjDU2drEX886t;z=5y#SqL5MIVl7ZiVuDyh8hdJAn z&)z~&x2wKjozuD@n2K&hjBdm<=YZW-m&&?yOJm%!b_e55o?OMUH?1~eZp%{YaSWZY)q!M!9ZMC+(B$IxT5cT2HUvEXDcsVI<7soXRyKSU6u9N4+gkz zG=p-Vq7D&de>IlYcsR4JP-oY)Xz#KfyB}~l`xJ1l_6Kt&Yz(}mL+Q(6$G50NEd2}% zK6i^XqQerxON%r9y8bEcs90UDB9|Ry#rts1?&iNaJN~v<{!r39DPX^@*V;X$-zJ!( zLNDy-aGEtuEVj@B!CYuRgn#JzaZx(S?#@kb*&0=^&L31aSROXh&{vf9-VJauqRl!< z5UZzaY9?VcmDP%|H7yKQe3YaL*6%~zmU|T6Lmh1-$6*$-@Gw+{4j!UFAA;UKJ?1g8 zF|R=*|K*d?^(BrIjR25HL{I{A@-a~KdgwehYj!w3_FFC!nR#w=Ifhr;^nB!|KWeQz zH~{%)k?B8@$cU}<>R^tezEsn6FtgRBMrv^*L4AO=W?|o?8>3&AGJ&l?I>i1}4IlE8 zDjUtpxE@~rdTC}8|8SsK@<}B4bKd6)w23D7N=EgW(ml?kyq}eEg+BxesNjS;JLskF zi0Qe^v?Cm+tXC^5tg8j_$mu)@N$}h=X6kr);F3X6QMGoUceV=DsU#g5$HFZ`Fev*x zfCH~Nfn*4`b~%(n-yqc1RLlV+q3P+cZ}q=!G@uk$_rwAY=-aU|8dpgg733(j|_;$zF`=q8$jx_wfWoeoO zQiJ?cL=TvdVSZ(26*wQO*@A+CGLo?PvVD<2W#aCsxHXT*ZnLQB6&vr?YG|cNji?LI zU}xuN4~W0Gas>-%E*S04kwB!7SA#@vK;sWsGl}PlhyxdjL-!3}@Hns$X_Q9Q>~dmJ zjRX>M9++;j-C+8F$%H|#7b$!ZVq#u5|vZN+V*`zKO7jA%8;sTU`vZdl#BZzUf5pedKS(b54>E z8BV_>I@$ET|K?KX^SWn917)v`*#~jL4m>=dnIQF;{xj5V03bsH+$ItzmO_=DEh5o} zP*;D3L4UwO;*{6IQrqfB@w@c1XZ%9!^pRr{9e1fR&_;L{S~Fgb z3LM zaZ{6P^R1QhsiLc$CYN&>I%6rQZQfhrE>@>*)B8S@oybI%dBZx}0;eMoeL77GDOv1F z7o;}0XunKA{`3}Fs03{9m7zWgbK0re3z zEkz_9^}37MI~h;=!$*QXqBM2*brL(_sPZ6nAN9Mjc7 zrbL#}=o5fX!Xq_bmO}f`)@y85t2csUW!!G@YLSN7w6B%^Nmu+AqVabi@r#4aerF$p z^kYca0VelSPG#-CEZq5|G?&bRoqRNx{?wye+gjtPQ|MQi!LF`Pcz~so6ZN=Im~*tT z@p0>6{j+A(Jx(|2q7g(#BAV*}`2mQZ?e%p6@j3Ik z@sD(yvy<^XKDZcy8-B=>51}5-?W1VhjYV`6YY2vBoLW`0ltp|iLW=9}tZ9`sRs>e6 zl=cQupQ%;pmO;^|EjzT-kxTPeuDnjf(tq)l${G*7^Hn32I20wzKf-{6Oy?rT6Gbz` z?EJ;ktUqmt6md!f#xU}vkf2i|ZC0{n&Sk&Gu^Nr{v+XkjrXmHhHB#9LtXBeWnYUK) zmeeQgDtZ27>xhMRs1<@pP?C+<-)UC@5=VLfR@RxdCrt7C#I!l1KX#7N4>Ig1v>U{T zt^-bgi$d5UqqVSV3IwhLDL6dU#?7jwbT}IIOG%YT;(q_Qm*?|{@#i%?{yffWsC4!v zji9O&f3sYos3OdZEy66T%7VYtr)9}7=Fp?Urx16aSHk=@os>bHypCqTMfP*6ZjFKC zBidwqI@0gEcjoXH+?glGvljUA=XeR(mjz!2XUBd{INUA%6RQ2i_GuG;x0&Ldf@5o# z7THg|5h+cQXfKLv&Iz{o+nTdjxx%@dL5ut;#OX#JWYuqh6#$^t*cA9Gv|k(Mr5Vv* zrQ1d+z0u~d<_#KJU^tzFH2%mRn{EZw?*?drk1YTj2s4r5Fh;B>SkneOvj!ERw|{$* zTrp&%=V0O?HEf%OS1%7GaZ6*@M~bnsCN(7y&JbA?$`)dZv25$s)p&n*dy8uy)!LOkJ`N6Ht zt!bNkC&!(jZH7v2!34miB1{>>#+2VHN{xMwR+$3CFgfXS$vm+IqbV|*^(*3hz{^Ub zPL-fkn^FsLt&}wf9AFt=<>=o)V>3_-S3592_(@}sIl7C7?!;M%i+TY6!?6&J1UVK{ zBhIiT$>Y|r3~&!e&rqK;?0-_#9e{;<67_3LEno&x`}R=~1X1jv#i@@pHZ;N-Dh2Yj zr|`Nz4>k4~Zv4KzMInnM2_^}mriP3gPId+Re=cH4o0ccx90@mmSY*bI2^*?o;4ktD z48HiXT?;7Qg3WkR#}}@Q2lN0^Hq;N8UQN`Ia3+ZM`a+d`=oMc?&zQ+d+dM17klWaTmZ4*E{U9t!DAkk27N6bLw>MFsEM>H zBTaYQAc3kF1Il5SBMi%Dkvp5!xvx0)hi$ZYOylJ9Nr^>WxrB2m5Wiww<}c6&fXk85 z-B|E_E`ViBsO~8?bBlVa)4k1o(m;c#0Gb?pgUBZ{n266+2sD)8doKD!BT*q4qqI4; zr9I`|d(L0Mb|a`v>aZm2;7g6P=Bjk>GbvV!HxNk6!p1PFKh}S@8_Obw3T%}?V}3^! zn^8OWOGTIXTBqQ7>PJ~w?e1>CYjJcQWb3_!@a&X&aj@t83)Kfby~ec zh+LRM2u&O^fhR4aml|h*IEuuCbGMbYephSDppp@!qoXmdF(!1rnU1&V3}{**HC?)L zH`}j^`@a429j>i``ikmjRQNdndS#|?*ut}b`)l9 zT%#1+!5ES1OzcLYfk@fq&~VxP5W%q3E@!Xy-tMB3ZYHySAp|E$7uMdAh26A-uAUhQugC_;q$J3_It}?pwR;L0NaZ&GfdB_Ns>{Ib{rmx;V(IgNBHN*{l6XkPW zZp-ka$sFt`(wLiY?6*jBXojm9V+Zmr)W{EN;!C@RnU+trO!oMvr)&0lIYE?}?&6cr zhCIMiFaF^}{1-*a-xeE!Dtk7RX#c%Op;kMx`CgS7(&=Y)IAsF5R(CDf5d~Z_-=;|H z&Hhi|PLp>_YePvUp0C|g3Bz9t@5B@fm6?o{y%!F#UR+H0KwkA4uAp>oCGZ9j(>?H> zA@6{J7+aSkmWYMciI+t0=2s?%5a|p5*rhM2Z^g6M>`jl(#Y(t$#O8DAjDm+}jCy(7 z*fFLAjmA;#_v+hpF&IK*`;-#?#&Ahx5Myeu#T|og&Hnn9L&U%0aOX>8eAIMju~K&E zNo$?OrEe5dSh$rc^Y*%Qd6x3Lp);OkWdU44X9peM=&MaqzO5Qmxu}P}gM=sc`|Hb; zAmk(WykK#lENaU0D1BGq+YQ*5GM)Oq>{@(0DKj+uC9u?m5P!Ki!25b%VQlA5x2NJ# zUSA)YfC2Y$m=n&p1x#XY=-a8elqy{XiI(pMt+s<`t0?pxeb-7+UA_eO9_wbP4<|2g zId80GQ_bu`8*Q$vYBeG6?ijU8xIJzSf->CE4z&UVVXfz}Hw7=S{meKPk->W1wQ4qvUqVnYU)E#X;jrM8GB|D=XT4jEd9lal`d; zV(S}Wv`ylp;s5CR_9%Ph>066l>$z4Pz32DP^?GD`z>U0fGGeYKz0u)GwL5nkiiGbV zcOZZhpWXj~I{~m_gUX<3T87}J9V#Q-lC_dx!F(2>Px?6*fV|>#VWi73yZ3>a0(Gy41xUNlmXN$pB z+=5m1&*+oOlZWtkkZ@Rww{Klm;xBJjXKzo0?Ju-iHm`5&Z%sjJw$HxqS9(xdx64Pv z1Dz{uBdP8`e;80JC!0Vzg?H~>Q1Ho7}H#^`8vaQF}PM=|y zz@^~iYHt$5jcx$Hi?H){grmBk7oLMd;~ zIhZYw%jNE)3sJg@>>^qPWeK@=Li1=>UM%u?p5cTs+gm_R|kHp1U1N~ zqP?istDLSVJ8vtR6*|;~3}20OTi5NMb*(i<7v3;c8=cqtTuZ}O*4#js4W68Os0VP8 zM6CGOy@cSFOC;NeKMOzyR(hUwJ#gtvKhM6rKplVqVXFz0y)NHGeCeF2>0YkTYHy@o zmk;m6+La1-vF_B(wcU31)l$;N`rzIkDlC}dh``t4N?%zOqw|HmGR`N*t7}2Hc<{kZ znH>OLHhIdKa+3%kH#A%nU-JhXYI?jA(qZ{<KD~1hJysfj@Y49Pm&M(r@;e>5 z;+XilVi&B-)lj)_OV&m|DOFcn;A(gJbn-i!;Ib806E3`}y=Rf6TJLVsXFSVmYv2Z6 zL#O4adWo~V%u*-oXhbhGXBHuj0M_%9l^TI3_5rv-u4qABXx^DGH z966y|D^(BcuJHJsWgnJ(i`ZXPZ85pp#-H(h6)2ka{BNEA`1}T)WfLv`IB#>MH-6)Q zy!9C;I4L!oY{^0mK5@zYqFIQtv*1(#qF&-zN7*IV_I-WWL#RxtKU?BZ)05UoZ6*Xa znoGAR|Io#JTEzeL*Y5@bkteA4ovKie!~xWGyyUH+=yzwc>#(Poi2r-O*FJ+6!9%sx z6U;=Y^_l$2Aa{U{$FIAP$D(<>AG=fA@`KzX1BXWw*^g_QuZ@Kd7jT5d_Wz5$H;;#M zeFKNvq&P+@DQg{RA+*^IqEdvEG1)80zB3qG6e^)jBxWoj29tdqOR_|aeK7WIFveia z494<4ofGMNozHpyd*Ao-{{HcK%*=D&*M05xbzj$YHwqL;75@<9V%8}dnQQG>qyL6U z_*=NkRrfn|7JquK3;k9U)j?sQ&(GI*=b2-TEi6V$_q_2AYZ#p8X~>=$#oL#Ks2MPa zXGFTzF3b!j%mZOHTYa2-^MQ$PttUC|9^#yoeM>E=16lHQEFt38hFlL%Nn#OvA%ig| z4^CyAQi5@!gKQgBG=ds4F8eGmJX<23m6fZWnYs34028Ivxji|k9npNVjj5r`%Rt35 z%#z;|b0gPxbs&(P=)%-4#$r98AZeye#nE?dg+8&mf{iZ&H6_?0-_YEA zxyH-|kJII=!J~+gxB|ZMG0qy`c;Q(MX8@k&fbZg1&f%vBdKOq?pOLopkmQKRmc}pS_)Iy`Q5KM233Qa_$(N3_fzvY7M$-QHR9szv~5~`*VmEDyXMtp zlPXt%8w3-9W9cW(tK0pNK1+Ix74B-GhFOvs0fTpcZ~wQ&cF9$WbGs|8b$+fLzl?Uvm@@?0Au7;vvW)rv>Xp3qu(CiOaGm2Wb#@ELvO15VGphZ$u}IQuWfOM#6shEl$VFolgLZ|~ zDBakeWFOCQb29l@0W`Ofa1&zYeEnV~%9ZbJMyi^pt*cC97rtl>-0i01tgOnz0`%Q1 z*hyn*fEa1Zb>FcaUr60QO(uuIdV-2}IMUl!U`#WqV=}NSi(}ySsnFS%{&%7Jo~I@` zZHH5box-}GAN%Z`R(00RWcNX@2v>d(g6~B!2GO@Fofjk{aLYBn(mJRQ;R|;)JH5np zbus~4>8vF;19Q#wg%>zO<HhYnH;%fqvFC1?g=j9YH%&Ax1cVLzi^J zBeoZi*RT7~@*jr{8YF?zz-8Ggb_O+tJV8u990!0ZuszZ4Gtu<&wK)6S2eamayV}Ff zwAtp48lxp>{h7}~Q=}Y?d1}JM9<0>zKMZr58sm~I8esH;mHD|kr(Fr4n|veig0ZqyYFWIjo1LAk|Dcx%bJ-%e zG;L?|{IOEosou_$W$ckiB_H7rSW^|St!qrYqAWBhBey6}5IRm2BHF{w5 zzIzs?p+Q5E=UadDf_HF4gG3jlqdyn2jP|fb21S%4c6jpB+S3UGkMpd`3I&3|%B3rg zIj{1ow0_#>zl`+HKYpQ{odw`g#&sU8Zi)-V;Jz#y^fNpID0E6hd1hA;?mT@&3m@a+ z=bqcwetHZJgG^-!JDseqG39@V6~M$Rb<-t-IpAZqmk)%{6h>4JeJrv!sO4!O(52mS zrl^ZT&yBKItk1y{b`bmnzc<>sRA)F&hs@wAY)h^CraO+hF}l4()?C!}?H@lDTb!M5 z<@}yIsW$bV?>6b{TGoMXVr|!8$?U3u?SwwB2?lnDzrr=Itc>wVA!4CM3*>Cv7x6dG z`H3Bn?iwgOf+KIgI7OvNsdiBowBR&>rI36XedqGE&#F8PHCAw5doONmHYuv_=|vDe z$D=+-4&U$2)8fQPD2;R_K8lf>tmqW@$;5yAGV5rv-SGhuTXZ4G;9dj0Gtai$N6S@# zUl~srVT1{-w3Zai(WofGIp5C&Ga7FtKT9`7-m`RQV&eTL-VDpg3BEXIXBAbCo;?AS z6NYWWIv1Cwm_-kjal46vOWbVI(s`s3Y!-n5||+MuFdzHt+e}Gx}+1Yfd$Jp&RL)-F684 za$hga;BBeVxVvQIxA&$n0msJ~nHUo+;XtTs6r+=Jno9zmNf6Btb^*OvmgZp_ub`Pq zqUCCbOTzGZ4N>j%-flOO`>v*YERmL`nh&H#ovr$$tWWSHI^pABHpOP%!_o%Ea^K%z z8nx(m-Oe!h?8~Tf+-$oYz+mC9A2Wd`J`Uguh1IU;gLwI3&PO`q-@+QH&K%8 zmsc9r5W>efqj z*X8|;OlQyY=+*B#0=|V$4|5-f@_0Xu%afWO<}V62?T$-qIhU((;ipN@E8n{tdt~I{ zwrDW6?{<#6TLN7LpASZ;H*2QzV~@1{!>RtcCIPVlhUJIB(V+a+XP!$Z9?DHf%iD($ z_w~xBG%l$yovTX}T<--S!&)|3xJ!}auT@Crls{v};yoiVqQhllcq4bf(cc^mSXceY z21kog6Xc$L`CjPrzMtE@^6Pt+$0{h-qmS486xRPCcc_VynS|{-8L4&}zhcd~oP`f` ztwd~bV~Y151l0pSmz=e&!uh0$Q6t;`y#ALaP{>l^5yJ8eU-y0Rn%#CaXP%rhKdi#n z#s1gN{ra!PF7WV0RQ|aR>sIjpoarerQ;^{`&7E7%v`O(Sr0?2;@D=e0{aezv#>)Rk zMlFj|x>Q5s`nf#-fG&63vrk?i=ug{Cai2}tD?fdx^T=6&)36Mp4h6k4hWaWL7AyFf zW1TZ*3|QZWb^9sD?IUM~c7qsOIS4;S7EmeAL_6OXXIi=4@BR*xN2YrbsskGs#h8_M zHo;SjvC=NY2Q1w>fVxhy@`*#SLyImZ0`PxCrPiTSJ?KzifHt3SOzA;=x|4qea`S)* zvxOWjtU%V&<&jaI&1(__f5_eUj)4L9*xq%39iHzBHJptuyC-*ra2dLZ%A44B;4l;D zR=a0srP;Zeyjw$+l3BKlTbU=>Kx~PuT#d^Qx(QPnLTjA`9RKWZl2>Pei@q4^?_;UY{>&m@US;%123y{}d$dFAhGx>@V!+!D$g?zuf-#3K6aD4h z?M@1YA9qe%wTZTExiQ!~ucfhe(Di8%jiT86S^&jPh3B5OhqaM*XPHiH-(Z<0jvc$O ze2zzC_HN<8R5-;$wX3?b{=`gFK#}rUUcmhNJw=pgPcmqCyUR z6zNvVN$NZ;ky@v3V@S{J;8P|deyfS;DMS&?c9tUCr(dDh{5$%-_`O>n$zs zX;wI?jUra}>NRt5eh0 zH3()6W+}v(`j&1$8FK=F(h~ZXvb9A~XEJKQg-?^=P=##Sm3_h*{1fq^=hC6VutmX=m>K3Of3+_{+P0#R{C$~d1; z9+4jrOU?4QRS7G5xAq|K8pD7`Dv=nHQ!;eJMPCWY{)i&%}afOdFaqnqt&DqYGv zr80)otcq_<3XE%Ui5cH)r+DpZF(ou60tF0-J`ji}53qZ(UrG~B?X|n&ZJ+~jZLfLO zQA~$Bj{Q_0O?m*6#<+rIc(!EHBHi-vuivr3T@;wN(8ulT1PU%R!vqxCK6hg#fEt8v?JW_ILivo?E)}a{W%w1&@Amx| z^#j8P&b_6dMD_&V#b3(hV$bYF#}y^8=#$b<-z{|`+sR&VIuUdG6lQ#qSd}O(R^j|| zcHPd&UVb!Cs3LYe*>5ZJqLk12_8^EI1iCyUCnxt|3=%N)+?3suWHov}?r^2K=P6tE zSG~#iGWqs;k>le2dYA8Tmu!Qr?{5GW7b%7<8N!$*k*HWG_9 zRs?+U;^CU7R_3`<^5>&7j4|Bdt;RT9KNsby9533kfUIv?K(;G;7_In|+Ag7h)g&0I zH}2ZXYWigynz`A*Z-)>6=2McB6RmsjpqA#1YKKlPiQ}~LM~^K7YQ@|;A_(_jxmk3B zj*`Z9D66I7+aHH;$&? zub)=mot~l(7ZQ%Orltm`XDhf+IfqC7=1!&9H-M>@o3L^cTQ?)Wq0=Q(Nu$!N_|L9m zSzK5`Nl{)j&|-@xya70szX8p7aq952hHC?*q|`X%Y*$5QrP*4V73g7NM@rfv!swgf zj5SL%-&u1!TJ=S~V+LzVLAu@O{8ZkhTz=-Zn&2P|(^8nIi~PEiOoe_n%08#SNpV&$HL+os2> zjaOVul8Gdk_a!5Y*~8Nx74;n8Y(+$Lg|~oWS-CTcKjB!f^y-T~RDr1)$R??f3kw%5 zto2qRqu^-tvx`m-FNXXP_DR*132TkelU=HjS{IK0#+#nAWLQW{u$p;L1)|>Lu7mWB zF`!sp=lSHQev!i^3Yh4aV)*>1yO)=|QJIgZH>CkL(Jg_k?@6XIK}66=P_#*MRY29A zL~sx6H2O)0DO5~u1a_3fVi8n#o7{hreS!q5uC9)s^sulvC5$|I@DX6Jsy_F2-N74q zWlFpL1aw^5?^a4OeeFB8t~F{Z|KLTR7yWk^-*~S+zha-d@V3v#DQ!!884G6e(sHON zXi1*Y@hZy#O77|~mhgvHO`x016gg8H>2nys-QT{Jq(hxm$3wLsuo-6MtV@#fkp5Z_N$ugIHVS3|WuWI=T!-$jnnUHVSZuOYg1!eFE)2PtPpNIYHc2E0Q;b_y zFR;9d;3C{dm^0TP&|OT@kN_MLO)@;T6;E4Yi_aC%UJ&74GkoBn<_O5 zbe+@Xz;5=RBKZ4qEDZd@v}dD3VmrMQXAir3vEMdHbh6jslsim&-QVgWl!asifl}%` zjM^JTQXd(&s&h-?>5{!M)fz2RHSbQ^33tz(?eQ7$jHgDWMo~+~n~zbQbYvKQ-SfIW z)A!0upGB-#b!gh`!!E3E>GtH5ZR5m}eA#4nu50CEe?a=%9 z!P~7f8p0=)`dm<>LzcOWegm-*QnSPrxxkj>KHLPwV6oFXVz7V5@GK?dAB}^(HFmaJ?j#5-fwKAv%;?Jthr3~ zZL>8kan(!nLA9rHLIp2BOta^>Z>~smWvbU`|L#FSkY(C=O=>jt#(5#Q#Y4-N*AXeJ z4p^(~jFaY%*EwbL0+pbw7yrC}#K!w=RoN=S_x)+sv=ud4E!y&%WFx%hIfw%=!KV%ouT#Np6> zRSB0?OV#kXYDo=|xkoa_b(Ms7Jd)&(E=$|+HocF{*WXsc?>&gmsBzht;~)N^bbR^M zgC(;AGi*iUGQu%b47KIc6Fban=sIWnh3=Pjs-oE0r^u>3d$YCQMr7)yYYsfj>+u3< z<9MO%M2bYFt!YrhN{QZ~b2Xrber~y<+zx{gQ7Q6Q({%=orR)mjl~0znkCr9l{4Xf4 z<9Ra$@7|7ejV&r%ZBw-R!xb|sA9dR--QH)C@{Ev9!;>E5s$4RK*~?Vh;pb%6U9%>? z9e?EZ`f-Kd-g3lke!Walrek9@i~L>I_=IsU62Bs!f?U?>BO|&+IAjBD2EYz6zsfBB z&H5+5lfl7eM?-}JWq54o6b(+1)b1~_y4Z z4$Yg7o)Zpy9lN@IdtwmHCgYhhVeOn;G3I=1}PWApojood-f z)}?I=2Kbx*o8oq;f)H|T0j>YHMpjyUgeMj0VT}7-`9!v6$JiAnmT$xS{N&Cc>Ima` zkAclvKd5noU2AuJavzi0GT{2#DwGDU0lOsCAye~pMYJ)*|1zq-xexQ!(ERpN=y9bP zuj2}^tquqOG3ZhEF}L5|-Fo={1LW^S+X7|(KgHw^4ZBPS&A-p=k3$eFsHsYT-ZiT&U|&d+PIhVS1@h;mp`U%O5gEEdT%-uLHVhJ{H8gj zyKmw_2%bUbTjNum@7GVrx7Ig*$yaRgE|B(Y&!>lWgTu8lXm7jBsEDn99-GeOV()-X zeIv@$Xn@F}>a}`opw90xE3dpe&9fd(+kIio!ZFdgLdC|MEIsUbiK&em71+}uYx@B$ z=kC_I{~tW|^Iy#mO2?8q@fc{=iV~V0qvB8KO}w+gKQ0;N6_3q%9vq=mKaL#s7|zxB z=)ZIP5Zd0ZLU03y-v+i2_v^J=NRh76%hs)7$9>$VkdI4D%wI=e`MEv3V(xuTN@b7d z4Qhu%f$J&>qBrHY_H;2!v^00xMXy}xvcr2Ehi~wyWdCA#m*8^d-PjLEy)*6>q@?k# z%4v7eLFfEs7DvSTWSiNf_vmL&Om=Wgb}k|XTP5s+sA_zI?VTyEkl8rOIkZqd;Bi1a zIF=&yvddj|cJ;g`y0GwA*uPK(%yfUGvbWe6>ZnG^q9X25xcN62aF0vs4_Qq=`ysq( z^?~V`SwZ%se7lAV|AMofe&C>PyZJIlfwRR2YFEl73sPM;*3l}h>t_l=^h#k;UeLq! zzBwzD)o0S8s<(z};Oj1VH_D}VHrYGvyk73^+PyxCQmpMR1?8C@NrI;8zliF#9U8;D z{CBM-e^F!ns^5Jn1aLvhW>jv4-aSVhyZ}pIV}4zI>#sK{LnSDS*V_RPXEClZ=ZU(0 zVNLE0Ah)nQKTLX&+JIog?DsTrBdWpIZyN;rmzjXwq1W5zgp5O@>p{DJ85TexkWc_@ zptD#TC;n^HZ98g20mq{!K4(K){$j>|Jh{9F-0}z`2TiX3TG>8nJHRa;K9mUFnl&~# zG_mzSjIVgg-?`{t*8Ph{<&Lbtkz4*L(#8(wUtcl$aY$gs72Ue^&Sx|Hp$3lz77MOe z{(Tg>`I~?8;`n)BQDVgd(PCTb-_5`{^!#8OQ8mxaA8ulnUyD+T_z`yKVj{R~&A*$7 z>^FP}*g@H8cW)i~+6;Qp4It1^FD9M*-$$>!`G7HX3~u57&qXzv0gEz%Rmd3qCshXu znCfbJkNyj#$|pEZeN5;;w7pro_e(03?uz>jvmvOft@g^SOEqhzGG;qMh{MJ)Z4z^i zw6)6PYi5J&k+*3)DsKOz44?*>hNiLSsC{(10(<8hkr#jI`m}Ow#p%w>v$MuU3H@4( zk-74G$0IAZR$XnN9W|Y>Xj@xzgN3j-Og=u3M{6q@&^QNt>Ps)%{34&jnH{QVce^Lq z3}`ODy06yfS5q%os7X=;4R)>1f(!xSj7zX%%a}X03R<7(65ss$I+GmP5{!+)SgY<| zE~geDr+gP|3Qpwepe;?wO`japEjV|ZA%VZ&B7 z$?x5cQew+O5|4XDdVW=n+2I@+@gnx zy|0aK^D0LP*|{6DvNJ_L7(`UXZC7cR7> z+%i%JF1>CnN@6zBjo=!J90gJmxz)@YKZ)zVd-twoZcc5o*>o-QfcLXW^Y&{Z4`}DC zCX;=`mbKQDe2ajBeEmq1Yq!bCt#d72c^R{whfW?8rK}%SZD!iLC?yJpw>O1?5w#ug zgk^ZGHVM(bb1yZW==`OJeiShrl*iZFE7EO#C!+Ah$z0_dknW;MiGA7R*_n@J z5(02E9k&S6z)L4kdFJn@ytV5sNl}{D*Ed0bgo>La=H`+roJ&pnn!X{%N9!Y6LwKYP zzK&?i&%G!?HTE{LZhlsRJRSbrETFM+qMAya04}Psgux_N7FxAZ@?t0N2Yr>eQo*s1 zXYmlPu041L)z^n`fmF-_x#bDB7OR3ICV-67!EyHEZ$05Hz?D(5ZZsPpoUV=%K~3OH ze6_8YD5~KtDvuve^z{~V=+eQy2!2K5r<0aYwPNwo6Hl=C8IR|`)ZzM5&b}GjxAD`- zZzZyf%BBl>Vc*DqE}CBo*u~09NzOPt{F(5T_Di=4KnJc>IMWKhy)9i_Lb)(HNb{>J zo|wHWWjg6a{3_yd9*yyxQ;ZsLct^UuS5m991c4lxZySXSLfKJ-jDtUBzXT5Pq7+u< z4?t$bM0!L;dK&WUe8#q?Kc4KrFXIWj*jwr?!ZsQ9lz=t)NN;WB=sctz;_>E#Y`Dk4 zTUsXe+;VPW-gDnhW|Dz~TxabIRt-wP=$v-5L2Kkh+y9!eRx1y+vSkhS^(b@S!Z~If0X%1eSXf$ax-pMs&QO z-qKjb27Ah;)M->r$Dz2zOEbI^Auiik!=)7AIPA6jWYdDz4duAg_TGuEeGa4mE~uR6 zh)fua;2%&a)_lJw=(_NkJ6hO_vV0Ykdz@YT8*hmDnX)4IzQ4QJ=FIOddnV0l)tDVZ zszGQiL<`&43*T^=>1@5NDZ*{lH8_HIBeyI^2NJd0r{KBqTKA2gOI2~rKf4k15zr7h z8A*3@6$9`2EX>@~H;h#G-dV{VwWz7{jb=SQCIKN9O?In8YUT|q#1V?YK7afX@~Odk zq9ffPrL4@P#`yYy0|zD&0~--YlX`tL9QZABDKtM~7`*rt9XL@{L zY!h{ER6X@YX}oFsMPJ8rsbPHOz_kXF8soeSxTh%(R0v4pxKf;Fl1Q<%<;8O`j$oQ&>{MJ< zZ;&&gv1TzeB;;G!K}fBA8}i$;Z#hY{h=>SNIg<-?If3(xmQj>rjQo>)tOpFHS?Q)# zh3kp-znhB`5B0HzD@ek$A%n;|tK-U3ZbeC}bFKx)B7n<1R2BO}w7!y`*xGO~L<(rL zy|iF1an~sWZK{`%?_sdl!Zl~G_~d-nV8NSJ_?$w`V#O1S(4Wcuzw99ps{X(-LLUb1 z8*toD&vX&5ryDPidOp-bC_M92sjRF#mu{$0X&$EaqUNn_-)h#?IEwe_et{(_E=c=@ zqcQ#MayyFQQ{2mCefxaTMwH;_3{WdBMM2E*GQ>@IDYX~uBtj=#~GPU`oby`s|!$Gdvpa)v#W zi~&+rR_0r=Eb7SzR}mT}g%}iW$Q9Z6LCTb+j&n{{2`Zp3iYV@^bX*&xm*I}ceN8{X zjLO(X?`Z;|!Bf;KRxVBp>?LOV|R=FoVS7&QXxb|){EvP zuMozdlSRhELy9g)DT>!0teH~)!GUtGZF$3wnUVFL*K9jIg_bBY&6V?WRj5z0d2blR z>YkcrXVVFw7E%qU9cuRotB!8wgeYTEWfubit5)&8EBOk%P4XS?56=s$G7o_o_;loK z(5JrB3l}7i!~$i4ITkUgA3jvMW0lVVnSG^VvD<1FRpA{WhBlkczV}Q`5EnPkRTC)z z%AR#u{k6v!hxv_p>gs*VR((MM|H&n`u!_CV8yw}S_`Wf9U^xCcm{%SsJrTp)JWBFZ zFV%7$`~Gx#P^WdcChRsQKK^wv(Nc*%%(7FMzjL(oPJX@f>Mz6dVMon=d3(tS@Ei}2 zpZ4}vN^G3Fu%*LDn*VpXi4XRrnmEp{Viv3YiHV7O%#DQPq@@oc?#g|O1$`Ygu&V6J$vqwU$TS4q zqBpX;Fnt9Rg37>@_4mkGlzC9Ddd0V`P?oDe0n7&j@pr8zy_a+-XM8DCoHpl_kNBB0 zUz4?M2kv?Sx0U%DF!#_Eiv=LxK`wk>io3hKiKGb)^?G$jLuN(>A}?X5BND0DHAyLQ zCTQw}7K@V)K9u|9wm|feJ5%N{e08ap%=-u#=2H-ca9jKmK*?McSX;I;n3=j(ybm#r z!gj4h-DWBd>KCi;4+C1FMo0&u@J3Vw500uDsu+2*HP>l0N5z^BW)BaWJ;HRb57~eHUKZI#T)}N%fI?K+HDjQ85s+&+?O3XM9 zsQg!{G5wbVau_4`%J^u)roEZcXQ>{Zp(Ad?rpnX)xTnd;%GIwI0{Rmi`~ zzHH_8F4T|wiK2Xp!&MM!jj*;{mXOsMN6GhHx?SW+&RBAg2}ILo#fh`={?1TQ-?d(P z>O21HYczsl(ECbL`f!@E0rCwh-W$|!S)5xJ6)053_HvS`_NySAj5;nsd zS0J2gOP%k^o*!mcOghHYwW4p1b@jV1`f<=X6Wv(8bD935mXJ?cnkCxh zm<)%)!^g_qdUh#s=V* ztp4>R&9w5h~A9_S?!1a_TbP%P|yPb_=?#{dr1h#|-KG{Dc_rl{U6Jx1U!hXG4WSpX zs5SmZxEe$DK^}1O1r?BsroF@|bSx|c&)-maqv*LL%?65jw)nZ%H)zhWarC|p3uDG;O#?k45sl3;?P2Qz6%x`!vqF0nD0K_W7!iFMRbDWnumkWdH7f* z4zkD_#x<6}Mz7!Q^rV`l)#wQ36N$Gr`HQkVebui15^(of1d`zzR0^clrPlT)djt$S zQ=CJr-xx{Jt5jS)`Nx57=~q60O2myy4z_n8?15gbsy~)e zsS9lS3cZ8^3s!ZU&#tBJ18O(vsVz8Lk69S#1RqrPvjR%Zn7xMN@dm7#qoU8;(0GB* zxJV0hg|8ES&5nIyO4tbPW;S0RA#SQ^7F2EL<}z<1i+<#O&rWts5@rDMb~ETfat4fm zOc+Z`rWcUe_&NsfN^?{RU(lG3EyP>@_Su+#JeI25wRmA9xMcoOYPpfb)Icw(7>vvz zd{sy|md7W?{&l#yv%|Jn!`@s=JVR%7utq@8&<#>Zu%hwS9Z0RC3UC%T^aJ7Vydo>gVckjG|ZRP>k?h~wESslIS zl6sJ@1A7}4pA7g^F>`tKu7pdyA(wAeMfMy20}cHElP-5{9*Q1QT^;GeLsbR!HsIsX7BRLtt&VzvV|R>sg$N zk*9C|@S}D`@bMgiozKibX*W->u$jG-bYz3UlvP(%;uVM}_DXK{W6PlT>dxw!4V=_g z6}94`uE7kv%TYLWGJL)rXOc{@BE}2*fTeOPZJch#3pY~P0Ln#^) zj@3b3Gz_nh!z51yh9bK(y*6?8mPWv@^-qU071;y>*xm6N3cYOYMBpni;XAHsg&zm# zK>|KEez>D&=WaJlOf}7irdnVyJ8Pj)^$RIuXMB7q+K$@zchJUZ{-cTh5N*@fMT({5Ezf1CG63Zr>OsJs7LX0ea@Pt zxtA>Rxl|54e!L?!Nd z1ePzTob%$hX3jyNyGaF3-PmNE(J60UHBY;7#g*AG%h}aiy9P7(>C0UiEik46^eg&o zM9@TD@MF@2goKp+#M@8W71)_qAZ#3^-m^ihy!)}%3wA;M2(Ip9wBmgGFL4>qVphUH z`*ChY_=V-(BnIhTDW<#ZLPj~w)zNo(dw?F><5KN=w%0KKQ?&jgB;&AWd+)7TFly|% ze}TXV&v{2&HPH)SMSq&*smP7iq}yb9Ud?>HdDk^12oR9+b>sneheNw@*4Yaly8Z6c zM>|#Iile$NnQCdFl{@0@5I#HIVkr159|!x+{y7#13qXmyWh|W#+(lik1NrmaB2+3D z`*&X&ix&<*nS5e6l3xKIUdo^9p#u~z>o7;PQ-R`V@%z5mXH$2(I7@wor#}A(Nu9${ z(w4@zb;S|FMIu^bzx1TikTKCAFz@eOUGG1QhcrrgqeL#dB6|TdEN5GGkh5IDp1E2< zOQ7C^&F<5_PALdq-qEg2YzH%Z`88cfGOiO7;v3%^0`ZI7l zUA}LTnMp0NuZ1v3?FP9MF0om@_H^iUyp|fx=BIwt?Wc{gpJ5$zxOuuxodA4K1 z75crBg&^{`1y|-KgsvEZP&|9!m+tce|Jcf|0xN9206F97`1CMmd5BaRNUUFY+|bBC zQ=R1jUjh7+x#}yQsZ?F|2}3;t$hdUuVvKl={8yjbjH$)!NXp_|VzBm#m(P@!PHoY7 z9A|D9aVLkBr_oCPw8>P@!`aY7rOIelcNY9ta<5U!PLyse$b=FhXDM z??nbI21MTOu2e7HL2pOlICP393-7eOY)NfuP~eNg9HWQ&9GFhEW$w4* zXh3%YvSS}83B?j)v^wRHL>d{!aoVAY3;n)pM(`BL#)*=lPFYoEv=+Z&D2*>3+gPgQ zyF%bLSMX)7Rai6gzIiloTKBB6 zu*d+^g4Z|w>$|RevhTt<;VdIt59Ipv&*^9$xhs z`IJFq@`>cAP=XukgO+tJ^>B5eZu;f%iI>gxPAk>zeyJjXsP^2PRB`MY(IXsaD*1A{ zuQ1`L%Oyz5=pIw(LFHAVNq=H8w=AAvTm};jd<|>TgWQ}*HD|9Uu~7Q_;RS>Vl!jz*@`;qH+>{=u75 z-P8>CzIRUy?32^x{w70;e6@KkNhdM=z|(Tw4^=XZhLvdl@x{W$kX5r|K9cs?1V!D6 z&pY}?_ski^*<8kZ6f;p7n56+{hk(x!iHQM`_(f8&Tb)hzDuX>Rwegq$$m{AQ*F)n= z?0eZ0b*`bhUGxO@&-gT(QQNnB%q!~mE!t`W-D>K=%Y}s5QW!OAj9mJjAG|Eo*iRr< z;YcfOjDppSQ*LXRYK(LEJh1Vz)wv!w8N=R<#olMmh5lKZlWc<8eJrlztW-i;PGnz76uk!NqsArv zfU_BN7l^nWED%cuT5+73_evXZJ;&-!-7TwZ7li7@+2>Hoof8D%m%uMpZHe(;M!iJH zxvtN&o@5la$n{@KXEYRt=9W%-yu~aWNK{A_d4e&zE!S1wMPv!hXMEMn3}NGJA<9!t z>xUHgEzecANc*%C@XPR0zl@*{FJ6{7F55tkel()j)599FoE_95OkZ2MHCF}`R5@Cp z7wz*@983F+>js%W5&+XcOs>A4}L?xlp&0WGbm89s4wxa`4iU~`zHiTj}!1ipcj zTMK}TX?4PWS*1|M*&?oCOOnp;zAM|sT4pXf`!wJ^fK~&zZ#&F;akC*O`+I&nUu5?) z-3tUm*6yN~ALjQYzbrf%=(&0cl6@dGz7#mT`MwuZkaPIn$Dp^y21dbBA+VNpb1!LZ~zsU}vpVQLz zQd6~_7V<$-x<^}z-KAVLJ*>O0-D1BzYk{eUW4m-9;5Ft*v^fd_4U(|A8}6R zeGUave#?OpA}(*bobv1x=U{glf{AhObgJcE949|nG4I+LWGJ#u77|uj3H~! z5H&I@uhoQ$)U$Hmho8{+G*_5$Gdo_YI^&Mmq53FfAuqDc#pVd-H-j&I4N`SM&k!H} zY)UUXjo;aPX0f*@1i?3UM-Ha&owbNt^&wvHOIquA+7)jEc*8&jYf_fH35e{nw-2f z--Npk&6>UB7ZXF1=qqizXaY;Qqn2AOYm?79yT#sI`q86l^l0w>E4}80J}dAZdrGi` z_hK$93xZF9QMrZzgSD^SJj2IP%dyqQjK=|#lUrzj5Oz&Td2?{>v zYhU7P`=l|$rCqU0?g6@1MNRd6*RTy{hb3mVA@zRl`~F>0k_{b6Q}g zbdFlIzht)C<5u?ID6Uf`@^!SU3h357-gNtu<*Qbto z85`?|)_85ofVeB=r%Wz)5IpbF;}&(Otjl$wL~o)b+iezhN1Oo0Y6`9G8bb^wN`~Bp znZzi*p`5e3$uzo;;qof+>a^g(L)+*X=rJ5v-n zTl$GzkJ`0o?d!b&a+|}JcjMlP!fYi(rX0d^$jxSMHn84E&R>`|5_J$3M!1#j@Wi}t z=;QTuP)eb9GJASrJjr*m!ybjKr0A_=8`KKmfZM1V?eJ612X%ktT>U!3$l2FfU_aKp z1FRMsfw9XsGq73dE3j|%VmBx5mfwVtqX(p`DkwhZMtq2cUz4vK&1k!~_DM!GCRyMY zNb65ZJS;Ya&SQ-8AS4eVlS7&8Y|J4kmG_M$k>~Wh0weQR5>qVD^TBaud64VlqQ-1c z{ucx@XXg;6reDAyub!vhl;L$?YeH+6C$wCdOS9*xv?cdGgyBz=dAwQc@e}~Akz7|_ zE@&my-B|9f_oK&|KttXyZ8fv7ysW>;@n5!e{LuE^2*+{5FvbN@^_@jm{3#oiHTxEx z?ua=e?|b=d)Rr04v7}vwvpukwq{{V`Z`(mSe$ytou?6~{*(}@qT7h&>uceH=;Q!7< z?^Xj+Z_>rMV*WezND~R9-b@sqnBU^iV#AsE+rh990dkM>iVR&2{V!Vn@l$DUAWbKk z9M!Z{-pKE7$NuQhfS+_~*85K!49o+0O2|@c<$p;W+_a7N%iDj{-40cM#e7rv@E<__ z{P+J2i1nLuoX>m7(tHEl9+n`}{V#ytKK`!7)5&=`JKFf)5K5m(9NfY{oreTerW0jH~uT3TZz?Aa2K}W7-fv7?oiEu(8l;%jrP}PexO6rK-Ohi%fby)ugP-)YRMkp zu&s#=WLHayMA79QkBO$h`m};K`cx>L-0S5qQzB$+2WQvQ%GI13G~CLU-lsJ1XvZID zZ>3X`8!Arr=72**cE60UW2j%Q1d>v{pL~jvAHMV++;gX4=hom`nEE9d_}O|La^c%p z)_@=jkY*ezUx;9#UPC0PFMe;#aLTZbB#rsGDBMR{{!)IMxO@99&6}}{h=INQ?^J#z zBIdjTQi=(-X5aPNoiiO%#T@OPwAi}Lxo~bw_S+DfS2{4hBWMqTE*oh&uIzN~;;;>Q z^sDUFi`c}QKroY?o@9u#?gX!#btB=Ezk-YU)P`35WjOx%)YP~`z;JfzW#OG# zC!+rMS)1K#`7sL8^>*f}OTXCjw}FZj$9*^Lb&9kG_Ek71AY=ktC3RX2YK!`AOrj>j zr{9dc*pdy#Z*IRTJJrNmZ@Gc8no|xl10I47jpmMxUmnth7=M^jP9FInAYf{5$+9)p zd{q3BK0GPACoX+)!#tNy9FTUODM=)QVpf#XXH$_jKGWxbglKXI+rpMT0k-Y16&`p6 zk|M9>PF!!Y-9WTonD9)+f%9^@4=qSxa9fKlT(3>&|3OU)RzLPX5Y)wLf5qY2CRtm@ z@QLFaaIM?6f8u_Ig9*ehZ!Xl>93JDCZQQjuq&g+3v6Z<8ddysBIg9DLZsmMt9m?31 zUBKHl<=t@4_n6AI_p&yPrCHzKj})$mDT22&d;_sNZj`v)Je{{8Jw@8F%W)@3kum~S za(zx6*54PG<07a2JN-8&vz(b3>)4p#PRr6}iUE(x{pVsIDbe?Mxz7OYqMP<0h^yBZ zdcb88(LYRr1Rhi%HdYGapgrG^FElD9POFVUh5d!dI{ z-wViv*<{lU7^C?*=w@}b z6$u7rcJLjLSG{(Gvm{8>0uvPf{i>(O#~yfb614r<9wn(Sx0$d}YqIRty*0|2?o-Ds z4;9;mS!P2&!1D=}>{OBCYb;goCyKG6zNLgg{fs|~Ny(X+W++Otwa2(&ZK(I#VSC=^ z>y6ZY(@UFK$KjNpAbYO&rvyI7VW91hQHjfGDvg??miQWIGSSjApB6YwKx9?iV5t>sHT7-Q^`F{<4KxMxa$j1-+T&wRN%=xPfAsd!DLQpNJV*Pmdo`BO1Rj;Ket zhAM>3KHG~~mHdNS?%@gq`5Xi%B@3Z+I_M51ZX zg9=d2Po>%m476{9*|8-5t|I^YL2n|&jBn7%zNxVbaQM=^Wz+{`*rTFPO|AEw&S;+J zGn}liNQ(G$)lS~g!Qi%1R6s0?B{Or&k7QM-iFe{rcd&+rX3}UC^=hoai_Yu}g~HQ8 zNye!mGxRTul!-o!XLGf4K*xm(*_nMo^ua$JT-_$4)?|FOpXFAL!W;P7WU2Xggp&sc z2lupz$Z`c$)vHq`-HwHGmWElxRL;`L{mB#W-{%x%#jjXpqAUBXB;>S_$$w6@32Nm_ z$;zg}-rcs>vX}LoHiXX%T-x;&g+f^_lRlhf{cz3qjsN1UCj-;@j|Y_nKcQ&iiF zs>}rM6_p7f&&Be=gX5SVZ79Bre-iJ;5;AG4v&o89vP=4 zJEcJJ3@_n(`y(B#Ru8cc32j}YwTbu3zwOC^&KQb`xPS#JEbQ&=e`Mamm!|ZhpzYa@ zEyP0~+4mN`FI}Fi-}4;Tq1%csTaD_|DpGd8WN=W&Lq0Zj-08`CkS$Kc`V~~R6B7Tv z17*$e0dOa{VDtOPtOTqmI=KA6OziQJpJ6&BGfL#joHMXCkJDcx%~YX|267hw0Xk+}Y(t%AO|# z&PIGZ8ZB;A>Y`_xVZ{TzW_~XtelX;77tnZzz~apOW%RX3j;p4}CvubC3Vle80GwY> zJl;lc649fCUqcMlE;?rw!s*jK0fdq&{_o25ZMPKDpC23)E65EW_|>%eh;r;#MGEw&4UMdJ>OTeb2FCA5WmRbRt+;nG%RyoA}QGjnXJ58Vcz@}DwLB9*GhN7|6@B9Q>j5Kgg?;3dnh@Ziz!jcY;%V8%1f}Z7s4TOp4?CY? z;lZX^?KVD=0|^~?Yk;??6(e2k8Rfl7-X+q$N2hK3M2QTFK z>`3@i3k}WbA5lIEsbei|o_D4pw-aD0FbfNg^)@Fm(EiNYq4~h!ap--fih0#34>!&s zN9pOYh3Mj*nwr`VY9nbnq*9G1er9fr*SZ2RcdeQZXJ1K(7NHLbTG~<{|K0=o&-SDb zf#{f4wOcwo)dQQD&^a~2?u*r8zjZ?6Q!D6aI;%|D2xkr!+cpFzyg9@hgBDEIpzYz?h@N#mhh4ejmO z@wr^^KoPu=l<6v%h`of(^4H*y3kgVF%=i6eqV@-C&EU+!Mf_n&+z{d1&X#WTEPP=l z9;FYvpZmKA!MqDVs=4;pY~K?YCl+6BNHpKMC}@PNbAAUF^^3b>GVG2qi_gW4b?;hN z0ApQi+jW0huSJ4g$OyBN~D9tTaYTdr*dzaAeIZcJ0TUdBWh+Otc zCJ3;y64d(S5eJ+sXaBiW?Kzlm|MotFomXb$nkz&@ZfK|~EX4fdRWR|=IAp|Oqce8g zWxDlzceB%rOw=rVdfN5Av61Z)>!%zxn*B4jcP$E<)eosM8NA7{0>5 z>HPKl`1D?U3E}3?)&8u?|Gaud!h^SsDp;QW6)-lke9bN5g!#H8XgTwk22nx)#iSfs zz_p3a-3-$vEJb3!toI)ILze2hLd@)sAr4BuBb{MT1M z6^nCS3owKA*7M5~0?S#m*kL)IrduuBKAl$0S9Mt-ziaj%P6B5wmB}|0(Ybf@{kN)< zjc2<#DxUmh{@m(>8f`wOOB@1ucDEh|LXBP}T}8wlQ&HUnSWJuz!&hK(c>}vMH^!P@ zK}UM1pM2gdThHMwVIH(<^%pyTS(5P5o$(@Xxv3}E z>X2PoeyV@@MT6sE>?a5Dldjp!JM{(H5kXqaCeWO>8=+wJPe zaj~yBe8GKGXUTE0X3q`fWO-AmD_)p`IOtEo#j=rK<^_%VUjyK|X`%N*M{j^Zw=<33 zbD7Z4+E~qx>hgxCjjj%Ob|z}&9QgpSo_XPq->H2_p=6`>uIA#HGXbD^;v%6MA~5-W z-Y)#xNWhB})D98SiVL+ChgM^-B}`YWNQ+s=i=K|yHy_2_r_iTcc^Azd{~O&tpsYGs z$B*BDv&Tnq&|yz^v`MMM+GyB{|Lu_pXgfU5l?bd7bGb+?m1N2h1ke4?b_pYor7u!fkL@jb-ug#$SjLa{Ugx*!xy1mG%q5)$7uct82H=PF(TOaW?&d4JQ zqiWD@mJ5AHJ^e7+%W97wz8BR7n9(wvnea<{>etlN zrwXr~$H+Qwzxy*|l;ni6v&hf0-oifcjXi8ISj{LoC?g3qTn_8BY35JSZovFe8)@5! z$>ZaXA~w#1{kOx-c@prg;de|vvSPxu0wg+KSabNcrd34%qx!3%bFMuu`{t+hrhAhd zCi+QCWJ#$Ye#&W-YHiX+2R5u>ZHVMg@=R${2^WJrWR+j4A^~lid%ch#&>g;tzy3F> z=&O@tI#ebtl6^oQAOt&A=(=9dM@(!(P4fhT>p;J3GJ1u{r@f{8^h~a+yrDarY8*+1 zpQD6-B9t3zz75He_{ctS9c8LZSNvNj=OC9w7}Oz2EN9O9n@10V*5=uS052%Njm?#A zU+3;*;D0pTe^@xMTEtiibvgq<%(b6oM-~s#%XrI6o5~FMx#F|QXPQWa16N@XCnf_a z1Az4@_(eZE4^D0)Q-{PV>hz2-#)9?XX~6j>C99i`W^*GbHk1iwla910eF8yyJ&B1v zK<0FNKx(DqQDQIAlcWb=4JewR#zRd-y_oNwGa5(ahVpcgYebV?8l)jf+n{ZFBguXu zQ@sAB;RN*yV%h&j-zy=Vs%^zEWBG=5^HzQk-wEMkw~N(U@m?&-y0(SHzM!SUvx_#JS!kB@iuhZ@G|Ncgs5Ptuz2lPt(dxeU_uG2qgKydU zIyKN_dS#vx%yjhRv^7;UA45Pf5r*_JWC9UjGO$0_xD8l4?bQn6-o-Z!ZcgMs;`5W_ zIC1;&qWAVO&u1rvGPYTXujZ#3#ufMJ3O}EnuC2_KGSf+bI5!3oAIpE zd|laN&9-b9;_`}MCnel*kR@-vg4@wE7c{>Qswx3wNok}HhM&4R_A5NBoi*)HH?=nE z`&3RYAoxfV^Ei_;lf9%=bt~`(w;=!bsr(=D2tiiI0eeQhgS*qvMaZ>OEfQmD&CkxR zPQdTTTxDFgM+5?&EwSKu@CVtUoaIoa=}ZFoL0f_Mu7VhvLsIcX=pwI8++I84ZQEh6 zLlRs*@ViU69@F3tQadh+L~@CEeYL00YtTngTD7Ib`b8nd{5QG<$amUHEgyz+$J+XG z^W-##P}URb_Gm`67rC04q_nh@_K0l{3kvw0!~F!-RPuTp8LyReivuy8wC$olJJ>rQ znR@5Ze;XMFuDTf&!7`n$JM#l18dozaEsU7oXIc9DNc<-3+ zJq<>xjhh8*J?e+NyJ`n7i+^H@?z~hXB#7A5CKDq-57=o^>mKdV-Y@K^>^MqZb-A}5 z&f!YiUf6BIg8n?=>}4o^J6j}WT5DN%cAOmAcoHO#H@1u{q#x;Q^ma0_Q^~}H9gakZ z)Vf9+@o(GS7^(#}kWhkOEN15yug=@}exttXW;chrK4?d^Z7Dao`ASWPZ+dDPngtOe zI@F5WE%coJXEMq=sid>+CiWSKtA#&A5sF`#|0t?K{d z&|#3F-{HXI z)lZhLSBbfh&Y`J$H61!3-z#c;mWPP)kOg0`zzvJ*VO&+h;lNI-#Nh4KmE+kHzd(sV z)czbUf<=|@Ky_2Z8I1uk9v&LdS5N#}yPjmu+ZqnR?EE7GDb5bwTuK`;KTb7z;n^-f zn*go}i5^ccv?yNdY&?+wyy@LjqZ4Xzj>&qA#NAX@!Yabu)t-gSMLRZjntIp}HOxc( z3gt_azP(V&sok1#e0+Sk8}lIFgG{(zIbads2Z*UJ56jqh&^5pRsN;2+I>fw8EZ|M> z$c_zKF6OW7?~v%69w+2}HWl)Ii5UNUYPv&&+g|HS8NE+a;`06`4SanN64%}#BQ~CL z0IQ;gd{U~3jgN1q@vhaJOdd-edtZJERry9D`;tT(@uzdt-BaY|&iT)G`9ycG z`-!-V*)uUjnqy{&sNabFwt@b(Ci@UNal)xXwd?HNLOugX0hrOiNY(a>;IxjR{Zx1s z5W*M}5a2hYU@wNRj52kILI=S4GM6TQM{P;h!L^IFJcd4T<1BQihc{ckrVXEOeWdFLMAG#Hv{L7k}wzLaGYieQ}qTNYU(n_QD^gV#DW+XM-Ixu)Z8iA@HxK&Eg zwn;}>@jR5uJr|K@kz^z&Zj(`TYc<9DFO<`RQra~xTcY@Kj&p{ZydieB!6+9In`&xI zDO|ZS$GbnXJV}zA%(@y>)!Hy%fCeBDF0bsW8CL><|JeCn)%hL0BcK@~xAtVc5M zhRog$->t2rCe*fRufkhg_W48IoOLuPFy#`ZLcyQpWGw5ySwxV7h39Z76z0B^e9NUf z4&kJe95MU5wd+!0BW8ViJ|>}xUYQYmwgYhUI4-YoFO}x~A{&*(RW$mXklsI@{(S76 zFhnZEQD>sA^%2>t zQoJPSXO)y^8re1d*GN>lGtBd7!lyZ}UvwtHdk3kPE` zPH16g*9t$6ePpn9Tp|-{4~mJ z@%$;`=M&oG1a)f%o=^T1q_A7kS{6w>PR(n;j*upALTarXt-{qK%hZWj^iM=*@vpMU%7f7yc*I*?F_-vJ)J zHnP}eU+=XGRDb=;hHPU|g!B08E`O&2Wb6y)zF*zu0np=fhvCL@$9>%FGt0kwGys>U zA0W`D9Uwtj31bdu2MTlE$;?@anjCQ_ms~RM1_NJHen~EGau5nx{ymxgv2^|GL$8!X z{!>xu!Qj8!bogJ6-AWeg9lW8^Dq&3c`?B|coc^z``QP8#C9T`9Y3b^@9I19J`$zTg zFMq#*6_{$eZ%6Fp`FGm{PJa%Jm*#h9O1%8E%+>aixfma9```T17J@)Z;IGPx!$nKI zToKEEG*pZyP#>uWT^ejQzR7HCIjdBeA*?rpy`{ykJk09PszhvHAAeO78Je>8QA7MpLK)zp3xPe;(#5R*nP zhgEO-tRqJp+#1QT(K&Tr@N9BH{v+Z4`5^q0Rr>-)OB9?3sEwIsGxgfhJtQu%S- zaaPTUR)$(p5Q;@Uo94m>RDASb*8^Z<1Zt7hp%veR&#ZRw8f{q?_jV14y>c!o=3 zA#6a4+)8_n!I6d*+f{w%vb#&G0DXmJtZ9ev95MWVG0OjOqwf+d`66DPhQNj;VkCmY z-@R0a1WBCksrkvUf!mP7a8c$QgI)+eX4rW)#l@3SPp&;|9^f_lhVEL;m3xcM?eAa8E-wvtYlm~r=(+Q?u4Uj8(UPaE4IMfJ$5mCl zux`Vg`UT88WzHlB`1s@RR_Z+r6ULLN={cUi?<=gZTGICLdNv>BVfoLzazzB&$pw5_ zvd;4Gw;g@?hWhA>Doyw)uQW%PO16ONp2GOhqFWG2||iwv2#QV(nRfJR`F~U z##47-{=@@iVJw%$XUc&~+TO$14}OFK7AKIEdpF)~of3IJH+JIT1TA})#{tn z)fC5?MR2hYF6&F8EUO+c7$w9p(>sSMiP)OR*v_!0Y& z&p(ck?9#{Qb5^GH?jXg1^t=wb?u^NQV_2}(Q1U`+fLX(!*k#dd3cr-)3!Ya)qq6T z00-9k&#AgPTqm|9xs8y(j~0uwVB>-J0K7m?vSYFq%8H{q!)A>!MgM^2rY5ZF>gu7j zHPz6ol@nb@kmT09)VB+Y*x|h+o$~}UFE1JFz6$uf%L& zfZ+cMc5pgw5YKLZH6`VH%4v*b=BE8ys`#?PcH#p+2M*@F4W&)(Lp>#n3_*j#$ao$_ z+fbK2Ekma8GhM2!17H1DdwWc;>h(*_VwAi8)%|`fMx`Fn!ki1-xiEM3Dmu~C*QUn8 z#*R)~!ny-e%5nCOEywnTiyK>bwP)nzso zQTDg_Q|FzZpGzp@5~nRtb>Aze(lh?T=Fs6`vYGwhwzQTceZMSt`r$tfML}lBOG*BK zE%`2oTiw=LYUSA)m6W5VZf|~udEc92Qd&Q0maFT;+LF{`rjqCDkKGNJuvHcB#maQ2 z?8}#$d$yJHF`;Bh+w{XcLKKGCK^nXMNI3cXGqDas>6gaG1dLGl$Wq*A0c2(~wPfv!$n_qt=mea?S&_`q5sm3z$o_9#YAlVL`w*I#jlxeQ}_ zpSODKCuPFwzm4DZ7&2dQ6!U~jCnXh=`5o{9Ut8`B;PNaS2imkK_L7y*A!GupHtK@J z*i|>n1mOyLO_hX1DNhTva+mw08*+T=LHj51o@t{lzfY!ot8<0#4kmi&uJO6(4lDQC zCq48hWR3#w<9=PUcs1vfJ%An6iw_Xi`_YmKdirsnqibTL!_-=Pkk(S?Xviq;dgA_E zb3u}4+mLIJxPNofT{@Z8U#-C9rXKr@s&mWKUf+}L9#V6Q?Vx@{V5LBGy&nUysX%Iy zZgYb{7pLVtNwbU48i4Vs%H@y7d?=h5rf3FlKF#q!nixKn4O?Mcb7}HwgaB7 zWS|I}LJN(`emdF~4LEVPkyLN^%8Ob7ne7`j8aA4X?0WsJW+jmCA=#BPAys9wrcVF% zzQ~@-tzBD>#k=At$>`xH8GHt^==cvh0Z>WvV-XrFYTfGohY1w{hdaF2TJ0(Rw5}-R zH0;-OdG!^qM_OG%`_78OLOl0(4J`EL9^YmRI!0$~upzApmLu~{0C#SJanB*r~ zrKhsL@6mr%(|o9Zb*hUJ&X3OEL+R14`K==z4wxo=ZXFD3@NHKPZE#QXU0F^j6^8H^ zQ%bojsd&ZJ@@|id;g;i3&D&#?%1VM#Ghp#=1pF3cXx0xC36Qsazd}N?NEsxuR%qDs ztoBn7+V3l82RfRh0Ri?|M$wAq3hYnXRYN5Kl+GKlt@%rNXQ@Z{q<_(EFmMR zb~4X)zs5p|&&$<~7PDkOc7<)^qmD$anQ-keL<#sjV7$IQ2a9KZ|E~E;Zb5m@W1*6F z3>4}O<8iR*Tr3dcyh$fvJu?jn?IzbSPT=+c=2y?J;`%fcN#YQ`5eqXWy|b6j4U433X9%T>2b^^C_L32M+Ogvl$t21ZsS^)1;vs<*$T`gI zh8e(n$>@;4o)H+OP5I<-Hneu6HUSf%21L=gO$U`K#kdy69(#+gRCRY1fhR&C8*I&{ z=GMg-S(#N$9g?}2p~z%c)}%95oGRUE2b@zbyk@>~S=)qY;oUYTFjxz3f4W25^H!XH z5}(JmV873iHCeyybFMt*)XZ3-ARjZweW`N49ZkfMa`ChOA{m?h_(Zo$`y8E3bsg?w zzY!ZVk?w?U5Z8Phuc{;*AQm9(ZEc9vI-Wu1F8D*r=8fjq8%~uG7HeO9g$5_DJ>|G7 z3ynSseI(xYFDP*r?8!4GzpT1t~6k5hr2%vi?$!#Ex? z&i(r7Q8g3lSjv0i)1mS={rf+W%mdw{sD4nyhFaG;shK33qtZe%5^swVB!=bIc2Ar> zSVb#*x0OI*>M!?@24@*^v9=JpRNQJ(>^IPP>(E`L(8z{XTjIoEu{t*kP$t<)q54)HW#Wez zCASP9iPBLUyCClT4v(4*9)9GfZ8nO_r1o9rP9DTf%;Re4JAhhyZjl9~=za zIJvlh!wvjOgpVIB2nPO`po)z>e|)u%$T81=);PCoGfQcMp7LYO$ z58xBxLw&VtG#3PU-tAfxqoTfA#e=T=d>*g_1O#SVNTh%3vAYFYAe1m1TP@wBz>tPp zM%qORrt$xXtw@i5@a(|i_Iuhd+41OkwsQi55q5roNn;J7Q)UP#WgtHV`0l_~`2`RN zxHml>WEmZ=bLI~P+}K!JPxh|uR;;Xp#XJ`^FRZgUG@8=wLhsXL2v>0I@-#=^8{FU} z{Ev;+cCl_LE~yi>yeYA)P7G^TK#UBkUl+Np&G&M#7)rZ>T{srl(@G6)6wSVh`{v}3 zDy3eUf$+P8bopnVJ-&FWnlw2|nxt_kk$$Z_kmh)$tgXB!)qLpf$O-nj#ZC0`OB(SM zs=VCs$hwx$LXVcdqYGu^BQ`KvA^>z5X+`Pia5o+SPiwnru|jse2icw+EON_%17M_p zsk9UIuI}SJ>M?sWHD)TVXbzD0M(D!r;T8)F?;LL*FZPcQ&6<}@-lpEyUU)3fh_!X-Us-1gF(zj`ft~A+Z$Rh(*e(|8m~nA&_ct7gV^GnW?DHO4;PHxZJq^> zceOn<_SU~#p6``WR;@QwcK{>5j#g129q^Y4J96`lUH$@0V#J)j}5<+Hgk(!1`LlC<3qLWI5?!UhTKvtCuaMz zjs)v}K{Y5lP$H;jR-Yz&mx?1~yg%C@L^!=D=jWf+4s}2N*9KN#PJC}1X>MkOFo`Jr zRfk@&W6$V^lzb&|D0xN25K;68M{0FG-ZXXrhG=3c(_EC zb0R6!GH0|{qjSDk7*iVx42BWy)>%W<-ow1povQg3hO5NV#H?(0aHwT%uYA;JtBD}D8>0)H6k=A2$b(9#w(_s5Ep@wf=TKy7GR?n%erqw z&6SlhvTuP=J|1SDAk;rStw1%`sy>5;2;UDYL5ME9nb|X2F_)@AY~FUgxUvE$As2_! z825|QuD$g7fN-EUPQ1!=rO*hWxaAqDUfXNcj7>J6cdwy z>Sm*UrzZh_9_wsXKZWynQ<_IYZlm|iUOpJN&WxrXt^m#~1+btW7C#p3(U^3YD5vi^(| zpp(OYZ~;L4$;ndqnaQ4BEM$7oM$eiVij8;qLt##8Y9boTiS#{2Yo&uXTF%I~06OQD zCB27@9m7wunDD0Q+)(XT-oKvdYQ?_cUdQn$_pfz$FwxsP!g-wRjqMCZ?hYND=~u1! zkwk04eoR4?iX%eow^A?OTNu2_ILc=hsh_Y}9UGHTNIO6qE45VqkgspOTpSmrz^gYNs{hm*1M#CHo? zCE#lq3CVL7ow?j>HG=;reb_`@RA$+__DYzFd3>Slxn++ZN9OC{U%kvG*T*(-g zX2Rc9Ocf)ft|)(o*l7n;E0s||Zj#sQZ?XnB-6xrY4M$URlkwrLxR0JgDJGxT!y>|WNcplm}Iu{Fgog|^SlO6_a<;1_ASY)b}z-h zv$~pXEj%}Y&*-i0MA%-Xf1MbY;fqC1kDMlGfkxKoo^(Vs#NSW1Lqy&L{ZSUlTE%OIrTAi28P4`ysmgcajZTok<84D-wPZz3T zzT2#4jtk*GF)spYM$j~aL22ko0U#Z$fmtOJjoX)}=$%ZEGU)dJyb|9QQSoP}rK_um z+??fhtOaTNhjSqeyO0M0!;e=NK}kOPm;Fyq$5$AR*XrK!zbfCel!fFrAB3G5Vq35R zZ^!X_A%+@-?r9Jyp5`rORBHHDRk5hfHTVDo=gCfZ;&^*_hfn3SlQ$dz_<_@i5W{HN zOM+^A{ohj`RATsUHzM9dE)hGu`F)vxc$j!3bSEUlSUzSgbz10#aNML@B*u42{`}c| zr98-C|DxkMAuudY&%7rvX!^rT=jDqj#^gLF2VEj3Ikp+z3SD&VQ8*4?v&}{@Rl-2S zrwrydBq*CLL0cfbt=Gj~u%nQn$`?y=Sp)iR&%BKU{f z@!y~@dF|nXeK4X|wLdSEb!B)x2nF2h--KA!&m^>qP(|mv3B?N>-{1%dE(LK{ zEupKdW0*yoos1km9EnwY>|~wAPBwhO>aL!!lc+sO9x9A!H{+M{JxP|ydxEnlWQ+(8 zX2(f?xY)qIgxj-Fi8jlGVNohj%FDG$*aIrRNvrI!1vs!kj&i%j5vcaWaMT)hVcFp$ zD}&F3aPia&EYXa(Mx^M~*QBAAM0?Tq1Nzbad)vX`Ki;WUy36UXY6!CYa7Ht6+N@(8Lc zi*eq~+86ovF=cjuS|#=eN&*B=b?@47jOmXT|-<`d+N%;N*Xumu|hH z{#F@e8=qTkwYM@Qv#5XtU_enTj*N^*@UGEIN}2anjLmIrSu0F_5__5+d|6Vs7uWxc z&>rv-9uN_Ue4(mB`*Oh5gA^(hg+pmWEtugbqPR1MM8QxquPxv&otAIp=f*>MM-7`1 z!UA{!j^srZth(^#C0+}&dD8f1a%-wjTpFpxiL}9Myo#8rN;RtXhLjXxh#_;d6D0=0 z@53*v^b()&5hUw^6XSg+dQbMV1Zq^H7%421J~wd`{{MNmul3WH%+wH%Pu0tqp7oqQoetKo?L^e6%*3tvE^z zztDyX;^2i>(PJ6+1w($!sbBLpmh&Qa;vRuC&=_tWM<}4e6txpj4dmK}v zD$FU;mb53?Jks)i+P4AjrV7N0a4bRl65D#5$AD2-a5tLYt#3o zL5*_k#yRvnD_&wTd{+Y=V|xkBYBd}oCbdyQ1HlaYLEMl4EQDF2BcbEfg#8I;3&i@A zNQ_~Q+jIIWlL7*tv1=sr_*wa{1rgnJa;JHk{`8U;3WHt#cOLZPTLz$^p=jN<=5qfV zlTIc^YUH-gaL?n}9mJIJ0kVPFhmCfZtWR{NFs*giW}OnC1i2(4xe&3jF6uCYI5t)Q zX?bF~#$d7293Xwz2(H`pe0GdqBm+bPgjYvwQEoD%@Pb)}cMW(rIT>63JPh!`IOTzb zP=>oFeQ@+xTFm0a@xumr%b!r~>tJAD)YV8^n(H2hqRUJGi0y;g@u6&NC&bzjBLrtr zbLK#z=uz+$sY(gPaMRC9LQ=%x2>!zvw-%PoBz7mY$q;8}C<%`Pi4I;p^ph}AsZmq9km==ng(7XqM1_`)>q$LC_Wm*@VgtK)kIiBR$U;yRs94>c2Y znVI5HC)%aak%@oXwONzYErVYdOceO;tAx)WZC-ce(97hQmD-V>qV<|EA5|^Pg8%!) zLr*mH#^SknOF4XY)xXx9Ss{NNs5z9D0`3|588Rv9zJJ^QD2jmnM;pQU?n5$Z3Ny8lc3=E;+86;889LLw25*hyrnJeoA$E9d3{Lr% zjKTUsKN0ko=K-?sirrU}C*KHG0=gzAxDsPt9|6_=+z3Xi_Mg844NPxl@|EsU4EX?WMn;nEru= zs7`sK!y|7zajhMihJ+PL?sL@wxF09VBK5o#e;=N-tMq@ZN#tH#s)ZTfft) zJ1WwZPY|O2ErX069w|4NAnbRral7x+MBP<>oHBu^{Rl+mj8>gj8_ylTs0IVRUpk)61ywOxh57xKHN{<-nxpuJ&J!9 zOA0eYKF&WLm>#^YJEer1J37SH5D0lN`G;+2t2aMa2dM$~I$2;?1_pY^=pDory84T8 zWtp_|?r@apx?tLB#25h>8dFFwmZp3wN?_J3;Wsbk82cci?JonTm?gOc$kt&Ggv^vc zrJgA#hBd{wm!cS<-mtp4#qRvr7EX{qx^ED;!(>rOvjXv;ys*3Dsj>tfbIHTMN_lH- zi8eOhIkqWFzSS6X5E1eIEdJd=%^LR>+VEMff?v-AQ7N;P$meiN44^#TSeQPqi~6Yn zX^uOj8%<8M>P6dE%qaG3T3!K*t7bFC1C2Fa!#^OPfppN0GHrB}*!(lrm^M`|5kbON z#1N@(Dqg__Op0{;zJHB%W0*H^LiIM?%&@oxwoQz@c>>Q~-(+bq7GfN(_axQ_6@ml)4c- z0Kp~eeGYN|g<~U<7SmR@@7K#66&y<2q=PkD-xlJ5bxCRQj+gwP1Lg&~wsZmM*a6M~-*QQJ|6lhQ`dd--ssC3x`@LjYg)D>Hi;6}3JgLZ*ok z8$V$1`@Ow9B{YkjeXMq$5M_788~x;BN`DJ{bd!u$)aIYSaS^pM zle{r7&tYMXuJ-Dgzew}|!LD$y#uGRxY9GWSOGz!*Pmc-QQy84Wi}Fpy&+!o_Wjk@M zF3mXnRmMfSPkM&6S;=8DQL?@U);JL=G2RNLr1G$G2s7!^%HS7 zw&WhK(^7Mziv_n|kff2C)F%mISnR?_v-gQQb0UCWJD*Z4sP__VQ+lYAf#V`R!J2!o zK@IkX<5nj*b<~?}VH16;q)-v~p?YoJ=|k|BO!q5$M)R@_(vY+}yFKwrP=T@rl0tM( z#`TZ^qX-R|NMj$Ii&>_V_IAfSNyV*T6uduqi5A50zg-QaCXfwt83nv*ps<;sM#vey z-pRrtw)a1N%Jlgm7zK?XG(iS+{sEV=I(iCQbSW|5{(Gp^mjY~Y6P2SUUY{QBT$y)9eB5s7_`WJOYB4dNwGu=o{~S zQG8Q4B~|*Rt{*@Qpzx2mJYmH|DtZ>&0T#pJui93k-$hrDtcXVXnTPXkiEq`~;wXs@ zJiadXKO#9Glqu%UaXYZj0f=CYK{>&8Fqi=!H&2*$#*Wz>%s-DkXS8KfB`~@K0%EQE z4ldsxN2q;n^`cS)Q|rNCx`4OCydr*M**}c1MpXsJmi4-jgGZa1aZo*WIpRIG~x zDSfQQjGr1l@`s_#dmnv&A7*(S3F{mLkK>zR4*yutu&r!So52YSbzQ*B{f1*1V@)*J z|8d8nv!6eLMe;M%<9)pVs`5IRT$AZMNWzf5%2I{Q!z!Q&Vz??tmp&+*2}^1ILfi4% zq_e#I?O+Bb?(qWAep~BiEerh(!^R>R*#OJC>BXes%;=*FgN^a$eocwa-Q(~hx`g8v z)g|pg$!98ugppe+{^{SrUI)E@)P}$^l}*^g$O)^S@&!4wni*6Av-+;)kN&_rt)|#t zM@%&@k457YwaRHzDQ1T%o1u^DV7Y(aU2vy*#1<3RPZVC6Ylc-YW4Mf=uS-PEj5%1b@5n$+S&Ub ziX<%2bO{3O&H8vMZoj)lt-z16T+--QZT_#4Z5H^6e4?;u5e9SHf>9W2&0)}WSHxO` z1>_}2k79vQJ23(sTBy^f5LNu{5h#?3Cy_tRQ9oQ%0eDHYlwGez{8j{)&WnR%X1)OO zl6MsCk7Oy3Wl*uQ!!9=>1tF7gaUnn6e;P)By#A!911IJq#Uqv%l;qR{t3q$=NT!H) ziydfNp0adrbBZ~$tO>~Hjq%sO{=?)Wj)4Dr9_6W!;Y+25dBWQVRix0z6ng%0u9Tzd z|F5vKj%xGS_CBRhtPnJ~dkIc)ch?px?v&zCplEOi76|TMiaQjiNRUEt3KWVIcX!^L zd*9z#$JV*|>seXP%?)6L1F|Ai^4uA*=M5HFvKe9^u*!S~ z>5D)_E;$W~9b0>sUHLwSs_)vbZ*ADxK)nXuiGVTLJ99tfl^$fa1x{Ipz&lypt8>xl zEt=0xOD$AbO#_2eud*)R>SiS@I>hs-PguyY7p-OYQ`^h<$&9_=E*1x~Gt<<}>yWv@ znu+ed<5QI@S5#l^|0I8qq@thXJXRnp(pc&45lP^FAJZ1DP_SYS-bhX5*tuzVjp

  • +*3h2G=yudqrfL*DvB4 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 literal 0 HcmV?d00001 diff --git a/infra/website/public/images/blog/operation.png b/infra/website/public/images/blog/operation.png new file mode 100644 index 0000000000000000000000000000000000000000..7eacc84b71508f97de8c145794ba399b12b8a9c7 GIT binary patch literal 502964 zcma&OcQ~9+_dlK@K@!1giEa_yMi70qRaT9<(cckm38Dqd5)r-k-j=nx=$%BOw_w>Q z(fcaVJKsFdr(VC`A0KB~oHKKunfp5PI&)@2UTG+iJfMAW>((t2s4_(R)-A&5 zTet2u5#9e=5_|PT=WlY`MO#VkR@or^`rikA%hymVb@f}^fAd7QZU@0{5&Wyk-$?s6 z{w0kKyhZpo1^kVW>^uKeOBkJf_rLOYoBq{MR!1HR{hR8%b+)v0aItZ8HSMeY^_LY6 zuKU{cwYr-4TSt5THx`cOmi!*}@Bc+|OVUI9Z`R(@^$oL!{W}L2aStirzgvj^&Ht+y z1Z4hq6IVMa;A{0)%<_)Tmdr2tpYuNlf*&w5GfO&KScz*x6#tX_?~@eJ#?|$`I0)qK z?#}Nn$nWTE4H6I&69YYe0ebO*?{5n}7f%P*Hy(TrF0B8-bI5o4H{bui0h09ehZC z(T3vpSd`FG#y@(NmWqK5z*Ms`L}r1I^-54r5OMOyn}x5MnKFkQnqP0JeI>YI`1J8! zCC#UsvHv>?8L}@jM{>_^Q`|5R-J$L_C3^PHof`((uXiRMe!J=5)tHH}1M@+wueefa zuimRSqF2d8B?y^f*4!1F7TY_T)ahKxN_+tj{%X0ZBKka>Y#~W`A-Pe6WpLC5+zcENg-dJ&YFLJ!E61c8}_1j z_xC9B^i6Vx!~V1*=!tK5KK)4p={f2~(~_<^M?&DtHJMrZTtcj{?#nxLtVHnwH^41; zkoP3Bboqh@>uflaarN>PJ3-B{(=y>Xakf9n+a+$`#Wlde{$jbea%^~FKRB^eWBlx5 zziQ88Z(S`9SeQH%YItBN32Y5-%dqFzRyG7$?`!!avKOA}ZY@Ww8uQuC$5iP>WJ-FW z+7&1cmM;7SB6<49TuPgJSK<2cihovzv?x~fv+xqf$eUS=gU^-tWX)P={Q?pjScZ6z&RG(%BY<40R zbk0AoES&44Ic{*kSJaKGLM@BOzF@>!N7gH9ch=-=>xpK0XBwdZNg8HZ?*wp#m6%Ml zq`8nZ&8)|$e}al0sAhUcJ$}xU!AUyHIdiIKr(^7-8>X8h^QeQRQ(z$m-?NxOS=9jY zl<7DvR4FX>{;=2ia8R$+`0Z*E3bP0^K%R5500>YDA`QiSTg zu3Q;BRq{bpM)o+*`7e8R?c4TS?*FDq5-Zm?6THb6<(EX^anCOt%j-tfUhJJw+WfMS z3{CDDkS;MB$3n+}a!~?0Y8Mse8yhH3M+cpO>7_&rj>3Bv$06Uf)Q7*1YDP372cbgL zCf!48Qa?}!Z=Q46^@dmKS{R4&^KaTHAek2$#UXQ%U1@SaR<16oMP4QAsPf^$9>?lr zBXq`YO!+b`ckHO8(U>itaB2h=?66K-ntwFfggQ-2AUo5>fX7kcY6Kf zLW>jxHm?;O#=Dv|Ft|vk?t3pcwXRkyn<|2IeYZ*6>oZrMfr}4?=*iqloSw6V966gT zTZdZrIdybM=6hr4bu!O;T9u4;)5{XG;_it?IqXq$V0I#}W;DzO)m(N4r*~mDSWmYp zPE3iKKgobG8P)_e+N$N+wGq_}?dmv9F%WT8jIMk;%TKam5STk8Sc?H6Ka&|r${<3n zt{~gHQd{+!S3+yX+sVs%X94w{xU0uyg9u(U?wUq~L%48{(E^{x=WT9cuz2*hxn^rL zTkc*}>57v&m|T*J`jOBx;lyi8zbvJchGR-MNqUuMuz3lV@-QnEpv*wKmp7VI+xzET z)3{>}FSo{n6S`&LE(*Nm<^k0`<9>7Mx(7L&M5{hVSft?y%va zVe4Rxtn~g9;9f_dFZO$wHfD-@WAsqaeW4fMn(%1NaX1%O+Pgx8JY z2Eih`$VwvxdfV1Cdox$zV(A~n4jp%ekz{Te(rGSX>+KubskYAk{DNL)b?FcFsm+?VjvJ`)m z_k=HyV(68-&r6(|Q9}D9OV=VNMNJO=gyja^+JV*Adm9fIxgK_6 zRMy&@C?#q1fL~WXVPo)l9p3S_AEsk{KD~0xKkN6l)fmXvhgpt|%V>4`JBS>5@p)P( zgpf9xC%_D`lvG8U{hF@mccnIK_n0u9Zl(=$%1H6OTYIPbGjEEVt%;?|>&tJZWbgnF zc0XfI{;`ObUKE*=n5Ql@!&&Xg7YF;7QByDtEw> zpffJ5hA+*rD@lo1Z|NFCzI#kMk%T;jOi@dQ1$={Y-7gpn?&!RTGTT~0IRz9$9!BXE z^1HOnp{mvh$J7S;mBT;itS-G8%tXYi7~#6ibx1p_c6G5&P5Px!=!N^soXO|ZFxGqS zyYG!Tcaknwfw(8LKZH#_8A-N#fqS<83=Y`Xd56e_CrvH{i+jBH=JTb4iEtZ9c3e(k zT@6Q?`}z1WxfCJhyV+c9&KP8RkyA_6NQ)`USmk%U(ixujb{N7XcbDD5mYm$AHvA8S|JhNOrSu!U zm%+7&#z5VCf-GBq5n*G#0B%&1SejK5Z1ju%L#~Dv_hj*w)=a;r?3H`=NR5}3*|Ta%9~F=DJn zI$O!#NYFC}uosHQR;!$+ZA9qCg~ttOKl>*{pLi5&hcQ%FR~yP_jLC>~&6#s8n|DXFFezrEkG^_w$_dOJTy##LR!6cM zj?qAWlOX~2V+fOTKrtg*y&_gxTz~fQLhJqLz711;!D!bKjFkz{!%OMK%VU9yh7F)I zRSNWXcPBSIS9pB#LVIJ}+La-IZ>$9GzY*^Jg{^XqN%2e>TRL0)xzn~u9mG(zMDpap)Es=5D7wqu!OeC1+D_GF5ZyW zWEqk$83;m*CfO)yvkKz5Md%N7G>7zb2}@!!^mdDc>oJ9TZ5IOExjM?eRIGCGPq@|}1t+b3x3KyENTpLx8>SuIz2KK;+g9B2R`1>Y32xayb2}dU{j0c$ zXj>i{*y!*sR9yCXE#)bffn=Lxl7146-Zqz-$bQ zYCos6?i94<5IhI$E-Z%uPzdq7Wo9>tt?F|NKDWrnI&LalXpo88Xl!yk$!@8l=uSbF zQj=Gqyh*r?E%%re``STjW)Zppu25jRKi9Z4d$p2pv0t&o21vBA7^4c*!T!}#j~b_IhJ}SyFo9w#z&zyQ$auqZ!aZatDzgmJi8W8v ze|n-Jg2DO-ZrSY29DURJl8Df(qA62Gr~pRIddyxk&@*EETkaC~Yox~f$V?<-uR2N} zv1SVM)f{O66@n}u>Ee5U%ecfo8h3xy__< z$DQ2;Gm0W`HG7+;&E{evO*R*Fzv=uOut8|JQ=070HC9*OoYzK9?AyrQ&{Wr!6scE6 zBklSMW4<}WB#p1lf5~shXV&H;Ra#z-so~J{ziVgUZ}}tTpO0fSOgDnJe`pCzfq&Ow zbF_{y@$8sTRek)2=oouqkOEi(D)f@g#i%QEMVCz=rif@Np}`Z{M^7#xRhLbKH9$Kh z%EY_I`6Q|tCFZ5UJQeDSLP}b(;TIEma*L9XY_|1H$-{nhZsbvko{G7F6tOVzct=2W zbz`c=V^T`8(gN#{$%c+XY$C+!+9DP*r25Ywr*jnt6yf0vjG0s=QHUDkqE!eC;3 zh`F2{H^n(# zyAFj+Q{}OB)Y@x`iDdU0u5yF+1Uz)HRk9qrE&}?}E%aY?{MJ{hG#>s5NG*nyVM;qS zY`0WgRrSkE8-WG}QBJNx`RrSDYIGb$7!H9ca@|;~;y!WM3x~sm9c?U&-@1tTliKeO zVip0{u`^Y)s~tQrZJ6|fwajYPMymA*9fGr~anp_B?IO0*y@0T9XAtRIHpTDs^j#I( z6O<23YD9i*7Z?i;lqfS6m(a$(AD>nZ9O4_3&pZ;64#wVk)X+?}Ht7;2_PN^Pol@+@ z)!l)hBfd_#Dh>0}KxM0e#NB2C=G6u*w#sp*h;H-J32d^C68ord?StW80=}`sdWTL< z3g_$~44YPSTW+w$cww0)oDURw*gF1C&B*Yv=j9V~v6{nU8PI(|gPwvgsEm`Zw*K+q zcY>#u1G{LU;*zwTJ|?>vC^Eb%EFBj#qOF z6|jb<=L6?yOH%_HJ65Wjm8MQpW};pkn@^WE1%F>+7wZkl+TP;iHi*F>75ZLUVMa@{ z+BnD&EGShkK(Vs8wpQPEpv*HB1T*)dU&d z|3<@>OBxwDlDK50M2`S`J%QcPBm^810C#{q50u$DJ$Cw;bW~KuTMRX?iz~290#bDWdm{5K;fP!1T&WGHU2ZnRVy}X3b7GG}OtFo{ zk*a=4`3mTvH89CGBLF;iOoFCSep%t8fd>)!w zd;5U(19v598BycepQ*qFBl2IVJiz?7j!t~Ryixl$Pde6qR^=5vd*E$kXY1|=`Zj-7 zgAd)7j;tB-!9jpHA}25=RLcZ>!^KJF5hBAV9gzBVXCem$ht}~LJ$uL-k}uR%s$o`$ zN|-dzs>#DV7USX)Ej?&GZ)|0)Xg;~x(v_vfERaj(~&tROJBoCMhV6f@k7xIWPssd^T0mLJMzsO6vC7J>87wZ{b;Qj8Ba%tjPz$ z%8dti^C!FN(VVM)mkqnWyAI6$NQ4~{(;Qk`#>4Gl7=zQH<%p#w)-1An6IDGU7@K|9 zWNKz2=@yQjb9wL8dd)d4$5}?V0m?0a74>dH&{OekW}Kvw%@O;OrtZ;uq$*drwLJgM z=2re?mz_#q$p?)e`b0@oyP?tBP}5^}sblPrFggc}DAL7th5k%P{;gvMD>GK%0W37B zlumDPh8i%~+sx1zJ~SDSSG{u`0{lvt@%Az~J2;if%$viGcc#PF_2+JV+Q{&gL*xEH zT`JD@Y)tw}`yDNLz+X%{o2Oy4s82$n8ClfL5!(&;AuJ`xm)J+cqarr2hx7T7TCC_+ zz$CkAYe2suE_YQqB&<*%EUn2PKOh`)bWoCeM`=N+cjIcsL3uuO{3X67pXtt*)ejc~ zoQ)Z6gd=Hn!c2EB`3?`=zcbEMn0YwlJh|O2aZR#j;rb=>+`KlI>E%V2?}hc*s_zxX zRd2*ci~QvJ)T~X_C=E{@BZ>IRaWh?=`Y&BAFB_PgYbs=TFGq>Zt__|3BQ{>eY&waa zPKCEO9=cr^4slF0iH!ifGsdr1v3QET{%6({ty(6`rosM%{b`Jg-k3ym{KI>%A3z>u zM7|0}JWS$X5nqb~8vI!+iyHDvF}w?v?H2)lLyn!B{D*$b8dJ*&A){F7;{JI8HEz%4@r7q;czn( z1s#eEV-9U2T$pphS^5ZKXno?T2~4*LsNMt!azh7h^Gv$!{2>56#qkKnc81Q`E3Z7p zmWMj@b0gBMATKr`kEOj2Ad;94t#cusQqd`CCTQ>nN~hma+7>)sviJ_~U0{3Kr3*eb z8FFp=<6AIeRZV9ayuPQJ9d?~M986{_s#u{$hfHpHB?-ib( ztL!jHKl*9S`)E94+*Wl{ldT=99{Dj!9v|59m8&-gwGOe2IljxMv0{fGPDL#z@S8j$ z+bn6KC>=f;_VW?SZe*+I>hhppw6m4pOD6K^l+P0puTnt4OapBnvED*Yy>4S36}DQW`x!A{xHdE@r{X#H71NLCQ-PLvzzRC zZ5hcvKN(xv4F#$|g(D!3WKACV3AK}-LL*|Gh$L)5)9tcgIy|nP zEu-ygf4vZm42?;xa1`*G1A=q;L-e@wvXn(@WFO3h9%*UVhgTX}d~J;U$xzUeW17bf zjtvKE(dB(s{Cpfw?Nvb8t#{O`$3Sbiv6i`6@u+bU6D5SMM54Pj03!+c8{t0CrBL~| zKKfkQNpI6L324AEExjkaDi;6dG6c|mEcH}H-$Z1Jf9gQbI$C|1#^ElI{ zfULsNGh~E$mD`8H&&=J7XsIR1qwX%Dds#W)e&SSyrMq@*w*4<9-P$;;tTlS}68I?((KY{N?G?qY2{GbCjw5*6Vtf`FT%YPseco|iL`_1pQb))JHvxRg(6 zi(Tq`=Vch&=M@~?&~IL?ySGJxTwIB$Mqvju6JDNQwRpkbW)v9Z6+PYvrryopVsi~MOrV}*qh@*C7fqPeh7DDOF37r zwM`*V<9p^=`HtkQ!pTM)6I(SqCS+~9s737ZPflS=SrV0$PswHMagDo2U9s|^POj8t z#Mx5?6RxU>v{V1%*|4?-w}|U+{)Fo?i}Q|bQ36r04&;qa`M%nb|5cXx{1)*`Pw$5* zzkzDd8!4EVqA1685Ca-ea}6GQA(R%7T+B$NB{XkBhP>3v$Y{NNSyjbEs<`B5X?1H& zZg<~ev{Nq+uWVtro^XIn|A;1^U6z6NZ5JwopzuXTa#ZCIJiB|qPx}t+thg{ImT${# zS|Tyoeh|8{-tcrwP?ezavzd~1T=jq;AlY8w%i~&h(FBb~4c)R%h|mj5@^1BzpMkx) zWci_#rNx;~p_7RtT2iC(@ETPx%lC{xY!HY(k z>MpRa*c|&R<4zttAv-C#+-ApaX)_e!Znob-$gxE#DTs+5C|Xs9X9uZhndn#uz4f1; z|E~1TJA+%K9F4Y18mXMLfx41X-V0x|8ebG0LING!nlFzATo*ed$ZCDh4n_|ShVPPS z#Tp}*x*pMnn|j;6D|tGz_`=-y?eP2EZ@Y`Pf!Ku5mR#^x{Kk+2T5lJxx>8%`emF5o z%KCcNkTpDq@2@F1bGp{;2I(f3UlwM{zhIV`>Bpo$tJrkEAC*)%; zwRC!whjgg%9?80yM%?(f0gf+-7!O?t{270%jPv?^0H+z6b(^Qxl{2UK=cES-m7aLK zuI_uwZfp)py(z6lx2c{srohCrw#zqWGvR_&oCX?Bn+WVPkGxWaR1WbHI+OWL#|3Zl zAgbjgCe2=xV73RX#FH~LM9NiE#%EySW>9E?nPIw4yo-pv<8~ee@i#x%Yb1O#$2M#Q@;NtOl{Fasw zFGZR$X`s%-7|9Zz2v_{8VU(D#d$0`gSZR$C{DUVHnFbZy`TYPc%8?_*0r!RtS4< zs9b0i4pKpn_d_ z61>(5>`JRrX(>JUUBo*8{VKv{N(aNkW!sZ4$F zJd0huk$XYuj&Tm!=a@b|Jq?DxyH=4^(3+LCy+Xh~feG)=u$d-~?&CtZU(4OwPV2zNMdM zQwB_6zXx4a<2DCc*fr{R0gCv_cD6UU^(r9f^yxkJEeW0pTkr|XuV?Ws@a15ZH_(4ylG>0 zcwRQoblYxrHgrV0xKIc^WTnIP13f1Z8vQK6>3B)TS-=0V*}R=yr~}&Hge@PUPYcs! zClMU}9vb`@DiN)@W!q*=440xQY!NQ2J!`9I&6oNlBA5PhHE|?h`JuUIy!fA2Q+WbA z%CDK|H_>rO_7N-JcbBXLqMbQ#*^LjnH0?fS(9$T{%^QD5Mz-1pD@=}?Td_93e# z#QO{bJc}&sA|o~7dHhT|_r%eRrsDsUllRcCx=4BP601(y`-Q^Nm=xCN2kjNuS!XBc zyf~qeKX9YAI(VghPv&pl1*dY9B0@Z z>8Tt)j6K^R>^!wR5g5&52r60Exzta~^%q!6S@U19fmL41*fmXGr;xiauY0nj-B8Ek z0m+YMy?d(sUF+NEM#6)`?S=HdeLpdv<32-~fCFq{LcT zTy5cJaz;)nLGR>;>vTe^?E_^LN7soA3ibeX&eX1B!BjD{0Pw#e+&b~F`Ze}&qOC1`9YtL+qIatW-%9~H?QvnjZVJa!64x{N(` zAsF=oVn~IO>=h=*Ycw78_F9Xrrw9S9lbE{kWG%|_N`E_tNcL_oK-s0AMKQrn$Y-wh zbnN6=fZvaGS@CCwHN9AN$B>b2_!UBBxxYp-$kHrS6KPR&Z)&gdfgm9Z+O4#x`e*l| zb!75GlL#Xsg9@A|m1C(JssZPjcKEC_*e!ds{Ae3GiFZ=xtu8y?SRK{}5&VhQcB~o_ zz=tBU&qLoaac9&4BJo|fCm$Lu6BaoZRJb zPIR&&nmeLcPPAmP9pZ1SdT|pm%Le%3%kg2q&TphNnGDk2nJtJ~eqWIr8RGVdbyEfR zC)6^0rOQ_8mA7=#*(liyYyp7-Y!wE>UV2<1>`(1Nv*T?avEXowP1^9i4-h?WIh_~I zriE#a#%|7 zzXU`Ho5h6dh~+u$O8Nc?H(gfH7(0@ICs*Ca-Xm5TdGKB1_M~{QYr;QKXH@Wr_lX2c z%#8`kb2etHmglDq)p=p@C`>4Ar;)h&F32o0c3c#+YVK`9^Yr8PszAKkJwmE9`l*6=ALHkd?E&}k zNr|~`10j8(+y7T4;lIAU#i3H=dP`y`98yoUfrSKZAxr7~4^sH_k! zjT$a4kuFsjF&y=kErIjtAAbMrhbknLA9y-qFtq9;c(fJ|o)-j1JuKg+ZZ=)Log{pd z*}u(xh;$=b6H#zhu??^Z(=20YCo>C;CE>!j9C57BhZF~o-P`)+g$7a?Kqi!&^W+NoN zpGeBW*38zZu$pd?hdM%eV|8<7O#~$Mw2U7oPsy!R$RiKb;Wk_0H9hqiep~aM{BR9G zJ}xi%nREP}0&@^#JeLSw))l8kMenkc3(8H@Q&XaRTJ)Jw#`lGG*&!8qe;8}nWIt(6 ziY4zzY;7+4p|ox2-m(#OlDAG)uRy_3;}WOWD{Hah)%hm?UBR;WCCzchJo}@p8Kb1v z`WDXi+~WbXI%1Q9Bi^jEY13 zdun9f*qXBG-ER-SzW*7K>_U}OC)soO+DR*at)lb!nl{m!D9IHarVXZ4=7^ z9e1w{VqZpurz;u0lE>}-0@RB>Z^UMWZZb=LJ2G<#_nfJXyKB5HmIIVo?SzKHb$}xE^ZLM#Sf6&MFPh~R zd&)HdYNIXDLCa&j*C^x+<$Od0?c%HZ43+`fW8dKH zqZH9h2(i`sJrSlrwcKU%^{o$DbcI?fKQOp5@lsNodp$0f0__Nno`OBFVrx6oUOpzG zkW{?npYmK0v_-CL?DIoFrZ3`GrP2srMY3D1>JINx)d1}OB+~UQ&Pn+WNxz#bZWS!= zw#--+KUr$z$0M4bB{MH8?Nj@L;`iU&$iWlD@_atsRC{mCA!sPHPG{K+${a-YkTvnG zKp~5gvo=dip+d(Qr!Xz~S9vs;kz2f~xaED_uSJne9s)W|+wy-hNm*b-^_;nNMcUVj zsf&KCYi+>}`J}g>g)NC@L>E+ND%eMk4xCesuKI}o`n}|^$w9A$eIUQ$1xAgDT5_&d zNSl0Es8|q^R)ZDtFr7Z_EY7va)1U9D*-KE(Lh_qscw-c?Fw*v%?yN?I~h4zPIZ)$-$6zlrqc`+JUPzg(Q38HO|J5mYFq7|uhf>x z?F-)8t?H2a{Uj-4Q;_|TJ7vjn^>IT%&yCI&r9JQb`eq%Dbw>fNHp6vt+y8pIP_o5< z5_#OiY!4U?<9Kj2gHSvlx-4cg1d)K-3YtEk+x98+{;9EtP~@fjyK$takg);aUoCYcmP zf&kK#;d8|++f4dqk@_fC%MytvUKpCU|gM& zlw{SHecmY5l`3yxk$$Qb)SBur8BED-L(*l=YTHcAx8ZRnQ=M#~w;J~Abg?5VBSoD? zU3^;x%*dcv`eyEMLCmkzi( zR`+$#ukwDli=jZd4+_*TLocJr6UD1R{J0l9COXn)*k^|sQkCh_$OLicpShs1D;gq$QoV@WG8fhK)+fb9n`xa-@Efi% z3sdU?l157h1(_|$337u;Q1lp%nFnhP(^@+j%5a3$pR;%r*_j z!jQci!LTc80t?$gr;J%N$D5A!4rG#H=TN1v(~(0!8~rTekZ8$6ae<#Z6!bPHac5o1 z0ytUheLJX+LVMS^N`VFXyTE2|tAvpkA7PuzaKFnRIXskIgxior8yAx-h0du~< zTC7*G5BV@jFALtlkJPV??oO=uY&q`R+`1XTsL!$1f|oqLD2|-d_`V~xUYqsG_P3~Dm6{$WG@PETSE-^8JHA1zY1dB(o;Y0p!wqhQmu=67rxyjlEx@v|J# zU6-_GNUc++LYNet8y6!dKC@Z8_2oob4?xl|G4-8DS%y1nujcq)5AMD}JrRt<5EEv+i+UJz26{XuZLLwur0W zE=7CnH<_iZXMR7;hY&@$3Bx13Z!OvcdlS8#CX4SbwgSXA3FAVoz0Qv>E?sH=Kw}+e z?BdzVcQCagJ3(3ARCoGE@*qbgEf0i~ZgOyWVn;4&|J*E>3W5`?45J+HINS%D=Kk@5nOJFL|60x{}hWz8M&P)%GZA_=M`ta_p3+^=Y8tE(VnM<@p z^U~KeufkbZQ_-OHkLS(yG5_A{koi?GKAu$}gV*D}^fsEj{?(kbdn~sZac|Eh;E#v= zq84FKi&Sr$)YGSZA2W@H*PODNiEpc(i{z|W-^?bn6DqTYC4%sy1+>MOSP9Rij!ynE z7esQhIX%jb?k0EdKjbbqoJkRBFA?U1ytpG)BI?ges5Y=1odsX!@S3-bBh|c-iu-G% zlzx221NTNj0?>z9c+lp{RDcND^xz#5&7p0R_A4oR3PBqVR6c?CC&)45*rLVcs7Rx` z5F`gJqMB#C+lmb?voFw`?%S8wF*GTEVE7YHfY^#Q@6gOB08yi2(t9IEQnk6ASQ(oi z?J=2nN~en1!qw%`w{<6oJDyni!-eKxm^kM{(^8h0L+(bSF)>giS=ZRlZaCRtq2S#V zizUz691ja7YvOQyh*(I&EmX4P>azFyx+S052RDO{e_h$nfgi7?XTX7Mav_YLf! zZ!a!JSW;(fLah_zz>3BJx-BhTg9>n!0zoG%{X=taxI|H~k z0olKw_gD^#oO!eQsi~4X(F4RVm@<*HMY~Y$70zRkNZI&p!R_$bUPLFX)7sxhn&kXW zJGe(+V|u&(N7V5ne$TzGw*>QWw+s4$MJ4YeR*v^G4@6rOeU@%XO8(yxI*9=gk?Qs? zga`z(tu#Ggju2}njoD}KC~E#QJtRWW9sE`gTJ40^*A!MD+aIxHXiU-^ z$>ydgyH+7LG{t;xxX)I|I84WcR*SUlEwI?GP^v6B<7^QbxOg4)$$o{1Hp1x9r{BRk zj2CN&=P(2Q;_#@f`+m;(eVU3U7t-^X+h244Z@lA|b<6MlCyK@X%-8xv97grux*1L4 ziTB01qU#w^r(BOv&p-SrpAVf;W*#Lc0L8jwug&>r zI>X?_JPEc%IDFwu0j5wMT;U3SO*R(B%o+mCz}rn{G=w-H zqV5-kn2Jv834epDp*&5Lg7~_(X=_`fO#WNM18DeKsW9DM;~~~M%iPVz%8K74dd~QD zvSx%L>mlN@x~VDc!w2_~;rWnAjAm5&nyF14S8hi79*@VbOJC!U*Vh-7Ku<0UP&DzU zS>E_AaBG#zz7E~a#O`_1|9u30@r!ur(U9nbAr;M(-an4Q0|Ov*F|0gKHHkleV4$?R zwl?wT*nNSKQJ7bI(4J4GVBvWu=2)3=VuCmjou6KRuyMzL3ZM|)zpRkwlvkE-fBL&4 zprg9FIz1nQk>kYKMpQR9$By#DYyrJ3@7l-Cd2`n9-Gw2G>OkKlpB%8Fp0Y?~&p<=e z*k0hcXzq$x3+4JHphzT7pO`(RLag_sfsMdQcRO6y-|cN!jHb3O=%d3$Z~-SluDCWt zX$rq-bM%bQxfNnH!)QT|cxKkyg~MLb6QK6Yjy@yF-^X+`_fxrxwtlbRtX;=&NM&b_ zzQ(b`f`+Fd*tK!)VQU8R&*m|Wcm{k;YjVcvP$be@xJx8>#mZLptJ>qMGudX%@6WF^T zrsW*vM&g~RId&vJH;#w*lDqoO_HijYNi`cckm8?F;79+^ci8!F+;C4WB_^{Lgq~mR z_v+@#SbiqPd=5L!(fMztC*K8fM*fK?Z{D7;BesCpa=Ez31HQ(lZuUt?NYKT6QBqQZ zU#=s>MMdKwra$eVm4Zs_g3Q2R`786>r8c65{F%78xN0+LWh$vzTM~KT=>09N)^{R5 zo?de9xk>Yo#n>+GT}8gfDwZt_Z1kW+q9SHm3lg7D_%FX|(hE83>{qj8VhDzDbk2^N zcD?`TE_?AaW$bScC5B`;aZuL_hQ*w6FY_y59v^emrNFIDTu*apD-~eRkTB zGW4md;FU2?Ylo*0xbbo%&YVPAXXhc4uJqc2q1J7IQ?+W7$aRtp#P3>@nH%hO=7Lzh zzN{lco7>H|`1@Dav}Ev`wbI|t4~p%Ynvzg?)536>a$t*wb%;d{4vAMLg)dOut4!5n z)iW)6{(?`bL!P+bR6K@qo7>srjSq`S^Ltq%N>WOJrf6D~x4*U5gkGG!&T@6$W3GI; z6B16Oitqso*Z97;yIn2u=I0PNPQh94C*`nLK6r!3pokv#)-sF|t7lSNBuy?ma5bQk zVN#4o2U{T&u=^GNklvSys7b`L2pN-)lMug;EVQDo!f zd2M(}xUqTTX&(-`^!M|x8PkuMYAzqSzdUS7Or4ZKeE9IJOkliL)J@~@;g9FS`PSN{ zs@UD<3`GO2M+uBJ^bqS&-!l_fmemiE6k`g_m0U095}&muh>PBO`I~Qo!Ry?242S!w z09fpV9#-Tn`1ogXuYdI-#!3^3DqHDyeZOANLb1D;oSC7zzwhFt0XeOpc3br@GtFu# zsrhv9&Ln1&ce)endU4B-iP6l@KW$?udk@5q`>3Od~q?4pn-p~>Gu|d(Wk*LyAw>SmCR0a2(o^cp_Zn) zy->^Rv&_QP)J2Axd2gfI5*FgR&ouC&WeIedqvin(Fr=&hWqV;R4qklO_>0fRM8GlO zpRZ9o;-wU&ik+FP6Fdolw!>5rG*(egr<)JMB<2GC7KQWA~>}qN!=U z@D4(CN8bUNE-m1%U~keb2BDu4>jHBNW8d;lVD>i_j$0OGNa5<+zwCjPpF9J-#4EJw%Zt@@n&(aM{ChC2zB`;it~kM;k& za<$lH2jAKa`NIq*q#ac|Tl=2HgFbc+_j2@=Mjo9eO$s8k+9>PuzU*5PFY)e^6{gYA zt%sbAP~rSGEVk!fZ?k3u%s-zDm~cDHjg-`9m@=AL-)=cy{|7IcEF0AEGhNH!0FN^V zEqn6uc3vHd%;uewGIEcIh0S_od;7bjue#gzDD4)SksFUF{>D*qx8>WGp!?g2M1XfgqVpAlF0QJ7@I$jKV#({%@!2Nm8Q%bbB}ah{^4G# zeo2xKuW0aGELFbuDrsrUhNO<|{b|MbqLtLjrnB5;(#6ZWA*%?;Y}@|e6#Rq3OJTM) zgQ?|j%~E5@!M!`jlf$+(lfiC>+f8-V_Y=)8cXLA+E;ITE2GDp~i94-1ZL9=BTNO{w zD0aofz~P&l%15nB!fd}-y_VZMeu-Y9>Oq`)Oeq6VPv`Wo*%KRpPK9xX)CuvJ{{_T?eAF-3CcZ{4q67H2& zJ=m5M2Wx$KD{;sA9OT+-EwmP6qrpaJ?w~LP{6Jnw zl0foC#TC8nQgM*B6>BUzwy3l;;woBZN%NSsj&U z4~aGm;+ik^v!vrrXLYb^F~HX`KY7+g+OFIhk>~p1^DzX1$VR6{#djV9KEo`-R8Q3z z=;+eck9|+%&-SgeFyr&Gkfqv?Zhf;9m%!-+U3TDy`K`2dT-%vmBX3A(9_HF44&y%F?PBU`^!)SZP0l&G=(4u7<;q;yPn{x&^~T{YRSM?;TnxY?{t4E5QZ=hClnX(opD@aooqKczt@W zH>1h@(BIE-lofhKq2M1>kE4AQNvpGRK>wW9)iT+$>TK^?CR1lT=_WSvnP3?k-UhxG zJ%MDrwmq_O4?+{pCzD`w3)f4z-PDrNv)nCw9a&l!OHI_?UKsfMwVHR9C~}!-=_1@V zHiB`loz{gJez-ID=XK?VAKM-RLasDvqVV$rI~kN%osxez{vcI(K$Qlhd@{x=SIHhD z#<#9e?O3HuXwqvgMPFHbp+UPvRFn9lL^)gPp)8DzCQZkM1$6r*dTq)#=9Z!d;M7nN zIieIvHXi#G;sZ>Gv7MHPZN4XdoW$lyKARV~!YrPMsPB@MfJ6=2q$@*~M1TliN7Xp4 z-D0SumJq*Ir3>wKxzAx#Y?q_L0XKPBmx@G$aXHiwz;fw(HPzNpFMYbmv2NoFVq-xr ze!RWM(BP4M@RKf7{~2v6A|`#O?b-o>BATXd1Fuz^OY-pa!4;gHw2=9XKc0QMe!XxM zKp3WUEqZ1$hWk;xFhq z$Xv-OBQl7zb<^Pbg88)5d{UwKQlw5eKcXP+%p3_%hiKpu5}W#xf7lwfefdZQWPJ1g z82ie&HoIrrx0DtrEmoWs2~gbKU4pwyDelFK1d6)^cZxd{FP2b>1b2tv?h;%s=bqoW z_kOwmw;%H%*?DHqo;|Z>&3cB2Ju4n5K)vXk>7HAM7i95?B|RLIgcilrW_b1(%6To@ zvD=i?7l~Vm%@&WqshAUELqkQ81UqTcKUriHDz82Di|mZ?Jpe;Dr(I9w+(*lI(re8h z{U{l{vUgk_rQt27S}mnyFBA9aZz+8hqf>5LN>EK79ac_zpB|58E8oR>zcZoWkhSFRiPV@xkJpw}1z2J`Frje=t(8e`y+RYI8Yr!)vkhZIrbRl{5pO6|K6+25 z+rLg&0V!`-jM<~2Pj_GM2-_9;tRye}-ef?yfdk3&d}}Dq74_Hq@F};#aNpYt;DxQZ zC-nwf00y0m8JlXIeugsTAuHl%3JXpgC>pz0R{7J`%4d>-*TRX385xePgjAkF=MVkL$-z^5bAxyPlrU z)Kj)oEA>S%4XRZZ-_!Hi$W#ag2N8|xz=7w228e))VIXm|m-tCYs#aLD-t}sOwt#i4 zDIwDOtj*5xN0{cGL;)tle7TOxZv)B!KCB%{F~76Eobkpy3rE>FN~Sakv;B%Aj#bG? zc&i7?t*oC3TqP?iYiF}JmQ;rLNG6uFM{ia4$PjPlc^q;)WGlLvTrUOH9GS~hNR{(^ zKA}N&U})ZRDj#K!%XJ`Ukt`lLv`OzvQ@W75mEZdypt+k_S)7e zIPymZ06i3Kj^*{xC;wn_J{!nba`Fsfc0aw< zLnk=6zRM@#wqX1>9_K5HG>0lj(??cQcr?YJ-5JS54{M-P_N1a|dfWiJzE_GG&jqf( zN9k_haTBSgi*w0X_vl-*GIGTEA}NPc8p%l|#r`@|V<<>7p@x`pSG27hhw~?K*kjT>*4c{oJz7Uzwey4h~tt=8LYm7{}c6ScCjyro$zvO443l!b3V1uy;d-=@6>w6YlJL?aLy zcQ@<=_bcCPLKwC6EW0?p(Q>Smx9@xNOiDkrMNB31@(}~_2|;L$hQ2$a!``pU2|{j;(TC+$7BvZe2LzPG0ob3KKvS3eV@K@W(Tn%MKqOV*;}CdcInRO?G+ zi_F9YjTo;~#3cS5?p312cbNID-}bQK)VXE>h{h)MV)wXRV)l3osW#M+DPhiw zJ2&*N=!rfuNOQl0^?}x3Y~L7kvEY;lP(MXvbp64(4iEg`4KYA@&4`<-1n+v;9`Y=C zGf~eh7FtkFzvrQq)&A{NT+$3s7lv#h`m#@Lm@br6!Utf7;Np*7p*$mOZluJP+cS4| zrxc)xUCe|>a-X-~3k_=;rE|>NFc{V=Q3+D(;cY&%7ct2M6T9r_)f%!Muls0hXpT)= zDbgDAggn3%^|HA1Bb3*&COuMn>2VJukc4pPTk{`M zA5VzNVrAmbB?0eW2=efd<)wnc=gONnc6tCURCBN|;s)_XX}B}?Qd2hOuawI`W4~u5 zw#pR=e?BqiND}ZM^1rXIJDfb^|GMABghqPZ{U|$-~`zZoH{7|{U ztBSmCY#6Hb9_6i9i7%z?&FYKup{@{XMFoTpH9)jnz6Zyzh2Q~WPY*QZDxC9z~L?(d*aGA#_@KEGNkC#Rz?#(JS|fyx`K zpigI4!&w5mB$a5>;_7tO;TIu957`MF)MunbO2p?nPiwuu!sIMB;VJhI566BvklO)* zy$f>Rf(}e1*)gGN&tM)G!qREW>)amas2nahzl}A7tow0cS@sKxEpX${dOp@7%yypY z@QUk!mf~F)aj_G~3@P*aZ}i))bJ57lJ7+Sje|o7Rr(Mj* zf0W+Vsbr~|Mj6g{eGD!Z@k)g}Ze@i1u=pS^x2s@wJQH8Pq$LFK&~|-C%2-l)$b`1x z2HaONU6s@!sAZf@ z+m3j+!^HJ(V<~v&*0RIf9wTOkHk_G=-9L!^WV5Ew;-aQJp%tZhrPEZ9`M5UX7t!$B zhi5No_D=@qRx`^_!V^z__9+fJO-w65y!{7eblL_`nla!(}m zVkV8>`RC<2hNRN;XUJ~#EapvVdTa_xhUEd>hFe<|r}0(hwJT=BsJZ0__a zsL}j!c?DC<$b6kiI~p78Ur1g=3u1g0)c#SWO5kZC zoY}mVdUZ#>3~^(~w#>22_8%(hd2}_jZdS&~ixx}|XUifcTjP$6ZsZ-=XNvS~3He&d zAjco89G}EyEqGt4Wjl0jf;_^Sb6_$!FSgf7l~<>U?-}*n-&lz5xi&%Chg2f6&d0Zv zP6WL}CaS#hlrN-hry-lG!Hqm;|vBhybWH|f+C#?Yp_4@M8behi8gj9Cq z=obHEC(aEGr{55=uPJDAZ-zYVVrma>!Lf z6BAvf<+jE9yK}&@JM|2&JHLRc@1hbXJF(!}+dk=q1eptJ#!Shy4dd#Re7`#vIxQLm9$0UA*iHtK3}=)QU0&cikvZ{KFMxC;DGRy zhM&}2#TAutxR&43!b zzL$Uc-ih4coIfFmX|F=I=Zxd^Je47*x2<}1%^|IG=8nTlG6_g*d5?9gY|9yDqpOBI007-N!_wnr2F(#C*&=W3J#?oZ+|b2qf8Ts z(C?J{fe_K40$a`SgFGWiE|HU!>SWk%7(hERig(0`)Z0l)`>)dQdoHve@L|%q*`VKI zTy(5o`3)y8i=NRrwVurZY(}qR_(OeZrP&B+;miPJ`(R1??(x}&`aYF%joN0?>zy&i zl2hr(=T1nzUxt9>$GSo()HDrHz;S#?wTaFLh9sTkbi0LCvUw2%RM=qugFNc)A*KiYs)mL5PFoA}yG=1wx8O#AsEe5Rim~#9H1uH(a4mWOFU|q3>9Ab*B=m zw_C7h6F>!F?gIvKnnr9#LK0)0D-$a+-&Za=koA1{9lfKYmi{NaHeY$%}Ar>W8IO?n+)=1009>bcBE)p`R17e zHgsUGTM+3N`+}MXuWSL{H%b?wVMakDYe^S(@wm5Vx`7l#8$|fqmIT}K1AI&?! z`@Zm%f)8Vb;9KqS%0zoq0Wa6n&fp7{r!(bU59nQ19x$gYChg*s<%zBR;Zm`0a<}B= zi$UKu0fAO<6(Qdnlv_?HYYyCV+y2m=VYk%z4(CUb9yRFxw0GAYxT6P_CP}`F=vac! zDx_2yO`rdi5P6ff^$$_BlBMcb#N(gP-P8H?3)TJnuy|?L1dL24ihQE;>C46*sR*YZ z`*@3=wIjxTvX@=-IdxQ1+tTwj?o)C`3Z3t|&zn^)I7DP7J!1-nBbzD$mYIv#xG+7^%0^;V-(~LF9?W&(iK4iq?O4xlQYcAWvOIUk+ZtnPJsVcq)Sj>r4 z_@MPf?^EnQWAj>)4t**6gX%Gvv0qMwa@zt?81k4#sV~ z?k>G|L-O`bUI{!(AB%j$Qe9UN<)gWAx&L_dS8Q+JZ%E(9zj6gHbk=BX27DE=%bky> zq5S-_v;t~Y_yCEW!GcLbE~(XlbCEwKzW_38Z2;8F-h>IsElj6C;(glCACbRLeJI`_ zKAPa=X<(-g?OGf-%JUm-Fm)zVuJNAw&{xakXB%iQ3ZEB2GMfVwB$3ESKL&p&FcySX z>}>xRfZl`b&;owNvSJA&nx){7D#DytfB(Mo_R3^?s-_nK7N{;$ouZHfP z6%J51_}4M1MprDPjJD=^mGWK+B@bF0lt*ws?&M=mL|k4hC51`qJg#kvVDia%SzZ1D zmC;TVD`ywQn0=N@q5P7BJ6b>|-9`yEo$T(oYHGqoyOVTwq0CbX|COz|AUU2bOCSHn zOF~Uxqiv7y2}ukuP6l)~TIdXSO+Hrnq%0X_Qv2&o&aIyCA02Cvf}dUA3Rq_voJrk? z-I7G)eh9ATLs|+fm3K44=Rp@cs$srcwz>Rd`;la{Sh;PN*EPPlCmJ}Uja)+{rG+jZ zTd>^5_>i4EH>Toe*i0=Qb~$Ern@-nXBl4p@RFBepQhhr05N$c>mCFz+#yz;$ZJ}ba zwfFSoIvU&Fzg6vQJzi2eZhKHFuz7~6xPJSS$21f|36MDjO9FScT6_<_7PNO%?|S-* z)v}5Z9LCdUp2FL`wM7JXtb}uHmK@55HgzIrs*KdzA2g$kpBEU8CEZy1^yiy=eDC2ToT}5U6-!#J$@s{Yum*X4BiZP^7PYS$+CHFA#yw5BQN$l2T;d;`-?>B+` z4w7rnMfjK4&FmhWHC;TeB;Pdtus71=a0p0XN$Zzqvkdc{XaY`)nU72!mM%;dTvnj) zDLtKkM;{fcgDN>NjX)1nVkC9Wu0vr*0p;Cq74gcFI|5j_@VjX5Bsr9bMWeR6xh&+G z!&ZiH&mP`V?fK5>ADJFm#%xVBPovw*ys>|f{H!58!*@OWI2H);~~U-tGm zE?#JIU=X@eJ2)Lk-MIsAUDY5v6Wcg0zo6@+zVC)sP40YP^T^!TwA_aJTNU0$?k6mAkW;2Bvvr zBsh1Hg;$(cV=RXI<;*?390T$L5n7Mrc@sdC5loD0@T)tMiO|5nz>AYHiOR~*7I>6$ zUTw8O^9P(}e(kaJmL&7WUre;)Sq+0aR)MG&j(DXYnFos_ne~~pze5WMkO(VJYpM_Z zpf^P+*|b0LSP<8z>5ZIA$xrbT^wg=yvpYWbJ0w}{&$LOe4P6TGK29>l^bR3L?Kn)$ z&Y4%$D4;pcBSDC<@WWcXRiDtiOjMH?J}K88qXGWyIy(*rxq|K$1lsErDTI@dM0~*8 z-4H5)vB&x_$kPM#Dd!?%`B4u$gGangYho>yr(Q%`1C8x&IzY*C%0d|j zjJu#qib;8hX!pJvKlXbH4RfyKviOqOOVbO^ONHrQt{l31tBOcilec>#tj_C3L@=>| ztq1u7gxu7ao}U29X{=MS1n=qgRY+cmR=>r}+1X$Wv0dR@bo_hl77pFYX8@CGM zThR#Dcl^_KM|KgoE6}Gue#Ii7TT4UjAorhiA$gZH(3FwuiN9gIIV%5H&=lPt2J+9& z$&x5d;3!%HhNSX$(hN>hU1^09R@ZPc~u@Va7db$C$~uPd$gv6i|r9%^@3`EYlHF8 zRJrz=aC}^xBS4_3f#)PbO`kFjX#600*HwFLNAx?A>Jx|)kQlbb0=<`)jHr^mmeTln z^sMwsu`clDD* zmrU<8Q4csRuZASg3Wf{YGZ-Rr$3Li(Azt@hs>WYNmF&v~f5_vqzVGFGqi>xQeox)m zq~$2RtOQ&Wr2hTMA$g*xxrDAZ9Tec5l^j%Z89Kc^Kd*O^mxHQu>3Sra>fAv#7RmXj z_fRBqVx*1is+5%_#dvUR)#i7R|;z2OA&l|7+Ya!BIAqL znysaLo0v4kmC|qD`wJ2r{$xFmpIp&-UqSFt{IPW6XTPVCt>FYF0Bb~cClr&cG&=ZM z8exz|gpj-}t)<^>fDjY&Qo`=|V57!ZMMJ>)<+bVy@D9_%HxuJ^iN`a_5E-1VP?XkZ z<(U93;pz9Pr;-#CO|2eBbedP|-$KGH%vjITc5bSnkNih97&h~~Sx}Lln&#$0p(GK^ zG+!Y0sU%gkfq`Z^A}#Jp);cd63huCAY`uNaHJ5LYlQ6@j;THZXSK8-qlKK13$eqKm zkE=zz0M5kE$`2&4Kic}QxKgqG<0z$oF z!Tk(DM#3X`c=)KQ--Ak|wJ2i;2*ep4^IsTk=IX66IO|gZ&PKq8JyG?1Y4c<1`>x;BHmEha>~(FTQ})a6+n&+~5L^ zc}GH`en|a3PAS)+X_S?eO?*J=w!~fp?-w_jv3%uhVIUW9J!wj_a5UL<((O{|lay1d z8xFWk6WEhI9zb?{T*v~sW*5@+u5gwc0)5MLpOo>Bcnb4%P#P-GJS_FuU6W#)G-^?w zpcpEBPZvpL>9?f01ogR5E0D$T+FV1zmwBBw;yL3sPRD^MG^D7n+NDfw58jZR9hPro zcMswPw-m-5?2+C*vgd@}wbsb6J!}cvhTPc7J5UbZ5mVlwQN}bixpx!tDcv4QmnmtE zcgt%}EFKtSqYI6E<4Ib02&Zx{1`$S8FaIj#OXSsRk1o|UTvwq6>O=WU;I z5a$>Ib&;vC`gy|WpncclLto7%(X7YOomzLLJFqbR!e}Jzk=x}~`G{rd{CUJQZDztt znLbGay>Cq^KtS|B;P!E_ljCJLGFsecFyqo^3XaY{ON;j{&6Xdb4qLS-2dS5#p{-`G zi)wl70xkt}(qmlWm@d{ak`M^d0$ zb6+9JP|$YrR(M^0v!%!|J=Wrl^TJ>51z0C2`P28at&lcdDUDUlj0kZI@ptY}aq)HP z5y3{m5Rz_L^kY5jxNpPai{`4JJ>R>+tMO=OPcg}JGX6eOO?b}CwnZ6<$THS0Z?%ut zhyb?pOa7d1df5dewwX?YM9&hS`ySQ(%+fpNf*x-8HL^>EQi8TpD`oU;Vs}!6S6AD7 z{d6gDaICo%@y5w;Wm&7R@!mJ4?Y|hsHL2+6F?SX%T#b!qh(@uB#l|h=XBAJ(&U_IY z{wkPfDwbyvZ(rNBSqAdrdIH0a7_^yX$lk)x-F?L@kq62VmJOb&R7Yd)i_5AZ_j$K# zkt2Z{jAoA0wSO#^q|Y!)vVzMsWxaex#L?sa&qbd!6C@T)qMy#%Z$TL_n zWMV>nYVkaDYV_J&i?{islpCVh@}GR%@pGT`)9}^3A25XJS;@m*IZL^G z3XA6Zv)QWLile1X!4(1ey3z~EDV}8?b;Dm@DTF+NKWeWiqPVtR;0Wy~iz}~-JuG=V zl{`L-JQ*!PT?B5UA)#NHGXAMm2Gg(U?zW#{p&Zb}(nwh>hsRBWUjA_+bqg}qHqMvI zysNm(mAk04vsL8p@tg&O*DwqVWw-fh`*~;>8QsjI{`MTS6YuaXK-1i1ImF4IqY`r_ z*mw{Y;n81G-Elck&Huswbwj72rCx=pZM4UKH9Srtjq2FipXJ|t>c73s|LUE8LF1VV z%~F83LcdKhV|5mU2Pw@apngrD4|;;5HUDE+w8xKFJVxYRo}%XZxKP`yPr-hTM;_Ue z@mK-2?sG+NVrU}{5!Y9TK>c`K1CbBNCfgIy!+j=s;=F^HF_4ta$+1wRVx&=R!&D#s z+-X)+!*}Jc+E<^YRj}5yH;k%LmpXu(-q#6lW#t~<%n36q&y9r#P7x#I@Ciuk68Fnp zA1lN3@Njuhv5C_FUA0ufg0hOkuZs*(Hr#HFA4i_@`O7(ydV6UAxR)niaT+q`e6%gu zM;JJ{SJO^ig)9Cvj6_-$8BT^0FcQ>WEGNs;@2pWSytt7qaS#{0vYzT0|p6aOUK9Y=_-Qi3D&hDao+s6i_V%)ABL;dhfp3CcHt*aF<)Sp*-Ns z9q8?KEUoxTOr#uO`28!yE$Al(P}bD+pC!uG`xohu(2$J>Mv~Q~qWLMZuIeMHN6S?0hbu6C_js8#J=KlsF-yzh4c+rr8_$xD3O)ho-585MRo5`tWeDRWK~r$3SgK+0B7<`&2waBCgm#lkA)Qt7!IM z+D(#nv{glKtxf6ym+XnQhRg!GtV=PgJws!h95t%F-0ciRQdvGm1Bwd8uTZHE5=ZgF zHzSjGq9$!m+fVm(5E^O+3DU8Fsl>1i0>FSZ&uZ>&^+8}u`e=dAcZ!EzkC1I6ZI~m> zYCZ&#SNrErwyHa83RAR7|WpT=6Swr`wC&zD*~%8U7JiHJ^>kPqyG`L-AhQ0K+-9J(30dQr@4 z6~j@wcFHcYabL7c>l~BUO65gv9JG1a5DjAA4%5>joY8H>z20)KfC;3JK4a4ApAc_(C$<6y_#6MOt# zY{#~IIWd`xQm9dt{TqDRV+w>1G|_$vqmyL@n|%`qxhj+l(srOAZw+JYVl!$Armdo@ z9b{r{j59MdJ4mI%Vd-Njl`cvbeW|bqDENA2y_1bqj|$Oh=TFhet&061r1w$COOiC7 z1Y6kC%cdnA#D+&YQ%_XOgDT$gCf8raOTa~hl~XN?-?J7Yp^X`H>&C`LkD`z=(?xM` z>N;1yU*d_1Wmk|j0{v7DGpeuLImlnw{Y=vBq{F|&+uDgPtj}|bgT-+-DTz9174LS+ zTzwuc{4&KIOhpS`=xKT2b}BYvoplG|Yg;~@y?ss6dE2o{Ipq|*E&Su_oLML=N3CQV z5Bqdq>T;(AS*`pRogNe(ZI!Z-3zl0*~o zd645e(KqtvmM;6*#s1)-X|I{~o7U)1L;{U+ISK%*?P}q)n|~sQf&L1cM|CgF4L^+UppbFP*6^3VUMWD=(WSC`AzanD;G)X=Nj~pvEQ#%vZ83=G31S z62G1C&v!*1C9)k|uT*`Wlw0gpZ1n{<2%yon1h_HPO~we185I^+n#Evgu8Yd$$UY%Z z{j#VWH_A4pbEKB3O)@39F7*#yt|CH^91y)zrOdnj%Cy?fQq%V(_W9u2&C9}vcIslX z|Cm|-KUWLw72i;q!@#NQCwJaf^mU z>U0!26i6?N2bVgOg9^?jiK*n?sexOX^~z+7s3+H`>nS3m+F*-78~i>w__4g3`oeU% zl33;IPx@y;UbiJAc-wX^m|A9&LOR_y9fGu3P%U{qXZeR{{+D9(%WCVxn3MYQJ^KP9 z_i#S%y)j?1ZUo^}u#p|{tXBhk3}ds;C6+@Qr?+LMl`4lKoa7e8WQh(ty45&M>E@$z z$>V6T_i2T9uZOS6f38LT$6_Z+Sl_67>qsiyEy6GTMWy{MUSVkgifjTZ&h53`^1p>f zRS_ApuE==+VD^ILkA1Pn zoJe(v=C68g!03*1gTq)mT|Odjc<#mkIq}$HZVTjT3^Bf}+Bj|c4@KGk7~;8h>$nT< zSXlpd87>OPn28}RUZ~^Vtz&ld>notzd?Q9;M}=Ghn~mn;f1##Mb@s`q%Mi6qwroO^ z8MQ~NF)_h%4bmpj3YB6&Lsw&S*-11PvV7%KRL2>V7**$Tb^iH?=P2NaiT+CyR5N0} zS+%M96~(K(hg*j=;{@2Ne~7}>jAxUCH@4L z4Qg`@Mp-@aVCZyGEl1+DE!sCJ3fc7-MykX{_qMbAzx{XD)Y#t`kexX{lgMAnbK8>b z?TPO+d=ugAY1&=Y|7p87Dwl7sMh@9K_9+wLI6TDup-+GJid1r@9OxP1(sVg(#aZJ; zS-Ho5(NM`v)IoxMuJ|$I%CVpto#bDO@&Dd;{|AYcN-P*tp4-!f&j^(m6Qoj0T(#(c ziWNONtyIh)r9jkt;LkIg#<%pn@G^_ohqsp`p$=!4bt9CcuI1HN=yU^Ye^>moA~^)J9c;h9|H~lv2z)jhDa_wI$N>Hdj2~pn z<2Z6vBQu$8ksznD+f-=t@{dJB~CB~H~oq8R}cm((lMcblMFdZZxczLBabJXO|EjUaNl8aDS?0;*}Ob} zi6^TM`{I{`yJa>Ll5kk)lF6F`f%CzSgwkY(MfvV8RrH}lCDLRcL8Elk<=f|OZaY?( z_Qw@nBY(NP^a>OC$tCK>%%>5!IK#3j82I)mp47)s_)N&*$w*^imuf@lZBx$s_7uIA zO{R|H+MLcy`80!O9>s6;(p7#&%8RYT#0eqCAu%SZg4_g1TVrrKDN4!n}^;|bjyv#dHH#_+wVgq zpN{j(uLwj421|X0)Y^d6U6)GIiaQa%r4(HRS5Fn?n8*9kaa& zc>3sa1xhQvd>`!YnAG}^_=qF#6>CIYbvN&ewyU6OvVeJAHPww9ar-~`7?HNU&M6) zxi7CNo*NQ=!|w_GiG^_oR7e!|^7wW{dNUZ#)YhVKG0w~y%SiE+K-}2So&jZ?yWH<+ zeduaJ=|$r#{ng!qzU(5jd~h^_4cqP@|8oU#h8&LP6LR48BSrdr>5|Z$8;9d?4~uy!WC}E}#vN%x*5Z2X+40|9g-Z7~I@miU+|QQpEBAM1OKs`a&4_>FD6%QzraVWZ{I%~NVam2M18Ec|9tlYHl6MDK4Tum zyd`3G{E<-Eq{8t0hzXkyNZM4v<1TWbD97QUuO0oO&qjpDrF|H**V52rB%@?WWC3}2 zdRQ2_X%1gSF?mu*6ncl_Y20gT`E)b)pMCT*@?}6r73v0V3H1#R)w|2Q)bmFUiht7X z>F3>2zPZltkgx+srR{CJ_b24Jynx;TJZM6Z&UcfS$>LHD468XOAvbbEzCe+Cela=_ zbeX&1iL^c3&vjhbqx*5-U~bXxjPP#JPZ2#)>e_cf3=Ab(9xNu0)3&)4-q+_u{7bg9 zG85ZTg=WUG|9Bhyo5@E8wV-uHplorKwVne+$5RY&0~=vAA=K}YvtIZE#5n)`P%+#zPw^c{xdR=$$JxY zPoI8cSaQVg5!^BC(^D1kRA*_EAbb}snQuzmbY~d3`5=egVPRy$!veZtc(rNBBcBSb zFxETv4Tp%O80TesL^tpA{M)H*^6y|67JW1qjOAmgUAT!`8V1`1j8-amLK6nhgrVqc zaQoZ`^W#Q2&*dDW;B^Ota@+4h5+g-A@83$ehu-3@qWD*w+|K~-eOVEAMtkU8y>eVZ zKt;iiMijQYWH%nrN$qK)V}uWRfP1Gc525)obO7#aEM~zxTSX!hbd2~XxG2>@mS;JI zxOJ1^7>>At+r9qK+VFK->mbpO=D=h4NjU$P%iTlIzxi?_;N%UGr|s6627YXY84$?e zdF=q%=0j_~Tys}eUU-pymUTm?UNtln?YwYpQPXl4;KrjnxlD!X;$+}uuWzeebxU1c zLa{J2-Cj?fs0s%(74R(Jd%`oMfB~Li5W5}*tGGVD$Hfw;MA$Pdp{iB-!Pv$ zjx=$-^30W9@}z^Jk&FsULfYZaf7bNHSe8eA(31%xX1e#DH6}@92)%MQY_dB(Q zv3gloxBKSy^JU*$D!va*Hwg$G@&A6XELTI;yqe@!!7qz&D^%m>i+ZH(t&!fhxLsKiH{`5 zOqK*S`gM*g8xEZ)WU2G|%QVU!9@-{%7|C`mPkUX4Blu=cO{m4Y8{^ zj8*>eQj36h@9S8OG$!HWBjqXDBs8&1sY?Kt!7H=!lzVNA^ZCX;30liMHO!vhvLf#n z4^Q*v7H(P0g9iTz`Y;#!YFdlwa}N~mQ`ek*vnFKzvLoP2xke?6IgD(y$#~jB9}Roz z_f{Y*ljsdRUS+0EvFkEul&8+4k(#X_yRzG;Du-Q$qt;+g!FzzLc1IqbFinv;Bz#2NIowS zmr-bsoPWIGc=hJXey3|2EViP!eSWE|Y0<3D9n|cVZ6>CigSzporUskwo5bY-9Mgk6 z!VV9Iu$D41_N59SeZ5lI&egq)Atks8oLAmq6FY&)y-Nc@ zp_hj2cIpsH%wzPLAIVeXxORO}7!-x-iP@fips?k*#ZMF$_yY92uaETIqOWqLCZ`j} zf6dreE=+eR6`t7_adX*j{b}s$?bR}@b%ik4!`f~>EtEQ|at=&y0n!8~v_K*EjhtmB zff7yVOwDIZ>&10no75b6n1BOCkn!+drZRia9hDN@#`P(IZ;Z3!VbSln{XeG=8_$1@ zw=Y}3F}}6pRt(-<$mB4BSAB7^zfTWnR!RrQ4Yxt<23z?2u@38|&(!+*SP| zKaqh+?NVgEpg;c4^V_k%z47cPu6upl|Ic`&RyLqEO!cv&Owi-zXtKtNFpqZG{648h zdd_)Ssy?2oP`#MnG;yL;&A3hoY#!>|Ho%V{@^sE#9Ce%)efs*jrUn8(s_dY%1;WmR z?TKDUVdy0B#pvm!?+W{==dty_PX!kmG>~pOZ66m6X1Ux%|JzAz^Fuv&1{P|245|}( zfN=(yjx59}uN?6Q&`q!g#>Cuf8LQg3oJIpe)+)PQN$1VaA;YDD6^Mj<1Ew!xXzlGF zz)MM_hPJp!m5tKOaql~nys~#VzrNIbNGj0%Mv-T4RBA7roL}xM6m!f)gZI~ zQ`dTV#C($nin9lPP29l0kv@;~0c~rt_63!+I;^`3ftL>R>>z#Y7mnot_!vW+1@#L{ z!#Qz%3`38z#l_EH%O~QS{8XbryQQ4SDn;+{Q!CtSq?Y7^4(jsV)J&OWX z1{c%i?+~!81#)jB95qgjjW-$o*f;!L!36!BFo#b1>Lq>Qyjm4g;-p@#`x?VBzuWRB z0xaS$0;B>PP1x&Ft%`1Rt}`F77HfJ4wXKZ>yEr^K{PsTWW8yS#%BX7me*r_XXt$cJ_d=K8cP z%vTSk5%5i74lf|E4r7D#LL8bCWBn@ShyFQsm!m@FBmI_W(fFny1Po=CUu9yKhd+-# zabav~`h+sKOtcQ$wDjBJO)oGVYRb>dls%sQhSk*k(%QC@3q~HkDT(&zN1L)zu~uFu z5i?JC4te04sNx4`W5m*J{ZoT(-oJU$0lvTCdl*n>>kE6Q?x=+ce{yHwV1)#)M=4*s znJ!Q0=%In2jD-=9w0;II;L=kI$`Zn#G!=swLSX)*`y@Ll1gkB3rW8U5rsM8kdk>-- zL09m&Bw-dQr_F~=PU;GLcwtVL-FI~1|`4Wd3@eOO4=r~T2 z=kZMJyo|gO}ZYJwyhUOM>xmsMtiw2RyI_YAII2@c39>|ne*B<=s?rcrQpI-VRa8H zXG2ML8@468Pe#c$a@2y9xP!C?`?_B#^=Gx)BBGe=JbN|g#~`sA9hAZ9E;z0BKJ1vs z`A?dTlht17ZYc(bKCp;l0Ds-2&Uj4A8f?l&zrLKwe#B#^@Fp-?F-v==wcR9Z&gizS zv5~Q%!CE#W|9X9m=O4$LHk@MF>U9{%c7If9K{s8%g9u%Lv{Ezwr%ycVhLVQuCJ7jRIx6D$7~7nM1{P z9_Llz!TgyxqtVqx-?`5AMM$p|V}}HQ0Ms|49#2%L1jKVH<7_`T+#jiBY+-2UaUJ_2 z_-lu6PjU@kFruIxl%hpr)T|Qg<2tLOubFy;urY*N)fYEuFA?>pyt+~2A2`&?!QZ+d z1K4~^_&Om`A1PeGd24<*Z$8%E02I9~Xg|;XwB->Hc)&P=Q<><#Fj_F#2Qtzv6FfZf zZpH0CBoE)XrGHR?03G&c7;{ox<7FtM=PtM%76^Mx_bK5#dqV^T4)VBwC4KcEDKt8? zqF3igz9eGw0<(d z(R3>;b0~J)z29RZz`DNl+{R|&X82!0yc1uFpXf-*!$?&JFC~a^~KqNB)^I#D|s=xB+eG;zG$M4AQEe0+;Hx*c@R{QSf!+jP0I!86DRo z!c_w+^4u!7$9%!cI54QFy>t}<`d^Hl2Jq{o;9h|L%WbpU<^jJHO|7999x`PN-x;o`v3S>Yqw1 zqlIJ!I~#I?Hc1Zr=gAqfL-uM0>pH2ALza(mAs;-;CKD6wRD4>h!H1hbV@C~Le~;+F z#szs#QqpLhAo-xlogKTnmNaqdKy7`uV{G3olu$i~M{zN-@2b0{UuV zz^kJ1g`k_kT*i3{++wkAzef9&Vu#m<)N8_!(%jKeJ8$puw6wH}DT~c;lJiIwTSEM% zFX`yU&vfpEMsp7$z$9bEam@Bv3zayM?n_7E4qIUb_Zt7Y!~aNt3gNR)09l}Cp?VM-u)h|EUxGMjA z!7^)Q)I0*$vz?V^4~f8-w2%(S_cspBO-bz7PF?j}6t+$t1=4w%Xd=rDXNSJ;zxnX` zV-eloa5D^-Aa&>0Kkla&xv4SD$olVt9T1YAHA+KO-~}7$7!QThJd9Iq%nM2kxa{-W zGRFpw*`}|Xg^OP^?_WCSrrvcsDEtQcD`y$$+~|?Uh~IP)YF;J5mTd1mR*NPyTSkMg1rH3q|9d~6_FsX-Q9s)V1lbRL z`RvEEyGyW0_F2h21`|?h8fUvXob^41NsNhoZvw6LQbK|b@9)lu29I~;({cx6eRF|Sfp7A)mUyu)WBDIY-3_HqElrx$l`YyRfVODwmJc!Hx zQvIK<^mRGrGCvk){b7)ILX5Dxy`WszZB1z37tdTP2^Y>5K>CF7Q zuLd$b-Zbz=?mRhu*%C*=@b~Yc?%5f2mH}RTmFfxh;mq9#+34@zLE866?<6ZL%XL1M z5&Jw_!R87~S^3zHBl9We79Ba){>kvi6ZPDo*r7}k2tDMiFP?MqBv5imi?6vMUlRZ0 zBZY-`y7z4`x08wRoy%(T$qBUUOR3wuv~1&Io#a9pOLX$gw%AcO?HG#&m3~$FNkW?X zk6%CI*`3>sZ<)@L1Yycl$Qwh{fwn<09gdL*SjK3oF`nQUny$pzlmE|pIIHCDWPh=g zGd>a)zW3?3V1|8ZSaU+pbu<5Bg8VRh>*YqOvctv|msqLfohch`(5TwOw&HP63FCQ9 zbB!TyxZeBte+5$c);|lqj}5;~q-@5&qi$rFN;=whqU@14%p)^NKbc^e)8Fm#u}au` zCBxwhc*h*o{&TtRgyse{IaFExb=eE`Du#{2=PwF;csRBVcbpB9#fJtfM9;jtW>VIf(CNiD;<#%0?=83`E4hw(rEKjwF zaVJXmPx>co!yh6dT;^MvbflC`cYtN)Cnb#7&6*N~p`m5qLAF~6Czw*CIQ_goY3fWV zeN~OoNf=PbPqGZvtq_dyP?g+TMdfT}2$gVF7VBHSx0%>Z^$WWB^Z0P`VBnh|hJOv$ zW?RM+aN{L1^M=yntUdGO9mj4I7eQfCd9q!!k7H#IT zHW5hoTLu>fAI4j&>b73(^zYQF$$TegN(t*;>F(|ZJ*qJJ{r>i-Q*AQS;8)&}C)`Kw zv$K%{AF2FM)ksF!%2{9yZ6%?CPM1dugiQ~zv9moM_yav>`0dWfV>diw%FZ*p8LAJU zFw@$WtlVKH+59c{z&!lO{T9N%9z7{j4Eg#k@kHpGnr^o5$!mo7-R`f&2vi2$ae({O zs{~yk#rm^IQKqnN&#5j--ouS$L7|tOb_=obsQjTPAF7kV0bV4au%B_AZFIU5o*6}@#+Vi&F)V#Y5 z?ai{MgM6`h$H-A|k<-G7XitF6uG?_$D>oJJ0rKzemSOp<7=^~=fWg#7Lj(gWvU$MZ z*UN?VYZN+!wM0!jy3ZWb(M?j_9(0ZEF)z<9q3xtXzAVEae4<7NuZE07O9OSX|H5p?@i+nvQWiV zccKylE3rI@X*_xJp;TokeVwH#XA!}0fpLGwXmg}&JkE5obnu;?#C}2c;AAY&)&4@n zIW;{+NR35C{d->v0RbUSQwDWyOBUH|*+%w=%Grp>jF@SpOH}zL0qrE^p@mn8`}gzD zt?UvNuUHkD*mY@af_k0ZFaxPOCyCsX;j6uMSF*R|I9uJUE)uI>^hW_%(q1|~7r$C{ zx3YB4)%j1|qsRs)JGe$Zd!#?(6y1q^W{d0GPV`lr&*y@qQ#!gKQ89+qX80G{l)Kfn zo!~0m^zLA~xwaNTy{^Oer}hjxSft(R_zB`9t~}cCQ-UZYq{-w9<^TZt&M5~*}H+nj#3c_ z&CxhVx+cTU6Ju7)kwG-brz+R#azw!m=EC{qLcwJdQ#w{B7A}^fbn0!~%3kcZdXaz7 zxtHH1+(W+NYU#OfJ^o)g_JR!F3^H&K8AQ|uJt_h zBJ-P{Aqn@#0i6RYqRt^o6ve7>UF9idq>W!GhDB)C^w(lfv+Ce1+i%#^5MOl~Sn8&utQEeQ?6Yr3T5Fu{<>Q+%5?3_!ZV#;6J$tRV4?7ODW?rtQAkPrQM#P zs9^+0?W?XnWH?4@0gP(_VNP-U$i^Q}hP0=IKIKt(?$&-6nF7s#tNb}^K$I3IX3@S0 zd)jd*^!KU&8~;6GGlmm43x&1aoUqL}kOZ;`;>?Q%#%YA%!Du9LJ=7$S_#Sv-)f|6G zd_VgRLtsb!cOf^i)gSIF(A)0*Dgq52(ETJHba)wVt@8Xo>zyQzlEbzD z+(`k-wqAuT!8>wh@q|{fopGD^8bJ~DCtI})5x@ykhq*0Tg9qB1LFPot2R*&=gNH$W zdae~+l9?uOb*FvJqAut8lw(`yi@TTzg$>V#r*Y5z{drOf-m9HRd+S#?x&KDdT-aGr zWKvk+En{~tSpgz{9L_&!DUq{A48F~;!QL}_-+FJq2Wl4cup#}_UmgAE?j+*E>Fvjo zSGO#S-WKn*hTab}j2a{wAmAVy%736EaNN+2Q#;wNrw9Vf5(9B{XegbLGcqvtU_t%17Q)+G zN)6E%rO`lipX>Afl%cw!%5pi$S~pYu(96x8_d;Y$oyA<}58FDZj#vUeS*)12y{Uhf6@0B2th3Ie5(a<;LD^M{ z2OmCpqH@|`eg)E7z!mIz>JfP=$qL-?l9?toB$<1;Bs=_vQ6iZ_Q#X|?bSWBOjs+%Y zj|%;41W%yQqOM5nPqJZ4Xt-#wxCAS~zv zo8svIF8IRBU#WFk!zMWh4&GLh#5o?rO^@eP2qeD#!S72*8&uOe&t5#IsN z&kDEF64JF>&p8Wbis#7HC3A%|92Q&hTmQ{ux4CB|-ll}*E$+Y9-YkR? zFQL_ET{4)LiONIia*1A~Bc=MQaPH~cig}myWtXy3_8z9IUF-!Mo8i9Z6!>Ub5y& zUF)}mFV*YyGo}2bn~N-OiQ{hcd}?xz8_MsDN;zH-j)(w%2YeT5zdvFk?Q1-T&>R z!kStG^_BcK?Uz#TlifD>0AZB5MK#zWK)h@|Auo46jct*>>3v&H$Lnl5odK|&4$69b zIKP(=F>N*wV3%RPrT3CYGDWuS2)V&8Ok1TM9L8k-C3ilo@fUxQ zr7pXe*gk@RmgVMi1&jc`LQ}5J_xEvGj2++MxWnQzdYE*&wN7$sz6%?n(T#a1Il@pF zdBoWC%y9LW&aKNk#O1c8^@|WS{4DEX$;gJat8tcfb8`A=4!*(JG{2cGg?jI~A2|Yv z=8_^I>l~zK?3sNui|gR{8{7XpLb3$x zgt%Il9X>L;^5TuS-&XT0f6)E_*{Seo*r`orTE`n|FFr3Oa8AeVq*u1a;JX1p-s_-R zJ+0pU^M3x8;)?qlmovHs=Y@KVJVN_!P}f+SHCu)=&@nfS`pN~3%H2r_dokB*b{!Fx zzp6x`o9%P*`Yia*MdXV>9y7|jURK}omfL>gppm;(5#uuEPxHq|S@wk|rp6rxY=kuwH8+1-ebcQUznvY$B`kZ` zmP1fDs4oD?Fg=*<+OlN`-)-qd*pXzVZ%CVeMg~o|(9@c`B2>TP85y1eq9Bp!50sSV z@0(#Ik4OqKE!L83&=(JiK3sKS0clE%)T16C%LCAy7(x!&ibK_x)x>UFs|DGl0p;8k ze|~x8DXYcH$47YVytyFt=}SH3f)}U4B{NkVRoB5~z|O#|3xqgyjR*sQO+&fz_!ZEZ zO&5V!K{ryqd+@q?Q0lmlsTcByPWnz%nDmHc4C#_f#Ncb}mm%S)w=Y&%`$jF|$17nA zuH05uyZlbFWjrT9Do5+@8GBH>2iSg^uAoG4df{&nG8(ON0J)0W^}pJ6`-&NV|IlBZoDQ?Co$*qR3@hUJK5G)=!J)%Jk~qvA z`rSO;$r(D`916E*CUW=}|4eP`L(k}sy|bJh<>A9|u>(*MqWj{pdF+eNHf;iN*U6Ku z$Pl0n^46ZqAK}Sy-SrCGcD#pBz}?*y`K(h5$+hJ^m1_f$62AB;^V|7}2%}AgtX*wM zpm?^Llx}uuW}3v1ZI&4u{;l8Y)OWj+_D;JGE{d_jRI-13?yjs&38P+y?MOtJI2ypA zvRTRdCe-=)=BA6R+4o#1P3V2z@S)#D-JYJc&&Q|$3UvnBjbt2FVXNoTvo-;nPZ#>K zZOq9x5%L{Wlvp3KBXays(650ZCawn=0LeOB!8FIMC4{vd(wpRL_9rwqMcs8GO9qj* zu_$K>kdqM!N`9(Nv^L3$^Ysgwq^T_JV>Wk`fD$2Ttg2S)HRe|UeiVpZFrDZjrqKCr zr}^g(>Rpt>oQem`8I#(8=A#cs8D^KgNY0oz?7gxvS5Fs~hUZ+Z%}us_cC;@L|2`=F zAR__jBQKB%zdrw~_-va|$;0hhhcQuhY3nB0G#@8oj81Yr5J?eCo*xrk80iU~sRv6{ zF-fn^Q8rgq42)luv@GYT7>bQ0*lH@2My+f8%}iQ6pG*lYW+7$1 zp0n}E)gngLT3E{@JD>RXa2(~u;bQEf#2%4H>`Q`I3Pr{flCE;;O`y|j#I3p_wtjN* z*~CDGusyo>ChEITR?4r`VF%lo#xfPv{*E%W+zSfZ+O8*kZ6DLB+r25SWS%yIs?@T@ zGhNCyROUR4&WF5*i_%g{R3@FIdpKM~8Nm?epuLNVjm2+iWwULasl$d*6#xC+=F3(U zEo()@MA1AbdXF6WjtF9@Xt^2G6}MJr(SXEcMNHK52Rdph;1;Zv!jRuiVCIypV-(J` zu^O~#$5<^qCyDOy7oTmN8r2j~4SK-)CX_jCrwpYNn%@r-52Fe0eiV+s?fgF1wDszC zx_ahD*2r-=;MwpSfE|ji!+I#}Q5ID|7mkQgGLlG*H4;?stD>-M8V5_RJMyV%^w_mp zyIN&!p%lPaqV7*y@4Y73zMha!TDH;&kcmamF_Ij8Q>EItv#k%1p)lnXMw^% zT4WVxVl4ih=Cqpj@VbhU1Q>c~JDP#)G6Yfw>!A|Pt*u^H_I=q=b$^Z1sSa{5VwpgC z0D+p2JeC2q@M6}87qCD}Q#>mqHXGz$(&lwpW$V>@_Puo*3OtbqPp(Zsd8fgtgWtUu zJk0mF+uDv0j1<8UfnGubp*v7gS=6$amxhrOPz*^91TpTOC{SY)%*t`O2opXKV$?}h zC#KiPkG?DK=c2|K%4A-NPzyz0!G2PNN7C(- z+ruqW9T&t`^^I!1PaQ6F$Bcj@2y{1Jab$}q9~GSjRR=i^tzdjKZLH$KDl?fXQtJn! zVT&fpqqz(0YuoEFE5I^iuaOfA);z`p1990TA*~u>0JS`TEb)pP{ZFve%$7grPRTfD z*)UBimIp9zOPD=yKhMI90(pq^g!`K-Aq~gJ5vXnwANCCjOnNl7oJA?_v9x7#J}Z5o z!S&b%@Qk6Jwf$kMX)+ir!f8z_q$JQgLf))*ywUYJ-!Jju{k?j}_gtk{K@kDYXlG<9OC`Zlr0xeUV;Fb;-!Vx|yH@RCCPz z_yeqklsP)tJLF|=`s2Vy*RvCs+M$H6iRAiv$a)?jgzHUWm0nVqYnt?OVC{uQ6U=lb zzD-V4Th(qQyX`oO9F~suU|n%j1&?fV??nwt%)GQt%9e1~(Yt-+av07&JSl@Leu!T# z(rn8j7E`6SFDG^9u<|8=H3NSY=m3=_rjeXiYd*ogQ>hbMT=yrsAe=A+KOv!=t)ViP zK*^8sRD-s_#V0*XDc+cEPE(4RUm)cEMX)aae%oD2rI0wbONRX``jde}s#SzD{Jl^S z*J+|}Fa6u7-`};5f#Q;#6#|W@j5xbW=Oqr6o@+(_Q`CE}JWrKF}Ba!UehypWF`IkP>VOOOy!@4ioR9 zB`F5l2a^A*1Je8p@Po*Lx8N5)ZTBuGFFN8&8M&PRJr&RlEAL5C%o$%z36BK`k7AAK zN{`(a0;P4ZM43QMYI4ZHy%6EZ#S29<=$c_j$|#N)$t~hva5FbMjRK{@6DNy`i@Y z33Lz^1D;Fc(L9L)03L9;QeU>0dar!0LyEpo7GmdV_8 zfisq$hFWhD#ZiSGvJwZ9)}%Nu9m5L9>Y?JYd$QhOimy18?@^);SFu#e*K#n6W-0L4 z@hc9zgN!k7%$7Xh(+~!qVQwMccZ-3EsB(YB$NQlWxO0%%w7h(KjPFqxiRh@k=s7E+ zB)=R>RO>XLQ8Pd(Ja1c#b)2W*VAYO4flIg^y#p4*%UQH9*PGlqEhE(?bVGxuZRQs* zuacT2zLhyq8WzY|NqJwg4;_6-;Cz;A2F@iQ49%|uWA!FbAlO=*|f#7|bX}+)4Zx#ZF*PO(e5l=Uppa<3{M@iv!p^{#o`+D-4tyDptsPynw?hqR(0wFX11+{5<;t(>^6w^={%EXufN zGkldb_(H(?9LhIZ34a}O(bz-#6D8XF3eZln?5ei#wf4>Z*3B~LYjJk1{;?fmBE&Gz zBKSqfJcXeC7X|5NTFxgyDvU_qnJem9$ZF=h73;Nq_|-`vC|T)c@<1d|nTZOFzaBlv zi{`}pdm(d2zueJ!vvLa19fr53r&P^+tJePX#&p4Ch=JDD<4x8M;wJd$6`e&!LKYpr zV2G+>lS99BI}sz(h)!`e zC234u&+`5MG6~>E|+2 z7q)}b_Tu10X4C7NzVV1+oNo`;j_;`ssf1O@PSM;w6Kg?A;QPz!{7KVjF_fjGb@iyz zEPjD>D}()|hu}p)TC$XxF@oGWNDYD1ZJI&9OG_157YeZJ)ZQG&`d2P>hl}fG5j!+% zWH3D=Q|vf~`Q2gV(8obfGLK91GjN~MDm|KQtH+`5>ybtIaZ`Y`RJ~kaZGb-+?TwC6 z(_JluaXwl_0C`y;V6{Orm%jCQz$J=vqu}FoMX#PI(>(3wpaYf9t5(*jX4E0e6(@&+ zA*%$_x%;bCKTprn#{5AYg>g~u6)ltK819oPE9&W)Vqb@lN3;g!M=>!G^_AY}TcTx| z=WWOMX>{yC$AP@3=|dUqA&F#}=Go~MGhLdifC22!(T+mDT?77;NU@X&0^&LIElx$& zYp~gx@}5K>!Y0Ugu_6H`%ZxZwRM;yHxUrq$JeK`UVN~w{R&n%Z`vH<)j!h5);^5eS z>T#rqnYCs!7zb_pFc;JF$d#LFRE)0RHj)iVg^=$aPf>L2Fj^cp6JA!!R$U+)Q7y0N z&AWPdq#sFh1#T+?rGSy}8mNt<&Ta$>7l8L3-&P4`6h_+22^I&{gPB2tHn%!l z8^*OCPpm{L7n{uUY2`-eIfAP_pLC3RjN*o6p_P%HLoZ)OfoEX_z9Z*6V$_kW8u4hC zj#9Q&IgDMAMM2P7DK-K?3KhjPm0qi4*)IFcF=mCJpBBgBy@om3^b2oC|wh766XtdB#sc(qz}g? z`PyW7T=CYEjmVIQkO@(^BVOhdOg8S&d9uRS#e3_u+cOAS27$#4=otg|o+2a{e#0k) z_~`q$$Wz_6j^vhS>AoO-fj1*6pGrPw1OTcB2+00OCq$E>7C*J1f92sHZ=f0pR zVkeSU$VmGcf150=d-*@CbPW;AtBT%gt8m$c%2fynQAyM{fpck2O{fx2MD>pfM$vZd zID@ErLia zGjgz}kDw;VW(Pd>GcJ@3+Q<$qk1U1o*xv(fcGyl%v!Z!^uwGjZ1t>JTTx8j6TcmG5 zhDp}eDN0ay-=?}10HYbwp3eSQp;@@ll}nt=`EFHj|T zw@Su9W`F5mSPSPEI(1`!CD`eZ75D|h{knGuw0&hxI>up--En)Vo+-l1GZS`nI{0_8 zVF*|$@DU3TCp9*KYl|GKQWcJ z-^e+nvvOT%+6!F-AMsdsEYcN`)Q$_#!eiY9*G}^sL1@Wy5lWXRVP6}U_OWK@{zpDS z_a5$apDJ5dBkcl;9;|HzAU%!1zy@c}zrnx1O1FC{$~Ik2nv*j?C5p|%lG7Wpw!!mL z8>v~8!M#&O{tUN6RZijetZhTH^Rn47PY2+yOj9UM(uA5*SH~`iL$KvJCbO@scCQE4 z)&BQBqd(B-X2_$ zb}pfV;ttCWWfXk(q}jI&$i#P=i0;hu>gB?J~2lACQumtE94;jd|!S>aR+{iO% z%$ZY$uaElTl^6U zXq78t0o~Q`Vo!Drdx~z)r+FOkB1~ZH>*ey^!krCaLF6N{4#pMMVKvla$!y!xz4D>Q zG`Xbeq)-2`F@qAOO=;uEgdt>Z)Rtg#;+9*8HmbETN3XU9j2>6I8KuQMwg=bEj66ygk{x0whH3^Ig)a(9P?PSm5fKprznU*%EaDawA z9}*9-@9sZ(fb+^BT1Qd}Waw*i<(CR;!-A>tWWXWSVv_8!{p6s;?QzRl+}yru5!mk| zl$PH&5#BXJDp%9Wr95P3hQ7+JsbWCAxVTk@oZXZ;x(SF49aA)nqE{e1JNgyKyvmKlA? zk(U|8EL@Y|(izlc86N{PYA%_sYY%G_#Q4Xsk8oh2b8nFiOMNt7N^WMz4$a8N>A}o6 z;!vGkW_EE4SCjm!kLv281TPPUvczaE_6L& ze1+-!&qKciUL!T?3{t66u2@iAU*R}$G8NP;<#k|>h`mMsS>It@9MU3j5r13b_hJkn z)*mR=MS!=9d1j;xpZxdT_d0#iLR5p-qBbllnH`U*Km%9#K1T*XT_vBNkElw6T=yh=@^RPePEX#gK{-hmgN2#MpmX;?5VyHZ5j1U0W4>Nocs?MeCUz}<}S zh$44|gdpkbnfUm)?N#I5*UbssfQpl5O(Mx>iW^YXNp>zH6C{7e_qX-qqP-qF9`GaR z)`Oa(0$qdhf8tZ=c+MMnsZpl1sZ-`sCQTXS10l6mU>S%&=lnbEs8(Vp@Jmk@ch}7I z2Qv{U{tS{zCk&LN!k!UH;doJUw2EjVz=g@bXUTO72D6h-yn3hcjG85A4EH32yGmmd z_$F|51aEPdo1e|=CLz9|6dc>8 zSjd!h#)VEM;*AJnnW)7Oo28P`mYT?V_!-OS2Ex2I<{7(_r>39qT}cOnnr{4w@`n$J zzvU|4%D{g8{DAkO@&@o#YyJ3SRs5Or@w|SfG4E>`JI(IBTBXU!?cT|@nPm_+1LF^C zxi7>4U6*D-T~9qWp;&T{^80zAef>?8W1CsRip}qQpLd(bd1rhaXh0#|{b*u^(v@#6Q#`lr)RVLp2O@AChQY>(?UjTKAZfK7;jZYG{MypJG3kkF)cKGMiObN#LK%NlWx^j6m^GepAu z{r$}*eL5ofK4^%r_cRSg`}VQdfOe@YW5T0t*>o0KV`Xi5bMbq_Rth*uI@^=;fCE4MPN9U~;8z`AjRGhr$ckg-%Dv-kwzS*GdB26th!ctd6D1NL%pj~PSbk2zmX00H~x=ee34V!Uqh8+81%*+Rvdh< zwcYfs`6+ChZ*v;_Z5|^?@7GQ&6`e#ge2R|0zc*L4c1ig;tF_yI8bO>Jt&Wl6gy5?a za5($}h$#TWuH;u4zA}(r-g3NIrgD^ zXY6yO2y6m!B3~hPGpGe5o{Twau()P3-zY~8!NbE{r=Txtj(&8GJ8fSV9yxZL0&%dY zBD>u>n$Ii3XAIOC;-)f62J~~Yy-!}lcYV0|tvh<{$fWa1&)o-0t8cD~GN2yx8O9yc~-iw-a zezx=FlL3r#^=H?oCq&gGMA){Zt+--DeF_F6$s?1o>-vq5f#W~HsGQ$r5RENr6z)*V z%|jWwjD`1xn*8zyKoMotp*?Q&M-H|sb#Y~#t;4ARFDFXYv>ql1kGgnLfNyb29fy-) zPRs!C-NK)Oe`Te$_13*@Z>U6mZ|)7E{tc$72R#E9<~SY&uC6c}WiGe#GJ|8ldN!f- zwCeJZs$iKlY9j|Y94ZRU0BU$CV`S$^`&5TAq^S!g*v|fi?DUww=s0{sE8NV*#8O7K zMfXLHc`L^={sni}=g(YiB#y70i)e@$$M9lzV_nY$yZY5ByAT4sca`_vYP?h%y@aNuE>B|*OR^mOn`Zq1i`H57-VLN%3t=Kz6&asYua`qw68agk&z z!OHZeFuS3)Zu#uS8T)`w&%ex!VC6UC z78#Gnrb)xu66r>N?F_Pog=FDS$ZB}3^-*328$TaaX_Jz<86?cwo;!@WRJ8B^vj7}t zSv*%P-*S1_$B|@g;|>*em!*gi*TfAH*jHdTr9V*oyH4rkOw3!CB6LOZn0{)D>wBSn10Ye|t&p zmRG;kgu5JP)pl)9#-A`ra~N!--TqyyQBQQiKE{FS*XvC1rdXlpX~bKUmZSYf~C#k@!0#z=^oe;CicMG)mnZ(>efgT zL*dCTrpoH-QWgFIUIl`H`i&^JJ?6uWG3yC=nGrQKKFyKDpG#90!d}vx>m5$r(q4>| z#k`C3W$8wf<)AJ4rHgL{F8{n3Nrp%AAlcSMxNricRhIRd0PAzsQI?*oH0W+GK~`1j zFWbVVEeY%YtXu0ss)PbE=KZIl<8zh`haMW>__M^bE(d!Jpk2|w3BmS5#t0C5`Tj$U zYX)YB9jA%YMKV8Z%({EUy5P|2`j}p(<)q376;IcTwHFKFAU;QaO5;h;j#AUIDPZW}FZl4V1$wdBzSJa^VmX;LY zF>*$yG58M6#bC=U)Z0(`3gCrc)O(=Zj|LAdzjV1hU}L;vGeUQxTpxuq7er?na^myk z&g%~rLpLkf;#dbU5L}#2yNw^6WeQJD$Zd^q2N2r9~x*az`)mb`TIm2tmd6`2ut$xFEqd zgq-9$E@QVP&%uwlH6)t}pE^Y__ZvxY}OLrnKS5Jpib~;236{=s}zr z3v}HY;o|@bbK&Ydo~xi{lBGXF4l`(+tnKw7A&>lAw*^ogI|;>kmB!QWoLDnQe20xlm(5`g%F>3IpP{$?uky)JK9ti-be`ke zcFaG6rKFLZyqiMuOVtmil;~dZ8A+Oe0U<`g6jp|N_&;cK5cSXg<}RxU%WVYV$Dd+p zKMq;p?WKXpzjl#nxK7GmVKK6J;q?iz4+036+Uh<;?NqNq`9l!30b1Q3 z6l;N3_@d)F3d*EHU;5h6(Fe5O%)haJ-~Q!6bjE>5QPUc(LX83%D!kDWrx&l68~6f! zbj}SoSOH$pXG%iQNPD%PTvT6<pIW&32!q|W&zkoQ=` z=~8b7W^d(hk+`t-k=_T*YtAt2zIXI<2EZ9kwleH3pn&t_r1|c2_yOF1|L)fN*800hD;TYAoylYJ-OIfeAtsP%Z@v~ z0e+pu`%6t8S-*z^a6=nkUV!4s|7=XAD?e0bNvDxQN%^1B{yw&wf0ro-ddnY{dbf}Z zQp@f)XW+N$fYsJBD@4+EfWre3BWA)i9xZO!wQ;%~LXp6~NPnbY!SV-hrG@@s#iimW za-J?N0$GN&?-fG#{JA=IsUWHNE&u@-E}%==BjG1)KjW`A^Vf=uyBa(r@+r`FauKV) z3BeR4I6o2D3tGN_Hz@^g=O9q1lKvG+giHfFADs3bW`Tlf1az1NQ@SGUiG$F1AOaTSGSDonUBhV0vuB+N_ zZzo^QiW|8jBY>R1_wX@up_!gi*PxrA1gR$)Q7t)S2%=9;tlth0E5pKs)-1d^r`dk82n zDW}M7gT3YXhFUo^)!1XNUITZP<&k7sPX(w{7#T705gNCzC9uYBG~1|sT^XS4f1Heo5MTw52UG0J ztD-didOaHRR!JP}mp(EhleK77JNQ?6ce6PfakW(t=7KI_ajf^cFgi2ztnI^I$s80w zCL(HN%A@g+P6L`zbiy4b`2z(`B@{EjAgST9+nMpP8+!zawV^L&d%Z2C89BZ9pqD1z z_A5)9$_QazG4<3b*luvy%&P<+wM$}1nzXM|-OUda0n7vVKnGV#4`GVumCgb~4LAnT zkDC1$B<%A7c+_}==0)NFDc8qZmOFmOPR6%_{u0yy)$?Yj@DDS=3(PcgsH;c zS&#n-JCQYE8M|B;@fTZd=$TAtzNx0eY_tc35@-5}3Oh3C7GQ0xL8s)C1n=#stfVj@ z3`WmfjOA&GBz#OH>NcG$Mr&`pw3R+r<=%xNMs+i95wGZUTwH{zZ6kbxQI__I1%$lr zeGcRLpADkHuIl69ErNkMd!6>bnJ!<&+?lT<2DQ`Jw4Wa#*f%o+?YP%^U}sAUxVO?D zTc$S%h4H!z8!z{9{i@QYNAc5le)-)T$)C+8atpMm*+iLj#&>MT3I9cW>E!dE9CD(;gcY<+`l7w3)Mn-@BcmWHus{~Q_&|4rq@Ek$9>7}^O>3{$x8v!qY5G1pIp!Hk^Y;8nw zoe(5|<{PRd8%qIpi1+J%ia8&Z8*|v(I*!Pkr_|V7t z?sAE;P_9ijYBgZU3eisKG5aQ#GHwy54P+PMpOE$#hq^BNytzN`Z#hcXqmDt7vHZ<# zI$&e}xtA)uIwk><=qO6E9*^X6)oGEdBWw!JXwRn_e$_~q-WCrOB)dXx0&i#7@F+Lg z_=yi+W>Qo{jp}B!rx(d(N{}io(|07Af8&1B6MFQhC{z(+b_iUxf8>8-Fh0XZQlG!* zzem)u<#(-i|M;hyfi>$xWA!di=qrtZ z+Y>dngd4J_?nK?Gdx>$o>8++a1ttqvXhoS*sx8TgLLj9ND_TSGbeyVXP@Wd6&#zZ$ zu00!Pxt^dsQAUQtw;mTe#xYOkIKB~2DpBZ;VsIrnZS;rI8xzL-tsQ95J z^eP6_@TFHfzB&>0Y=vw9qdRxFn=jrLV?Yzyn`uKj1hsc^!TwXCGCAJ%lAsJBJU4V) z&yzE>iN9gGeLbwqGx48Az(F=z4TwR9LZvV4Istm)YRl@p68YI31PV+-bl+Eh^S=a4 zll{!7R=u>?3z053q;nk-UH$A+xR1S1>7;`C2$-@7kp@Ym#?KUVb*HcmhYcxO4ds4b zGyO>NIN$!rpWev$!-!aGZ=%wwmK)VjDuBVBK!5704Obpmo57iV3aptNyIhmzKYC00 zBsY^|uiZb=7ke{TdK@{vV_k4@M#N|eHK*GYns~Vy>XN0K zWN9wXu#@ijhv3oC`s4A#5Mi5Y>_R_T7k=US$JF7|Sgk4@;bIZd5JQxik>|1D zX~2f+`Q0w6XmASMb7Sbd(ife3&nJM!vJAK(7qb1??Nyo4h2{kjGBRF!Ji7}xOe9Z zKgkYBMqk>dRUWP`k|rUUhxV5)U7}LtG%m0Ok~HH|OUY`hKELxouE zBpRX_sNyC?+B)h18T%EgJunD<6pwufGbc}o`TbqHY@Q% zp|=IKT?>%d+&95;zex1AP&A8LIgwwM6q6Cy;96>9+GUrkmZ4!6dEt{boJxz6K-1%m z1z@V8jloSiUXI;DiACzxTac@@P>`H7LWhcZ4N7c`(em+TqtFm+_WpSF zvHw&K#~gQ*pfAb=`Ly)K4l$MCHdws|nNP6}VyZ&Zay0MmQxmZXK3ikIF0}sB=S4=QoOrw$ni{Nt9t+(aUOi*2-`|puM8;j-TL)4-`M+oH`VFnV!<HQ#Owy_kO@x->^t=EE7f8Nil+M_i(q(J{Atp8|btpfa{!voYckPfqb(f@6c0 zlY=krrUp+b5xg!m_Ow+^-S^R{&1X89Fqu5cbq}N-pOEcLVW&N#6*ET(gk@rJZ z<~NF0Dp*s;6gC_4XUSHw_H*Y1=?a`Va^N^EmEXHVD7PdKw*6b;JL;?Jeln-`42 zim6f{W65%<2>foa5wGdQ;$MQiFe*00)0QNt%@;4*+T4Fv%HZNti=jCxRftVU8&Cd@ zCp4Ft!?Ng|qcimTdHF1QTY+%riQ|Mu)jqYY=Ea3LF)nJ9UHF1QZ(eFROqh?_5+M=E zbukqoe2Zy4HeI&yy6?`$hgi%y0&Hm+Sqc?I3W?L z3l9kI$}+kjnI`3zLg%>DQS#}XY!TYsv|@q_Ezd`zQNi_6OKyB5_NXrU zMZ-veXHRC2@Y^T26*D7=Gd&~6Oxdwk44U-xnQu|ah`};ad3Ei9ns+8Td#U$K<@<#P zwOt0upXB3zg@lONNDG5V%%&mKemfdYhSo>*0^>?Aas!6*A2k9-W`~KQbI=nM6vUV- zi(9`Bw%uC%f3GG%Lx8Ib(->O$KVV&pGG2Z_jQsWW1NJAxi?2m^32&lyF3M_j!~E8zyWnlJ2c(JJDc$*Jq4IhbE&p5i98y=s6nMcU!X&<2wk! zEKple<@&XkoY)jzfjmUFp5?I%kt#@pZ(*7?h>4^D17n933~yb~5TErTBD7{@hxc7& z^SgxW+R)gVqU?wHlxo6e@_#N8~dRX*{uoO-Z~a1nxzZ1(-9L zX_u^?4Y9WKSOz#uLG|}{f}SxUvig@>ys7AHKj>t2ML++h<|5pgCXk~o zY|Besh(c4L#N<7Y@mdOsDX}aJ;-wgrIr;u!#oWhSKr|$=Enl5faP9;FebvZSRvurM z;t-XnOT)TE>_Djeb4S~L8DI>!H*#LkjQftE_I&Fq2k?@6Tp|RR?4J(z~IFpj*=Goat?!&QNjPjP8 z*I1Q-7*Fml8~^u#RZ3YrN`5X$z&Gc2-CbW*8>28F#1J-tS zlc4u0&tXy9ukg{H(OSxJMP%YW?)a!Eb?(T`Nr{0Bioe6whC|rW&;7B{pp(@1_C4jR zJB3zg=pkn3d|>2!ODYYa62&7G|_t36pI9bzYoX2*w zMT5NI!WK43*{c?J;+?Gz?U`^>_)P0ImX_9^Y8;V`_Pgs?VjNF@=ltetvD2K z7-I( z-L~Juo*yd4%9f1Iddkwl`Cawb0Nog6)^bT7A~l#+zjgYc_lvd!4$X@T*2e=e<6j$U zKVw_-p#F$cGU7`F+aXDVJ8GSPj>G%H7SX#aADS;!IDg984BQF%Vql5Sb6R_~RWy@7%thenpF&~mkvQP(fxuz(%%V(S+ ztA*H}9CeNS2LVlF7ghSu+(A+60#E0%vuN0aTsKQNS-LHi0z&G(lXu_GV1I8q`p-dT z*+TD1li%`f5nyt;Vyxz;bDjLey--B7WG@99EpjG4?1Y@uAqs!nzIHz+X+)hJmp|F% zMV{t;yCEHZrbBhnUnqF9mC*R?hI}uXb3bzFffcqzKv>ob%R)DfBfl#xmww1(FZD!a zQ9W1|8tjO+jykI%HJwOzXXQ8xRl3f982j|@b;}kbAhyT6Elw%= zFd+Q^c@MdraY6%rPnXVC%7QOEx-MabAT6J}Lt04E6cp^azxNYc-y7>;(m3Y6oikI5 z1bkHI9Ndi{uJrLe<{#F5CORI*_b1kUa$0y*hL1$5rffX4$>|WHilj1P!;Zs%;;hSO z%4&EXhN_WC6B_5#N<}n}7?oD2q~f^QM|Vxm#;_N82{O;}8gi^$7zuqiu}9^7atAt< ztcGino;X01^_m`59F~bv>wwTH_gW9JYr=+F|5|rE!JH z#m_z2Ca*H?grs@jq%=Ucwcd>S`pD3+q99LI!8{r7ygIGcb0xxHp&RhgQygr)zhR9} zlSg@vrim7Y#T45^{bpIpnOtdyB!opO(M=KavS2Yt75w#QdtF?}&lCUg8*EiC>Z2cL zukx&sXZTzjU!x5&lL;}mYG-_2pGd5O$0=)ajkZfMs?d#L3AP11_$UOgF0ZI4{c?yn zDXD+3m%PTX_=$sOI8h(_uE@%@x9j*#f-??X5C*}+lM=>QHk>kgo}33J!X683LyERc z-BER$LQZ2^ek0o*UJIPfJJ$g&(WSqUd6yD!)*Wx_nBMdHkzq2_GmX)M9yWZwhhJ1Y zwkUnJpWviPBA>60D1u&`qqlU+s;8j#3xkrA?w%7;U*gTDI@;_Af&aM;tKX^S9T%>A zC#Vk$$W!e1dg~Pa{PL^j!5@kd!J=>2duF-NQjvE|Bl81a`oTIh1Zj;;$1M?8!=jmR z$EqT_vo@ciDck8Xg*9e_f9+d-$WCuc^jCHRX2uY~=Uvw@N1WKYXMfc=p~9fyrqoD- z`tF+oV7S1Ps|e@qOe7Nqff?07)l1BWEk%wiqH==9)Y?{u`bnu(&Yha$pe}G5M|Pn-d4Y97SLTn-L>kd#+5W~Gnhqwx zd8zui3}aU#CEZs`PoJ_#!FCf`t*bVnb2Wx5Q>s~^O2M$!2{Da@OB+1p`%fxyg**3# z2u+IR*plZZ4i8K}Z{P5tbhuA#M{zT#U9_2xuzCpuCd+bhfH|0^ktb@hH#tXk_}XhvQ-vW-T=%_pV*AX`fbyu! z)Nq>!!JwPBu0V7>UK6nf>kcdZs{?u7I`MEBk2!AW*ZPoXdE&gi|FW*7Mb@L@eHWC% zAJzswrjDTqiA3#gu6fg5`o!l5TgC4>tw^B^A6JY3$z)E#F+|@|dE68wGPlDU?0EIL zon@>bM%)?<6)S}#5?LMV^%~^UqFLSVNkghCp<*bR`pl=kBiW`UkE03R(4|9Y2pPv4 zd?mXqju*Z7UYVLQz?rQ)WZ7JBaAhZeH<0~^S-X6nU79`9G$?(;Lzp#jpk+z1H;_Qx zBQ&Zd%JU&^sZDHQ>xm8>AD&leyqNQ&uyf1WowJHlMxF_)sc*&y76bQZ6x+&cWP-cy zx#KzidehQ^#-A15GOJEmQof;Cz30g|(w*XY`zLSewH{=@=LBA@0JvN?3VCIz;7k z0nsWtE4(9qsvi~A&9__{7t}%<7;=1yD^e|#H3G=4u-gCJDYToNR%E?Rh~78~oZIGX z@DAWM^-@T=e~H#1PP+9xZJDFN#CyoUR6EC7!n;yj+|e?^av8;D4cxVXzGkcpl4bS3 z1KS?jfD7%Orpx!O&Fb~m2d>>&xcWM6>`tN2>yc73~pl2wDHA`aIbnwxP`-9^ovO zSUhOzvZlo8irju~IWY$%_}PM}8Evg}Z_;F36s@smcUakI<%;AhzCr`MnB_m8AP&mW z+FIT2dtcR2^_v0gZUCn zLTZczZ0l*O+qsK&pxbd0E1vHw>x*!TjucPSc^&@(%kwt$iCv}&pXO=&q+uRw;(_{F z*}KzSifrM)XK<-;WK!wXY5AXAGT%=4DBSP6E{zPL+Fvf%Do){Q%xMq^Ruh>}V&FQ_rl?q^AFlMq63fU_6P&(}W!C6#UQ^ z2_2y>P-t$PGp!I$#S5!_;0Qgy8QlBoPIn?5G z>}G1(2=z`g6KdCn^!4#{zijX2H^P4UKhyyWTu{>lvhfMe(YpAr`pIQ^@$A>dCzk+g zAs3IC{|pHm59A+>M1TuJ?5IA+KJpgM&NbLXE{?DYeqQK%y%5Yo}Q;F`gk(k zZbUGqeXNkWu*8dRR*N#inS|25CV?9zdnt&q$H~sAjPiLau_UG7gA<8G0&Z=Ztl0}o z`J5uOSha{Viu!O7O>H*se$!$uff%3BkX#e?RXDG_@ZwP!NWpA0InyYUMgGn)q4W9b zRT@^aFlE=k-iFk)`L;V*to-e|o$o(HkcBA7^QEbx)`0iwG6}cKJ9rFn{*%YxfBwLK zU}48N6q*R7hArEmh}Tj3fFR3pC@)k-cZ-->l!2Wr9%RZFv2<9*0ltEy@sOP zh36nHfKmP(3U`m%Tz{g3vDH=Bm}LP1%+h0)RX1_vDLlxvA=Azex3 z>q1@_H)i-Q5!7YOwZ}&@H-(JrsKXSlvu87yJY_#`eD2M)q->>eAHm4)@+31)ynGcd z=I*V#~fpfvm9$ojQ`bV#* zYd00nh=KJln-OWBwU&wY=O6c^4HVi&pC0Sy>Cn?3eAGcRkS9lB=o<~viS9{2`z36d~6UEt-S^S1JgW3QPVhtk~%m#Hx}GR$aw+1G%D(!}Zk zr;c0)hOpHm!W@)bXrBfFI8xhGD07I-NWoDNqhy9vcqXtQCvlH?ku<4(+LDYD1N?1R z*1%P!z6HtE#}dt=o+F&60gjfTSt(vK5|VDKjkgx)u^3>8Aj;^ajZQiJ{WxqTv7I# z3D$!BwR>pH09I9;yF3iguSEvU`ZCo{3a%E~ft7v}5Y8vDIy5Yo?bV)4_CJ8l^_D6M ztc%>*#y$$b?U>{ED5NelZ!5P@6pp?=pl!f_ zP5F?vFGX7(K8e+@eM#a6d1AwvCfpe7P^U@R$^N+A*oIYdq1qrkuBA(w8u%x86+nhi z95G@&oIF1^fw{DL*Gf8SL4Rb_>~iIulA1C-HKA@H`~EjIbg?#6oF=X5Y}?z6Wj+n) zb{cj3uSN8&ddc1@cO^uUP(D~g*#!w6SLtf^q~IgcA_MtwS;74#5c_vYfRlTnD{WE2 z&&4Is5AR(h1^_b*WVfzCd|1V9_t9}_M_@!X?cx`U2-r4Z${OXVU@gPqd2NQp&^P_D zP6%OOmP!jFP^0X0Hge?`=e;8|z3TMkiIR}u=SScAGeK^JZNiT;m|1_0UiflDP0;wr zPjTYzQ4b&=6+piCDr1o;ZlBWCVf1h?V7O{0^yZ9TOUBnZ!8Zn_YSs~{+p-FT0YcyD zYc5pV`v+jCA1mIaI3+`P-WFuxE{@zyrQ6*!BbvbXgHq!Ja;VGTk30yqAQ3RqX=%g^ z)_j8!v{HdP2-5VlM;pz{j3mMyq$$My^zZ@|fg@n%Ujgw(a=vLZzxOZX&TOA){O-BT z{v?923W0F;%0CRx)^&BzOVQv_QMUAya%zVZx3W3|7=v&64aNGF+2j)gLoz}ZB(}Dr zA{96K%=7uu>)csSdD^~T35WrC^^Iq_lkPr3T<Fx7j*(rQF zZC(aH20`S=NR|#j89uukegW}~5&r_uw+7)Nk6)FwYd)?dM1+wH#uJY9IDD4!Puzwr zN$_byCQK8?L@rI+Ts`#r$++ml{8niaAWrBVEcyDc^_kMyGASVLOtq>3IF)?1aIB9!qAy)1RGYxb_*Wg`Edu}>v`<>A{mfQZUj6dARdaoL)Hw1owsk4oZ^9Gl(o|H%e;6htDI!lc zpf}AN7v22j&l^A#F%gHjBugKO9|^8?0-r?&M0X9l{3tcxt9ZUj0Ln9oXSe1mFUnuW ztBml)=m}4A1tM>V^b9XM!kt%KWtz~i-r25AeN4MLEuFZT;JyQ5Gw{1ww*R?=yE&rf<*CABX zT0>>?$@Z)*@4%nrQ(Pt`699BU8R+V&m0KnR#EcaIe}*Ak;m*mWQKtXQVm@ryUs zBcy)+lYYivf17dnOZMw{u!$Ip*3nQuPgBBQR7b+x_|U|WzQg`U#(Tq3sK0iwJm($X z%0=N>K*v{ME|k@1f91tXGN0z=OIn;#iqm@t6H%@gz+qN<61}t@bu~cNya{Ob`o!+# z(DVtH;}0zL_fJ8%fnAgcgV&yUmn(X^bHh&^YJRCT`+K(!PmC18_|j(r<*lGSIcE|qsXcX8vw)Ce@6etrdseBy;pjb1#v>1ui7onr(_nMVzlRY4njjSP zl(?{YHuO~7k8;$IvZ@FPJ09YQEpoqxrTO#iLY4wj4A*2Pk-h_r z0ihSl^(D+Bx}?g_IhxqYNHBe*Un>M36wTo|caSmyAlj|-w(zU|x-I`ucP z{mfDIhPcQfuzju)L;0au+jjMll_Szz6DpWFZw5+qkQe%pO0i;$GwmPQiX284mT+sH`ARz#x3&W zfGm`}%C0RV$H|=E1>&5v|5j<99PfEy)Cn=ze;nU;ZnD}~<;;^6a@KnIW@ud?lm5(j zd1w7AQHv>g&U1ZG>#0e}i?6hMtZA_;SZl6&l0~Mu(9Wz8P@hs!g#&*-QChEAUUV@p zVWtGV1oKn%?9KYD7Gf16yhnjAyYbs)6MKm`0uj8FTR2ABjQtx(4U#4k;kZ(LalAoS z5LQ$5x`1Pybt+6U14Pn{AlWOfr!G=GyzYAk%)H8y)-MNy(T$IS9jtH(^MGd?#y^)Pt(<+U6N z(-w)_VNVn{XW>|hRvdnaug?7+vvik@o5*lb8}2poWKj06nX`cWhBh`oR(U2mc8!ld zn;e#qZpwJy%%nL(zVQPCT-4L*RU}pWskVmmzf+xdG(llL1&k}YTF>&VW%t6E<&4DKASkG1mqvE^GAm*)X@0OD8h?_tsnJYS^PYEhS?95c{0!k zI(%kdX&1~`x6m#cQh-@q^xB;NC8|NVQC;TIj|1yhoc#0lFC3M+bZqm_wSpYUd7h;f z#3;zVbB;FA7@zD0jj$`E8SJl7L=GFkSK_>U$RkmoTcFZ5v=>S$&K?e_%bB_Svaj_c2iw)Cd?>( z-2%hw-$c>^tnF6(fy%#}xYBL;dD7EzYu54zOOt+C^%4^v^-9x&WvT~@#7!~F=U!0R zmwI9BhW}f?8hJwyVtvmNRwBfRCC$?(BnFmgRiHTL{=OZu!6xY&&}j%oIHCSo8f3?~ zhTqfxtUe{XmH#-lYs>+eBJiA(JbX(+z;$} zu;`^yKzo`7MuvXLsP8&j2Ti?ABxX~fAJ>sOD=pO=*trI6CG5JE6E?;I{TLaeV-i6l zgbAY(YVY&4J-)1QbCn#A{?jy=qdo6I7(DU-`{;>5b`eeOl6h_iFMYV2Vu@LX6w^IM zWyJr&1!)Tt=Y4bSDE1&v{z2WbSpi6WvIGJ)o|J}h|110aZF1j}put^mQmOG`LO2Z; z@g36-OB$4wdbDG`MjYofEqW{mVYP)1)o-~SzPsp3m3C#8*m320lrYxFK4aWH0)qHT zi>}ozyxR+WOJ1-*zS4rnAS}P4_y6N)t6+j~jYP&aP1CwQBY2$b)-dy`*e0zkII-XV zglvh{^p-0)?5Y+XF_=_xw9dH(;>f40U<3~*myej}1rLSGBC{p!4PS2gqR^OqP6<|M z3Dq=O`zOW!CHJwBf)=)+5v?|hKM+l;XoVzNAG$&Co+**q&otMSmKL=2Y=9+YWkDG2 z#yRD(BRH8h5;|DwPS6OmZ{y1QCH@yvK1+NH`j^&-Avb;tC(&xY8%iU=a!eWT1v{v1 zHdP>Bq@G<>g-kMq^EE0;yX4}q?qHqND+~#8XApEVeeO9UygXb&`&*$fL^eZcFwh zX<#uDEtZxFhs9&J)^{d->)fkGm_FYk@$s5c;r+#!y``?61`T`cO=Ycp z3nSAgaF@DT&uAik&YIqDo9DzSffw)YKj%xw0|Oy6Mz*3SaGhA-i$|7LYuxllrVNvf z>8@N*O#u!gPX{|uJAyuUz;AthZ2at{3k$xzV`!P&KEF&mrreFYBo7j^>icA3O$dqA zh@t6yuD=P+FdsdDC9+S6!GqRBhL<_k+D8Q&QfMCk1EB;sJjeIQ7gsfMD5pYzf zMmVql!f&e??UM1zgJ7|?V}&E)bx0}?u3C~BH6z`!UI|b3m~kK4_`kgXC;>(~C#WO2 zadY|$dCQO5U^|PVteR-L_I!&RGaMF3{ugV~kl&5I6@G({Nbm5mFMksH%9QMSy$#J< zqUk)7W)k*~jn;|RbK@rv*~awHnOZjr%WUr*O<=5ExQU7nPhJ?@n5IaZeTGBHKG~c$URd!1I-|PYj`2SU#f% zEOT{*vmH`Ann)r^t{bt43GER#bbTo#)Wa__Mi}3fZtin*QoJ%Z>TD7o*L=IhngW3t zV(&W+5rYYKiCh-%eH5YNX@`4aigSt1p~)9Ovr)=gL;LYcGyADQdRhj9ymt&ja6^OR zJvK?X3Gl^?Fl+hMX1rMDv7ZZgSi+T*YqTCSmxXen1K~XBq6}<2r3+p6Y&`baZ35P= zsh*CFCm24V{2WtjZn>{wTxrhTEiWNPG-OD$&-0h~)cIGK;oq(<8qDH2wl4s0`n`Iy zfw9Z(CtG7};d?$Y2;lC|4 z*A2rYiKpx&&<76lTkCM41<9|OfejU>>DyyX7OU_{!BHcl@5O+h&_a1uHoZuz z8IgZ`(HfyFU8Zxua6U)A*NaKj;5yq|1`jjr8b9w0Sfo7*d%XBQXuND0)Rl^wD+6eH zl;czCmm^zoTQM>8-9}cuiE5n`0ty=(SSs7y6)LwUU)c%L*IM}UUKopA+zK6}@5Bnr z(%8Saz~O}S-0Pr*52$cjqJjc>+#4NPreRSMAVX1; z!iP?Fhi6-NUuF?^2aiIB$5vZGmy?vcQ|-3VhUn#>Pj~v4LH~h80^xmy;f@!o4Reoj zE^qZ66U+5_QWrLM<&$oRHhzcU)_9Z2i#lp6*c~;Lr;hUDSA$A^GhrlpSQnm|hE-gp znuw0DysAqmU$h(YyC=~nYJa2ics*U!dakAP;m>{E>M><6`I_r(p1zg&LtWj%VJ`?c zyJi$aDvYzm;#J2@sp_HiLzQHu6L&Y z%^rpx`Wv#gsIgf1t+Rt(p?8t*I*$7R?bwRu%GGhR%WxJj*}r0i7Ujd!!dkVulW4&m z);uyPfFy)xly*_mE@5#D{Z|68n#T!3Pq6Nx)F*8{O z0m2ooV8#~8=#)r;0ML~e@Z-nyZgM8-lrgTyGz zq&nEv@Or8wK(MGJSeeLCgAYG}B~pVkZMc0qKrtwQDLe%YNFQ@q!0S>XtgiNh>t;`% z^WI2G^7}F?K#Imn6nH*1UExSd5w7AR@xoOm-!1Qru3Y0V_1iKIRP zsQZuR9TT4J&XQJZ#O;9Yl?HQH$(lDC-H^Lgy}p_3;680*+)PP71*bv5r`rUdEomg+ zi|SoW@4Ybif|7~TpWO@NiTZi*E17Lnazp#yTEe#xii?cw3RfSLb%0WbN$`;z$TpEO zo#BAQ(KL#bbN2#<-Tfu}QvH09C!83$KPHoI2)F6(>}~s7K`Egi6gAf_qD}8b()2JF zh98Ly@3YgqzO)$a15$@G4lBi#JMuyy2qI4q27Re%*+I|abktU4=10?VqKE=PFge%h z&aeKhExWKv!}{29?MkC)QII6^UK3)KzN8v*_SPbW%cwJRjbs)c)(utsT^-{MY-;;+ zr17%=(Enjn_@yxY;Zl8+E0ZCKg)~BxticihxH&dioDF1=v|lI~Z0BJS-o?bf&iLez zHykovWo|Mz%Mj8fP|Is;$(s?T0aV;}TJev>UksA@wkv!iE*8swS2#SA>1Qz>_ckj8 z#u{$Ohhy3ElXanjUDATzr8%$b@#n?ndiB$lsf^g4<03>Z3m1P2{lEADCJ^K4fm^1% zCt(Tb&8aGFC$rk9K<(R;NQ*RdiP$6EL22r?j@K8T-CwA}YEhp>F?Ddnt|g$>Is*b8 zT05Wg1sS|5d)LF0Cw)XI-mZzCb<)307_wY6MEP`I`8wN)(48o~MGmMT*w%M!*L*n- z6;7z6j-lAPR4|p${JQme^!gGoJT(Hoyj^xo%mN=5c>^xuF2`S=m#snG!O}-CuBME!=(!$R< zG*4|s_&xksodyy31Ftuo&z-w7+#b{$B#fPpvz5cB{^v#yEU&wrFu~t7rZ!pPuEzJ8IE8%_)$pCAW$Kp1AdJ48{|r?lb1Tro4@jOzeE# z-FDW+4A%h=`mdgzQJ%^fT!m$hKVN0N3JB#bV}uR8_KgSN_(`>8&0AJ0Ge}az)c)KR zh2MR>9)C3$3-F<7D$Ti%DDWf-8nb*!toe-i_l}H{U?4o(ihJ;IFGi~HmBMVp*99lj~oS$#sM;i^)(N%@4L(*!0*j&Cz)^d zh#8M1`PouqC(*=4v}N4q0b-9X!$}cyRr>>&CbZC24DUN@6((XMqk2KOsgTp$y ze5HcCmDF>_Y=%=3i&6XnV~~FEFTX=lNaoDAOBJ#E<@q({JJ-84!SFo+<(=!_?2{y* zaWV|{vBg||WaGt3eq^_zt-4e1wt`m3%3r%{hRF8yZPCEa?s2BeIIdQR(M(Zn$QpS9 zw6XD;Ys7K3xpI$7GjKGUx1?(L0$*4w+s(@M@71T_(#wGH7j5bTM|y3C75Y0;X6uLK zaso8c57QZb7}2=Hv!Hp98*-g)2)_*ohs31FA9wEV7xmxX)xSP$(4(nDMFpT2tEI`Bm9^dQgh<$*QR2#Y_%)5&@u#06l`8&LQ7`qK z^(_l~jqX-j%C92j3>49f#hztsT)&%H@yXL0TkRd#7uzo*Uun|edT}1A#VvGVQtuDv z*L@AghG@5v!zSPst^+_gqqmv5QMz+*GrbzdaVki{F}lu#Swt(6(~B}de%uN7j|Q_)9OL(baof^}fN zQLE^50Mu^1qz2Dk&p)j!_D5Ov8UPSG3;6HxOxTJy7l~IC!#qb<9ruj{aY1Dt*^|4s z^c_1i-Q`@R&i#x#m~BMv-e@ll1^77Vu9?f?f8xI@;AyaXcpy)BSt3brgfS+S|>rr{!VGN&p)Y(9RAuSCro< z#W8nL(`zSjH*~@eS`!bYwjyN&rI!1F_cEN1dUl5P^G7y=pP+qp<#ml2wOKNm zuDC0KvP@?gxlSAyx7CUabt&Sf{itVe3~uBL@%%hsM|G!tNc!W9>fc2C78D>ZUUMP} zB<S}UBa+rzAvlFxlI0AQ@hesajEw{4$nZlntLm)7xPuM6p5Mn zc6i+icoG}%oEOIHUx42Nmr*IJ0Z7>$$KL)66w7qBqD;S#CK$gy&cBUc=In_Te&L{T zCR1W3ry?0BGJBEKk6^!S+j1OFXF}yny9cAL#ST%H#oRyO8Uy81d(jyXY#w1sDTmvg zZ?a2nLYOlHmjjwxb{@1Ojs5 zC2^UJqEaURGKYHE!tXGqzb+ozDa8x{IqhYvXF{R1tj?}jI_Tyrj8Q{+LV`%VvXN4-G?(d*WHSSBLb_>`$Qfk7mVK-<|~pQVT}{%o&jN#VO0X4 z~F5%#OkG=TdWD(>3CW|y-Zm>?uY9fY)KepFd;s)1NA>}_b+SYYHn z3H!a-qQj;C1IW17 z?^Vp(XsT-K0bYC0zfvN+@MUjJ=Q+1`cXo{achQf41%z9C@Ro7!+^wt?wN^j-m%GzN z%vuk0&XntJBwg#`izdNd1;7}^i~q}_<*u!w%x|k*AydCfStlXa0~NT`u(6R$YG(IS zB22N4Nu(|O*^HUX5n*)!71kl{H5Gw#JGgwt(R2pP4ino!yjZMZdZ&gEA>lPd3{)S+sYiVqv; zcDvBiadG#knn2uwVrVdMTlW_w$*Z$hS+e}jJ1V`bxYz*}@F!6OT)CC*@`tE?w3#El zluheRPU0tiZj?qTx%Rc@N_`t67aG)H(9Pn_zjTV4z zyY9E2;jH$B1+o|x!_AD0lVAPiejwI49It@AHo5f*ua0brZ8^Cc(__9`n5Fyac+rKG zFvT*3Xm-T>>j|pxbJcV0>E3oTeWk5P#K+MQD`1MKgm9trTWe7mW6T;agWBSN+v%)+ zm$>mEnqURs%}aP@&WN2Qu(bJSffch2kSlmlmMJZI5M15s3ZwZpf|r?god@5-EAy@7 zo-WI*sW&5vZ|=){+?Yu;5{x#IMiS=+6Y=WefYH7>KT5)CB?(h#Eb+YEPPp^S@Qw4) z3U&BEqugS<`nb4P0nti*{Wah$(H3_s;alsxeB)h}!a3vNJ(To1-ZNK6vEpA5eHPrH z``4>DW}n*&IJB()T|_D122s{CpQzF*`Gr0{Cz9Na$F{V z7RlH&&@jBU7nU z&C}Ok+_ifR?vAQ`1~?|aEo}Rk-VO-+VU5dn_+F$x7Veg!cVVw*sI}FW>JIhlp?6wC z8jWlL;>Sky;ijgmiMV1n^{1#3!-z0y45qHJW`m)HHrQh!di!^<#*LMhotR%`#hYS= z1a;|`RNVfVBpH7z^nf3%jtYMXWETgDV)al%zJoDAqH6jP)e80=-gXcM=C75sJ_9WG zw@`!tP%hGBkPI-+a05t2P5j@3kpB;3Um4YAw{F`OinK_O7WYDNDNc~$#jSXOV!_=V ziWj%wP~6>}LXhI_4k5U^-t2p~oOAa1&bj|GGDd#9>s?uEKJ%G#J~h@+=G$zC(Id;g z{BM)|05vWjIekU99*;Y2<(l&Iz{k6h+-I8dNWxc@U_(&!Y@C9gDQ|q#^Fs{c(p%#a zu(|hfdP6t!)5gadFRTOtjp3!_P?J#4$4hQay{B`u$nNI-Xm8e&$oI30-AQPC zhR0A15dU>m?R7kopU3qPyxm|Br7?UiC-@W=pf50(1Ov0uiqZ;|0|{-uKzfk(R;HF+ zeC~Fx3FDa)ctcN+Ib}SKGuqgI9@6X?i5y>y0YM>XtEL?7jBd!^zcjg*+ZEJ^i&P=$ z!PzUVLA4G_P)n`lWp|G}qlLrsSzUE5@NEOBXI`tbvOnZ-61q}m0iC%lf%<{O69a<@ z`OYDRb)DK4`;dt_&h&eXzhS^uN5tNT6N`y{>didSO^km(p5di_KBxcXToskvkX_NY zW>-2=C&`1TBqB;Pe#7es?pns$jH;5n#89EwzUn`aRp+A>vMzQ8%uoACCiv_?9x;_3 zG&gV7T@{tZY=@zx<(vepW3!&m0mfpg2H7F?mM9C5Ls!zX0En@t@ONrmDgIc28oNJ| zCmE?8fKgcqu|x7J`u^F;QX@-1YO4AWZWZq(oPD$e-_ z!LTuzObf<%DaK6mSC~Jz*|b19I0a&|f+d>$v&?!Zr%9T_aVjZNWj+^Cf7md4ppoD< z8u_pe%SkNEX-1nKH@A8RNxMHf8#Ss`tM{02^VE>xi_-)={tfC(z%lu;qTF zLDH6?4)8y0)acF})c&QcM4v9va5)M$CBry*-by_LW_0hlMuw=CXZ&zEvuFsTq1XyO zt*NQ)=5_=?j{s2l_0O(K0q5qmDO#Zhc1pEFb6C{N2`i?Gu1<{81f|!5E#I14vo7LY zP9HRx6ueYi7Omb=T&M~RCi;!Xip>uuvLrI3>;li%$|We85fq&WmTZwp{OOUDQKnJW z*;C3qHH~d_TXgw~N6)#xM7>N$avFNI&CJVn*ZFDjn)CafDFJbS0g}>O#>^V6I8=U! zzTN&(tBF#G4|`5QCcqnZ=pyoErQOh@c6be4DIFI1t;t?<)JvCs)`plFlcRH?M3~rH ze&4#o?Jn0jc^7Z920!OC$hXvwJkrd~yzO1Y(LjL4p^x0)b*sH%6xWft+p#wEsv&Xf z!E?UZ#e~=K;xlixk3y5fzC@Gru0azunFn?hP=JYnDonrKt?%M{90GQ%A%OeKMa*9l z&jpCiwCz_ZYJB{K8kD2wj~jz5oV%Oh2EM%OP>4m}pdSLVLD!!w(cn7I^FzQ#Ea&UP z<$~l!8!=f-CHUr*4?=N2pD7FZ_{lKw)0Bw>dzF+LXp7BDyTNKY06bVl%#I@$qKb`U zoPXZ&FwKHHnHD8^bhuClTrdQGvZCCozTk*c)qtMpnbwJb9pI;-Cj`0Wj0h{)xXgr; zz*ru~J|w-mlB z3vZ~{zHH=FZPo8NzY~S>zyV5x^!9WW2u;#mGK$1gBOkcu&= zGXX6KKmpWwLR0-r;jd^MG>))T-KF0_UxqpZfCqaH-1zZhACH#ac1$&(qOM$^>n8#a z@GE4C$wIn^d_jtT!hX{th(HV>#zVqHe5?IVR{Q35NGQIlbv4BdN;?-)k$^cbG4^NDDz8@&F zKfmai7*CJUjx-&6Sje(}=*+0TP#jd#YgV+@Y1DWRI|`%fvisSGhGr(o^g)uuj#0yI z>#wC5u3*HF_*J#QUmon~A+*^N-hC)8=CAt4ktSNW^NX&M>J$&VYqYJO^C z*N8#3lShu*?lU%0<5C35pq12$R6$g}>{zh;1vLL^Uf{iN;djAIO*<)rJc!Y}M!tu> zoA99e>QBj6q^iW%H&vVCECw01!$HS4oxK@67K|{a%q_TIAT)G?`*b?v%wnEL;~IU@ z%x5{9`JYVaNk1YNE%|=(yI~T;C9GaDPhFrBY(XD=%C-Eo0$%Vm5=9voRD5f~-e7&j zfItAQeCiJN2^SdbBgdG1x#*{kxf9vmMn6055c`Y^)tx;Le||cCjzH48H{d#f_YO6! zm)rA%*M*s=yc%1xpm{>i4`FBim@5oIck9SXM?TL&PYUS1wE;CqAJD!wvIClG3SMru zBKh8oen+oLg2hAFCBK4SP8}_`Tnw#ur#yO4dAjWnb3>y*Br+$)0QL$vH^y)`lY+KqxCzbpl;4o(52rjMRo?{f4;(^Et_^0GOQ^BC z@8R6?pt_zHN%kpI&&yCz@4}>y?BLL-GgF`^We`u6W(x`gWu(?co89O6qCiMI+^)hP zi#>(dL1%-_u0!L!mNDvkd09)P@G}tP3t2H5C2tpF)Qi@f1VSNrDz99I=Fj<#;HXx$ za@}?fX6Yo*r3A#0G^bBOugFEyZh=9)TsQ?Iz*l=8H1GGhkb9$;ThB4=H}u7;zb|HH)^d-FrbCL#I&A z@jf)`#m}vbZ{9VZJ?9&=k@-ASoi#{yG;68aNqH^J^`6bzi+P>=lkz`tMA=#xu~?9Y z|7{S+jx1ACGGgc4b00>ZC!c94)Zpd2O zec9&$^O*uPQ{6g*u{`afD9eDyca$F@m-?XL=43y4S3AQu9`_Zdovn z&KCy_T$Usb-a5br*@p9m&h2+v$@_ANDywO9E-diq zJugrnW+ILaDNDsc68&4PiTjNn2k7=RL&_~9hRzX1=Np-2(^0;O`QJY2&5ygnFC2w)_P*H7r6b ziSJ6_;neXam+h;M>(^{{2*Sxc)URk5u+IAV#CCe9hoh&RRetP=%5^n*pSweFL#dU6 zlN%VHTMI+UYh4cSID2ll2OD4`K^g;_ceIjjh+7sZQv4r*mL@D|EDgsiO8j;fD18k! ztE!&z*>ntm-sf)&Tm_pMAPT(>yRwJf&A`r9KE$JB!D4ni5WpJ=dNnQ-7DHGR>u?7$oHxpBG4qCjl4r;*`!a#WBZ)8gv%v87?K zXtKaC{}fe#D&P~!EE>PY2s9ovxiWq3N!D5|l;PHeW{MO^fh#KKPnz*Z_%8PDH=`Ly z+(Dh>iTvbKCIIoys=$lH5p4Vd?qW*Gv0UvyRIK9b8TBr#p6(Lz{rjiV=KVx!{^Ny$mxV}<*x>}O<^gyzR^9%| zV?*H}K;q~#z{m@5k@#B$f}DIt(dqj?9wqXAiz5ZPlO1aA75~zm;;hh`l=Kx<4aZ z;{N?yUzK?kcFqnRfWGZ+uX}6O`b~K=K~-?EwS`@=s!w;&TX8(HRI&$ z6BoD(OM?~*#rb+FbX{eGyEP~5#|k=bm0g}M4M1${>25(N zqw4EN9cIg_$iXd`Fp)1$4{=e0;b*I!o9OdP4C}3UE<_o(SC&oo8Nw^}j82buOkv%n zR!6o*mE4?dOh=9n>7Mh&$zzGky3xmPtG47q`V=GlaHwcYE7=+ioU8AO2u5 zFUF4q6m#jP%2J~wXkU&k-<*FK=M7;NL%amHj4aVP8wTE0sY`1s9R1rz{TqO8{-E{`hsqY~F z&_=JdkdMLDZ4N_vFy~1pz~r>$JX4A$|8M_5&K6a64bDN0i5!|rX7l;jJOGIUxHLnE z7~zG0gT~;u8cS&#wZTHm`C`?Wx-WkoL{Jjj@&Zi@OJFzBa?Ci`ia`3*4dam?#@p

    SmJcxQGPh}cBvfM2_EAIA3l7Un+3aKY2e;Ui5qYU0?2p7uAUbBDdJVerA&S?nSG_Ca!pu zt}BQWAasY)G9j7})gQW+Dw>gzQPV=MgGbTm|6P{CilWP$=RLyfyvz7j4wie<&S5UL zEE9whJ4?sQQr!&6YVs^+KNI6Gs^Vik7`KDPEx2;hpJ#Zrk%bc}$e!sim6ENnv$UL! z&1cS4ht;;52CEg{bEx1)Bs+f;K?CO&KlNu%Kqb5VV2)!N>W>iD%CQU>Dixn(3b;vg z3Y+U~O>yp3a^R3!pc602C%JOP2r1=tuK!Tp@dz0JULn8=KR|2sIP&ArCN6~F7K(tqJPcPcw?=1 zKIVUIN&i#GzQ#*Eh7ngb8z@QFl2TS5adm1A)eE_x5quE2=t=+Q!p3(ZAsUH^iRq(e z3?X6YYjjabTUf@bJB4==8I(Yzu253wJgX&nj3Y}h07gW1_1dp>^IV!$2I2sOPV@Sb z2E_qt87kpB$p-9)`4QGAL)e*|{)wMHVH+1en!n}Nq)dSiM;v0Dd8*AY8#-HH*9y{l z&uQVxch;Q3IXtum2r}Ht=PHUyuZ$6lu85c2r*tks)RFv^$J*zvjR7LwXS|a{dYmjj z4Q*FOT}{>*=KW@Jf9Tyu)Op(236uPGhPmp13^TOa=q$HTC#FYz3oR z(6fbk46k46W}?O)h_4|51T#7i)8WGME}J)FXSf*~<0?MjFp$YUf8FB(vN`$ZLDKt3 zPosJBVYPgL`c8tr+R+key;}@O^!)Ftafyo(VQ7t zki70KMHQF^^O<&_S8Hse|RAk1JPd7mp|jiJO#6o~3srM{T^ z)%tgA^FY{=X#=<-ul2t{+W*}ya7{)DSF!H9B74cnvF56RMVE6+yvY~|(KH^YMXO1QnI(4JC52h^@M5NIb&hf!HT z%9)VdmQD$D2&HOqQ_)-qr?(w#>NOL68kcNyr;qMa((a=JaN|}M$~lV=e~d!UY5i9h z?mxY-f74U9S|W0NAg7w3)Tn-NFa`4+y^SIc`kvBd__I>g_d{IlWx-35I6`n}0Lm$3~ zcFE&Js&TFpu~JUKOZb;6f z1nAa=Axts2d@8#A^+{g{HKTQ zJXct&LfjH=DAACSPQb?!ytg-^jid0A9xL5dWi5wI>kjd$O=}GBVXG_**&9v8Y8Y*j zkO9galDEHLjC16wLDv=TG?zE#2Q0gts`IfY%?DR4^#%<~NF3+a(eDrI|4_@d_n_?# zZSwb=WIzlv0>9m>m0beWaR`A!cQh5ua?2MC3(@FLVa2)XO&WdXEKt`i%Y|67gUa__ z5K>h9&%er@69V>?z-NDLsru)|^nX9-zJC?PL{25hrEEbZ_Jfi74;TM#?3ef|)%C`0 z%#q;ND}Ju?C{-zSaD@)V!?xy!*bLNRIwwaBBB)|tF8ab?HcFSAgi6+`$lzxV@Vk>= zUJJPxho%i!rHdR$R+F=i%;M0jg>}mr3#S+2+(v7D{W8+=ro6av3{+Rc9(9qmX+&H+ zq-nE+b(X_Luzv_K{^z# zqC;c%Z;<-c*$-A*tfymjm)COb`h7A}E0h*8IyY8g{IjWb&dg(S;3(Bs^s5ct0n9+H zPV0~+)A?l`78lYCvb_M*oUbMXnW$)9=3u`gU*o9wX6b3EP@9P(5P93v=zmID`4<>I ziN$jDe98Mc?}kU7$J&ATy{HQD@WW-#Ai&MWf8xU18q&RydPqgP@N>ky|`SM%h47Q2V^) zA0^QLws0T(K4M3!)S=3QR zaA!t@|GMX~%0v5RRm;Tvw2#{V|GTYZ*OXAg)yc_vx+dutGx+Y|p>;Z3%_D*s>zapw zoj?w%TRNW8ud;&1whBEaME}$M{~xY{8$p0;HbH;Xj9(i2VuqE>0B9h6POE&twuawP zpsYOz?{ucN^p#t#R|jjKCRJN`UGh7*0aNo~8~W+Vh$9Qb_=-WThRL7smr1M(+Dp33L_rv@eW}oz? zo#yPs%(!DnEyJML;mm4!{c-Z_0GiA#IK^f`G@P`2mY&Cv=Y%&_HQhbp9d+FzA#6Xo ziYKeLSGv4(ANMcO`QIR-A1t+V6B0sJAfI>f!Koxdas?;4U_A@pT}yK`)7u;AQk%_f zZ_s)UW7Eub$E)ojtLrh&JM}R>0hx%drg~-|UI~~3W3c$pQ|I{Fva~*8ro?!0m*`ZV z^FB5C$?MdR{oY8M=7a-QaU1lQ~X`^m4sAS7Xupn{o^sLi!I&EEcy@`d;<v)d2j{T8ucwOheyzS0w3Wka-}_2aQSr{KXTHXcE6Yk}3vNu2PBXQj}a#N6_bR z&#l9Up6Kq4ao=5VTdgWl>C^1_yZZ&f>3+19g>f~8vJ4fYORGkqh@R;%8xF~KF`v^i z=&?jeOByQtE+cW(X$()KNt(mBhz*doc@`s)a;-0{7Mdg8<=B>l zuBvls6gZr3lr-}?`&gm5tvKD=hc>I)t%>L>Vf#$9;9N20Ek9J)ow(;U$6z-r<6hKz zqD!PhjHEdAN7&q7C(*a2A%^6Oi&7wj6&Knqw>}n!rGBY5qft?6hIo z8-gZz#=X?K7g)%?@Ee`T_V+Q7A7=-q=gNYF(9zX(=mS5j4Qv^?e;p{oz?GnnG$~Pk z(@wuaVth&JU1W{(R&N$@SWMe2t6qAjjZ7VLUr90Wwk_B^%Y9f^le3(x%4MLS$x<*p z-#E5tm9Dyj24SGABX2*x6dm;TFeQeak%P8Hr$DERjh`e=^rpJDPqSGfnft@%;FR^* zl%jndl%QfeY@rKRBBR|}-J~GwO=O`j1cHQDHQVb}&jxJDh*67Ak@d-L?&<>NISdUc zJO(^(KyZ#gMp<66PHUKWVRopNH}XpH^y$xlg7IOH7StlnOIz^o#od26!v0b29V5K# z>8F&HC`Er+6q+2!^La>~t=w1)^L67V22lgKryJ6#A74Xv))lKhq9#Pta2t8<1PJD_ zh+5GzZN}Fr+>A#&+(Q^t!2c_{*D6E{PlrCbmTGa-s@^TBSwg9%0C3Hp4o_-(EAYhO7p*EkW&~>d(Zs%fjJ|w>S~XuQ};e1BDip`~m&JRq<^T zcM$Zr^49A&gZbsa7Q}JWgDO5qAY})P8d_L8yU!$+EI+hOQ?XFdXP!6`wY-7z=Gv6~ zNlA@nQo}Z0vBO#7CR_SNDP7qpE*X|@(d0f;;*FXkJJ~dt zDq#Hxk~^?>uA}wSzU^kEAEXfeF`nh9HNJ!};;}bz&mx!0T9j1JENfNrY$G;@TX|Y- zD5RIv?YGkXyVO##7)$Q3f%=2%52h-~hIeC=E`>Qyj$79o6Ri`bLi^}L1}u6B)La%F z=1oD?0+;YOpU;2uv+N_|bQ<}pUEY-GSn_Z$kjbC@wWGm%6Hj_FfwHb}jAC%td|C>#nx#DNF@Iz*nccQ!Mctm;L@Itti#Y ze~N6wM;*=dbyv|*txoUppVQS(cp!}{u@D*apw6JAlGS)!g6rAqu+^`VphxGzz#Cnv zZ*Y5tWNEkkJ=B!lAPY9B45OWIpIpna?=B z1MAfWGeN{S3%Jhp8nY}z%Vgg2nLRV_2<7d(HDD~~IAoDo%2*++vBZPH2C%KD><4Zj zMt5k)mKzL=XPIYfEQT?e!zRGXbF(}pnsRaS>B+7>< zuwAGvuitNHkCNO~8f)(k5B29;zluK0yVXok@yRiqIw0FgIu3t8xiWe!{H7;p_GJO@ z^$4OYIqHrU+hgYJ4=f>59o(Cj=Lmx>N{xFbhWQ}fLa?LVun>*E%x99D6YYpF3pIRe zc{4jDe0eKNyO-1A(s-4Ph2ma>&}@hxF@8~U!8iVzrs=_2hDa8L)w2y@kNJG9s9G)H zB=YV2%33Sf;%aKzLd0ikSN%}0el*b1c3qYzcUthPkA&skSKij1_jyiOrFCjx=bwLx zIr%FPL)`OdYj}jHe#>q|f%xcS@$G8MAu;8Uh%|vB6a&a55?jN#uE~KFPj8|V(rKsn znpN#tk^`s*Yri|HQUE)*qBJrJ;cKKD6g?43-ast8h`rX{OnTzd%;bwUia6DR*Nq2x8hzESZVJT zBab6jZu(r(6IXDLC6d4zA><`^tJ=DjZ4yh=Bcm>aY`A`|2IeyJ?H=m9wkO|{^~OrK zP%;ZT1&W&K0;1L2UhH$yx*UE_Po*!;U+9Npl!Q)Ez(UA6Wnko7#$sO%Eiq`*InQUUq3o z8OqCa({XDRR{*npbmsMvz0JX?3+H)5f3_N5XzSQ_UJr^$!-fK`8{(UX+qO;7M`9j0PB-@Dp}u01;UAf#_lg)z(cK4j zqiq|_(Z!wBm=n#x?t_O>Z{KvE$id=as)Jk@*Dkh_jN3E_T!Jo~svxozt2;u0(9tMQ z!LYoZrjtPTn+)xv^K(2GuVYj0?-G7m%z}3AQv)(@y}A7o(?7RmmktXH@iEf|N0LsG zWm-4cJxU~dxatXcqW@^D+%aIy0}5Up`iKk7mE@?utV+a=G$EqZsEOY4f)L5`fqKHMStW|Z@WjTAMfPe9_qCDO1|X~01dvy zBZy$J6aMpKK2hFH+@~Mzpui3_*&1zIY)CoNw1&3uhg)xpvoRm>>5YB2I(|ZccKSX3 zEn(U7bhp4DUx?pM7>cR-^CE&l-}zlb&7Z8HthfYb-kyK7GX8U+4d;h53}1!d%e)O? z!!cg{-3{%J={8qB2lBw-7^dV?0JzST3s{lJfaSey2z z{2`ea*=GVwthQWk zu1f>Dls{Z?KQjfGfMO}*kHCfZ=N)%up2s8UKt1bkExIe};ZG2YiiEbGvsC;eBg5|v zw)DI%RhyhHv&B?Vd$ISN50};DGhEABA4h=3T3ts=OW&HD_SJZu?i`zFtn~HY+qo4F zjq=mpUy(2#x1T$^JwigyQhn|U?C(dGt6fGj&U*jM4#so`8{1?r`JDXv*6zuB=Kz~I ztmY{=E)Uo%vT7OBK7RPs`g9j+uV`>RbRgU0daBHOemHLr-MBpoTqT7o?`I4NmG)&wsGn*AziA{Jls}aBF=0F?pxxAc(F3s22 zp)a*tN#2e}3DWjOk}#-Dd;rAnJAw4|vmS0oedzF5zR{jHvjr#5qAbXeEZ1fm^5iCs zlpds!Jh?od*j(HmGBh}qJ#I~o4m{ppQ+pPsxgM`H)I4nIJv0(eU0Q^-D}-SmRO|y! z$~@QEMf3*pW=k*^_Ss(`JZfd^BnVVL!gC(hs2It-Zy%;Ww( zpWDWzRy(Q%il}|I3b@T60cYbGE^P}LJ%#hCZkN(q)9vR?9O_1gi)0|9o8iC3w!s}{ zZp#xb-j?4S8_Aa%?NsoFM$aRu9)C5?k$GPJVh*TCL~c%69Veqcnp^K1vVU>ANdy`q zQL=N1@;-P_yk+ZCh~ulO8r>|rqjC`Ov4zX8$nfNtnd`nVrK5HqyS*%=uKtLiXMSg! zt~#2{(mZHtUVSjvF2ElK)bCogt2b4^qqC06vT5Gm?myim1~Viw_oc^7R`-x~Gu=_8 zD5)W(C78+4M4`~vYpCbPh+$KDv zq+*p?x>5izNx-NotT`7C&qgbt%Sj*|M6U~@Y!S+IhMKnBO?GnOW)l#*IY(Kc1oSb$mfc(Zb!^4ovDazj$d(#ZN1JFS` zPklRzIy2=jnZ&=FoB1ZyXWQj-nlWb8z+aKBJht93p1OXAS+IpQFXWu&7u8XxC)#={ zz2ZI8($ae4{ZT$`>>6R$M}9chxE8~V*0`+CQ<;)`gUx{bfJ|m6@cbsOfUUi>#JVr#SeC}O$@{JW)U84sRCZNvjDMah8Q2M5t|z9Hc5$$02ez+Ne{xY<4&8GGBhtr zEht}6G$%VEaP#-3;)d22z`pN+o&8J&g@8Ejn42h%7G}FBZQC^pLJ?KYH>Z^ge6is7 zi4)Cp8+G2AKbVNIT*iOcW&^WVE5%`2;u+hbnA@u0xt>q}%P+L@2SL|(y;fVn5h}=e zULMp@j?!LyrB`(>t4vYS#Kh!c)1~8CR7)?q&rPspBSj$hd`}?4BlCIdW6F-LI_#_w zajWWPnWw@2a{7)cSPy=kzInxh8yyzV>SCd2Y%5HgF^SfUh5p7OWqNXHCL?m^_s-4f zW=ap+Z`JZJ9Zb3DmwCCrDfkmOe?jNHo14tW=9E(&$VGPtay;2k%oHgwSEc&a6doSA z(8H~;ZPXLD{{W1Yk)2}d-y2Xws)?#jMdC<{LQidrT)2>cGr_bqGzhl@jGRPlBAv8) z0mIuA(Psohj@=>IKPK?ji5hn)InI51EeVjePEYM_9c;|& z$L&*Q(S3tEJiGM=l#kwKk?aLC@pMLWNqT%m&NRbA%~>AGMH_`K5tIB6nE=NhUWy#( z#<2RrDC!3)PCv)FP+}0lknThw0|rN0DDUU?386~(R}Gb|e^!DIl``x!Chd9jFic7a zb)BmozD;*cf<# zMGs`|ql*K7O;s)Hx3S^#yBT&w_dNNHyo(c>6XNp>*EV8jT&MZN9r`R??6@p5jO4KM zK*es?1D_A4_$*V^@fu=(B*gK1B!+pFz{3PKAhF3lDk{HM$IA||k-*32MVk(Ewj-OT z?TWm27kzFXn=OlG-Ub{bVB`b0X@v!!yFQD06od7;NYCKUYjv|rDKo+fQRSeEC%#f}$(UzDbUv?9|$YR*+Q2ps=YpjQRGxb3RYLqs_5z!Sb;Qb4XfP#l18kApP(O)05gjNN33X@WS2^^gSp~iOBkyxt!)IZv3Q;UQ`SAp(}qcL z#m76DCfDjo%n4!v_Yba0M{s95C#pXG!o#hCPpo`89|0QKa)(UVR6hO>)3gP;3e(;X zyt6K*8)#iX(&Gyqu;gp@Rd^>a&*fq0`H22m;BmKD0z}T^0r;k`< zQ~`8uw%{Hz#;Uuk+9p{i`FLBl5Hh!m2Peeo{nW9eQQNAEe+Pyg#CH+P(xdgpim;tm z_8x%UhM$tB{QDNpT9KaXr?OJfYBrPPy3yjW+*SmqzqeKw_KdjkOp42YK_hLwV6#>n zev@N+Fc*{LHkFIq%o*75{j>Iz=xi}aAtp)@bvdO<^af@tQ7dewG{B?d=jTfnB6L=tw)wY zM3r?6`^x`>Y)JVh{+_miEB)KmqWoNny&!8fpFBFvtt>3rej z=0Xo;1ehV}B9_)SFPpK_Jiv}u@xS}G{@&Z{1WLTbR&$4kEqgtIqRVa|Y~#49R@B9gLA6&h)_G>SL&qqG*w zJ0LZeI3f;&*s{+54NL2#vQFy zh}HNZ=&e;!D^=LNJeW^Vy=Trxd7twX+22j`<>zfBH4HRgcfN*(Vx#jN%V+YYp8TX9 zpjnTp(lqq>I6xc6IAeUg`ewbFDlK!{(MxrvR=2wRZGaZy983GnC#F&Pe3p)b$o;Ig zGA7CwwT>jx$QYMFJ05Zwz0X&RtGUT$s5J#6JH$+Za}l(mIdiQCm)gxECn7p=1t*2z z@-6!Tf*`x&ohNw1c_(v;!W(#zik{%1N4J~f+wDD z$etC78RZLF8h|2=5}gpF4jK=ELkXeJC2P&=T_UT$zFk>KSu*`u@lg}8Xh}Qnzn-qM znJ7HC7AF(BIYHQ^L7ogL7eyRpm-f&ypd;+ji7>f%_p$?UnU{^&?dRurqDZQyset>& zU1^p#?kmb<1niRm{aw#65w}XBV=($mnHmEDyXIt)6n&UX*ltQ|kz^2Az$_1JA|L!= zc`4p74I9S_%sPt#3r}EVYR(e0u^bBH?UOI``bgcs8hMA$!mEIvy5KaDg<7|pw#MJ& z{TLLmcRDpQA19yA`;K(~K_XfGR~Q46f^Q5yGsU-TC7wr$UsQM5$7^hnmF?tZMpnjh zx@X}r1_e)Sqz)t(((Eaj>4}{c#&03DOBz4fl4&v0HZ8+bdpy`sX$f&W9^p+wMTNBl zL?dRg8T#+Oy^F4E54-}hs#{VFEDIa2avgOZ%bKxR!-8$u&_1Cw4%q^;f@>GGaP*~r znC2jHHoYi83nUrqoLXAQnkWCrDJq3&;r`u#)hfnyup12l1A+LJbDW4CYff%U>dW}o zTMX+2a*b$6@lrjNCh4yS48H5zem2c#vclFS!!QR$iYTzslEsD${Sp>%Rlhb>Y%fD@ zNiGU?6sgJ7AoAnWV1JF3ECgbU4UR_h6v}%U7yRk2|H)Zk?ev#KDwzdf6u~vFb1Rs& zwGfD_mZjoP=TBV|8pOHgRN@t|v6JA7#y+r>6+7zU=)c_?g?FPFc%E;0C%2k3?@xFfH6^2(q@6zw+4(g7^n(x@hj3ENQ)ySnGJ!DF(Jf0XM$hl(GRC zVC5>8v@1b8Q~Z@OclH|*Qc4n^kd=glZ9tTW+Mk7i7Tce#-Cq3$)UeyEZa0yx6vP!t zYzfrk@HTwO;;gLoi_<=`!04fcMs)O&BJB-k*zJ0IH^md%ZI+C)d3yO9zg9xnQ9i_U z~m7NK8*pnJ4XG{{Y^OF7d+fji2ih@p?b^gmGZFAd61O)k^EFPW)^sXXHG7B9DnFLRLd^r9T+r ziukt6kNs+c0}mGAeVoRE$^QVSp-gvow^cJDlY4h+j#5 z5OiNo!X%}@xiHq{(qQTUEr{Vjt`{}>uVBt3z-FfACkJ*Fw&;4(@41m|%lJi@Hs(k+ zXH{H?m|7^EONzlkq2Z$^eJ>A;Y>l2nUq%-$ezYw-eSBb-+kf^-c@i-eZWKu%J4zs3rPpnjxSptv(|F+y$S%`-+~d;b47sn(lcT#WhHAh;cZd8#mN9>635Ick;oi!<5GCR7r8j*blUD z`Xa)VG4{?4Qq6oa9%oX=bwbemPUI?lWbr+3v-pjXX6I%~TwgUGmY3v7{_xz2Hs?!2 zeQz!~eiFGj1qo>AD&1i=-JO@}m1A#IQ`0<00Y8rymcWab3DrV3Ymb%plUxH-ujnnf zD+-sGcLk59|I^-`Ar0^7K_F)+@qd|iY z(^k?ScfPU07jnv;e)PUgJTHL{+SFB}>W-`jzuS@@bXW!Ol;Q>;iCW9^qX^)80^ZJ0 zwNH4HB8{S_MIbXFl`eAI>>xEKx!*F|qj24yId@0AXx5(WghZ!71b%5YM4{wcR_qh@}_`{+!Sp}N) zDM`;e-C#2=Y$zE5E^J7ecQP$ae(V|cqPIuAPLJ>3Jd>|{RK>&0K5ghh!to4rfQS za78UWc(NJ$v5@@AY@-Q$D1VD&<7FfNU?0a!{Gj1P%tx&IbMDY|a4QLXtl}+b=>Kq) zYD1mRm={-_Ns7{RYho=pPdD{rZcuB0m|{5~=y4 z3O@-}A0Wq0aoxrtk5WDWdU*xH8JjPCPGdnac$fbCE`8Awr7Z1O_I;;tD2ERA5q%gt z#Z_Iu_QlFFaQDb%*6_!xSw+n&N6Xbz?SN=&h0@G0d|oCZj+Mrc!LJ&c+CMGI3+_Ys z#qL#CJVM9D{Qdpe*bH>CY1YT!P|LgvaUTm0CW!MP$k;F{dQiG1@BHZh@by(uacx<& z2_(3?y9IYGAi*`bTYv<2cWy%A?(XjHg}b{G+})*+yt=RZ-tPCh(__@fsr_;4oLzhQ zT60E;pg6v6iif;u$`&fC92U@8uraP(E_d;|I~*X_c6h;HcXu$7i_mUEKxTRpOfR?L zEj3IuMZNQ&k*K4WZ?0Cerf_oP1K78s-VUkU>$Z5@TDTnvMQ< z8y*rnyZqEp2W7xXPi;&${m;5VHM4JVE976%zh?ZhGD8e|U-wN5iql)9XnoR6Z0Xrq zrsw01{`#VFo}YdG+->2_(&6WYg1R?#el@-GGIrADO2@)1;}c@dP&C$A3>4%@NH@pJ z`bd#_bwO%D2E0(}TC{xIw)Tfv_9U4rGVX^D?ij9e`P3k$DgwDs`ye3j-zVez;= zVtl;WPL5ZszYKmIlWwo(rb*?#isxzNe+$b-KJW15BHBA(IQ>{;5EB(jrXX~On`#l{ zvPC@pmGA~7?PAZAy8T#JUv+)bACJXw$aWY;g$8-U{}qzRu6U*MYRC~n3m`5OJ)#5D zB$p}rj$=7L{d_0)#TKfPipTDGj_4o6!e993FZR zdB)=(`hWVRk?1>@LxzAx7Akt>KyDa8=i;Zs@50(oGN#k5HxG!N1Ry0psS z?KGdZ$ra6uIl46uz6U4s1{J%p{JLF#Hl6FJzz6i0KTK6&SoCL^ELR1<9iy_6)kX|W zZ`Hu$P{+r@&fz`G!7UG&!W^oN(S4mXRC2e0v8IPL^pL5oO0ph&(@_B{Y64FZ%Tv84 z5a4=EE=c9j^M#uVwPMsMr~KI-Gbowm=>FLY1wO`>zlGfFWBSwy+ZB6LpB!`b*Ska; z^3`C)Q)kEZVUqc+NY)8?gQ4HIk9P`4z9FP&kOZ8IJeZr0+=&Md0xiGwOyw8n3tAsM zwE!lo3atm3gLufubF1sQhP8kPe>{`FtL0{G5Qaqh*1WBC&N5EPT|L%Z6l53(sYSs* z5!z&XyC8(e`r3;a)z_Eq-|Rng^Mm{ZL~pVpIBHC{#3fTbcP=ICMBj1uZu__&e=rW3 z9SKFmm|Wg5zZcWbq?{rJ6OB{X@KD&9rWT#Vg_fF&aH|0KYE38dA{Y{T^rasxtm^CP zmAno#9Bajl=DugulY5pC;5k%>AfgL}eo;y{Sc9-ABcp>aMRq}*?O~IA6zG~TU*U_F z7>Lg`07okV{4DsSV4y2a4y}GcZA~W6 z!K(Rez1YKE1a#YBE~>DU@2y4$lHu9%!g?Ozx;Ji)GbEc*_4(d{Aa?)Y*Zr}<02h$X zQ(eC|=m+k4Yn(|wKI7mF_JnWPiCZrVgDwEd!cj*fZ6BH6_16*ZuMc9f04d+=)O8E* zjl!e)lQj!laqphja7=tC2J$9&W6~+1U1{AJgn9JNZ@Da(EiHmCH?*13fOd=sW8YuL zzEK+`QpNPN6)bwKV&r&4pv>3xj$h7VYJ!m2NwE`!nf+ncqn)7}O^S!SgqysdyEGpV z)!xQC4=!DFOBj5N8c0xh(*C+q7=!1CWkM>LZKoPKtma$SR?eZ8P*2nB1ly|%oHt7x zR$QH>OEi0HrK5v!Ejy*=7Am&oP|K@BhVfB>-F9@$OS+^ zkg$KP%iBr5<_kWgtu}c+7!*B3S7H0iDcg&xr0Go!{(uPu=jrnTc7E|u!8mB0EntM= zSj!=-cfNVIZt!}AyGeInKaNVYhlg7!r6^Rs%a_>u@cMIQs)DgwRE4pxNOYg%v-@ly zv%}`}x9}B=6)qY~n5QBi!n*u;KL6eM^W}nFF}{iO;p?RJ_{-anwcyzhmp&lT5lc=V zdjL0gy=r~&$N!tm+(&bxew&P#M2O%w6=%}SI>`FKCh)#G;XBNCCnXMhH#;Lr)E~tK zUU_%wV_QnETsBtx8K%tkaO7Hkyd3*+8Q-0mfa)dyu0oWbAh)8et-b6(b}63h)CEj` zgQ42uB*R&(O;YZ<0(QS+(Xl;C8y}2Qvaei*H60G`!fNYG$OX$>?(FcoDHyAr*sS=;V$%U zOxkA*<}HHl_zB?P-?HTpMk4HwqdzufqnQL&A&ZktBLZ#i+^w;f#|$7`2LEGllo_LQ z>Z>{w)*TOU{p<|I{UpNwCo(0;UC&v2uJ*t~kysE&ozAkA0!rhnZO;lap?38NF$G*S zT(vm``}U_sx+e<5@0a|5*#(Bno$V@73=3CXU*I=!GyV8rRtkS2F!HU|Am`=EPXdiEj|yY*&C@ zyj}GoZ0jz(w|4iXJ-prxsx4r7ok0PRrePNZU#;07{th<>k9&kU1eWf!8w4knjTP&* z8{5c}_GX_bdk7t`wT{a8Il^AwD$gXHb}^}X0TY}?P0OMO!pb4q*UzOvLGvMQeT}A+ z>fF$Y4ShGK^fR9A@7d@%G zFQz2filHvg8z?+{JWo@=l>5v})BDt3LeWWKQQ>20!DI|0a%GyKmsxrqPz!Ij_zuw< zR$5W>CWN0jX@VICgO3TzLr3{XEa_vz@5*F=Ys*JSo`T(c3rm9+592oVzCKFze!N-* z0aN~GN7SN%5Ad8s-sDr~YY(nL-V;A;65}M*RHj)45QY>_@!@smrCN-(+uiDDy9Kc7 z*;2;|A*Nt!z&Lu!8b{a6&1O}#AJ5Qu;b|Wq$;?T#L*7B#m@YNS887B6Z@5aGG)O?{ z3{8WY41D;r75T#GPse~Vg}sUGK%S%XFgt`51qlmDLbnrOrOF8%_&xpB>*>ahOW0L} zW06xdvR;g{%8pHg^IB2?aA}8a$xx)b^~#}0I{C&?Dx(kadbIaAn7!!&-zn+CU=QIY zB3=}HPbV2##$ZeFC0cJ8HVjkmnUOqZL~Q~qs+q#9iH%R-9QWNoRdbz}d zB=krg0$bcfXeSxO9r#C?9#YV1S+cbh9Nv*-A}se0u4B=O2{uA_Voe?tWJpoLP7$@z zF;-#jMVI+8`TdZ5IDYVGOc#fT{0opAnuCKr6kpbEV-MXL)7gf?KTBTkHuLf9Z;+|~ zXpUN=hB~gLRqfu57WBkD0$2jp@MEcOd`1D~4?-Fcn zeH`>s7u>;!Hx_Uq|Db2(Mu_p#L>0$Hn8>KAt)|`4Q$s;pCrv>zf>ebRMViVIwbjxv zcgMTbqO#Wy-;;u5YJ1xcy&DHTl}o<12Yw2hTK0qB7H`By@3yi5Kq7rjxdT!UGfCXy z2hsBB(ng-7Hys^5C43cc({s_U?t9_go!8`%uk>lzX%^mLVxUFwHEQOj!XrKRhuiy9 zwR2l;4U2kN zgOJ^@jR_63wdHu)n-fe53yrqkbMmn?qcll0+3-oC()8UEA_ zzp_I8#?x|i%65bbnVmeJ6ADXA&saAOBI zf}|W&2qfMJ==-B1AC`W2ayAdoi4c3--~YgUgD>aPYmAK;(AMOQXcqI4Nv8+knHNUu zNDO#7$^W)YT7=lDY-;qQFzX~KhqK#-G1<0Z1gr$i(*VLt_m`fJu3FGATc;m=eUUgv zt(KG_lg)18*KgttuHh{YgXs(3Wgnrs(UZE-H z)5!>n#@rpze&$=;O%GL$emH|J`Ma&hYb983Q-d=2@<4u@lDgp3Ptv~RBBd`@s~^oc zI-*H$po0Hw*Z8lWwNFrRm9-A^`1tM^$7rZXX$pw444X|q%8^%yHj9E$f&xh+7=X4k zNc2YVcO283_&n4)6hB}nR-yd`#PMjHoHNrDG#fFalf1>yzQO}IVS7=n+}yxp@%uf@ zg(5wd@85oyClzuPLKY-I`Hs|jU=Pm|#Ba4jOT^sGCNdNU{vpZ1En$@b4GoQvU}}V{ z00}5&;uKo7IMge=JZQyia3JIu@Fcmh+L_K0`kt^o>au#&OY|dU$fY1Re#)CPUVBCm zQy>Y-(6PPN09Bc6mX^VY>|^xAN~$y&qD>mCSiUZ*0KjNHo*{8&FqYPEz26f{=YA}8 z-T!B5KG7u%^(f0ei+&zI@igqYFWQ|&T1$I084ryB_`SQULk7hl+t8azMXPaM;}-}I z5TF9{WZ!rjb2F`P=e^bO{W%H@tJN7?8e9Ue2f4PRpkDLidLPH`sxgR!^vytcZj z$Rc5s-g8f+P%wM@D>&6`;FBISty3FX1Nb$4#a!api$zKxDTdcu^T$yjsZZ9imAbbO zVK=RJ@BFxOtlJgIj98e0&?|4nQeaDe^~`pYcq`h_6v7@&|MaPVD}@|8_ao|B2f=2$ zJ&^!4szF-cB>rIN1<@l{#%dy-;G+|#4{8OQ;anytntFOIQK(aUx{Sk1Z5Mg1g{k#d zvy=KM6}k7m2l6If^>_Jg$=rx+)5*Ia{!X?Ra!{^4T6DZ+vd7tKGa(fF_B#>wA52h; z#>AL#lSWdtC2UpOUp?jCkkK>f&+s_;pe;YHHaoH;= zGFq{{8KKAw#Q);`1>}%ehjUrJ(#RDHtb$J`=v3(K?3XuuxHJ~L+2IOu9~8)YD->Fh z--K@0qdiv^U%#90q`^}iTN0T1anxnHhv0D_F5r`=D$i_7NX?MJ=7PJWBZ2bq_f zJEVS6;88L;?+l-ayrDmLbb7=o~A)@&3`3G_isyUh|I`@S-qH(^y25!NOXfS}U_q^{W zlPZeb?#qbobV?bV@!|@aC7MShu>eLldIN}t&vj!iSRQ4CTm)VTHIg`%ms%9ZcUhR-wb zdW@e3X2_lEwWavnuD_-(^WqY`g>tw9jAH_t_P9A8cUs(>j`+P47IuDJcKo83xAgix z*5c-MyPIf!GX*Uko|uuPI94rNa@+KRYh-O&ki+PGyeM@pQkQU)k}< z?N*Dz_Bv8KjiAj1A0V{(NTls|M=pelvX&^iMw!1n?Z&}~y4Px7@qDD=OY4#u5EKzh zuss1`iox#tLIDnK3d_e5P6fH)|VT z$|xgA{2=WSSiI*U_gdzxX`vj2h1*1Xx?hoOupLE8W^iwCD7HNQM8{|Qjte)~;KFXURGbIH=Cc)`icN8K+J6E<)`Xe}I7SA{$p%H zp&7oR-D$ti!`2%dg-S_Dj;O~=q8@}M_{Q<2_U=cSWWbA%WDR#iXo7yjcb84VeR*f>WEpk2^z}05=S6PnmBQStA?6 zZyK|c!`!r3M#qi{Ix$6G8qhd~X*hMlYA$yq>6QhrN1|3yeW}$?r~}SAg~c5HVKPLDz0f}6}5Pd7E%3ZDA0Rolm0C+K*5SaoGoS87Z*DcBeIS%91(OHUDdLmz87gYkEn`Px-IhRJkSn4dPiPI7Lrf>+H?Uc$o%G zLef>IHF@hcP9+T>4xUZOZDcj95$xBO&x(U_be<&uerysP7;+0^(>Ou&DHg7<-gfv~ zT>V9i%LF9Pyk1_Q^Scj8hPizv2#MCi;G@$q%B=NJUw(H=&{f^L$>ViZ5u%>b^zdL* zxbJRXDG+M=mMd#mY^8&?pXb70m!2{U#)Q3!udVpXhhf4`Go7uL`um+v%Z}3~+o}1C z$!Th;eb{1ocopD2jPixxvOp1Ut_?_#6k66eJEo(XV^tcD%a891xSkiF2PX-_qV~Q+ zeAi~q39UDvRB$BnVA5mqndHhL!l*;?qYp);UP{LY!pGcALwhN7c0x&x>1o?u#cm^> zxLvRO8j1LQ*I$>UO0WyCyUIN7nw076OOrGevKurkn5+-m%Vc9!N7~a#-SskJZ+cAu zHn`4u^kg+oKyKn0@DW(AiMer@cYREjvxAs|Kf7>>o8G7gBa=6iONxkTq!}fe*GJh$ zCti@*9}FQxb!bj^}yIV%~JKZoQWDtBv<5Lt|hYqit5;-U_@3 z9pTNpi~T$xMXu)d6b;+=jk*}e3nAh7fa;WX6UWyt=))jp0xCLO@RqOmSeT;G%+t{- zKC->~Q8f5k{$)ou1RCTC(FBX1va*}YuRWQOZN%~xMiO8s*S12YS@U&A<$9pi7n0|9 zl12s|a^7NmPk_aQ;bgutDM#$|9}?GHMY@7I1jK#qYR-F`{weZ%Mj-al?jD+-jaOxZ zc;+_6f;^?kPL#GKBPLF3nd0I%lWj9H6UAL##CZ++5rQJTFYr@cZ@Rkg2);h5q(7He z9?(dp)+>ZpHgF6a7yeZ8EEhZ~Y~X-?IRuFSkSr$&r^5!eBu27E8FQP+C5OY<@BQCz zCi+W1&zeS9S+T0vdyb^t5>J9BPAKoDY??TZi;!5BOTxQSs_-67WRf$)F~2vC=%U*0i%8%s}C)eTJw zTNCHQP5J6fqu7zYcpeOfmL}O`eoQf6%dE{1h~kw zpqk-zNg-@4R@Ds?%9IdQ0i4fgCQ?Mm#-I3fQk7?HsoqipBpTK>Fi?u^lL+HRkNsvb zs_KaClh zbmYaG6_nKhZtV!ajr#RU`uYiz;o{>i(bVIIR?kq7F8b%o16tC3R+5g=nkS9gNoAWMwNU}Eyzq_?vU z<>go+?$>eE`)YNwX0P_#RajQ7#-+D{v2ao>qs-m}4YULq5j~vLD)b(nPp|(1FB~pw zEMNtA$dGTW%&G!j8&7X_uYs}=tP=zRc8tcl+2NsJV?Y)Q_UTB9xc(i-4Q3tc>!E9Z zshj9&7NFm6l4v$z(!eP!+^NbaXvf23XwoEH6s}PYC0mazffXm1BU&wZSSIMz|FQ32 zdpO2NI9^g~wvW^p>8XLIKKRoQpOW^y1ebKeaDrcW#|g$r+j!0muEaruh(reSkJQ;T zM9-6oXl+YHe%8jdIn|A#rwhXUC3x#ai6qrZhY9_BbF|!H+hNwv>Sk?t`H`G@wSRj)fAdKq1=+5x(|#kw+*Y;II1K)9YJ*D z<(uBD{2$u^(^*~QM!P(XlKT1&pNo>2kWnDqHrK^vusi^-Yf)q7P>06~Xo4bY?ql+B zyX6x^ErI3F1TVXS^ywh?aCop39ia((guIzV0*pO3%!?Oh?r9$Lk)Q0Er0-Hr#ZkLd zF+ct&BF=27*p#Uak(Ha4BL{>6Oz%>8TK;Db?GNwn|^{5ARNFof#j$`={$+*^-a=VnyO}V z-8KW&B8*!ccLPSEXxg!o9OkvZdZW{|^qu%guSC=eSc|=U$ z@%>X|!cBG22Ga`WvA{1P*F&YFYAaUtFZ9qlOwokYw6G&NFN<`wr|8jqjkc{gz8>3f z7qJ$`4nM+{*^-SulO)&1ZqHd#Wu`vr?&?m&!a6YP*Paqbu55YrC#;v&w_LV-Bh{}- z%YA&F)5^Xkwe@;+;vEiJc+OX6`N0&6f#yMrc$0Vts{garMN)_YIsV zoWkh1efKH76QbH^vNME_Lf5PKFM*&`3=diw^&M&<=>WRSb=>mz=N3oEQ%U1hmn63m zBTl*y)ctw21zy}5sf@25_3})+$7_6WDFBMFPodHfgg;;OZp&19>M&Q{pGp$WehO!z zXRsn*6T2Lta9_EN=m(-PrB-?ZSFQCVZdRHZC!&`T5evU~8 zq_NEGhvc=dFB=R@$k7+2#H7&5rmCyX#+P&jcLV!N>~niyuGgfxZc*R+l#cz-#7{Ls zr0X|&zlu|}DB>_Vlyk~X6SZIQ-i5G-+@CrL9PhiWndu?9Tym|G6+r;mWvPD3SYnjI zmv-ubg>=oO`xuFd&i4UDb!O=cFx@^;iGUil!|Lu2W+sLPwX$f>yGKUOxYQ zAM70_+=yO7yxQ2e#Y;4g8n^Esb*)yoxvVUs3q0b^^Cr&u^muztYP$Lsq+0cG@^Rgd z=^5zzKH~27M`#;A{PC07cDD7Ud{IZk=499%ffnm()>fRf<{{3%Hb>9Gx*oap`h+f9 zUG{UmM(EMZ({*O%n|=9P9ww`Sw9Gm0zDGHM>qn90lJe%1*crNtcx{3hGYS~rD=eRq zsPV{vfS$GV(@~iT;iF*3sC%zdJE{ov)Vg$u*5h%z6z#>a=)me?U(Xj4p!Gy{NVCl~ zml9J5RLRPCi=}6-U^B5Uv~GuZM+oQbdGqP5=SHVNgz_KbXbakPsh1RzAE^o6xSI>3 zYe@$_412U&mg$ulhcUS$l{B;;oO2{%VZ&6fM)7`rtfO40t@ZEYA>O7m-x3Td-W~Fe z6xre}HZr&+w4F;+BFnsXB_L>(!tgHW==)4`yU~e5;dleV(4T0hqg>WYL*2>i)TI;u zc6Rxl(OG9r(mF5lwX}CqfY;DscL(E0h z6bgM}E_|IF-+AQSM8;DMiCPdpt&cfETwK#CWk=Pmhh}-s(pQ6x0aQhk!x)#i7I}ViIn!`jJ>FpIbC^284b5T7ip)`9!J|LHEc{b`jk#(oWbtF5q* zwvxDlYnad0(KCd-abkgDef-|b>*;yTy^eSNc*0(J=Vs^UXVe^UOJgPZ$)#3Qe=eSV zQq^Mk7!x{uhT{D;rRX$G9LmJea!m3~b_J>ZY&4y@{}eZ<-3i^QV*6=`?>Wz*_8%x!Pyr_KLXs#5`_8W8intViocimDQ*xd zG8g%v!PG#Px+5MVxXux1rW{TRAFAs_wt!tZH&LGxSH_(&PdvhBQC#A6({soGC~4A>u~XS~u_cw0-r6eIc?Xx}vG-czV`%HQHz3JK${ge0o29$WZ_N2`L8gA2L%Ru?Noac6PBOqi*Q742(=XuVkL(dt?zs#V7sW0-Ay znKOmV*rYbYAnBSM)ZDt`{zS{l9~r5ypzG#`pRUePXhT5z{b%c<0CiM!2Uoq;D{J5K zbgh-vy9cp@J#&92iLCK`y=WE|ZLU1{ghv8#g8IiZSNK}d?F+9| zWVO|6e3mqoC8+$`#HL${KmFBC2W(!&2}KtsaqB5*muyhI3s;GC>WOXwQ|RPU4hF_& z`!4Ce-<2MeYx@=#YP&c&w5|~oXPeD0p_TE$)eP<SsQtNP_yg!g|ObmA3Zha%e z?vb$m=#eZp#|eOHKTsa?i&Nf3tyJXKI+C4W^3I2Hp&I|zmgWYc+>T&j*}A;K1c9d=Gr)oZBYB2>Q>RBuJ?;i4 zOP^J+QC+aR7bs5evQO_y0CTaGmJ$2sVq{~f5%C1drJy371+7|ur{X}hnL%_#3h1o7 zh;q4v28-@Ergt1nViz{Qr|g_Jhy`V5Z)fToa^)@wuvr`)_`uT-`%ZJ15n{n8@#RyvD+h8yd$?chs%8feEHs*c`DmoFQOdSn{X9g>PK)HIA`_JwSxlGA`)Ff_VY& z_(DPt{mesywB$6G%RaBjkGQfa+E+3%CsyF@M9B!EvYb|o2k-Ed@R3Z_C#SHo~G z2rzzSO=d02LcKN5s**{)pg-ER9J-9IY$Zib83iir1JT`-c8NB+Kbcs?^3v$WWD24Z;{r5ahoxM8nU75ul8$W(^p7#%B8|919#mZU*Rz&t3SuP zZ%(HTps&TC$Pf}RJ3K0wqu1PiIz-KASuFm&5wrK8>wY!DbR{tsXCTzJ60FY}a@9!q zEZ8^8ua+p$Y}tApczRA%N?caJ(0(i^w09m&+fP2saCey@ypM1!yuU7R{;RrDVC1Db zpRWVba=rFv%k^4o&_YKe9-KkRPI~T&>^FOg|CS*92MpVH*Rame6CeveN`wZxTsxq{ zbSL86GBm>4-%avyxS5h^I$Eqms#fD=VpdiD2K3??zv=xH@}^MJI(#)}ztXP#B)Nmm zwDMl}&IP%(<2>GUp?$DM4{BlPuJKf%)uC}7gz7SU!UKIOZ@5Mf}r26NxglXYo15dt;|^A`>zGl ze=Ob!d>5_>SK6AAwVjY96#rUn6=-uk{azp&{)8qg)}m77+I@fH>?E5)sP?)~z$LNc z=_yopF?nlXZ(U3Kc17Rn?uXjfH3o0{uzOtMN`)tGFP{bQH8-m(q5Ot|WY$e#=`h#d z{GtC31nz%B7zGWzVWEnR8>ajJ8w>l7uf8HsI8ncVReJHijUJOaQzf%-;)%PpZ`5?id?^hXS2u9m)s>^a4Of+QD51yQx0h)?QxL98?j;;yY z2koZPc|ggwmwej=|D0Lre5L;K*8SJ(-C6T*p9jS8j({NKOK4D^KS<`j-2mWY`BwF* ziTZYh;!5XG(N|Wr zyfWbf=dnnWIy8b>BU-{DawtkB&NF-%Kz^5 zJKwF5KuP7dF3>VNEem_HT^Djp-1{6;wc!YEu6es}U6 z)to@~^l1&tuk^D)A=U z#j+4dn}sOwt1hMs^_y6s7zhbLL`h2hdipns#zt;6wY!s_n4)#>H`U+U%GgA-IPmQ# z+i(Turg9$VH_|B-8;}{C)1ku54&pp!s$?$6u6-Z-S8GCsXeZQ_W2al=|9S}VH|`B+ z&Qns?EdwiC=kxOcoGXlZ+?;XJXkhz0nziy08H@6>WoB}VB4=J^oY&e~BHO z=Epnp{}7;m`70OmXp8y50fWnviXnHl!|KdLeS^lxa1LLJ z1C!d$(vER5XX}+cBzr}z&C#;V(wMXn<gT?2$B@IA`c6|Q zVHW1~Qn+rF_|ah~T1a0?QluU0y)`M5khr^&$-CZ)GaB1x4Z#)ndWO7fn7g@U3KHPf ze21A{eTR63h|X&}HtB!3`AYt$pg+%_75}yLubuwq3gj`-6h!gjKejY~aId3c zOY$Z}FmC(6vJ)WTJw{<)tXdIV?hkA07r|5CP%w6TTi4zY!_7UfVr*>eb{G@cA^)O8 zL--9V$5yC4emI||K0D@^GW^Q6A@+-+|uN%cV=u4ha_;E{oc zOMIPsc07F8qJCm-Rw-e5YB7z!rDghgv@XK7L~pFPI$!HW8ty`Lp|M4L+p7j#p09vD>k&2R`c-_Gn*qZ%oknVJ3t|C{3PO>;BJnZ^H6Op zsp9JDs;#RlCmI=`dS_9`grL4wkkBCIcz3eo1gW%e3iBiq4Cl`>ZsJchf7)t6h*4oL zFIsZQ7IAEUAu40o^a0%ECeDEJ#2UGtzzJgu#{kOlFOvU$WT>(xqZu*A=FX>zRB%%Hm+ z)E(n-&Q0TK`LuS4<34&Zj*X7yMMoEslg;38uchc{tJvBa@H>L#2uMhz5wAndjh&gw zHvr|YiVk`CFIP6q3JMYw0o;s^w_^5mZvC)^7MYlZ5{dTUw^@k`Ek#R zE>Y!I^Q+TlxBo0f<@%r1y~D#~)%jPI!p{Y$!p~&g${O^?heO-grxOK}B3^yuJl*oL zMdF=Ix(%ILkA9`bG=xcY8s8nNvaBp` z;0kB$W0smWa06y|UuO=J*OOg^My7JDbc@M*#DSf{S=7SD2Hw!a-JKeg)mS%P%Pywl z&QSWgSCBBfyqus-MHA~QYQ3bIEUtqdfu84xX9EtFDj$_e#aNqP66ISK$^I7(`5o6= z#K9-;d3UG3m#KB4jZ> zwY0EN82C&i8yHuRpD(W8Z)vVdUSn!v3jJk0+wZVgC0R(=;3rDt*wS%Ix=!aubyNL-;&>7FuSrq_^qy?;p-<|!^*>vkas&2J1$sw zP^?Q0IZS!kr-c(4!FOCdJo$wR1Jk`bswHKNg*fH+USi(8vYswB`nSv$WBVrVtc|i+ zdzD<_5rA>>n)P;-Zl=Fw#x49$hfN}hdHAkQOquo=VX`JJZp&3U zCM$ieX9{kzE|%Bt;>B}yb}pDfsQtM{gK7x!ttS?60fb8*K#-Qw3TSCn^^IGeU)AdK z1wcjS#yYJ)o8UEM3rlgs`rxu~4TnuiqP2c-O&7{-^{>@OO$L1X);#B^$~)rE3RD!4 zL46@fNCywo)5^ZLu=#L4jE7(c;n5@$gZgi(TQ;$|; zX0CWiR9e2l*GNW^#A}=@x#KqG@wwktRNYnGZFd1U1ZXEVZZFPGW69**j=B72Ah(jL z#Q2BMl{etrh?@Sfdqa>kZ zyiOOYka?Gxlq6%UFwoQUFc?i)9l%a9DK9@(TwAKM<*D#|V~w%lImZpEU6?cNJtUe> zakc$h6FtTMAsBUk%yRDYZ!XRMyKS91GFjEtMBOJf-NF;&(nWgOstQ<8EvtF1@TJPC z3)m&@-qu|6ue*3T#|5k3GlwZ3Ls{CTLT9#%bMG~e&d(KKQHbR3v24KOZJ)|XLFCzu z7;F7Ol?tT7pD~9y7(U@eCv_nE7YUK0?qbp^_z5y^2CFeAsKNM z@gG-*9EB9RcO}4GSk%DjhghX@t<|{s9j2GpIR*@;R^?FODo3G$zw7nJhM&_hgs8hs zN1&Ao%q_EXT7Jt=sZwUKW1qI5An|ccx#)E4MvT1ve6=mHUxKs{=C+>E)cTFk90m6R(`@2kFP4X6=I`}}Y+5kvM-T=;)k^Se_@9zHAb@L}TwM7VV`VzJ313=1 zM6U16QnPHRVEC=@LAUQ|AJECz%H}E-cbGm%?&oY?z=yS+Y zuZR)Ram`cr2UXDdN_X4I>Lf0=CePz&S7{Dt>xtdcY?jLc!C`DQctUjFX!^sQ6;%8)$gS#&{MMnut6kv=g5i zp6(nT;s?B@NcVeS2y0N>QwY!0Q08*!qPR z4e-98T|*sbde5Wus!TkS4+etQ{>^_$KfFFyf!^xA%MYQHiN$)kzJZbD4CbrdzlmZx z#7}tffob~npIhFMd{IqvQ@{GO9CjMnDoG7zH6h{*{`%3KWd zLh6cy?MUZ8M&y|=%XaFc;g9=q9I?BNPw zg_niK7^$Wztw(|mJ9coOxL^?mCdg3cWe77v8aLEc&b*fXv_U8+t#Hl+cvSPwL`1T& zp#eD9S}{2#J0gqWggO}8^r82>9O8d&w4qa^W(L;B!)wVO9K`@)(ETqBn2&aKA^~{< zyTom*Jh?sjvvWW34a?9o8MF!Am7usRB^rlkQW_c?>jS0QtD4Y$@Ps)u&;FZM?|_8u zAOm0b`<35In=(|H^|PwT+0IVhJnq>%e^22|jo5T@bz$)*{U%!M2(VwNhA1FC_KN^R z7jAV!em?a(?QSuRc`Op`Ew+J`dKmk_S9Nvu>6~u0MpxScXbi{1M2+rJyz+$lpndEF z5A9>PiHXqyV_HlLPd)Nh^e}VJgZ?WC=Hkk4@Z)ZP zZNsoP-l`dW4+1{z|@q+uv(X@rf zO?a$$^f9@alLfs=1L|}$(}&~-(=Abyn;<)wsvJ0(M#VZ&=*{)4~F(L>=5tZbu59nw&Ha-bGL<_mCtV z;b<=9NRK}d5-h*XqGrUL_mD+ow6%^G#X`l_jk!sPa||6kALrW6_zQ1s1VfQ3e(%?7 zO>jB{-Tn8;n^({~Dszd4y*M1|0%p2rPQx5@8zlkU`iRTL2R8zrXWpN_4|L^+n$qM2 zmxI)Dw+FGb=v(;Fb!GLy1*!~Y`m*ccVF$Ph-~i3&^}&G|#q(`Ww?V9le9m>qmF%}U z{{DD0gZ;g|>BX5sb0Z`6a%L7fJ?e5>nX-NzO{n{@E9TPIxw&{ZQ)J`ikA(X>*j~OD z8K78G|5|bpsfh^|nH_a}Fy(sLwA}EvyM+b&z1k@Sql+KdK;732(OfIhU5mVGpnt%K zc%N%dQtBiyk|dwpJ}EspqE7p#)@GZ4a;AtesnBX-f4tAbrBq5X(Sp7IfCOtr&0NHW z)!WAj&xTf)f2N2Y9MR0oY>uf~f+6*Vzaqc?ym0e_$5N(&suAIqJ?QmI;`*MNveI4J zAWPB}RC|r#a>-32=bS6HRnWlgUt#k(6=4Cy$ntX-Y!Q?@Hg;iKl@=~ zwO~&@xR22Mll}l9h9%E#aww@y?mVZB%A+2_uhp!iIYf-g)RdIznr{7VY+Ws#Zd0Cm z&iee%?!R0{blg6Z48e5~mS}`H@J~9jf)W?7k38CP`1cC20#eXs<%^ZI)V+_j37Z+5 z8HB%We+s+5gup@pGSF*`iND@v`t09*_`-!$S8*92c2fgN&@uMjo!6xG5WJ$BN z-*o~*0#*rMH@fxbGj#$YP-;S*kCU`vy(}_9B=JgtJ`r!SuSLK}+JwyN$D2~$M?;y^u}r09z>2dXBD zC<^9U;i~~~pLUO?NC}RzI^U8gezuFOejlN>YcmzPHf-)^kS`%MzwMU2+)FcCvyXBy z6I?4WmF8E%G?1?JIj+kf7XSgcr6J;Z399p8DGm>pXPSC7@^yoiOb*|q1{FII(kC)` zq9lqa79bs2TUmv(7uSAzF;`AHqrBp8_j+t|I@svqWS-coY;R8}$V8G1I*-vLQ!eGA zpAwRMJO5XFT%`c-hP>kq?rB~5owB02P)CpYlETw#99&-CFH08xMcX2QRqo*%$^jF| zg}T>922Vn&e?+syN~-Z|{CElHav^f$RsaThc5O4~Fmovy4%ug!nJm|GjwTX?GzJmK2nm@2uT9?I-;#d-u3cCN?_UGi|%b#3eDE=fTLr+%{ zTtnIXuk_^|+gnev^KH^~z5kI2iF^ZTw~rmOuB0!x-D3P<<~7kxe+b7yoQgI7Q05A7 zME@L$adk=5j&I$7X0R0LmdevRuV}Mvsf5#Qy_Vjm*&gU5EBIVGqQXRHs>nYKDdOMq zfd0somVIUXq9P4EFTkAxc-DtH-QLDzvd%Fvja|04s7uGs?OtRAylEf!SJ*E122ud< zCiyGL`Iq1JZ^<~2_&XQGK~7?Lx577&w7bTczRp_YA7Q8L@8uAmQ*%=i%v9uj^P(?VRYEhMgO=vK+Q|(XBLp6*H=QhA z_(V7b%|!E`-$QVF{_&%o?X(+c^G~l>tZ#m+W87BY$tuoPGiXU-=@Co$P%9De+Bh8L z3(D8^;Krnew1&%t2?ShE6r0s9AC~4%Wr`}ZZ|5=2$dM^oC0o20g^r)pnI_KI4^>`1 zx#MFdq;h4%H%DbkD`i@^et7+tf&KNTf%WZZ_O$w~fu$jXn!x;=*(fZ^khdVr)SV-* zB{Xi0ijL3L#H+bLr5zkZ;=nU-yP!z5^K|y(=n9yaUf?x$QQ@W)G_VdMrPzCj8spUlfvE;JA}ri>b(kdZMRneK`0w(@_K<{q4zv z=im3eFA1I08YOc`@jgSK`-EvihV{kS^mt!)bCCCzE#4&>tsXlVyK z2@uU++Oic9r__An{Rm=+1X`XSJT4K0DaDiKH+g!x58ZWAQqi+duDmyg@@2eu#0R?a z-HshDdy=_wrD!pQ+nu*unrjw9EMGSlG4R3V+y8r0{q>1|a~i)v_%nl!yDt{P!`WL} zzLRbQ%=1<(eYq+G@XU54wzNPsiFb~7k?K11Rr1$c(&$$$zKc_sOiv$+=j767o4>5X z4#QvVTU_pJGv-@Gz>$+3F`+GQ$xky^rP0aEFEiJ7(j2(4BwVw?45u{<^GE?_Od=wH z#b?2jhAd{6`ZA3M7SL=-i^RUrG&kAAqJ#(2tG*6PO`i$1>hoYI9MdY=4%~cnDckI7+u>%XT9Kw+y3p7uG$G|*(@E-pY zI)_Nwc~amD9*6rC#X#MQd_$`cH|beDTa-52l+pJ{MfXEWmg0$t=!aeLRuX^KrmTph z$89MWJDdHi%i5qgEmicDeqTqWp?a2~-)ipRDEX~7@l>T+MYE{4Tp(qCPYRl{*LmUT zt}2;2c`ra|Wdl{EzpLfyN`5Y<=rbja>wfc@8r9lc@tTWXfadLUjIfKv%k+QE_J1)P zSomjY<%<_i2-h3N=KbU)qgUS?#(vwPS^cVFy(ObvRd^%f6mul;UfJf=q7GLDtgfCE zWv%(qhRb~O(L8VWhH97QI!N_+2ZPE}g&2oV;}ujqb*pCu8=18VS`BUDv%$Y5|JR22 zH~W8}I%qO)6^rciQr-0qE0P3HRJY1n4X{Ozbh+OO{F;LOr-+R-LXt5$Py`pIniKUN zTQ_2;_9Y!U!n-zUly<_x$%Vy6LYPdBlG|Iw54Cn(URc91SbxkGb^@Wuab-=ui%5f+ zHgaU3`t05^vz*Iu6TF);z4o?x^EjC3q%+6ukb4QoCI!(&gN_|`;R2roTQr3-w#4j` znv^FkAgLhtPs{1s$Tk?7F}4G|df$Xyb_e)0kXu`j4kx>`@n! zA-Hv>8c{racfkpIV&SduQT`%Ydc`Ke2zLV(CiC77`D)_+*^Jhy9UX(T?5BWl-Ge*# z8VXDK*PuWdPT9GK(a6c{<5txyFK>h!1L{p2v`}&UZa?o8uI&4ae|f-;R>*R^;mt+< zb>yAy{wWio`^+9>B|jG0FOVB2uoNjddS z5$_CZn;gfQA~khnS!W5Gi|f5`Xz>vF-a{5Xv&Hl1i{Lq%_rjt}B}2af=TG^y<=N~7 z>JtkW7n#kmvZ68>BF22TF0^jx0>+wbe!w4^^A%ju0lT{^lP>8_S);$bJ3w?Fh36K@ zi9)?2Vd+nu`LZ-S`9=`wfgT(d`pj1zu)bTqb?^nph~wwh;52*I$;OQiR#@{%&)F!;WT_7r$J$XnHo?|~qn@NaDH&xhcT0XK}jeJvzQna%0Kd5e24 z6^#;v&+DCJT3jM@I55^y=pZ8KdLPGocxf_bODBluR$(oz=R`$B-z^+jD%U0qtw=T$~iQ$0>zTeedy zrmzpC0r5L~T*iFvJP_y%+U{d!VMwN`kSd#7Lq9t^Ig$DHE%E5Yu1f+e=51MV9B<|r zHe6HwI0%B&vh8nObx4d!T@3gg{I_7Hrwgpa(L(6``sdts_0SO(^R!&F9bevfj|LFB zUSI9-6qbDxYP%{cw8TFz8R^Z33e-viJsu#GXk{VZl-KeMwW>MSvlCXBHBDyP_Y$>! zMH4H?8Wz+U*vNIkb{Vom8)yaaJN5vzZoZ9g;-8ip%HAtwNQ2)9&|bb3>WctfKPDgs-)`V6C{K zySqDPM#coq#uNstmmQWhdCMgG^0+w^x#gw?S%&SZv8$DVJ`B0t3N`wY?zfX}*@A)s z3tLaB^^EM4`?_AmZxEUYgy7N2zgN?3Bp`14#A0U@JYHj{qi*s$eiqQ-_DNy-r{BPI z2Ze2@R~-7#9uxE7bqDRxRmfCkezzj0K3hPyqCddFza7*ZIwlTqRI<|Y1a(S*^TE3o z8bnW}9hC>bXdiX&jYPH^F?`>+r>C!D&z{0AHpRLgM)!D}s2-^p`?E{CVn=UVK1H2L zvN_!8zE_DMH}k1_lrMJ)nn~dmWEpC!4^2gFaQ+_mmzsip|2O>k3jw)h^_(EZ3M2)u z^FdXbRe7u?tmfwXE*d~gp_FQNHzR`KKdZYgQtYnF^AD~o-O~dVF4w{V+o}5wH2e|J zzbWq48OepyEBlE&4_*@K!&(VX{c2P7J7ZzqtPpyMm@w~2tiENEHX&D;ty%!ZX|6x~YC;YnS2cAGvTwFYx-R`Dx&>?KpzqK$ovz#s~xivuC zQcyr#B_6c@usakxyL4zD))Ur?tCKyQKGdDY1iiwHI1J~3;g4mW=(8S%hu)_YaSk5QQCpzRW{S$Y|Y&yoK(b3#&*W*C&mG^l|gKHo0Zz-@ogdZye zd%pgv)zVn?y_r=qHLJfgLFI(!@2Bp*tM3OkLQC!81lVK#7=PHwv|0s!7Sk@@D>+G7 zT3bY#;IiFz)*5KB)BSw>7n0x5g`g)SIG8l~h<549V>4=nX>gY$yl3F?g?^->NnxYw z_4Tzb7iS=(!(-XGLc#nvDJBP7obUN@YBs&zOfi$&9a-;D=nr^;bL7GP!R)hIjd?au z$>E!20+RRk3lwa31xgj0VfHRl$y6bF_|hJi=S`TP7@v4$a#Sh^?Ay3`z#=)c^t8oA z=@#LQW?*fNZhD6Yb4wc=l{QCB9W9x_`_Hr8@8^7bP~1t?-VX|GHyd78mAq8b&7`9m zIywjfPf{L`y9S-*S1k&*$_x2X`*&Z%yE?CUdE;T^qM@&%f=&UWxvBTpXRFNxa_%Cr z+}M)qD4A>|Uz)eVtDAtF&%s z-3)X4c&YX`pxWO@fWX?6OSuMr;jB|oy*tD(*G78jp?3c=^qx%Oje5FG)K{>8o1l4~+ycg(5?vx+Xy@Yk)*o$0Xhr=puzOeadLR^LQ zvTde(@Kz5vckloL@Tc^JR}HN!ttE54pDaAzUn{mPUflN_G;1oQXn50CR_ObE4!}c} z04?RCqd-N?MDeK9tF{faAkJ)dSMF>MA5Io3lG}!kKx8Y7o6sdsb;CQ-;F!U&hidNl zOs$n!mEalhBoyRhPu-lMXp~L~x3`zp3%VR7tb?iC*dH@8U-Wp`-T8#~Ts`FPMoF3MhukwVij!CuVh%0~ap5$`s1N?c(g53BQ z=lb7M^v>r6TBjL_H+l3h?Hc#iOr=ZufE_JbP$K4F)566xrjrpr=qIrYy>m}w(a!AX zX6jX3(hhwXLX}kQsaY{Ma@~%XgGH~$t3vUCv>M||Bq;LaoSeHC_rAaL9EKeNLRuLluY?Q<9+*G!OWz{BP8G;SEX2*)>B`mx*v#MPC)Pa)rHGS zSc*>9`$6jVWY=EkRyx9dV|n>&tT96;5lZ@zqj6z*SJ+Qg zkFGx%sm~yXMiVuB%iDlG`OPu`C%WqDSz$j*Ub+7)+uuAkC?VyuvH@qAPgowQEpU5YQ zWLG(r#2tcBFnBb`$o6YzyH3*tC&(s7OHA==*fv80_7eHR3t!RAg%@n44ia*oOpWut z$YZ=e)DXXt>Jm&i<*S(aNzV!5YbE!^BzXUVDa5CNg^fv z$f^6AN7l9dD zRo|I3a37zXH`*7?SbM(V{$)Y-kQ+#lbm9b7Wxtj`?j&g#iaq0WdtWkozg!Lx8PtTV z0vcY^#r4Df98Bp2nN8(}A{x_<=Nl^bgVKCYamII`#x}s3ihd>6G4aLf?}FIhy7Ow1 zQua`A0F9JzzHQC!EF8aIDzKigi&aN#%uONQbfNhLrMHfcN*!VW1bu|t#4?vQ;t(&T| zQSdEyyfF9qMFZgRwu1z4ky@&+a;=C#5Vw^)ssHpM3d5?irnR{5`rt1O%d0AG43L!z zvNfOI8&QH-YC{HP=K5U@)spR26tAfWp<~oL^r{PhCRkJ5cw1~b1Qd*B2a#PIa$Rbl zZ5PR@u3`RVNZrU{$0ESh1lh%1_o)3Ru-38@Sw>2f(qxdUaxbwACU5k=W$ zS{<4oceJ$ZM{+|HGVzh2lEpQN14Hf}Z6cX<=J9%3e0bw<%(XQa9W>Sxl55C_(RufP z!#jo5^w}^-V_H;76e*!4`u?R^n_cJIA=2fe-d{<^u^HR86o*vqEp zQ{~Glq~VehB%$>Bc{Rm&07_32LU?UgB|@o4Ki|uc;VEI<5tvYA@HPZKaDQ)B?rO+C zdjxY!&UTj)s;N2&2FVXerzP{P)>3rsj|LJZ(a3$UwdN#FN|ldh^_O@2LQY6 z`l;eVU*a9>F^|Ys83_o5%GAR>Wse{W0%E>@p|bLnK|2*>Jz*olB~!M|Q?GUPC8>!% z6iscQ-5O1B&YGb_$(KcP1i2sb^JeP59p^eHLcy4c>%-khf><$GJ;%txH(u<6 z_f9EgP|CRy+i;qNGg;CBdPCKYb7?-?!VqlqYn45LTdK`b*7Y`xw@Yea!Fd|=Ov>OK z0KT?Kn1DFYk@V=1i`&Q(J%XqjuFYa`59lPUD=@aQ0;uw;5ir}0tJ9icLWBM@!j)r} zn9Btb^OJZBro#iq7=5^;yC;1z9Y$Th5Ff4<1HioT^jI9W%eCV7a6pt`*4Ip=t=FLq zc=eB58Ny6xtbqCk_hndtYISp!O>I(4lV2N6fvc!9NQ0S0q!fi9@Ugdy1Orp0wQ_&y zT;Igo{2Q9;giQRn09>QIC3UCaLJv()t!Z&|C{ZDY?6Bou+1@6h*B0O1l(Y3;$ubYB z-*Bs2^g6sPAX#l*!Svo<=e!C79is}~$DiMHdnSNnp*Ly(!$yCmFoykO$d7#1&FP%6 z=0jUfO!pzxLbWKN~3zZx^`Rce@sGNNY_JxLL}BqthaaVm(L?cF#Bs5ZY*O!_hpmhW+@4&+hbnz0c> z6UHvD)GQ}8_f_icL6NV7Cfm=EDk|*d{N)`mxBv7*?37U2$z4H;av_AV61AyUTMEE%pQ8v}jn}cQ)4> zWfZU!3}0=P=UVGW&^*UwAgEV|`yDUHq_ucMTPHd52-eBTf1d7}j6@+*b)JTM)JY`i z9Ys#M9?Zl_UVLY#Px$8`j^&S;$8HnG>qD!)j5VcA82tB_#M%ac zY08A(^Zk1u%!bzfv8S2a)bIwwe0^&xR@dxK*lYH3P1-B&l2iI!{U4(lt1^7r`Q=Kr z=)(b`42hY_Fb4;n>JVz89ETHxbYGc0_LN1IMrgxy2~-s9F>CaQmh>{!v5?;_;>PIB z`ues8hs$v+sIS0oC)20Mb?GVKzt>~y|9*6sz>p+s2zd4@98n%%?8}riH+A9NHJst; zex8=X8%Z-#c@lFDGpx(!jD8I<_!9+>Hcf^xfqQgVn?Q5?Jy<*QBtZL8auf5`K3@Ja znf6V7cO+*A5|z=nlp2rPZ{hlThR9zmOjEjbj^K-+lTMpD5b;jWGIUXi6NIqFFfA(Y z_D44{3h5#|9nCAC? zK$X-*9pekLu`J`ua_=FD@8UZ)S9nFO9*>?Hr|D!d36+O#cEv$GDyXMbg>b3u3&|Av z=%7ESZ;!E=%g$UV4dz3Qm~oR*<<@ajnAsTkZaD8pNeu30o%Ah-tF0;HThu__F}_XMy-|AKEz|eCdfoSRw%=Q$7zhkO7z+i_(`7lxMSGnJ z#gErJM!$mI&+Yo6Xp-K6Zr$}F+FB&kiHZC4RY?s4zUMDAlGz|q~^<{8&51sV_8Aow)bJQ7qfv2mIqfTfErZs#<9cw~St zpnskD|Kria^^-rATS<>Sb}_iNt`irmI9gF#|Ds*zfWs3eN8?RBdu^cm+>lcAuC=-J zMJ&^bNK^i__#0#j+RuEHS4?@~qd9(M-DYUy7M+DUPg;>U0MvhAPG#S9cg z*$WsGen0H{!*p~`xE$e&@JC*}UA*yNwR}%^n25$%jIP{RS@}v|RIsM0^JV@Bw&K$j z;?65LtgfI%wT=9`v5d;9j+ZJd8d;lU9V5ypNgrN^a3-SXMZj~sxamy|p%v75(*)M{ z+5R;D3Jy;d(3_0)xExs%R?lY7N}w06C4EOUBaR#FW*!Ss%d3pVE0n8=GS_Zu>U#pv z3@xhN8t@aJx|sHE7>mTP-!cUGT6a^3G%&BJK8;66A4u!k!t(iy%VTAKy$7ws;rqC6 zuBkXpjX*=ki65jNVa@(dRmLzn2hJ#hd9$6ImLXo2MlLz$f51gLjCL4*2)~K{#XQ@l z`TMqwR)0g|2e0yANVSnximklGq5eU4Euu1pM0l! z*&G`u4EM)sx&W-&^F)zQC@EvH#^KUkd_I@0YmKKC`B8d0b?h|gR7As>#|NHE3xX#R z=($M4O!c!XN*=Q?JK!im@0!YHm(Qv(YeQOKSaHp!Ir6Q#jrAd17xLKvcXzG+!Z6aI zR4+*0mG_&i!==TLH%}iciZ3 zjTmE_P-h}9QdmQ%KlYIE)Zg;md?=*0NRQNif3b_gocgnXe8dL}4ptjzst#?25ppN- zrf^=QiR0ZR;HARTL?af}4A8QMaNssVHLoFsHo!?KRVFO^t*?`$?Yf&e7 zb9aS_HF<%t=hL*YEhbG0)_6O;xaI;%P*bp`7S&z>QR47JPJ;xZ#-|K#&cO7eV~HVo zOJOZ}M&Fj)!ydC+?(q}f>!>KJwO)iYlSd90FTlTDSWjkfPb;KjmU@HuAL;87J|7E6 zYQ3cG$s&(A7)0X9@}f6P~e)*CZaEjV76S4YiLZ>Nd&3| z3GBk-ioWYXbtNU!>HU$h$|sDW-+Aag|LwM!USWx@jUb~8B@+YHXkq83hd!W*YJuEb z@XFEDd@J&6M~~adxfTqmu?c z$lClZS><}Tl-AH3PKlPzxQVT~U;wb@s^93X2G`k$At&@I{>;VaZLQ9YrodgqTl;Gz z`T4wwCxpHrTNi*jHhS7%Jt`Ma z4nAu+KXT01S^B2?Uu@%VoxN7fhbN{Ro5L;wVbEqf#+}Kj|5tjAe%sMtTd@#|P)1`) zsx$Dg8u-kaKADj-I?hhbDmvjccR3qt!=8#bG($8AYbf{nnYqhQG>v$ZT}E^85=axn zIo{>nKB=5rCd(%ZDScnTU~#@6($8ihJ%3~fjt*3aCgz3j`2m;hCKvl%B`7gr-jN0W{CfE9&=gNXzWY!xkLRy!#*-V`2;rXrxN zhEdq-FwcMXszU}QONIc)AB)l$ompxs*Ge(Y%jCK4-F{iS#k)cT?IVP`Q`ebYM^{H7 zW^!XV-u=|Bfeu_qW3q`>e|&B@x#mLxeKkxip6`>nSebNie?C zil5Ms=PL!b$HUeVL`V%BY^D`8QHg`lHLxpu07Q@D-a+Zj`RcdNB5SB1f zEwTWz1~by>Ypah>xX2vQ1E4d!wWJG=D;pPL>ef{~-eNP%5BCzh&dz~jPt)yp-~QPz z;|hFuO}lY#(aOPijQj{&XrdBCR=Ci{P5M^B4OPwO1&$!EgNlT#gWfOs-a;=%YJ5%F zM5FZHF2E5$dn?)~Ra>fR{SX4o5pT+=pms+W9u7a+m(}+-yWR%wAA$jNe13+;3@}|u zyqD8~pz#kyq%#OodQG!h7y{9emhff^#y_swH{W@!EA2+V)R%Q8i(psSi1wHB-YFMP zs0;8VZrqOXy-qicR=j1F$1fv|Zu(v~I@cy&TnVmUa&^)bA%(xMSGjgOV+%&zpU^GJ1n0+ zS-1olSqfzKDYark$d`KYkBar&DWstb8^=vF;nWpcX1vnZOBpH76g~BTG2)(|>#RwC z!|QbEPy@K5!%lSVxPKlP?Vug=tBkGlZT5=!ojT|&W;@Y7lV_AXzL2Qiy*sGW*BkgB zpR5(qvkVE4*_Yn^kqn3mo|}_Xdi`UonE;d_p-)7K%zr3A3bHRtGUA0M(TISRbQv(J z!!#j5VUO>X*#DXKMrzZ<3M^2TO6Bc$B}im-Tu;R>QMTgpLjNY65_T}?uVJ*y`Pq$8 zEJInUU^lNS7|pnT1ZkSKnEkF9J|sboM{)?@p=xWRKFqt~f%^8C>u2@Nrif9rTAV~H z`2P_NvxoeQ%-S}#RpTNm>kAD@ZH#ZE4zn<&tP4yA1(<1SQZVZlRgqVy9e zLW;=j9vEJ$h5EbbHLRUT{IW1CtDvpYMg#(6XJ;w5hp^h`CP?C9Vz@#RLnvSOS@#7o zvaMRvC(ecx*+k^%Q{B%&93p>WFLEPyrSh1gu#b^6ZX!3)F>=^ga3hgW_HYRv!jP5R z*n)5Kg-+5>lH!*sqcOuOKUA|{YJE-p4AwL@pD%JovXr^vh1y|SzKgyUcl=0^WV9{| zvL_fju`v+!suQOx_;7$2Et(?^i1y9WT z4jvOcZ2o%(pFR#IU$Nd!f8K3LbUqO}xe@{XLb%{vmqON?)nKG*Lq33nVlUxrdj@75^V{N7 zH%x2;VgqfGeR|?bHI#h9RD7r4>6jp}C!oDx0N;yn7cb;B&LPw0W3NUcdypFy{x^W} zz;!P4Kf56xA%Yt8z#ijF?kJW!k?%EO1cNip%JFSVoE<6RvxC2Fo$IOlFe|C!cme5ARClS(RDp{tdB;LvQ$6(~0{S=1Cd!^fWmGhCRSXvux$A}Vr z(j0K2-xU4EtC#`^m2o6XKH#CjTDO9y%gcmmt|1DcpDeN($^qs-GshzhLLob}d>$0} zae0VAxVvJR>JhFiR_8oe#A3|!r0~>2U!erAc8J=hxRT=>EfOD18Xpu78RI1^WU8hz z6$T>!MEyvC68AJ`cg(z_0jOgx0!w2hlu>zpR2xWABCF3br8l|g+u^cx5zjDIUnMHT z!jZ6=*KHqJh{%!V3x~mE<`nT8Cm8aTh$(g<6Kv+jl>}hscDu@9aT-XW-!x9(#t)^v zt%S`mK;fVr5xE8FtLnygtG7+bP6c&8g5FjJ(eLAF2_FCW>+epVJAEg1MU;^LZo4~y z&~$8@$F%5v`yY~eaYtw`0Kp+EDZPuXPKp5AhmJ6GwYpaf^|R}zq(897-hwjp$`Z(* z)Ai!}m}GU~?i=$Pr9{U}&r}0Y2-uoQRR+iLPo_m!?JpY92vJV<#=7#yc2M$U<@Ux& zt?epH zlc3N-l~Anir|5nJO~{Xh;MSMmJzV5EDcv<~AqwK=xcJEi=zxsQ7{W-m`+I3#+rUf! zJ4+$rQ} zf+RHXF~I49YMKK?*89`l&(XbjlSvUv`^fuv{SWTwr-4zo^Da2g;E5VdxeQ)9shAjR z-KY3Z=jw`A(#9R4)Ohp-Qci<9U4yev`VcKfcGF z$RKe}cjO}(J*-OMpgNpBwR9Lse8L!RcR%;<6`~K7iX^e4L7EDdCW`hFaqjgvCP^%( zrD(LDeIul-`ZbSSXxE;o!EpZt-sVqwd_1?Q!Pf78jz`}k{ZPp~+7vFAj2+}1R&reT zCZSdv{u5D6Xom=VtywP*PJg7{zFX&N3cUdNy+f}OyBjzVdS6`UhJrJVV~VQho}{6h zJH3JpJ7^lNA|CqyW8jewE-fq2N1IauU#DRd7kYr0ETZLDO;m!wR^|V~LMPUL^_|oRmQj&|? zy12tHacpgvVR%ZBBWa7nT%PY@1cs1wQHl_va=q1B@o;ySKRB6is&zEr=@(s%JvwMl zo`->dL?M}oH-D0co`ag!n*0bC59m{LSKJBk&v)#!F$8Fl zkKP<&csoj;?O@ydq9_L)Ii5=cTnF(Lx&MFYtewSg3egNJ0&N-M-)LqSWQ z?-p~jNJj5_=W4BJ5&+c8K&>*o9V6Hl7w)JnOq0ztPnWc;D|yr`xy-n!#Fj;q_T;|( ze=w-n@SjJGx|y!DP245WUN$=M(&BQJPK1MJFTfq;$1( zl1FQh@FMNsTEh3L)ux-YdQiDO=ReQ5M=x9@EA3`p*f6>L+*%M|wSoewuxzS?zwzym+~b zyqH(h3l-bsk$*E6iGH@c?kRN@HNuWxSy{ybWc;9pxTb&KnW|bZSV_b}$$Cv)7J8cA z6*G`{zMRR$^P%L>QA*Ife8cbi*jX033-e1SwPk*R$w7m$6kX6)+eX!VN|dD477OR; z`|vB^q|S@gZcs<&J}Z8l{k~0?DsP&XJ?vU@lRP&BqnK!n)ttFE3ACPHl_}tG; zGIY0R3?!RSUW@%_zMc7#U(unnx@oV$utus7Il0Bc_vXQ&Gy+D(lVey01}rb=UPQB+BZ^>-FBU?mI)17o_0;YA);eO;z0(=!V^yL- zThVEOcwjOw;e{yjV<)A(nkPG#$IEufAUp!9DL%$>tZAjAt_knX&22n`17!+nh_65F z$HPV-ANHntd1`rEHvkpCY}BRw?gNH`7Roc+U{qR$@6#NA^y z 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

    teuOj%aMAl@J6|bMp>y&{CWlss#dnrU* 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%0An3k3gu)& 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

    !@EWq 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ⅆ;0&Ghg5`9)0B5_*071+q&bi!09C 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%0AN@e9Vg@H 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 literal 0 HcmV?d00001 diff --git a/infra/website/public/images/blog/registered_model_with_feature_service.png b/infra/website/public/images/blog/registered_model_with_feature_service.png new file mode 100644 index 0000000000000000000000000000000000000000..8271f15b88752b25de8649990362d5c2dcf8fa66 GIT binary patch literal 232672 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 E;-xm-ureO?g_w%9<(gitX#P~ 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 Date: Mon, 1 Jun 2026 22:02:48 +0530 Subject: [PATCH 52/59] feat: Pre-compute feature service Signed-off-by: ntkathole --- .../concepts/feature-retrieval.md | 25 + .../online-server-performance-tuning.md | 44 +- protos/feast/core/FeatureService.proto | 4 + .../feast/core/PrecomputedFeatureVector.proto | 31 + sdk/python/feast/feature_service.py | 23 +- sdk/python/feast/feature_store.py | 256 +++++ .../feast/infra/online_stores/online_store.py | 491 ++++++++- sdk/python/feast/infra/online_stores/redis.py | 204 +--- .../protos/feast/core/DataSource_pb2.pyi | 717 +++++++------- .../protos/feast/core/FeatureService_pb2.py | 52 +- .../protos/feast/core/FeatureService_pb2.pyi | 8 +- .../core/PrecomputedFeatureVector_pb2.py | 31 + .../core/PrecomputedFeatureVector_pb2.pyi | 76 ++ .../core/PrecomputedFeatureVector_pb2_grpc.py | 4 + .../unit/test_precomputed_feature_vectors.py | 933 ++++++++++++++++++ 15 files changed, 2248 insertions(+), 651 deletions(-) create mode 100644 protos/feast/core/PrecomputedFeatureVector.proto create mode 100644 sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.py create mode 100644 sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.pyi create mode 100644 sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2_grpc.py create mode 100644 sdk/python/tests/unit/test_precomputed_feature_vectors.py diff --git a/docs/getting-started/concepts/feature-retrieval.md b/docs/getting-started/concepts/feature-retrieval.md index b3c4062edfd..7c4dec08ef9 100644 --- a/docs/getting-started/concepts/feature-retrieval.md +++ b/docs/getting-started/concepts/feature-retrieval.md @@ -52,6 +52,31 @@ Applying a feature service does not result in an actual service being deployed. Feature services enable referencing all or some features from a feature view. +#### Pre-computed feature vectors (`precompute_online`) + +For latency-critical online serving, you can enable **pre-computed feature vectors** on a feature service. When `precompute_online=True`, Feast stores all of the service's features for each entity as a single serialized blob in the online store. At read time, this reduces the number of store reads from O(N feature views) to O(1), regardless of how many feature views the service spans. + +```python +# A feature service with pre-computed vectors enabled +low_latency_service = FeatureService( + name="low_latency_inference", + features=[driver_stats_fv, vehicle_stats_fv, route_features_fv], + precompute_online=True, +) +``` + +After running `feast apply`, the pre-computed vectors are automatically built and refreshed whenever you run `feast materialize` or `feast materialize-incremental`. Feast detects which feature services have `precompute_online=True` and rebuilds their vectors for every affected entity after the per-feature-view writes complete. Vectors are also refreshed automatically on `feast push`. + +{% hint style="info" %} +`precompute_online` is **opt-in** — it defaults to `False`. When enabled, the pre-computed path is used exclusively for that service; there is no silent fallback to per-feature-view reads. If vectors are missing or stale, the server raises an error, making problems visible immediately. +{% endhint %} + +{% hint style="warning" %} +`precompute_online` is not compatible with on-demand feature views (ODFVs) that have `write_to_online_store=False`. ODFVs with `write_to_online_store=True` are supported since their values are materialized. +{% endhint %} + +See the [performance tuning guide](../../how-to-guides/online-server-performance-tuning.md#pre-computed-feature-vectors) for benchmarks and detailed configuration. + Retrieving from the online store with a feature service ```python diff --git a/docs/how-to-guides/online-server-performance-tuning.md b/docs/how-to-guides/online-server-performance-tuning.md index 34508ff6ce4..b280fe53cff 100644 --- a/docs/how-to-guides/online-server-performance-tuning.md +++ b/docs/how-to-guides/online-server-performance-tuning.md @@ -35,10 +35,12 @@ When the server processes a `get_online_features()` call, it groups the requeste **Redis exception:** The Redis online store overrides `get_online_features()` to batch all `HMGET` commands across every feature view into a **single pipeline execution**. Because all feature views for the same entity share one Redis hash key, the number of Redis round trips is always **1**, regardless of how many feature views the request touches. This means the "fewer feature views" guideline is less critical for Redis than for other stores — but consolidating feature views still reduces serialization and protobuf overhead at the application layer. {% endhint %} -### Feature services are free +### Feature services are free (and can be faster) A [Feature Service](../getting-started/concepts/feature-retrieval.md) is a named collection of feature references — it's a convenience grouping, not a separate storage or execution unit. Using a feature service adds only a registry lookup (cached) compared to listing features individually. There is no performance penalty for using feature services, and they are the recommended way to define stable, versioned feature sets for production models. +For latency-critical services, feature services also unlock **pre-computed feature vectors** (`precompute_online=True`), which reduce store reads from O(N feature views) to O(1). See the [Pre-computed feature vectors](#pre-computed-feature-vectors) section below for details and benchmarks. + ### ODFV overhead is additive Regular feature views incur only **store read** cost. On-demand feature views add **CPU-bound transformation** cost on top: @@ -83,6 +85,45 @@ Requesting just `combined_score` triggers reads from **both** `driver_stats_fv` --- +## Pre-computed feature vectors + +When a `get_online_features()` request touches multiple feature views, the server issues a separate store read per feature view. For services spanning 5–15+ feature views, this fan-out dominates latency — even with Redis pipeline batching, the protobuf deserialization and response-building overhead grows linearly with the number of views. + +**Pre-computed feature vectors** solve this by storing all of a feature service's features for each entity as a single serialized blob. At read time, the server fetches one blob per entity instead of N reads per feature view, reducing the operation to O(1). + +### How it works + +1. **Define** a feature service with `precompute_online=True`: + +```python +benchmark_service = FeatureService( + name="benchmark_customer_service", + features=[ + customer_demographics_fv, + customer_behavioral_profile, + transaction_7d_aggregations, + transaction_30d_aggregations, + transaction_90d_patterns, + atm_usage_30d, + ], + precompute_online=True, +) +``` + +2. **Apply** the feature service: `feast apply` +3. **Materialize** as usual — vectors are built automatically: `feast materialize-incremental $(date -u +"%Y-%m-%dT%H:%M:%S")` +4. **Read** features as usual — the server automatically uses the pre-computed path: + +```python +features = store.get_online_features( + features=store.get_feature_service("benchmark_customer_service"), + entity_rows=[{"customer_id": "CUST_000001"}], + full_feature_names=True, +) +``` + +--- + ## Worker and connection tuning The Python feature server uses Gunicorn with async workers. Tuning workers, connections, and timeouts directly impacts throughput and tail latency. @@ -1086,4 +1127,5 @@ Reset `skip_dedup` to `false` (or remove it) after the bulk reload. Under normal - [PostgreSQL Online Store](../reference/online-stores/postgres.md) — Connection pooling and SSL configuration - [Redis Online Store](../reference/online-stores/redis.md) — Cluster mode, Sentinel, TTL configuration, and batched reads - [On Demand Feature Views](../reference/beta-on-demand-feature-view.md) — Transformation modes and write-time transforms +- [Feature Services & `precompute_online`](../getting-started/concepts/feature-retrieval.md#pre-computed-feature-vectors-precompute_online) — Concept docs for pre-computed feature vectors - [feature_store.yaml reference](../reference/feature-repository/feature-store-yaml.md) — Full configuration reference including `materialization` options diff --git a/protos/feast/core/FeatureService.proto b/protos/feast/core/FeatureService.proto index 380b2dc3718..557782fe552 100644 --- a/protos/feast/core/FeatureService.proto +++ b/protos/feast/core/FeatureService.proto @@ -38,6 +38,10 @@ message FeatureServiceSpec { // (optional) if provided logging will be enabled for this feature service. LoggingConfig logging_config = 7; + + // When true, a pre-computed feature vector is maintained per entity for this + // service, enabling single-read online retrieval instead of per-feature-view reads. + bool precompute_online = 8; } diff --git a/protos/feast/core/PrecomputedFeatureVector.proto b/protos/feast/core/PrecomputedFeatureVector.proto new file mode 100644 index 00000000000..798df0b8d1e --- /dev/null +++ b/protos/feast/core/PrecomputedFeatureVector.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package feast.core; + +option go_package = "github.com/feast-dev/feast/go/protos/feast/core"; +option java_outer_classname = "PrecomputedFeatureVectorProto"; +option java_package = "feast.proto.core"; + +import "google/protobuf/timestamp.proto"; +import "feast/types/Value.proto"; + +// A pre-computed feature vector stores all features for a FeatureService +// as a single serialized blob per entity, enabling O(1) online retrieval. +message PrecomputedFeatureVector { + // Fully-qualified feature names in deterministic order, e.g. "fv1__feat1". + repeated string feature_names = 1; + + // Feature values in the same order as feature_names. + repeated feast.types.Value values = 2; + + // Per-feature-view event timestamps for TTL enforcement at read time. + repeated FeatureViewTimestamp fv_timestamps = 3; + + // Wall-clock time when this vector was assembled. + google.protobuf.Timestamp precomputed_at = 4; +} + +// Event timestamp associated with a specific feature view within the vector. +message FeatureViewTimestamp { + string feature_view_name = 1; + google.protobuf.Timestamp event_timestamp = 2; +} diff --git a/sdk/python/feast/feature_service.py b/sdk/python/feast/feature_service.py index 5c062f15c67..b937d210d6e 100644 --- a/sdk/python/feast/feature_service.py +++ b/sdk/python/feast/feature_service.py @@ -49,6 +49,8 @@ class FeatureService: last_updated_timestamp: Optional[datetime] = None logging_config: Optional[LoggingConfig] = None + precompute_online: bool = False + def __init__( self, *, @@ -58,18 +60,21 @@ def __init__( description: str = "", owner: str = "", logging_config: Optional[LoggingConfig] = None, + precompute_online: bool = False, ): """ Creates a FeatureService object. Args: name: The unique name of the feature service. - feature_view_projections: A list containing feature views and feature view + features: A list containing feature views and feature view projections, representing the features in the feature service. description (optional): A human-readable description. tags (optional): A dictionary of key-value pairs to store arbitrary metadata. owner (optional): The owner of the feature view, typically the email of the primary maintainer. + precompute_online (optional): When True, a pre-computed feature vector is + maintained per entity for single-read online retrieval. """ self.name = name self._features = features @@ -80,6 +85,7 @@ def __init__( self.created_timestamp = None self.last_updated_timestamp = None self.logging_config = logging_config + self.precompute_online = precompute_online for feature_grouping in self._features: if isinstance(feature_grouping, BaseFeatureView): self.feature_view_projections.append(feature_grouping.projection) @@ -175,6 +181,7 @@ def __eq__(self, other): or self.description != other.description or self.tags != other.tags or self.owner != other.owner + or self.precompute_online != other.precompute_online ): return False @@ -202,6 +209,7 @@ def from_proto(cls, feature_service_proto: FeatureServiceProto): logging_config=LoggingConfig.from_proto( feature_service_proto.spec.logging_config ), + precompute_online=feature_service_proto.spec.precompute_online, ) fs.feature_view_projections.extend( [ @@ -245,9 +253,20 @@ def to_proto(self) -> FeatureServiceProto: logging_config=self.logging_config.to_proto() if self.logging_config else None, + precompute_online=self.precompute_online, ) return FeatureServiceProto(spec=spec, meta=meta) def validate(self): - pass + if not self.precompute_online: + return + + for fv in self._features: + if isinstance(fv, OnDemandFeatureView) and not fv.write_to_online_store: + raise ValueError( + f"FeatureService '{self.name}' has precompute_online=True but " + f"contains OnDemandFeatureView '{fv.name}' with " + f"write_to_online_store=False. On-demand transforms computed at " + f"serve time cannot be pre-computed." + ) diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index 765e22898b0..a41a70149d1 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -107,6 +107,11 @@ from feast.utils import _get_feature_view_vector_field_metadata, _utc_now from feast.version_utils import parse_version +try: + from datetime import timezone as _timezone +except ImportError: + _timezone = None # type: ignore[assignment,misc] + _track_materialization = None # Lazy-loaded on first materialization call _track_materialization_loaded = False @@ -2151,6 +2156,14 @@ def tqdm_builder(length): end_date, ) + materialized_fv_names = [ + fv.name + for fv in feature_views_to_materialize + if not isinstance(fv, OnDemandFeatureView) + ] + if materialized_fv_names: + self._precompute_affected_services(materialized_fv_names) + # Emit OpenLineage COMPLETE event self._emit_openlineage_materialize_complete( ol_run_id, feature_views_to_materialize @@ -2319,6 +2332,14 @@ def tqdm_builder(length): end_date, ) + materialized_fv_names = [ + fv.name + for fv in feature_views_to_materialize + if not isinstance(fv, OnDemandFeatureView) + ] + if materialized_fv_names: + self._precompute_affected_services(materialized_fv_names) + # Emit OpenLineage COMPLETE event self._emit_openlineage_materialize_complete( ol_run_id, feature_views_to_materialize @@ -2434,6 +2455,236 @@ def _fvs_for_push_source_or_raise( return fvs_with_push_sources + def precompute_feature_service( + self, + feature_service_name: Optional[str] = None, + batch_size: int = 1000, + ) -> int: + """Pre-compute feature vectors for one or all FeatureServices. + + For each FeatureService with ``precompute_online=True`` (or matching + *feature_service_name*), reads every entity's features from the online + store via :meth:`OnlineStore.online_read` and writes a single serialized + blob per entity via :meth:`OnlineStore.write_precomputed_vector`. + + Works with **all** online store backends (Redis, DynamoDB, PostgreSQL, etc.). + + Returns the total number of entity vectors written. + """ + from feast.protos.feast.core.PrecomputedFeatureVector_pb2 import ( + FeatureViewTimestamp, + PrecomputedFeatureVector, + ) + + provider = self._get_provider() + online_store = provider.online_store + + services = self.registry.list_feature_services(self.project) + if feature_service_name: + services = [s for s in services if s.name == feature_service_name] + + total_written = 0 + for svc in services: + if not svc.precompute_online and not feature_service_name: + continue + + fv_projections = svc.feature_view_projections + feature_views = [] + for proj in fv_projections: + fv = self.registry.get_any_feature_view( + proj.name, self.project, allow_cache=True + ) + feature_views.append((fv, proj)) + + if not feature_views: + continue + + feature_names: List[str] = [] + for _fv, proj in feature_views: + fv_name = proj.name_to_use() + for f in proj.features: + feature_names.append(f"{fv_name}__{f.name}") + + # Collect all unique entity key protos from the primary feature view. + # Use online_read to discover entities that exist in the store. + primary_fv = feature_views[0][0] + + # Read entity keys by scanning the primary FV's online data. + # We use get_online_features with the full FeatureService to read + # all features for each entity in a single call, then build vectors. + # + # For stores that support native scanning (like Redis), we try the + # native scan; for others, we use the materialized entity list. + entity_key_protos: List[EntityKey] = [] + try: + from feast.infra.online_stores.redis import RedisOnlineStore + + if isinstance(online_store, RedisOnlineStore): + from feast.infra.key_encoding_utils import ( + deserialize_entity_key, + ) + from feast.infra.online_stores.helpers import _redis_key_prefix + + join_keys = ( + list(primary_fv.join_keys) + if hasattr(primary_fv, "join_keys") + else [] + ) # type: ignore[union-attr] + client = online_store._get_client( # type: ignore[attr-defined] + self.config.online_store + ) + scan_prefix = _redis_key_prefix(join_keys) + project_bytes = self.config.project.encode("utf-8") + seen_keys: set = set() + raw_keys: List[bytes] = [] + for key in client.scan_iter( + b"".join([scan_prefix, b"*", project_bytes]) + ): + if key not in seen_keys: + seen_keys.add(key) + raw_keys.append(key) + proj_len = len(project_bytes) + for rk in raw_keys: + try: + ek = deserialize_entity_key( + rk[:-proj_len], + self.config.entity_key_serialization_version, + ) + if set(ek.join_keys) == set(join_keys): + entity_key_protos.append(ek) + except (ValueError, Exception): + continue + else: + raise NotImplementedError + except (ImportError, NotImplementedError): + _logger.warning( + "Entity scanning not supported for '%s' — " + "precompute requires a store that supports entity scanning", + type(online_store).__name__, + ) + continue + + if not entity_key_protos: + continue + + for batch_start in range(0, len(entity_key_protos), batch_size): + batch_keys = entity_key_protos[batch_start : batch_start + batch_size] + + # Read features for each FV via base class online_read. + fv_data: Dict[ + str, + List[Tuple[Optional[datetime], Optional[Dict[str, ValueProto]]]], + ] = {} + for fv_obj, proj in feature_views: + req_features = [f.name for f in proj.features] + assert isinstance(fv_obj, FeatureView) + rows = online_store.online_read( + config=self.config, + table=fv_obj, + entity_keys=batch_keys, + requested_features=req_features, + ) + fv_data[proj.name_to_use()] = rows + + for entity_idx, entity_key in enumerate(batch_keys): + values: List[ValueProto] = [] + fv_timestamps: list = [] + + for _fv, proj in feature_views: + fv_name = proj.name_to_use() + fv_row_ts, feat_dict = fv_data[fv_name][entity_idx] + + if fv_row_ts: + fv_ts = Timestamp() + fv_ts.FromDatetime(utils.make_tzaware(fv_row_ts)) + fv_timestamps.append( + FeatureViewTimestamp( + feature_view_name=fv_name, + event_timestamp=fv_ts, + ) + ) + + for f in proj.features: + if feat_dict and f.name in feat_dict: + values.append(feat_dict[f.name]) + else: + values.append(ValueProto()) + + now_ts = Timestamp() + now_ts.FromDatetime(datetime.now(tz=_timezone.utc)) + + vector = PrecomputedFeatureVector( + feature_names=feature_names, + values=values, + fv_timestamps=fv_timestamps, + precomputed_at=now_ts, + ) + + online_store.write_precomputed_vector( + config=self.config, + feature_service_name=svc.name, + project=self.config.project, + entity_key=entity_key, + vector_bytes=vector.SerializeToString(), + ) + total_written += 1 + + _logger.info( + "Pre-computed %d entity vectors for FeatureService '%s'", + total_written, + svc.name, + ) + + return total_written + + def _precompute_affected_services(self, materialized_fv_names: List[str]) -> None: + """Trigger precomputation for services affected by materialized FVs.""" + try: + services = self.registry.list_feature_services(self.project) + except Exception: + return + + for svc in services: + if not svc.precompute_online: + continue + svc_fv_names = {p.name for p in svc.feature_view_projections} + if svc_fv_names & set(materialized_fv_names): + try: + self.precompute_feature_service(svc.name) + except Exception: + _logger.warning( + "Failed to precompute vectors for service '%s'", + svc.name, + exc_info=True, + ) + + def _precompute_for_push(self, feature_view_name: str, df: "pd.DataFrame") -> None: + """Re-compute pre-computed vectors for entities affected by a push.""" + try: + services = self.registry.list_feature_services(self.project) + except Exception: + return + + affected = [ + svc + for svc in services + if svc.precompute_online + and any(p.name == feature_view_name for p in svc.feature_view_projections) + ] + + if not affected: + return + + for svc in affected: + try: + self.precompute_feature_service(svc.name) + except Exception: + _logger.warning( + "Failed to precompute vectors for service '%s' after push", + svc.name, + exc_info=True, + ) + def push( self, push_source_name: str, @@ -2452,6 +2703,7 @@ def push( to: Whether to push to online or offline store. Defaults to online store only. transform_on_write: Whether to transform the data before pushing. """ + pushed_fv_names = [] for fv in self._fvs_for_push_source_or_raise( push_source_name, allow_registry_cache ): @@ -2462,11 +2714,15 @@ def push( allow_registry_cache=allow_registry_cache, transform_on_write=transform_on_write, ) + pushed_fv_names.append(fv.name) if to == PushMode.OFFLINE or to == PushMode.ONLINE_AND_OFFLINE: self.write_to_offline_store( fv.name, df, allow_registry_cache=allow_registry_cache ) + if pushed_fv_names: + self._precompute_for_push(pushed_fv_names[0], df) + async def push_async( self, push_source_name: str, diff --git a/sdk/python/feast/infra/online_stores/online_store.py b/sdk/python/feast/infra/online_stores/online_store.py index 49533cbf226..87feba3f830 100644 --- a/sdk/python/feast/infra/online_stores/online_store.py +++ b/sdk/python/feast/infra/online_stores/online_store.py @@ -12,10 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. import asyncio +import logging +import time as _time_mod from abc import ABC, abstractmethod from datetime import datetime from typing import Any, Callable, Dict, List, Mapping, Optional, Sequence, Tuple, Union +from google.protobuf.timestamp_pb2 import Timestamp + from feast import Entity, utils from feast.batch_feature_view import BatchFeatureView from feast.errors import VersionedOnlineReadNotSupported @@ -33,6 +37,8 @@ from feast.stream_feature_view import StreamFeatureView from feast.value_type import ValueType +logger = logging.getLogger(__name__) + class OnlineStore(ABC): """ @@ -203,32 +209,53 @@ def get_online_features( _read_start = _time.monotonic() - for table, requested_features in grouped_refs: - # Get the correct set of entity values with the correct join keys. - table_entity_values, idxs, output_len = utils._get_unique_entities( - table, - join_key_values, - entity_name_to_join_key_map, - ) - - entity_key_protos = utils._get_entity_key_protos(table_entity_values) + use_precomputed = ( + isinstance(features, FeatureService) + and getattr(features, "precompute_online", False) + and not requested_on_demand_feature_views + ) - # Fetch data for Entities. - read_rows = self.online_read( - config=config, - table=table, - entity_keys=entity_key_protos, - requested_features=requested_features, + precomputed_ok = False + if use_precomputed and grouped_refs: + assert isinstance(features, FeatureService) + first_table = grouped_refs[0][0] + first_entity_values, first_idxs, output_len = utils._get_unique_entities( + first_table, join_key_values, entity_name_to_join_key_map ) + entity_key_protos = utils._get_entity_key_protos(first_entity_values) - utils._populate_response_from_feature_data( - requested_features, - read_rows, - idxs, + blobs = self.read_precomputed_vectors( + config, features.name, project, entity_key_protos + ) + expected_names = self._compute_expected_feature_names( + grouped_refs, full_feature_names + ) + precomputed_ok = self._try_precomputed_fast_path( + blobs, + expected_names, online_features_response, full_feature_names, - table, output_len, + grouped_refs, + registry, + project, + ) + if not precomputed_ok: + raise RuntimeError( + f"FeatureService '{features.name}' has precompute_online=True " + f"but pre-computed vectors could not be read. " + f"Run `feast precompute {features.name}` or materialize to " + f"populate vectors." + ) + + if not precomputed_ok: + self._read_features_per_fv( + config, + grouped_refs, + join_key_values, + entity_name_to_join_key_map, + online_features_response, + full_feature_names, include_feature_view_version_metadata, ) @@ -297,6 +324,117 @@ def _is_versioned_read_supported(self) -> bool: pass return isinstance(self, tuple(supported_types)) + def _read_features_per_fv( + self, + config: RepoConfig, + grouped_refs: List, + join_key_values: Dict, + entity_name_to_join_key_map: Dict, + online_features_response, + full_feature_names: bool, + include_feature_view_version_metadata: bool, + ) -> None: + """Read features one feature-view at a time (generic path). + + Subclasses may override to batch reads more efficiently (e.g. Redis + pipeline). + """ + for table, requested_features in grouped_refs: + table_entity_values, idxs, output_len = utils._get_unique_entities( + table, join_key_values, entity_name_to_join_key_map + ) + entity_key_protos = utils._get_entity_key_protos(table_entity_values) + + read_rows = self.online_read( + config=config, + table=table, + entity_keys=entity_key_protos, + requested_features=requested_features, + ) + + utils._populate_response_from_feature_data( + requested_features, + read_rows, + idxs, + online_features_response, + full_feature_names, + table, + output_len, + include_feature_view_version_metadata, + ) + + async def _read_features_per_fv_async( + self, + config: RepoConfig, + grouped_refs: List, + join_key_values: Dict, + entity_name_to_join_key_map: Dict, + online_features_response, + full_feature_names: bool, + include_feature_view_version_metadata: bool, + ) -> None: + """Async version of :meth:`_read_features_per_fv`. + + Reads all feature views concurrently via ``asyncio.gather``. + Subclasses may override to batch reads more efficiently. + """ + + async def query_table(table, requested_features): + table_entity_values, idxs, output_len = utils._get_unique_entities( + table, join_key_values, entity_name_to_join_key_map + ) + entity_key_protos = utils._get_entity_key_protos(table_entity_values) + read_rows = await self.online_read_async( + config=config, + table=table, + entity_keys=entity_key_protos, + requested_features=requested_features, + ) + return idxs, read_rows, output_len + + all_responses = await asyncio.gather( + *[ + query_table(table, requested_features) + for table, requested_features in grouped_refs + ] + ) + + for (idxs, read_rows, output_len), (table, requested_features) in zip( + all_responses, grouped_refs + ): + utils._populate_response_from_feature_data( + requested_features, + read_rows, + idxs, + online_features_response, + full_feature_names, + table, + output_len, + include_feature_view_version_metadata, + ) + + async def read_precomputed_vectors_async( + self, + config: RepoConfig, + feature_service_name: str, + project: str, + entity_keys: List[EntityKeyProto], + ) -> List[Optional[bytes]]: + """Async version of :meth:`read_precomputed_vectors`. + + The default implementation delegates to the sync method via the event + loop executor. Online stores with native async support should override. + """ + loop = asyncio.get_event_loop() + return await loop.run_in_executor( + None, + self.read_precomputed_vectors, + config, + feature_service_name, + project, + entity_keys, + ) + async def get_online_features_async( self, config: RepoConfig, @@ -343,26 +481,6 @@ async def get_online_features_async( # Check for versioned reads on unsupported stores self._check_versioned_read_support(grouped_refs) - async def query_table(table, requested_features): - # Get the correct set of entity values with the correct join keys. - table_entity_values, idxs, output_len = utils._get_unique_entities( - table, - join_key_values, - entity_name_to_join_key_map, - ) - - entity_key_protos = utils._get_entity_key_protos(table_entity_values) - - # Fetch data for Entities. - read_rows = await self.online_read_async( - config=config, - table=table, - entity_keys=entity_key_protos, - requested_features=requested_features, - ) - - return idxs, read_rows, output_len - _track_read = False try: from feast.metrics import _config as _metrics_config @@ -376,24 +494,53 @@ async def query_table(table, requested_features): _read_start = _time.monotonic() - all_responses = await asyncio.gather( - *[ - query_table(table, requested_features) - for table, requested_features in grouped_refs - ] + use_precomputed = ( + isinstance(features, FeatureService) + and getattr(features, "precompute_online", False) + and not requested_on_demand_feature_views ) - for (idxs, read_rows, output_len), (table, requested_features) in zip( - all_responses, grouped_refs - ): - utils._populate_response_from_feature_data( - requested_features, - read_rows, - idxs, + precomputed_ok = False + if use_precomputed and grouped_refs: + assert isinstance(features, FeatureService) + first_table = grouped_refs[0][0] + first_entity_values, first_idxs, output_len = utils._get_unique_entities( + first_table, join_key_values, entity_name_to_join_key_map + ) + entity_key_protos = utils._get_entity_key_protos(first_entity_values) + + blobs = await self.read_precomputed_vectors_async( + config, features.name, project, entity_key_protos + ) + expected_names = self._compute_expected_feature_names( + grouped_refs, full_feature_names + ) + precomputed_ok = self._try_precomputed_fast_path( + blobs, + expected_names, online_features_response, full_feature_names, - table, output_len, + grouped_refs, + registry, + project, + ) + if not precomputed_ok: + raise RuntimeError( + f"FeatureService '{features.name}' has precompute_online=True " + f"but pre-computed vectors could not be read. " + f"Run `feast precompute {features.name}` or materialize to " + f"populate vectors." + ) + + if not precomputed_ok: + await self._read_features_per_fv_async( + config, + grouped_refs, + join_key_values, + entity_name_to_join_key_map, + online_features_response, + full_feature_names, include_feature_view_version_metadata, ) @@ -437,6 +584,244 @@ def _build_feature_types( feature_types[f"{table_name}__{field.name}"] = vtype return feature_types + @staticmethod + def _compute_expected_feature_names( + grouped_refs: List, full_feature_names: bool + ) -> List[str]: + """Derive the deterministic feature name list for schema comparison.""" + names: List[str] = [] + for table, requested_features in grouped_refs: + table_name = table.projection.name_to_use() + for fn in requested_features: + if fn.startswith("_ts:"): + continue + names.append(f"{table_name}__{fn}" if full_feature_names else fn) + return names + + @staticmethod + def _try_precomputed_fast_path( + blobs: List[Optional[bytes]], + expected_feature_names: List[str], + online_features_response: Any, + full_feature_names: bool, + num_rows: int, + grouped_refs: List, + registry: BaseRegistry, + project: str, + ) -> bool: + """Build the response from pre-computed vectors. + + Returns True if the fast path succeeded for ALL entities, False otherwise + (caller should fall back to per-FV reads). + """ + from feast.protos.feast.core.PrecomputedFeatureVector_pb2 import ( + PrecomputedFeatureVector, + ) + from feast.protos.feast.serving.ServingService_pb2 import ( + FieldStatus, + GetOnlineFeaturesResponse, + ) + + for i, blob in enumerate(blobs): + if blob is None: + logger.warning( + "Pre-computed vector blob is None for entity index %d", i + ) + return False + + n_features = len(expected_feature_names) + expected_set = set(expected_feature_names) + + # Pre-compute feature-index-to-FV-name mapping once (not per entity). + feat_fv_names: List[Optional[str]] = [] + for fname in expected_feature_names: + feat_fv_names.append(fname.split("__", 1)[0] if "__" in fname else None) + + # Pre-compute FV TTLs once. + fv_ttls: Dict[str, Optional[int]] = {} + for table, _ in grouped_refs: + ttl = table.ttl + fv_ttls[table.projection.name_to_use()] = ( + int(ttl.total_seconds()) if ttl else None + ) + + # Check if any FV actually has a TTL — skip TTL logic entirely if not. + any_ttl = any(v is not None for v in fv_ttls.values()) + + # Parse all blobs, validate schema, build reorder map. + # Schema is typically identical for all entities, so validate against the + # first and then just verify the rest match the first (not the expected list). + first_stored_names: Optional[List[str]] = None + reorder_map: Optional[List[int]] = None + vectors: List[PrecomputedFeatureVector] = [] + + for blob in blobs: + vec = PrecomputedFeatureVector() + vec.ParseFromString(blob) # type: ignore[arg-type] + vectors.append(vec) + + if first_stored_names is None: + first_stored_names = list(vec.feature_names) + if set(first_stored_names) != expected_set: + logger.warning( + "Pre-computed vector schema mismatch: stored=%s, expected=%s", + first_stored_names, + expected_feature_names, + ) + return False + if first_stored_names != expected_feature_names: + name_to_idx = {n: i for i, n in enumerate(first_stored_names)} + reorder_map = [name_to_idx[n] for n in expected_feature_names] + else: + if ( + len(vec.feature_names) != n_features + or list(vec.feature_names) != first_stored_names + ): + logger.warning( + "Pre-computed vector schema varies across entities at index %d", + len(vectors) - 1, + ) + return False + + PRESENT = FieldStatus.PRESENT + OUTSIDE_MAX_AGE = FieldStatus.OUTSIDE_MAX_AGE + null_value = ValueProto() + null_ts = Timestamp() + + feat_values = [[null_value] * num_rows for _ in range(n_features)] + feat_statuses = [[FieldStatus.NOT_FOUND] * num_rows for _ in range(n_features)] + ts_list = [null_ts] * num_rows + + now_secs = _time_mod.time() if any_ttl else 0.0 + + for row_idx, vec in enumerate(vectors): + ts_list[row_idx] = vec.precomputed_at + + # Build per-FV expiry flags once per entity (not per feature). + fv_expired: Optional[Dict[str, bool]] = None + if any_ttl: + fv_ts_map: Dict[str, Timestamp] = { + fvt.feature_view_name: fvt.event_timestamp + for fvt in vec.fv_timestamps + } + fv_expired = {} + for fv_name, ttl_val in fv_ttls.items(): + if ttl_val is not None: + event_ts = fv_ts_map.get(fv_name) + if event_ts: + event_secs = event_ts.seconds + event_ts.nanos / 1e9 + fv_expired[fv_name] = (now_secs - event_secs) > ttl_val + else: + fv_expired[fv_name] = False + else: + fv_expired[fv_name] = False + + stored_values = vec.values + for out_idx in range(n_features): + src_idx = reorder_map[out_idx] if reorder_map else out_idx + feat_values[out_idx][row_idx] = stored_values[src_idx] + + if fv_expired: + feat_fv = feat_fv_names[out_idx] + if feat_fv and fv_expired.get(feat_fv, False): + feat_statuses[out_idx][row_idx] = OUTSIDE_MAX_AGE + continue + feat_statuses[out_idx][row_idx] = PRESENT + + online_features_response.metadata.feature_names.val.extend( + expected_feature_names + ) + for f_idx in range(n_features): + online_features_response.results.append( + GetOnlineFeaturesResponse.FeatureVector( + values=feat_values[f_idx], + statuses=feat_statuses[f_idx], + event_timestamps=ts_list, + ) + ) + return True + + def write_precomputed_vector( + self, + config: RepoConfig, + feature_service_name: str, + project: str, + entity_key: EntityKeyProto, + vector_bytes: bytes, + ) -> None: + """Write a pre-computed feature vector blob for a single entity. + + Stores the blob as a ``bytes_val`` feature under a synthetic FeatureView + named ``__precomputed__{service_name}``, using the generic + ``online_write_batch`` API so this works for every online store without + store-specific overrides. + """ + from feast.field import Field + from feast.types import Bytes + + synthetic_fv = FeatureView( + name=f"__precomputed__{feature_service_name}", + entities=[], + schema=[Field(name="vector", dtype=Bytes)], + source=None, + ) + val = ValueProto(bytes_val=vector_bytes) + ts = datetime.utcnow() + self.online_write_batch( + config=config, + table=synthetic_fv, + data=[(entity_key, {"vector": val}, ts, None)], + progress=None, + ) + + def read_precomputed_vectors( + self, + config: RepoConfig, + feature_service_name: str, + project: str, + entity_keys: List[EntityKeyProto], + ) -> List[Optional[bytes]]: + """Read pre-computed feature vector blobs for a batch of entities. + + Returns a list aligned with *entity_keys*. Each element is either the + serialized ``PrecomputedFeatureVector`` bytes or ``None`` when no + pre-computed vector exists for that entity. + + Reads from the synthetic FeatureView written by + :meth:`write_precomputed_vector` using the generic ``online_read`` API, + so this works for every online store without store-specific overrides. + """ + from feast.field import Field + from feast.types import Bytes + + synthetic_fv = FeatureView( + name=f"__precomputed__{feature_service_name}", + entities=[], + schema=[Field(name="vector", dtype=Bytes)], + source=None, + ) + try: + rows = self.online_read( + config=config, + table=synthetic_fv, + entity_keys=entity_keys, + requested_features=["vector"], + ) + except Exception: + return [None] * len(entity_keys) + + result: List[Optional[bytes]] = [] + for _ts, feature_dict in rows: + if feature_dict and "vector" in feature_dict: + val = feature_dict["vector"] + if val.HasField("bytes_val"): + result.append(val.bytes_val) + else: + result.append(None) + else: + result.append(None) + return result + @abstractmethod def update( self, diff --git a/sdk/python/feast/infra/online_stores/redis.py b/sdk/python/feast/infra/online_stores/redis.py index 262df0c863d..ad9e378a95f 100644 --- a/sdk/python/feast/infra/online_stores/redis.py +++ b/sdk/python/feast/infra/online_stores/redis.py @@ -22,7 +22,6 @@ Dict, List, Literal, - Mapping, Optional, Sequence, Tuple, @@ -33,7 +32,6 @@ from pydantic import StrictStr from feast import Entity, FeatureView, RepoConfig, utils -from feast.feature_service import FeatureService from feast.infra.key_encoding_utils import serialize_entity_key from feast.infra.online_stores.helpers import ( _mmh3, @@ -42,11 +40,8 @@ compute_versioned_name, ) from feast.infra.online_stores.online_store import OnlineStore -from feast.infra.registry.base_registry import BaseRegistry from feast.infra.supported_async_methods import SupportedAsyncMethods -from feast.online_response import OnlineResponse from feast.protos.feast.types.EntityKey_pb2 import EntityKey as EntityKeyProto -from feast.protos.feast.types.Value_pb2 import RepeatedValue from feast.protos.feast.types.Value_pb2 import Value as ValueProto from feast.repo_config import FeastConfigBaseModel @@ -602,89 +597,27 @@ async def online_read_async( redis_values, fv_name, requested_features ) - def get_online_features( + def _read_features_per_fv( self, config: RepoConfig, - features: Union[List[str], FeatureService], - entity_rows: Union[ - List[Dict[str, Any]], - Mapping[str, Union[Sequence[Any], Sequence[ValueProto], RepeatedValue]], - ], - registry: BaseRegistry, - project: str, - full_feature_names: bool = False, - include_feature_view_version_metadata: bool = False, - ) -> OnlineResponse: - """ - Fetch online features for multiple feature views in a single Redis pipeline. - - Overrides the base class implementation which issues one pipeline per feature view - (O(N_feature_views) round trips). This implementation batches all HMGET commands - across all feature views into a single pipeline execution (O(1) round trips), - exploiting the fact that all feature views for the same entity share the same - Redis hash key. - """ - if isinstance(entity_rows, list): - columnar: Dict[str, List[Any]] = {k: [] for k in entity_rows[0].keys()} - for entity_row in entity_rows: - for key, value in entity_row.items(): - try: - columnar[key].append(value) - except KeyError as e: - raise ValueError( - "All entity_rows must have the same keys." - ) from e - entity_rows = columnar - - ( - join_key_values, - grouped_refs, - entity_name_to_join_key_map, - requested_on_demand_feature_views, - feature_refs, - requested_result_row_names, - online_features_response, - ) = utils._prepare_entities_to_read_from_online_store( - registry=registry, - project=project, - features=features, - entity_values=entity_rows, - full_feature_names=full_feature_names, - native_entity_values=True, - ) - - self._check_versioned_read_support(grouped_refs) - - _track_read = False - try: - from feast.metrics import _config as _metrics_config - - _track_read = _metrics_config.online_features - except Exception: - pass - - if _track_read: - import time as _time - - _read_start = _time.monotonic() - - # Pre-compute all Redis keys and hash field keys for every feature view so we - # can issue all HMGET commands in a single pipeline execution below. + grouped_refs, + join_key_values, + entity_name_to_join_key_map, + online_features_response, + full_feature_names: bool, + include_feature_view_version_metadata: bool, + ) -> None: + """Batch all per-FV HMGET commands into a single Redis pipeline.""" work_items = [] for table, requested_features in grouped_refs: table_entity_values, idxs, output_len = utils._get_unique_entities( - table, - join_key_values, - entity_name_to_join_key_map, + table, join_key_values, entity_name_to_join_key_map ) entity_key_protos = utils._get_entity_key_protos(table_entity_values) fv_name = _versioned_fv_name(table, config) redis_keys = self._generate_redis_keys_for_entities( config, entity_key_protos ) - - # Mutates requested_features in place (appends ts_key) — consistent with - # the base class behavior so _populate_response_from_feature_data works correctly. req_features, hset_keys = self._generate_hset_keys_for_features( table, requested_features, fv_name_override=fv_name ) @@ -692,7 +625,6 @@ def get_online_features( (table, req_features, fv_name, hset_keys, redis_keys, idxs, output_len) ) - # Single pipeline across all feature views: O(1) round trips instead of O(N_fv). if work_items: client = self._get_client(config.online_store) with client.pipeline(transaction=False) as pipe: @@ -730,96 +662,21 @@ def get_online_features( include_feature_view_version_metadata, ) - if _track_read: - from feast.metrics import track_online_store_read - - track_online_store_read(_time.monotonic() - _read_start) - - feature_types = self._build_feature_types(grouped_refs) - - if requested_on_demand_feature_views: - utils._augment_response_with_on_demand_transforms( - online_features_response, - feature_refs, - requested_on_demand_feature_views, - full_feature_names, - feature_types=feature_types, - ) - - utils._drop_unneeded_columns( - online_features_response, requested_result_row_names - ) - return OnlineResponse(online_features_response, feature_types=feature_types) - - async def get_online_features_async( + async def _read_features_per_fv_async( self, config: RepoConfig, - features: Union[List[str], FeatureService], - entity_rows: Union[ - List[Dict[str, Any]], - Mapping[str, Union[Sequence[Any], Sequence[ValueProto], RepeatedValue]], - ], - registry: BaseRegistry, - project: str, - full_feature_names: bool = False, - include_feature_view_version_metadata: bool = False, - ) -> OnlineResponse: - """ - Async version of get_online_features using a single batched Redis pipeline. - - Mirrors the sync override: all HMGET commands across all feature views are - issued in one async pipeline execution (O(1) round trips). - """ - if isinstance(entity_rows, list): - columnar: Dict[str, List[Any]] = {k: [] for k in entity_rows[0].keys()} - for entity_row in entity_rows: - for key, value in entity_row.items(): - try: - columnar[key].append(value) - except KeyError as e: - raise ValueError( - "All entity_rows must have the same keys." - ) from e - entity_rows = columnar - - ( - join_key_values, - grouped_refs, - entity_name_to_join_key_map, - requested_on_demand_feature_views, - feature_refs, - requested_result_row_names, - online_features_response, - ) = utils._prepare_entities_to_read_from_online_store( - registry=registry, - project=project, - features=features, - entity_values=entity_rows, - full_feature_names=full_feature_names, - native_entity_values=True, - ) - - self._check_versioned_read_support(grouped_refs) - - _track_read = False - try: - from feast.metrics import _config as _metrics_config - - _track_read = _metrics_config.online_features - except Exception: - pass - - if _track_read: - import time as _time - - _read_start = _time.monotonic() - + grouped_refs, + join_key_values, + entity_name_to_join_key_map, + online_features_response, + full_feature_names: bool, + include_feature_view_version_metadata: bool, + ) -> None: + """Async version: batch all per-FV HMGET into a single async pipeline.""" work_items = [] for table, requested_features in grouped_refs: table_entity_values, idxs, output_len = utils._get_unique_entities( - table, - join_key_values, - entity_name_to_join_key_map, + table, join_key_values, entity_name_to_join_key_map ) entity_key_protos = utils._get_entity_key_protos(table_entity_values) fv_name = _versioned_fv_name(table, config) @@ -870,27 +727,6 @@ async def get_online_features_async( include_feature_view_version_metadata, ) - if _track_read: - from feast.metrics import track_online_store_read - - track_online_store_read(_time.monotonic() - _read_start) - - feature_types = self._build_feature_types(grouped_refs) - - if requested_on_demand_feature_views: - utils._augment_response_with_on_demand_transforms( - online_features_response, - feature_refs, - requested_on_demand_feature_views, - full_feature_names, - feature_types=feature_types, - ) - - utils._drop_unneeded_columns( - online_features_response, requested_result_row_names - ) - return OnlineResponse(online_features_response, feature_types=feature_types) - def _get_features_for_entity( self, values: List[ByteString], diff --git a/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi b/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi index 3df12085cb6..36cd327a298 100644 --- a/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/DataSource_pb2.pyi @@ -16,42 +16,40 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ - -from collections import abc as _abc -from feast.core import DataFormat_pb2 as _DataFormat_pb2 # type: ignore[attr-defined] -from feast.core import Feature_pb2 as _Feature_pb2 # type: ignore[attr-defined] -from feast.types import Value_pb2 as _Value_pb2 # type: ignore[attr-defined] -from google.protobuf import descriptor as _descriptor -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import message as _message -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -import builtins as _builtins +import builtins +import collections.abc +import feast.core.DataFormat_pb2 +import feast.core.Feature_pb2 +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 import sys -import typing as _typing +import typing if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias + import typing as typing_extensions else: - from typing_extensions import TypeAlias as _TypeAlias + import typing_extensions -DESCRIPTOR: _descriptor.FileDescriptor +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -@_typing.final -class DataSource(_message.Message): +class DataSource(google.protobuf.message.Message): """Defines a Data Source that can be used source Feature data Next available id: 29 """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SourceType: - ValueType = _typing.NewType("ValueType", _builtins.int) - V: _TypeAlias = ValueType # noqa: Y015 + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType - class _SourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[DataSource._SourceType.ValueType], _builtins.type): - DESCRIPTOR: _descriptor.EnumDescriptor + class _SourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DataSource._SourceType.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor INVALID: DataSource._SourceType.ValueType # 0 BATCH_FILE: DataSource._SourceType.ValueType # 1 BATCH_SNOWFLAKE: DataSource._SourceType.ValueType # 8 @@ -85,565 +83,516 @@ class DataSource(_message.Message): BATCH_SPARK: DataSource.SourceType.ValueType # 11 BATCH_ATHENA: DataSource.SourceType.ValueType # 12 - @_typing.final - class TagsEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class TagsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - @_typing.final - class FieldMappingEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class FieldMappingEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _builtins.str + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str def __init__( self, *, - key: _builtins.str = ..., - value: _builtins.str = ..., + key: builtins.str = ..., + value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - - @_typing.final - class SourceMeta(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - EARLIESTEVENTTIMESTAMP_FIELD_NUMBER: _builtins.int - LATESTEVENTTIMESTAMP_FIELD_NUMBER: _builtins.int - CREATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: _builtins.int - @_builtins.property - def earliestEventTimestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def latestEventTimestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def created_timestamp(self) -> _timestamp_pb2.Timestamp: ... - @_builtins.property - def last_updated_timestamp(self) -> _timestamp_pb2.Timestamp: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + class SourceMeta(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EARLIESTEVENTTIMESTAMP_FIELD_NUMBER: builtins.int + LATESTEVENTTIMESTAMP_FIELD_NUMBER: builtins.int + CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int + LAST_UPDATED_TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def earliestEventTimestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def latestEventTimestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def last_updated_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... def __init__( self, *, - earliestEventTimestamp: _timestamp_pb2.Timestamp | None = ..., - latestEventTimestamp: _timestamp_pb2.Timestamp | None = ..., - created_timestamp: _timestamp_pb2.Timestamp | None = ..., - last_updated_timestamp: _timestamp_pb2.Timestamp | None = ..., + earliestEventTimestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + latestEventTimestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + last_updated_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["created_timestamp", b"created_timestamp", "earliestEventTimestamp", b"earliestEventTimestamp", "last_updated_timestamp", b"last_updated_timestamp", "latestEventTimestamp", b"latestEventTimestamp"]) -> None: ... - @_typing.final - class FileOptions(_message.Message): + class FileOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a file""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILE_FORMAT_FIELD_NUMBER: _builtins.int - URI_FIELD_NUMBER: _builtins.int - S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: _builtins.int - uri: _builtins.str + FILE_FORMAT_FIELD_NUMBER: builtins.int + URI_FIELD_NUMBER: builtins.int + S3_ENDPOINT_OVERRIDE_FIELD_NUMBER: builtins.int + @property + def file_format(self) -> feast.core.DataFormat_pb2.FileFormat: ... + uri: builtins.str """Target URL of file to retrieve and source features from. s3://path/to/file for AWS S3 storage gs://path/to/file for GCP GCS storage file:///path/to/file for local storage """ - s3_endpoint_override: _builtins.str + s3_endpoint_override: builtins.str """override AWS S3 storage endpoint with custom S3 endpoint""" - @_builtins.property - def file_format(self) -> _DataFormat_pb2.FileFormat: ... def __init__( self, *, - file_format: _DataFormat_pb2.FileFormat | None = ..., - uri: _builtins.str = ..., - s3_endpoint_override: _builtins.str = ..., + file_format: feast.core.DataFormat_pb2.FileFormat | None = ..., + uri: builtins.str = ..., + s3_endpoint_override: builtins.str = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["file_format", b"file_format"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["file_format", b"file_format", "s3_endpoint_override", b"s3_endpoint_override", "uri", b"uri"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["file_format", b"file_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["file_format", b"file_format", "s3_endpoint_override", b"s3_endpoint_override", "uri", b"uri"]) -> None: ... - @_typing.final - class BigQueryOptions(_message.Message): + class BigQueryOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a BigQuery Query""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_FIELD_NUMBER: _builtins.int - QUERY_FIELD_NUMBER: _builtins.int - table: _builtins.str + TABLE_FIELD_NUMBER: builtins.int + QUERY_FIELD_NUMBER: builtins.int + table: builtins.str """Full table reference in the form of [project:dataset.table]""" - query: _builtins.str + query: builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ def __init__( self, *, - table: _builtins.str = ..., - query: _builtins.str = ..., + table: builtins.str = ..., + query: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["query", b"query", "table", b"table"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["query", b"query", "table", b"table"]) -> None: ... - @_typing.final - class TrinoOptions(_message.Message): + class TrinoOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a Trino Query""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_FIELD_NUMBER: _builtins.int - QUERY_FIELD_NUMBER: _builtins.int - table: _builtins.str + TABLE_FIELD_NUMBER: builtins.int + QUERY_FIELD_NUMBER: builtins.int + table: builtins.str """Full table reference in the form of [project:dataset.table]""" - query: _builtins.str + query: builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ def __init__( self, *, - table: _builtins.str = ..., - query: _builtins.str = ..., + table: builtins.str = ..., + query: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["query", b"query", "table", b"table"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["query", b"query", "table", b"table"]) -> None: ... - @_typing.final - class KafkaOptions(_message.Message): + class KafkaOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from Kafka messages. Each message should be a Protobuf that can be decoded with the generated Java Protobuf class at the given class path """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KAFKA_BOOTSTRAP_SERVERS_FIELD_NUMBER: _builtins.int - TOPIC_FIELD_NUMBER: _builtins.int - MESSAGE_FORMAT_FIELD_NUMBER: _builtins.int - WATERMARK_DELAY_THRESHOLD_FIELD_NUMBER: _builtins.int - kafka_bootstrap_servers: _builtins.str + KAFKA_BOOTSTRAP_SERVERS_FIELD_NUMBER: builtins.int + TOPIC_FIELD_NUMBER: builtins.int + MESSAGE_FORMAT_FIELD_NUMBER: builtins.int + WATERMARK_DELAY_THRESHOLD_FIELD_NUMBER: builtins.int + kafka_bootstrap_servers: builtins.str """Comma separated list of Kafka bootstrap servers. Used for feature tables without a defined source host[:port]]""" - topic: _builtins.str + topic: builtins.str """Kafka topic to collect feature data from.""" - @_builtins.property - def message_format(self) -> _DataFormat_pb2.StreamFormat: + @property + def message_format(self) -> feast.core.DataFormat_pb2.StreamFormat: """Defines the stream data format encoding feature/entity data in Kafka messages.""" - - @_builtins.property - def watermark_delay_threshold(self) -> _duration_pb2.Duration: + @property + def watermark_delay_threshold(self) -> google.protobuf.duration_pb2.Duration: """Watermark delay threshold for stream data""" - def __init__( self, *, - kafka_bootstrap_servers: _builtins.str = ..., - topic: _builtins.str = ..., - message_format: _DataFormat_pb2.StreamFormat | None = ..., - watermark_delay_threshold: _duration_pb2.Duration | None = ..., + kafka_bootstrap_servers: builtins.str = ..., + topic: builtins.str = ..., + message_format: feast.core.DataFormat_pb2.StreamFormat | None = ..., + watermark_delay_threshold: google.protobuf.duration_pb2.Duration | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["message_format", b"message_format", "watermark_delay_threshold", b"watermark_delay_threshold"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["kafka_bootstrap_servers", b"kafka_bootstrap_servers", "message_format", b"message_format", "topic", b"topic", "watermark_delay_threshold", b"watermark_delay_threshold"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["message_format", b"message_format", "watermark_delay_threshold", b"watermark_delay_threshold"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["kafka_bootstrap_servers", b"kafka_bootstrap_servers", "message_format", b"message_format", "topic", b"topic", "watermark_delay_threshold", b"watermark_delay_threshold"]) -> None: ... - @_typing.final - class KinesisOptions(_message.Message): + class KinesisOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from Kinesis records. Each record should be a Protobuf that can be decoded with the generated Java Protobuf class at the given class path """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - REGION_FIELD_NUMBER: _builtins.int - STREAM_NAME_FIELD_NUMBER: _builtins.int - RECORD_FORMAT_FIELD_NUMBER: _builtins.int - region: _builtins.str + REGION_FIELD_NUMBER: builtins.int + STREAM_NAME_FIELD_NUMBER: builtins.int + RECORD_FORMAT_FIELD_NUMBER: builtins.int + region: builtins.str """AWS region of the Kinesis stream""" - stream_name: _builtins.str + stream_name: builtins.str """Name of the Kinesis stream to obtain feature data from.""" - @_builtins.property - def record_format(self) -> _DataFormat_pb2.StreamFormat: + @property + def record_format(self) -> feast.core.DataFormat_pb2.StreamFormat: """Defines the data format encoding the feature/entity data in Kinesis records. Kinesis Data Sources support Avro and Proto as data formats. """ - def __init__( self, *, - region: _builtins.str = ..., - stream_name: _builtins.str = ..., - record_format: _DataFormat_pb2.StreamFormat | None = ..., + region: builtins.str = ..., + stream_name: builtins.str = ..., + record_format: feast.core.DataFormat_pb2.StreamFormat | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["record_format", b"record_format"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["record_format", b"record_format", "region", b"region", "stream_name", b"stream_name"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["record_format", b"record_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["record_format", b"record_format", "region", b"region", "stream_name", b"stream_name"]) -> None: ... - @_typing.final - class RedshiftOptions(_message.Message): + class RedshiftOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a Redshift Query""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_FIELD_NUMBER: _builtins.int - QUERY_FIELD_NUMBER: _builtins.int - SCHEMA_FIELD_NUMBER: _builtins.int - DATABASE_FIELD_NUMBER: _builtins.int - table: _builtins.str + TABLE_FIELD_NUMBER: builtins.int + QUERY_FIELD_NUMBER: builtins.int + SCHEMA_FIELD_NUMBER: builtins.int + DATABASE_FIELD_NUMBER: builtins.int + table: builtins.str """Redshift table name""" - query: _builtins.str + query: builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ - schema: _builtins.str + schema: builtins.str """Redshift schema name""" - database: _builtins.str + database: builtins.str """Redshift database name""" def __init__( self, *, - table: _builtins.str = ..., - query: _builtins.str = ..., - schema: _builtins.str = ..., - database: _builtins.str = ..., + table: builtins.str = ..., + query: builtins.str = ..., + schema: builtins.str = ..., + database: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"]) -> None: ... - @_typing.final - class AthenaOptions(_message.Message): + class AthenaOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a Athena Query""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_FIELD_NUMBER: _builtins.int - QUERY_FIELD_NUMBER: _builtins.int - DATABASE_FIELD_NUMBER: _builtins.int - DATA_SOURCE_FIELD_NUMBER: _builtins.int - table: _builtins.str + TABLE_FIELD_NUMBER: builtins.int + QUERY_FIELD_NUMBER: builtins.int + DATABASE_FIELD_NUMBER: builtins.int + DATA_SOURCE_FIELD_NUMBER: builtins.int + table: builtins.str """Athena table name""" - query: _builtins.str + query: builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ - database: _builtins.str + database: builtins.str """Athena database name""" - data_source: _builtins.str + data_source: builtins.str """Athena schema name""" def __init__( self, *, - table: _builtins.str = ..., - query: _builtins.str = ..., - database: _builtins.str = ..., - data_source: _builtins.str = ..., + table: builtins.str = ..., + query: builtins.str = ..., + database: builtins.str = ..., + data_source: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["data_source", b"data_source", "database", b"database", "query", b"query", "table", b"table"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["data_source", b"data_source", "database", b"database", "query", b"query", "table", b"table"]) -> None: ... - @_typing.final - class SnowflakeOptions(_message.Message): + class SnowflakeOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a Snowflake Query""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_FIELD_NUMBER: _builtins.int - QUERY_FIELD_NUMBER: _builtins.int - SCHEMA_FIELD_NUMBER: _builtins.int - DATABASE_FIELD_NUMBER: _builtins.int - table: _builtins.str + TABLE_FIELD_NUMBER: builtins.int + QUERY_FIELD_NUMBER: builtins.int + SCHEMA_FIELD_NUMBER: builtins.int + DATABASE_FIELD_NUMBER: builtins.int + table: builtins.str """Snowflake table name""" - query: _builtins.str + query: builtins.str """SQL query that returns a table containing feature data. Must contain an event_timestamp column, and respective entity columns """ - schema: _builtins.str + schema: builtins.str """Snowflake schema name""" - database: _builtins.str + database: builtins.str """Snowflake schema name""" def __init__( self, *, - table: _builtins.str = ..., - query: _builtins.str = ..., - schema: _builtins.str = ..., - database: _builtins.str = ..., + table: builtins.str = ..., + query: builtins.str = ..., + schema: builtins.str = ..., + database: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "query", b"query", "schema", b"schema", "table", b"table"]) -> None: ... - @_typing.final - class SparkOptions(_message.Message): + class SparkOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from a spark table/query""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - TABLE_FIELD_NUMBER: _builtins.int - QUERY_FIELD_NUMBER: _builtins.int - PATH_FIELD_NUMBER: _builtins.int - FILE_FORMAT_FIELD_NUMBER: _builtins.int - DATE_PARTITION_COLUMN_FORMAT_FIELD_NUMBER: _builtins.int - TABLE_FORMAT_FIELD_NUMBER: _builtins.int - table: _builtins.str + TABLE_FIELD_NUMBER: builtins.int + QUERY_FIELD_NUMBER: builtins.int + PATH_FIELD_NUMBER: builtins.int + FILE_FORMAT_FIELD_NUMBER: builtins.int + DATE_PARTITION_COLUMN_FORMAT_FIELD_NUMBER: builtins.int + TABLE_FORMAT_FIELD_NUMBER: builtins.int + table: builtins.str """Table name""" - query: _builtins.str + query: builtins.str """Spark SQl query that returns the table, this is an alternative to `table`""" - path: _builtins.str + path: builtins.str """Path from which spark can read the table, this is an alternative to `table`""" - file_format: _builtins.str + file_format: builtins.str """Format of files at `path` (e.g. parquet, avro, etc)""" - date_partition_column_format: _builtins.str + date_partition_column_format: builtins.str """Date Format of date partition column (e.g. %Y-%m-%d)""" - @_builtins.property - def table_format(self) -> _DataFormat_pb2.TableFormat: + @property + def table_format(self) -> feast.core.DataFormat_pb2.TableFormat: """Table Format (e.g. iceberg, delta, hudi)""" - def __init__( self, *, - table: _builtins.str = ..., - query: _builtins.str = ..., - path: _builtins.str = ..., - file_format: _builtins.str = ..., - date_partition_column_format: _builtins.str = ..., - table_format: _DataFormat_pb2.TableFormat | None = ..., + table: builtins.str = ..., + query: builtins.str = ..., + path: builtins.str = ..., + file_format: builtins.str = ..., + date_partition_column_format: builtins.str = ..., + table_format: feast.core.DataFormat_pb2.TableFormat | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["table_format", b"table_format"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["date_partition_column_format", b"date_partition_column_format", "file_format", b"file_format", "path", b"path", "query", b"query", "table", b"table", "table_format", b"table_format"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["table_format", b"table_format"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["date_partition_column_format", b"date_partition_column_format", "file_format", b"file_format", "path", b"path", "query", b"query", "table", b"table", "table_format", b"table_format"]) -> None: ... - @_typing.final - class CustomSourceOptions(_message.Message): + class CustomSourceOptions(google.protobuf.message.Message): """Defines configuration for custom third-party data sources.""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONFIGURATION_FIELD_NUMBER: _builtins.int - configuration: _builtins.bytes + CONFIGURATION_FIELD_NUMBER: builtins.int + configuration: builtins.bytes """Serialized configuration information for the data source. The implementer of the custom data source is responsible for serializing and deserializing data from bytes """ def __init__( self, *, - configuration: _builtins.bytes = ..., + configuration: builtins.bytes = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["configuration", b"configuration"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["configuration", b"configuration"]) -> None: ... - @_typing.final - class RequestDataOptions(_message.Message): + class RequestDataOptions(google.protobuf.message.Message): """Defines options for DataSource that sources features from request data""" - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor - @_typing.final - class DeprecatedSchemaEntry(_message.Message): - DESCRIPTOR: _descriptor.Descriptor + class DeprecatedSchemaEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: _builtins.int - VALUE_FIELD_NUMBER: _builtins.int - key: _builtins.str - value: _Value_pb2.ValueType.Enum.ValueType + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: feast.types.Value_pb2.ValueType.Enum.ValueType def __init__( self, *, - key: _builtins.str = ..., - value: _Value_pb2.ValueType.Enum.ValueType = ..., + key: builtins.str = ..., + value: feast.types.Value_pb2.ValueType.Enum.ValueType = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - DEPRECATED_SCHEMA_FIELD_NUMBER: _builtins.int - SCHEMA_FIELD_NUMBER: _builtins.int - @_builtins.property - def deprecated_schema(self) -> _containers.ScalarMap[_builtins.str, _Value_pb2.ValueType.Enum.ValueType]: + DEPRECATED_SCHEMA_FIELD_NUMBER: builtins.int + SCHEMA_FIELD_NUMBER: builtins.int + @property + def deprecated_schema(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, feast.types.Value_pb2.ValueType.Enum.ValueType]: """Mapping of feature name to type""" - - @_builtins.property - def schema(self) -> _containers.RepeatedCompositeFieldContainer[_Feature_pb2.FeatureSpecV2]: ... + @property + def schema(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.core.Feature_pb2.FeatureSpecV2]: ... def __init__( self, *, - deprecated_schema: _abc.Mapping[_builtins.str, _Value_pb2.ValueType.Enum.ValueType] | None = ..., - schema: _abc.Iterable[_Feature_pb2.FeatureSpecV2] | None = ..., + deprecated_schema: collections.abc.Mapping[builtins.str, feast.types.Value_pb2.ValueType.Enum.ValueType] | None = ..., + schema: collections.abc.Iterable[feast.core.Feature_pb2.FeatureSpecV2] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["deprecated_schema", b"deprecated_schema", "schema", b"schema"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["deprecated_schema", b"deprecated_schema", "schema", b"schema"]) -> None: ... - @_typing.final - class PushOptions(_message.Message): + class PushOptions(google.protobuf.message.Message): """Defines options for DataSource that supports pushing data to it. This allows data to be pushed to the online store on-demand, such as by stream consumers. """ - DESCRIPTOR: _descriptor.Descriptor + DESCRIPTOR: google.protobuf.descriptor.Descriptor def __init__( self, ) -> None: ... - NAME_FIELD_NUMBER: _builtins.int - PROJECT_FIELD_NUMBER: _builtins.int - DESCRIPTION_FIELD_NUMBER: _builtins.int - TAGS_FIELD_NUMBER: _builtins.int - OWNER_FIELD_NUMBER: _builtins.int - TYPE_FIELD_NUMBER: _builtins.int - FIELD_MAPPING_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_FIELD_NUMBER: _builtins.int - DATE_PARTITION_COLUMN_FIELD_NUMBER: _builtins.int - CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: _builtins.int - DATA_SOURCE_CLASS_TYPE_FIELD_NUMBER: _builtins.int - BATCH_SOURCE_FIELD_NUMBER: _builtins.int - META_FIELD_NUMBER: _builtins.int - FILE_OPTIONS_FIELD_NUMBER: _builtins.int - BIGQUERY_OPTIONS_FIELD_NUMBER: _builtins.int - KAFKA_OPTIONS_FIELD_NUMBER: _builtins.int - KINESIS_OPTIONS_FIELD_NUMBER: _builtins.int - REDSHIFT_OPTIONS_FIELD_NUMBER: _builtins.int - REQUEST_DATA_OPTIONS_FIELD_NUMBER: _builtins.int - CUSTOM_OPTIONS_FIELD_NUMBER: _builtins.int - SNOWFLAKE_OPTIONS_FIELD_NUMBER: _builtins.int - PUSH_OPTIONS_FIELD_NUMBER: _builtins.int - SPARK_OPTIONS_FIELD_NUMBER: _builtins.int - TRINO_OPTIONS_FIELD_NUMBER: _builtins.int - ATHENA_OPTIONS_FIELD_NUMBER: _builtins.int - TIMESTAMP_FIELD_TYPE_FIELD_NUMBER: _builtins.int - name: _builtins.str + NAME_FIELD_NUMBER: builtins.int + PROJECT_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + TAGS_FIELD_NUMBER: builtins.int + OWNER_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + FIELD_MAPPING_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_FIELD_NUMBER: builtins.int + DATE_PARTITION_COLUMN_FIELD_NUMBER: builtins.int + CREATED_TIMESTAMP_COLUMN_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_TYPE_FIELD_NUMBER: builtins.int + DATA_SOURCE_CLASS_TYPE_FIELD_NUMBER: builtins.int + BATCH_SOURCE_FIELD_NUMBER: builtins.int + META_FIELD_NUMBER: builtins.int + FILE_OPTIONS_FIELD_NUMBER: builtins.int + BIGQUERY_OPTIONS_FIELD_NUMBER: builtins.int + KAFKA_OPTIONS_FIELD_NUMBER: builtins.int + KINESIS_OPTIONS_FIELD_NUMBER: builtins.int + REDSHIFT_OPTIONS_FIELD_NUMBER: builtins.int + REQUEST_DATA_OPTIONS_FIELD_NUMBER: builtins.int + CUSTOM_OPTIONS_FIELD_NUMBER: builtins.int + SNOWFLAKE_OPTIONS_FIELD_NUMBER: builtins.int + PUSH_OPTIONS_FIELD_NUMBER: builtins.int + SPARK_OPTIONS_FIELD_NUMBER: builtins.int + TRINO_OPTIONS_FIELD_NUMBER: builtins.int + ATHENA_OPTIONS_FIELD_NUMBER: builtins.int + name: builtins.str """Unique name of data source within the project""" - project: _builtins.str + project: builtins.str """Name of Feast project that this data source belongs to.""" - description: _builtins.str - owner: _builtins.str - type: Global___DataSource.SourceType.ValueType - timestamp_field: _builtins.str + description: builtins.str + @property + def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + owner: builtins.str + type: global___DataSource.SourceType.ValueType + @property + def field_mapping(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Defines mapping between fields in the sourced data + and fields in parent FeatureTable. + """ + timestamp_field: builtins.str """Must specify event timestamp column name""" - date_partition_column: _builtins.str + date_partition_column: builtins.str """(Optional) Specify partition column useful for file sources """ - created_timestamp_column: _builtins.str + created_timestamp_column: builtins.str """Must specify creation timestamp column name""" - timestamp_field_type: _builtins.str + timestamp_field_type: builtins.str """(Optional) Type of the timestamp_field column ("TIMESTAMP" or "DATE"). When set to "DATE", SQL generation uses date-only comparisons. """ - data_source_class_type: _builtins.str + data_source_class_type: builtins.str """This is an internal field that is represents the python class for the data source object a proto object represents. This should be set by feast, and not by users. The field is used primarily by custom data sources and is mandatory for them to set. Feast may set it for first party sources as well. """ - @_builtins.property - def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - @_builtins.property - def field_mapping(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: - """Defines mapping between fields in the sourced data - and fields in parent FeatureTable. - """ - - @_builtins.property - def batch_source(self) -> Global___DataSource: + @property + def batch_source(self) -> global___DataSource: """Optional batch source for streaming sources for historical features and materialization.""" - - @_builtins.property - def meta(self) -> Global___DataSource.SourceMeta: ... - @_builtins.property - def file_options(self) -> Global___DataSource.FileOptions: ... - @_builtins.property - def bigquery_options(self) -> Global___DataSource.BigQueryOptions: ... - @_builtins.property - def kafka_options(self) -> Global___DataSource.KafkaOptions: ... - @_builtins.property - def kinesis_options(self) -> Global___DataSource.KinesisOptions: ... - @_builtins.property - def redshift_options(self) -> Global___DataSource.RedshiftOptions: ... - @_builtins.property - def request_data_options(self) -> Global___DataSource.RequestDataOptions: ... - @_builtins.property - def custom_options(self) -> Global___DataSource.CustomSourceOptions: ... - @_builtins.property - def snowflake_options(self) -> Global___DataSource.SnowflakeOptions: ... - @_builtins.property - def push_options(self) -> Global___DataSource.PushOptions: ... - @_builtins.property - def spark_options(self) -> Global___DataSource.SparkOptions: ... - @_builtins.property - def trino_options(self) -> Global___DataSource.TrinoOptions: ... - @_builtins.property - def athena_options(self) -> Global___DataSource.AthenaOptions: ... + @property + def meta(self) -> global___DataSource.SourceMeta: ... + @property + def file_options(self) -> global___DataSource.FileOptions: ... + @property + def bigquery_options(self) -> global___DataSource.BigQueryOptions: ... + @property + def kafka_options(self) -> global___DataSource.KafkaOptions: ... + @property + def kinesis_options(self) -> global___DataSource.KinesisOptions: ... + @property + def redshift_options(self) -> global___DataSource.RedshiftOptions: ... + @property + def request_data_options(self) -> global___DataSource.RequestDataOptions: ... + @property + def custom_options(self) -> global___DataSource.CustomSourceOptions: ... + @property + def snowflake_options(self) -> global___DataSource.SnowflakeOptions: ... + @property + def push_options(self) -> global___DataSource.PushOptions: ... + @property + def spark_options(self) -> global___DataSource.SparkOptions: ... + @property + def trino_options(self) -> global___DataSource.TrinoOptions: ... + @property + def athena_options(self) -> global___DataSource.AthenaOptions: ... def __init__( self, *, - name: _builtins.str = ..., - project: _builtins.str = ..., - description: _builtins.str = ..., - tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - owner: _builtins.str = ..., - type: Global___DataSource.SourceType.ValueType = ..., - field_mapping: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., - timestamp_field: _builtins.str = ..., - date_partition_column: _builtins.str = ..., - created_timestamp_column: _builtins.str = ..., - timestamp_field_type: _builtins.str = ..., - data_source_class_type: _builtins.str = ..., - batch_source: Global___DataSource | None = ..., - meta: Global___DataSource.SourceMeta | None = ..., - file_options: Global___DataSource.FileOptions | None = ..., - bigquery_options: Global___DataSource.BigQueryOptions | None = ..., - kafka_options: Global___DataSource.KafkaOptions | None = ..., - kinesis_options: Global___DataSource.KinesisOptions | None = ..., - redshift_options: Global___DataSource.RedshiftOptions | None = ..., - request_data_options: Global___DataSource.RequestDataOptions | None = ..., - custom_options: Global___DataSource.CustomSourceOptions | None = ..., - snowflake_options: Global___DataSource.SnowflakeOptions | None = ..., - push_options: Global___DataSource.PushOptions | None = ..., - spark_options: Global___DataSource.SparkOptions | None = ..., - trino_options: Global___DataSource.TrinoOptions | None = ..., - athena_options: Global___DataSource.AthenaOptions | None = ..., + name: builtins.str = ..., + project: builtins.str = ..., + description: builtins.str = ..., + tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + owner: builtins.str = ..., + type: global___DataSource.SourceType.ValueType = ..., + field_mapping: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + timestamp_field: builtins.str = ..., + date_partition_column: builtins.str = ..., + created_timestamp_column: builtins.str = ..., + timestamp_field_type: builtins.str = ..., + data_source_class_type: builtins.str = ..., + batch_source: global___DataSource | None = ..., + meta: global___DataSource.SourceMeta | None = ..., + file_options: global___DataSource.FileOptions | None = ..., + bigquery_options: global___DataSource.BigQueryOptions | None = ..., + kafka_options: global___DataSource.KafkaOptions | None = ..., + kinesis_options: global___DataSource.KinesisOptions | None = ..., + redshift_options: global___DataSource.RedshiftOptions | None = ..., + request_data_options: global___DataSource.RequestDataOptions | None = ..., + custom_options: global___DataSource.CustomSourceOptions | None = ..., + snowflake_options: global___DataSource.SnowflakeOptions | None = ..., + push_options: global___DataSource.PushOptions | None = ..., + spark_options: global___DataSource.SparkOptions | None = ..., + trino_options: global___DataSource.TrinoOptions | None = ..., + athena_options: global___DataSource.AthenaOptions | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "custom_options", b"custom_options", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "options", b"options", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "trino_options", b"trino_options"] # noqa: Y015 - def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "custom_options", b"custom_options", "data_source_class_type", b"data_source_class_type", "date_partition_column", b"date_partition_column", "description", b"description", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "name", b"name", "options", b"options", "owner", b"owner", "project", b"project", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "tags", b"tags", "timestamp_field", b"timestamp_field", "timestamp_field_type", b"timestamp_field_type", "trino_options", b"trino_options", "type", b"type"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - _WhichOneofReturnType_options: _TypeAlias = _typing.Literal["file_options", "bigquery_options", "kafka_options", "kinesis_options", "redshift_options", "request_data_options", "custom_options", "snowflake_options", "push_options", "spark_options", "trino_options", "athena_options"] # noqa: Y015 - _WhichOneofArgType_options: _TypeAlias = _typing.Literal["options", b"options"] # noqa: Y015 - def WhichOneof(self, oneof_group: _WhichOneofArgType_options) -> _WhichOneofReturnType_options | None: ... - -Global___DataSource: _TypeAlias = DataSource # noqa: Y015 - -@_typing.final -class DataSourceList(_message.Message): - DESCRIPTOR: _descriptor.Descriptor - - DATASOURCES_FIELD_NUMBER: _builtins.int - @_builtins.property - def datasources(self) -> _containers.RepeatedCompositeFieldContainer[Global___DataSource]: ... + def HasField(self, field_name: typing_extensions.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "custom_options", b"custom_options", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "options", b"options", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "trino_options", b"trino_options"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["athena_options", b"athena_options", "batch_source", b"batch_source", "bigquery_options", b"bigquery_options", "created_timestamp_column", b"created_timestamp_column", "custom_options", b"custom_options", "data_source_class_type", b"data_source_class_type", "date_partition_column", b"date_partition_column", "description", b"description", "field_mapping", b"field_mapping", "file_options", b"file_options", "kafka_options", b"kafka_options", "kinesis_options", b"kinesis_options", "meta", b"meta", "name", b"name", "options", b"options", "owner", b"owner", "project", b"project", "push_options", b"push_options", "redshift_options", b"redshift_options", "request_data_options", b"request_data_options", "snowflake_options", b"snowflake_options", "spark_options", b"spark_options", "tags", b"tags", "timestamp_field", b"timestamp_field", "timestamp_field_type", b"timestamp_field_type", "trino_options", b"trino_options", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["options", b"options"]) -> typing_extensions.Literal["file_options", "bigquery_options", "kafka_options", "kinesis_options", "redshift_options", "request_data_options", "custom_options", "snowflake_options", "push_options", "spark_options", "trino_options", "athena_options"] | None: ... + +global___DataSource = DataSource + +class DataSourceList(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATASOURCES_FIELD_NUMBER: builtins.int + @property + def datasources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataSource]: ... def __init__( self, *, - datasources: _abc.Iterable[Global___DataSource] | None = ..., + datasources: collections.abc.Iterable[global___DataSource] | None = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["datasources", b"datasources"] # noqa: Y015 - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["datasources", b"datasources"]) -> None: ... -Global___DataSourceList: _TypeAlias = DataSourceList # noqa: Y015 +global___DataSourceList = DataSourceList diff --git a/sdk/python/feast/protos/feast/core/FeatureService_pb2.py b/sdk/python/feast/protos/feast/core/FeatureService_pb2.py index 7ef36079691..24940b4ca33 100644 --- a/sdk/python/feast/protos/feast/core/FeatureService_pb2.py +++ b/sdk/python/feast/protos/feast/core/FeatureService_pb2.py @@ -16,7 +16,7 @@ from feast.protos.feast.core import FeatureViewProjection_pb2 as feast_dot_core_dot_FeatureViewProjection__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66\x65\x61st/core/FeatureService.proto\x12\nfeast.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&feast/core/FeatureViewProjection.proto\"l\n\x0e\x46\x65\x61tureService\x12,\n\x04spec\x18\x01 \x01(\x0b\x32\x1e.feast.core.FeatureServiceSpec\x12,\n\x04meta\x18\x02 \x01(\x0b\x32\x1e.feast.core.FeatureServiceMeta\"\xa4\x02\n\x12\x46\x65\x61tureServiceSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x33\n\x08\x66\x65\x61tures\x18\x03 \x03(\x0b\x32!.feast.core.FeatureViewProjection\x12\x36\n\x04tags\x18\x04 \x03(\x0b\x32(.feast.core.FeatureServiceSpec.TagsEntry\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05owner\x18\x06 \x01(\t\x12\x31\n\x0elogging_config\x18\x07 \x01(\x0b\x32\x19.feast.core.LoggingConfig\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x12\x46\x65\x61tureServiceMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd1\x08\n\rLoggingConfig\x12\x13\n\x0bsample_rate\x18\x01 \x01(\x02\x12\x45\n\x10\x66ile_destination\x18\x03 \x01(\x0b\x32).feast.core.LoggingConfig.FileDestinationH\x00\x12M\n\x14\x62igquery_destination\x18\x04 \x01(\x0b\x32-.feast.core.LoggingConfig.BigQueryDestinationH\x00\x12M\n\x14redshift_destination\x18\x05 \x01(\x0b\x32-.feast.core.LoggingConfig.RedshiftDestinationH\x00\x12O\n\x15snowflake_destination\x18\x06 \x01(\x0b\x32..feast.core.LoggingConfig.SnowflakeDestinationH\x00\x12I\n\x12\x63ustom_destination\x18\x07 \x01(\x0b\x32+.feast.core.LoggingConfig.CustomDestinationH\x00\x12I\n\x12\x61thena_destination\x18\x08 \x01(\x0b\x32+.feast.core.LoggingConfig.AthenaDestinationH\x00\x12`\n\x1e\x63ouchbase_columnar_destination\x18\t \x01(\x0b\x32\x36.feast.core.LoggingConfig.CouchbaseColumnarDestinationH\x00\x1aS\n\x0f\x46ileDestination\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1c\n\x14s3_endpoint_override\x18\x02 \x01(\t\x12\x14\n\x0cpartition_by\x18\x03 \x03(\t\x1a(\n\x13\x42igQueryDestination\x12\x11\n\ttable_ref\x18\x01 \x01(\t\x1a)\n\x13RedshiftDestination\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a\'\n\x11\x41thenaDestination\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a*\n\x14SnowflakeDestination\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a\x99\x01\n\x11\x43ustomDestination\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12G\n\x06\x63onfig\x18\x02 \x03(\x0b\x32\x37.feast.core.LoggingConfig.CustomDestination.ConfigEntry\x1a-\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aS\n\x1c\x43ouchbaseColumnarDestination\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\r\n\x05scope\x18\x02 \x01(\t\x12\x12\n\ncollection\x18\x03 \x01(\tB\r\n\x0b\x64\x65stination\"I\n\x12\x46\x65\x61tureServiceList\x12\x33\n\x0f\x66\x65\x61tureservices\x18\x01 \x03(\x0b\x32\x1a.feast.core.FeatureServiceBX\n\x10\x66\x65\x61st.proto.coreB\x13\x46\x65\x61tureServiceProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66\x65\x61st/core/FeatureService.proto\x12\nfeast.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&feast/core/FeatureViewProjection.proto\"l\n\x0e\x46\x65\x61tureService\x12,\n\x04spec\x18\x01 \x01(\x0b\x32\x1e.feast.core.FeatureServiceSpec\x12,\n\x04meta\x18\x02 \x01(\x0b\x32\x1e.feast.core.FeatureServiceMeta\"\xbf\x02\n\x12\x46\x65\x61tureServiceSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x33\n\x08\x66\x65\x61tures\x18\x03 \x03(\x0b\x32!.feast.core.FeatureViewProjection\x12\x36\n\x04tags\x18\x04 \x03(\x0b\x32(.feast.core.FeatureServiceSpec.TagsEntry\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05owner\x18\x06 \x01(\t\x12\x31\n\x0elogging_config\x18\x07 \x01(\x0b\x32\x19.feast.core.LoggingConfig\x12\x19\n\x11precompute_online\x18\x08 \x01(\x08\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x12\x46\x65\x61tureServiceMeta\x12\x35\n\x11\x63reated_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x16last_updated_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd1\x08\n\rLoggingConfig\x12\x13\n\x0bsample_rate\x18\x01 \x01(\x02\x12\x45\n\x10\x66ile_destination\x18\x03 \x01(\x0b\x32).feast.core.LoggingConfig.FileDestinationH\x00\x12M\n\x14\x62igquery_destination\x18\x04 \x01(\x0b\x32-.feast.core.LoggingConfig.BigQueryDestinationH\x00\x12M\n\x14redshift_destination\x18\x05 \x01(\x0b\x32-.feast.core.LoggingConfig.RedshiftDestinationH\x00\x12O\n\x15snowflake_destination\x18\x06 \x01(\x0b\x32..feast.core.LoggingConfig.SnowflakeDestinationH\x00\x12I\n\x12\x63ustom_destination\x18\x07 \x01(\x0b\x32+.feast.core.LoggingConfig.CustomDestinationH\x00\x12I\n\x12\x61thena_destination\x18\x08 \x01(\x0b\x32+.feast.core.LoggingConfig.AthenaDestinationH\x00\x12`\n\x1e\x63ouchbase_columnar_destination\x18\t \x01(\x0b\x32\x36.feast.core.LoggingConfig.CouchbaseColumnarDestinationH\x00\x1aS\n\x0f\x46ileDestination\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1c\n\x14s3_endpoint_override\x18\x02 \x01(\t\x12\x14\n\x0cpartition_by\x18\x03 \x03(\t\x1a(\n\x13\x42igQueryDestination\x12\x11\n\ttable_ref\x18\x01 \x01(\t\x1a)\n\x13RedshiftDestination\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a\'\n\x11\x41thenaDestination\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a*\n\x14SnowflakeDestination\x12\x12\n\ntable_name\x18\x01 \x01(\t\x1a\x99\x01\n\x11\x43ustomDestination\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12G\n\x06\x63onfig\x18\x02 \x03(\x0b\x32\x37.feast.core.LoggingConfig.CustomDestination.ConfigEntry\x1a-\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aS\n\x1c\x43ouchbaseColumnarDestination\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\r\n\x05scope\x18\x02 \x01(\t\x12\x12\n\ncollection\x18\x03 \x01(\tB\r\n\x0b\x64\x65stination\"I\n\x12\x46\x65\x61tureServiceList\x12\x33\n\x0f\x66\x65\x61tureservices\x18\x01 \x03(\x0b\x32\x1a.feast.core.FeatureServiceBX\n\x10\x66\x65\x61st.proto.coreB\x13\x46\x65\x61tureServiceProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,29 +31,29 @@ _globals['_FEATURESERVICE']._serialized_start=120 _globals['_FEATURESERVICE']._serialized_end=228 _globals['_FEATURESERVICESPEC']._serialized_start=231 - _globals['_FEATURESERVICESPEC']._serialized_end=523 - _globals['_FEATURESERVICESPEC_TAGSENTRY']._serialized_start=480 - _globals['_FEATURESERVICESPEC_TAGSENTRY']._serialized_end=523 - _globals['_FEATURESERVICEMETA']._serialized_start=526 - _globals['_FEATURESERVICEMETA']._serialized_end=661 - _globals['_LOGGINGCONFIG']._serialized_start=664 - _globals['_LOGGINGCONFIG']._serialized_end=1769 - _globals['_LOGGINGCONFIG_FILEDESTINATION']._serialized_start=1260 - _globals['_LOGGINGCONFIG_FILEDESTINATION']._serialized_end=1343 - _globals['_LOGGINGCONFIG_BIGQUERYDESTINATION']._serialized_start=1345 - _globals['_LOGGINGCONFIG_BIGQUERYDESTINATION']._serialized_end=1385 - _globals['_LOGGINGCONFIG_REDSHIFTDESTINATION']._serialized_start=1387 - _globals['_LOGGINGCONFIG_REDSHIFTDESTINATION']._serialized_end=1428 - _globals['_LOGGINGCONFIG_ATHENADESTINATION']._serialized_start=1430 - _globals['_LOGGINGCONFIG_ATHENADESTINATION']._serialized_end=1469 - _globals['_LOGGINGCONFIG_SNOWFLAKEDESTINATION']._serialized_start=1471 - _globals['_LOGGINGCONFIG_SNOWFLAKEDESTINATION']._serialized_end=1513 - _globals['_LOGGINGCONFIG_CUSTOMDESTINATION']._serialized_start=1516 - _globals['_LOGGINGCONFIG_CUSTOMDESTINATION']._serialized_end=1669 - _globals['_LOGGINGCONFIG_CUSTOMDESTINATION_CONFIGENTRY']._serialized_start=1624 - _globals['_LOGGINGCONFIG_CUSTOMDESTINATION_CONFIGENTRY']._serialized_end=1669 - _globals['_LOGGINGCONFIG_COUCHBASECOLUMNARDESTINATION']._serialized_start=1671 - _globals['_LOGGINGCONFIG_COUCHBASECOLUMNARDESTINATION']._serialized_end=1754 - _globals['_FEATURESERVICELIST']._serialized_start=1771 - _globals['_FEATURESERVICELIST']._serialized_end=1844 + _globals['_FEATURESERVICESPEC']._serialized_end=550 + _globals['_FEATURESERVICESPEC_TAGSENTRY']._serialized_start=507 + _globals['_FEATURESERVICESPEC_TAGSENTRY']._serialized_end=550 + _globals['_FEATURESERVICEMETA']._serialized_start=553 + _globals['_FEATURESERVICEMETA']._serialized_end=688 + _globals['_LOGGINGCONFIG']._serialized_start=691 + _globals['_LOGGINGCONFIG']._serialized_end=1796 + _globals['_LOGGINGCONFIG_FILEDESTINATION']._serialized_start=1287 + _globals['_LOGGINGCONFIG_FILEDESTINATION']._serialized_end=1370 + _globals['_LOGGINGCONFIG_BIGQUERYDESTINATION']._serialized_start=1372 + _globals['_LOGGINGCONFIG_BIGQUERYDESTINATION']._serialized_end=1412 + _globals['_LOGGINGCONFIG_REDSHIFTDESTINATION']._serialized_start=1414 + _globals['_LOGGINGCONFIG_REDSHIFTDESTINATION']._serialized_end=1455 + _globals['_LOGGINGCONFIG_ATHENADESTINATION']._serialized_start=1457 + _globals['_LOGGINGCONFIG_ATHENADESTINATION']._serialized_end=1496 + _globals['_LOGGINGCONFIG_SNOWFLAKEDESTINATION']._serialized_start=1498 + _globals['_LOGGINGCONFIG_SNOWFLAKEDESTINATION']._serialized_end=1540 + _globals['_LOGGINGCONFIG_CUSTOMDESTINATION']._serialized_start=1543 + _globals['_LOGGINGCONFIG_CUSTOMDESTINATION']._serialized_end=1696 + _globals['_LOGGINGCONFIG_CUSTOMDESTINATION_CONFIGENTRY']._serialized_start=1651 + _globals['_LOGGINGCONFIG_CUSTOMDESTINATION_CONFIGENTRY']._serialized_end=1696 + _globals['_LOGGINGCONFIG_COUCHBASECOLUMNARDESTINATION']._serialized_start=1698 + _globals['_LOGGINGCONFIG_COUCHBASECOLUMNARDESTINATION']._serialized_end=1781 + _globals['_FEATURESERVICELIST']._serialized_start=1798 + _globals['_FEATURESERVICELIST']._serialized_end=1871 # @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi b/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi index 6d5879e52cb..a3e6158ad91 100644 --- a/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi +++ b/sdk/python/feast/protos/feast/core/FeatureService_pb2.pyi @@ -65,6 +65,7 @@ class FeatureServiceSpec(google.protobuf.message.Message): DESCRIPTION_FIELD_NUMBER: builtins.int OWNER_FIELD_NUMBER: builtins.int LOGGING_CONFIG_FIELD_NUMBER: builtins.int + PRECOMPUTE_ONLINE_FIELD_NUMBER: builtins.int name: builtins.str """Name of the Feature Service. Must be unique. Not updated.""" project: builtins.str @@ -84,6 +85,10 @@ class FeatureServiceSpec(google.protobuf.message.Message): @property def logging_config(self) -> global___LoggingConfig: """(optional) if provided logging will be enabled for this feature service.""" + precompute_online: builtins.bool + """When true, a pre-computed feature vector is maintained per entity for this + service, enabling single-read online retrieval instead of per-feature-view reads. + """ def __init__( self, *, @@ -94,9 +99,10 @@ class FeatureServiceSpec(google.protobuf.message.Message): description: builtins.str = ..., owner: builtins.str = ..., logging_config: global___LoggingConfig | None = ..., + precompute_online: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing_extensions.Literal["logging_config", b"logging_config"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "features", b"features", "logging_config", b"logging_config", "name", b"name", "owner", b"owner", "project", b"project", "tags", b"tags"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "features", b"features", "logging_config", b"logging_config", "name", b"name", "owner", b"owner", "precompute_online", b"precompute_online", "project", b"project", "tags", b"tags"]) -> None: ... global___FeatureServiceSpec = FeatureServiceSpec diff --git a/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.py b/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.py new file mode 100644 index 00000000000..f86f32238cb --- /dev/null +++ b/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: feast/core/PrecomputedFeatureVector.proto +# Protobuf Python Version: 4.25.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from feast.protos.feast.types import Value_pb2 as feast_dot_types_dot_Value__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)feast/core/PrecomputedFeatureVector.proto\x12\nfeast.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17\x66\x65\x61st/types/Value.proto\"\xc2\x01\n\x18PrecomputedFeatureVector\x12\x15\n\rfeature_names\x18\x01 \x03(\t\x12\"\n\x06values\x18\x02 \x03(\x0b\x32\x12.feast.types.Value\x12\x37\n\rfv_timestamps\x18\x03 \x03(\x0b\x32 .feast.core.FeatureViewTimestamp\x12\x32\n\x0eprecomputed_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"f\n\x14\x46\x65\x61tureViewTimestamp\x12\x19\n\x11\x66\x65\x61ture_view_name\x18\x01 \x01(\t\x12\x33\n\x0f\x65vent_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBb\n\x10\x66\x65\x61st.proto.coreB\x1dPrecomputedFeatureVectorProtoZ/github.com/feast-dev/feast/go/protos/feast/coreb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'feast.core.PrecomputedFeatureVector_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\020feast.proto.coreB\035PrecomputedFeatureVectorProtoZ/github.com/feast-dev/feast/go/protos/feast/core' + _globals['_PRECOMPUTEDFEATUREVECTOR']._serialized_start=116 + _globals['_PRECOMPUTEDFEATUREVECTOR']._serialized_end=310 + _globals['_FEATUREVIEWTIMESTAMP']._serialized_start=312 + _globals['_FEATUREVIEWTIMESTAMP']._serialized_end=414 +# @@protoc_insertion_point(module_scope) diff --git a/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.pyi b/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.pyi new file mode 100644 index 00000000000..919f1b59973 --- /dev/null +++ b/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2.pyi @@ -0,0 +1,76 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" +import builtins +import collections.abc +import feast.types.Value_pb2 +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class PrecomputedFeatureVector(google.protobuf.message.Message): + """A pre-computed feature vector stores all features for a FeatureService + as a single serialized blob per entity, enabling O(1) online retrieval. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURE_NAMES_FIELD_NUMBER: builtins.int + VALUES_FIELD_NUMBER: builtins.int + FV_TIMESTAMPS_FIELD_NUMBER: builtins.int + PRECOMPUTED_AT_FIELD_NUMBER: builtins.int + @property + def feature_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Fully-qualified feature names in deterministic order, e.g. "fv1__feat1".""" + @property + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[feast.types.Value_pb2.Value]: + """Feature values in the same order as feature_names.""" + @property + def fv_timestamps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureViewTimestamp]: + """Per-feature-view event timestamps for TTL enforcement at read time.""" + @property + def precomputed_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Wall-clock time when this vector was assembled.""" + def __init__( + self, + *, + feature_names: collections.abc.Iterable[builtins.str] | None = ..., + values: collections.abc.Iterable[feast.types.Value_pb2.Value] | None = ..., + fv_timestamps: collections.abc.Iterable[global___FeatureViewTimestamp] | None = ..., + precomputed_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["precomputed_at", b"precomputed_at"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["feature_names", b"feature_names", "fv_timestamps", b"fv_timestamps", "precomputed_at", b"precomputed_at", "values", b"values"]) -> None: ... + +global___PrecomputedFeatureVector = PrecomputedFeatureVector + +class FeatureViewTimestamp(google.protobuf.message.Message): + """Event timestamp associated with a specific feature view within the vector.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FEATURE_VIEW_NAME_FIELD_NUMBER: builtins.int + EVENT_TIMESTAMP_FIELD_NUMBER: builtins.int + feature_view_name: builtins.str + @property + def event_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + feature_view_name: builtins.str = ..., + event_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["event_timestamp", b"event_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["event_timestamp", b"event_timestamp", "feature_view_name", b"feature_view_name"]) -> None: ... + +global___FeatureViewTimestamp = FeatureViewTimestamp diff --git a/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2_grpc.py b/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2_grpc.py new file mode 100644 index 00000000000..2daafffebfc --- /dev/null +++ b/sdk/python/feast/protos/feast/core/PrecomputedFeatureVector_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/sdk/python/tests/unit/test_precomputed_feature_vectors.py b/sdk/python/tests/unit/test_precomputed_feature_vectors.py new file mode 100644 index 00000000000..80b0b83f53f --- /dev/null +++ b/sdk/python/tests/unit/test_precomputed_feature_vectors.py @@ -0,0 +1,933 @@ +"""Tests for pre-computed feature vectors (issue #6185).""" + +from datetime import datetime, timedelta, timezone +from unittest.mock import MagicMock + +import pytest +from google.protobuf.timestamp_pb2 import Timestamp + +from feast.feature_service import FeatureService +from feast.feature_view import FeatureView +from feast.field import Field +from feast.infra.offline_stores.file_source import FileSource +from feast.on_demand_feature_view import OnDemandFeatureView +from feast.protos.feast.core.PrecomputedFeatureVector_pb2 import ( + FeatureViewTimestamp, + PrecomputedFeatureVector, +) +from feast.protos.feast.serving.ServingService_pb2 import ( + FieldStatus, + GetOnlineFeaturesResponse, +) +from feast.protos.feast.types.Value_pb2 import Value as ValueProto +from feast.types import Float32, Int64 + + +def _make_file_source(name="src"): + return FileSource(name=name, path="test.parquet") + + +def _make_fv(name, features, source=None, ttl=None): + return FeatureView( + name=name, + entities=[], + schema=features, + source=source or _make_file_source(f"{name}_src"), + ttl=ttl or timedelta(0), + ) + + +def _make_timestamp(dt=None): + ts = Timestamp() + ts.FromDatetime(dt or datetime.now(tz=timezone.utc)) + return ts + + +def _make_vector(feature_names, values, fv_timestamps=None, precomputed_at=None): + return PrecomputedFeatureVector( + feature_names=feature_names, + values=values, + fv_timestamps=fv_timestamps or [], + precomputed_at=precomputed_at or _make_timestamp(), + ) + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Proto round-trip +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestPrecomputedFeatureVectorProto: + def test_serialize_deserialize(self): + now = _make_timestamp() + fv_ts = FeatureViewTimestamp(feature_view_name="driver_fv", event_timestamp=now) + vector = _make_vector( + feature_names=["driver_fv__trips", "driver_fv__rating"], + values=[ValueProto(int64_val=100), ValueProto(float_val=4.5)], + fv_timestamps=[fv_ts], + precomputed_at=now, + ) + + blob = vector.SerializeToString() + parsed = PrecomputedFeatureVector() + parsed.ParseFromString(blob) + + assert list(parsed.feature_names) == ["driver_fv__trips", "driver_fv__rating"] + assert parsed.values[0].int64_val == 100 + assert parsed.values[1].float_val == pytest.approx(4.5) + assert parsed.fv_timestamps[0].feature_view_name == "driver_fv" + + def test_empty_vector(self): + vector = PrecomputedFeatureVector() + blob = vector.SerializeToString() + parsed = PrecomputedFeatureVector() + parsed.ParseFromString(blob) + assert list(parsed.feature_names) == [] + assert list(parsed.values) == [] + + def test_multiple_fv_timestamps(self): + ts1 = _make_timestamp(datetime(2025, 1, 1, tzinfo=timezone.utc)) + ts2 = _make_timestamp(datetime(2025, 6, 1, tzinfo=timezone.utc)) + + vector = _make_vector( + feature_names=["fv1__a", "fv2__b"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=2.0)], + fv_timestamps=[ + FeatureViewTimestamp(feature_view_name="fv1", event_timestamp=ts1), + FeatureViewTimestamp(feature_view_name="fv2", event_timestamp=ts2), + ], + ) + blob = vector.SerializeToString() + parsed = PrecomputedFeatureVector() + parsed.ParseFromString(blob) + + assert len(parsed.fv_timestamps) == 2 + assert parsed.fv_timestamps[0].feature_view_name == "fv1" + assert parsed.fv_timestamps[1].feature_view_name == "fv2" + assert parsed.fv_timestamps[0].event_timestamp.seconds == ts1.seconds + assert parsed.fv_timestamps[1].event_timestamp.seconds == ts2.seconds + + def test_null_values_preserved(self): + vector = _make_vector( + feature_names=["fv1__a", "fv1__b"], + values=[ValueProto(float_val=1.0), ValueProto()], + ) + blob = vector.SerializeToString() + parsed = PrecomputedFeatureVector() + parsed.ParseFromString(blob) + + assert parsed.values[0].float_val == pytest.approx(1.0) + assert not parsed.values[1].HasField("val") + + def test_large_vector(self): + n = 100 + names = [f"fv__feat_{i}" for i in range(n)] + vals = [ValueProto(float_val=float(i)) for i in range(n)] + vector = _make_vector(feature_names=names, values=vals) + blob = vector.SerializeToString() + parsed = PrecomputedFeatureVector() + parsed.ParseFromString(blob) + + assert len(parsed.feature_names) == n + assert len(parsed.values) == n + assert parsed.values[99].float_val == pytest.approx(99.0) + + +# ═══════════════════════════════════════════════════════════════════════════════ +# FeatureService precompute_online flag +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestFeatureServicePrecomputeOnline: + def test_default_is_false(self): + fs = FeatureService(name="svc", features=[]) + assert fs.precompute_online is False + + def test_set_true(self): + fs = FeatureService(name="svc", features=[], precompute_online=True) + assert fs.precompute_online is True + + def test_to_proto_roundtrip_true(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + fs = FeatureService(name="svc", features=[fv], precompute_online=True) + proto = fs.to_proto() + assert proto.spec.precompute_online is True + restored = FeatureService.from_proto(proto) + assert restored.precompute_online is True + + def test_to_proto_roundtrip_false(self): + fs = FeatureService(name="svc", features=[], precompute_online=False) + proto = fs.to_proto() + assert proto.spec.precompute_online is False + restored = FeatureService.from_proto(proto) + assert restored.precompute_online is False + + def test_equality_includes_precompute(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + fs1 = FeatureService(name="svc", features=[fv], precompute_online=True) + fs2 = FeatureService(name="svc", features=[fv], precompute_online=False) + assert fs1 != fs2 + + def test_equality_same_precompute(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + fs1 = FeatureService(name="svc", features=[fv], precompute_online=True) + fs2 = FeatureService(name="svc", features=[fv], precompute_online=True) + assert fs1 == fs2 + + def test_proto_preserves_other_fields(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + fs = FeatureService( + name="svc", + features=[fv], + precompute_online=True, + description="test desc", + owner="owner@test.com", + tags={"env": "prod"}, + ) + proto = fs.to_proto() + restored = FeatureService.from_proto(proto) + + assert restored.precompute_online is True + assert restored.description == "test desc" + assert restored.owner == "owner@test.com" + assert restored.tags == {"env": "prod"} + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Validation +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestFeatureServiceValidation: + def test_validate_passes_without_precompute(self): + fs = FeatureService(name="svc", features=[], precompute_online=False) + fs.validate() + + def test_validate_passes_precompute_regular_fv(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + fs = FeatureService(name="svc", features=[fv], precompute_online=True) + fs.validate() + + def test_validate_rejects_odfv_without_write_to_online(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + + odfv = MagicMock(spec=OnDemandFeatureView) + odfv.name = "odfv1" + odfv.write_to_online_store = False + + fs = FeatureService(name="svc", features=[fv], precompute_online=True) + fs._features = [fv, odfv] + + with pytest.raises(ValueError, match="write_to_online_store=False"): + fs.validate() + + def test_validate_passes_odfv_with_write_to_online(self): + fv = _make_fv("fv1", [Field(name="f1", dtype=Float32)]) + + odfv = MagicMock(spec=OnDemandFeatureView) + odfv.name = "odfv1" + odfv.write_to_online_store = True + + fs = FeatureService(name="svc", features=[fv], precompute_online=True) + fs._features = [fv, odfv] + + fs.validate() + + def test_validate_rejects_multiple_odfvs_without_write(self): + odfv1 = MagicMock(spec=OnDemandFeatureView) + odfv1.name = "odfv1" + odfv1.write_to_online_store = False + + odfv2 = MagicMock(spec=OnDemandFeatureView) + odfv2.name = "odfv2" + odfv2.write_to_online_store = False + + fs = FeatureService(name="svc", features=[], precompute_online=True) + fs._features = [odfv1, odfv2] + + with pytest.raises(ValueError, match="odfv1"): + fs.validate() + + def test_validate_error_message_includes_service_and_odfv_name(self): + odfv = MagicMock(spec=OnDemandFeatureView) + odfv.name = "my_transform" + odfv.write_to_online_store = False + + fs = FeatureService(name="my_service", features=[], precompute_online=True) + fs._features = [odfv] + + with pytest.raises(ValueError) as exc_info: + fs.validate() + + assert "my_service" in str(exc_info.value) + assert "my_transform" in str(exc_info.value) + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Schema mismatch detection (fast path fallback) +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestSchemaMismatchFallback: + def _fast_path(self, blobs, expected_names, grouped_refs=None, num_rows=None): + from feast.infra.online_stores.online_store import OnlineStore + + response = GetOnlineFeaturesResponse(results=[]) + result = OnlineStore._try_precomputed_fast_path( + blobs=blobs, + expected_feature_names=expected_names, + online_features_response=response, + full_feature_names=True, + num_rows=num_rows or len(blobs), + grouped_refs=grouped_refs or [], + registry=MagicMock(), + project="test", + ) + return result, response + + def test_mismatch_returns_false(self): + vector = _make_vector( + feature_names=["fv1__f1", "fv1__f2"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=2.0)], + ) + ok, _ = self._fast_path([vector.SerializeToString()], ["fv1__f1", "fv1__f3"]) + assert ok is False + + def test_none_blob_returns_false(self): + ok, _ = self._fast_path([None], ["fv1__f1"]) + assert ok is False + + def test_matching_schema_returns_true(self): + vector = _make_vector( + feature_names=["fv1__f1"], + values=[ValueProto(float_val=42.0)], + ) + ok, response = self._fast_path([vector.SerializeToString()], ["fv1__f1"]) + assert ok is True + assert len(response.results) == 1 + assert response.results[0].values[0].float_val == pytest.approx(42.0) + + def test_extra_feature_in_expected_returns_false(self): + vector = _make_vector( + feature_names=["fv1__f1"], + values=[ValueProto(float_val=1.0)], + ) + ok, _ = self._fast_path([vector.SerializeToString()], ["fv1__f1", "fv1__f2"]) + assert ok is False + + def test_fewer_features_in_expected_returns_false(self): + vector = _make_vector( + feature_names=["fv1__f1", "fv1__f2"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=2.0)], + ) + ok, _ = self._fast_path([vector.SerializeToString()], ["fv1__f1"]) + assert ok is False + + def test_reordered_features_succeeds_with_correct_values(self): + vector = _make_vector( + feature_names=["fv1__f1", "fv1__f2"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=2.0)], + ) + ok, response = self._fast_path( + [vector.SerializeToString()], ["fv1__f2", "fv1__f1"] + ) + assert ok is True + assert response.results[0].values[0].float_val == pytest.approx(2.0) + assert response.results[1].values[0].float_val == pytest.approx(1.0) + + def test_all_none_blobs_returns_false(self): + ok, _ = self._fast_path([None, None, None], ["fv1__f1"], num_rows=3) + assert ok is False + + def test_mixed_none_and_valid_returns_false(self): + vector = _make_vector( + feature_names=["fv1__f1"], + values=[ValueProto(float_val=1.0)], + ) + ok, _ = self._fast_path( + [vector.SerializeToString(), None], ["fv1__f1"], num_rows=2 + ) + assert ok is False + + def test_schema_mismatch_in_second_entity_returns_false(self): + vec1 = _make_vector( + feature_names=["fv1__f1"], values=[ValueProto(float_val=1.0)] + ) + vec2 = _make_vector( + feature_names=["fv1__f_WRONG"], values=[ValueProto(float_val=2.0)] + ) + ok, _ = self._fast_path( + [vec1.SerializeToString(), vec2.SerializeToString()], + ["fv1__f1"], + num_rows=2, + ) + assert ok is False + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Fast path: multi-entity response building +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestFastPathMultiEntity: + def _fast_path(self, blobs, expected_names, grouped_refs=None, num_rows=None): + from feast.infra.online_stores.online_store import OnlineStore + + response = GetOnlineFeaturesResponse(results=[]) + result = OnlineStore._try_precomputed_fast_path( + blobs=blobs, + expected_feature_names=expected_names, + online_features_response=response, + full_feature_names=True, + num_rows=num_rows or len(blobs), + grouped_refs=grouped_refs or [], + registry=MagicMock(), + project="test", + ) + return result, response + + def test_multiple_entities_all_present(self): + vec1 = _make_vector( + feature_names=["fv1__a", "fv1__b"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=10.0)], + ) + vec2 = _make_vector( + feature_names=["fv1__a", "fv1__b"], + values=[ValueProto(float_val=2.0), ValueProto(float_val=20.0)], + ) + vec3 = _make_vector( + feature_names=["fv1__a", "fv1__b"], + values=[ValueProto(float_val=3.0), ValueProto(float_val=30.0)], + ) + + ok, response = self._fast_path( + [ + vec1.SerializeToString(), + vec2.SerializeToString(), + vec3.SerializeToString(), + ], + ["fv1__a", "fv1__b"], + num_rows=3, + ) + assert ok is True + assert len(response.results) == 2 + + a_values = [v.float_val for v in response.results[0].values] + b_values = [v.float_val for v in response.results[1].values] + + assert a_values == pytest.approx([1.0, 2.0, 3.0]) + assert b_values == pytest.approx([10.0, 20.0, 30.0]) + + def test_statuses_are_present(self): + vec = _make_vector( + feature_names=["fv1__a"], + values=[ValueProto(float_val=1.0)], + ) + ok, response = self._fast_path( + [vec.SerializeToString()], ["fv1__a"], num_rows=1 + ) + assert ok is True + assert response.results[0].statuses[0] == FieldStatus.PRESENT + + def test_feature_names_in_metadata(self): + vec = _make_vector( + feature_names=["fv1__x", "fv2__y"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=2.0)], + ) + ok, response = self._fast_path([vec.SerializeToString()], ["fv1__x", "fv2__y"]) + assert ok is True + assert list(response.metadata.feature_names.val) == ["fv1__x", "fv2__y"] + + +# ═══════════════════════════════════════════════════════════════════════════════ +# TTL enforcement in fast path +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestFastPathTTLEnforcement: + def _fast_path_with_ttl(self, fv_event_dt, fv_ttl_seconds, fv_name="fv1"): + from feast.infra.online_stores.online_store import OnlineStore + + event_ts = _make_timestamp(fv_event_dt) + fv_ts = FeatureViewTimestamp( + feature_view_name=fv_name, event_timestamp=event_ts + ) + vector = _make_vector( + feature_names=[f"{fv_name}__f1"], + values=[ValueProto(float_val=1.0)], + fv_timestamps=[fv_ts], + ) + + fv = _make_fv( + fv_name, + [Field(name="f1", dtype=Float32)], + ttl=timedelta(seconds=fv_ttl_seconds), + ) + grouped_refs = [(fv, ["f1"])] + + response = GetOnlineFeaturesResponse(results=[]) + ok = OnlineStore._try_precomputed_fast_path( + blobs=[vector.SerializeToString()], + expected_feature_names=[f"{fv_name}__f1"], + online_features_response=response, + full_feature_names=True, + num_rows=1, + grouped_refs=grouped_refs, + registry=MagicMock(), + project="test", + ) + return ok, response + + def test_fresh_data_is_present(self): + now = datetime.now(tz=timezone.utc) + ok, response = self._fast_path_with_ttl(now, fv_ttl_seconds=3600) + assert ok is True + assert response.results[0].statuses[0] == FieldStatus.PRESENT + + def test_expired_data_is_outside_max_age(self): + old = datetime.now(tz=timezone.utc) - timedelta(hours=2) + ok, response = self._fast_path_with_ttl(old, fv_ttl_seconds=3600) + assert ok is True + assert response.results[0].statuses[0] == FieldStatus.OUTSIDE_MAX_AGE + + def test_zero_ttl_means_no_expiry(self): + old = datetime.now(tz=timezone.utc) - timedelta(days=365) + fv = _make_fv( + "fv1", + [Field(name="f1", dtype=Float32)], + ttl=timedelta(0), + ) + + event_ts = _make_timestamp(old) + fv_ts = FeatureViewTimestamp(feature_view_name="fv1", event_timestamp=event_ts) + vector = _make_vector( + feature_names=["fv1__f1"], + values=[ValueProto(float_val=1.0)], + fv_timestamps=[fv_ts], + ) + + from feast.infra.online_stores.online_store import OnlineStore + + response = GetOnlineFeaturesResponse(results=[]) + ok = OnlineStore._try_precomputed_fast_path( + blobs=[vector.SerializeToString()], + expected_feature_names=["fv1__f1"], + online_features_response=response, + full_feature_names=True, + num_rows=1, + grouped_refs=[(fv, ["f1"])], + registry=MagicMock(), + project="test", + ) + assert ok is True + assert response.results[0].statuses[0] == FieldStatus.PRESENT + + def test_mixed_ttl_some_expired_some_fresh(self): + from feast.infra.online_stores.online_store import OnlineStore + + now = datetime.now(tz=timezone.utc) + fresh_ts = _make_timestamp(now) + stale_ts = _make_timestamp(now - timedelta(hours=5)) + + vector = _make_vector( + feature_names=["fv1__f1", "fv2__f2"], + values=[ValueProto(float_val=1.0), ValueProto(float_val=2.0)], + fv_timestamps=[ + FeatureViewTimestamp(feature_view_name="fv1", event_timestamp=fresh_ts), + FeatureViewTimestamp(feature_view_name="fv2", event_timestamp=stale_ts), + ], + ) + + fv1 = _make_fv("fv1", [Field(name="f1", dtype=Float32)], ttl=timedelta(hours=1)) + fv2 = _make_fv("fv2", [Field(name="f2", dtype=Float32)], ttl=timedelta(hours=1)) + + response = GetOnlineFeaturesResponse(results=[]) + ok = OnlineStore._try_precomputed_fast_path( + blobs=[vector.SerializeToString()], + expected_feature_names=["fv1__f1", "fv2__f2"], + online_features_response=response, + full_feature_names=True, + num_rows=1, + grouped_refs=[(fv1, ["f1"]), (fv2, ["f2"])], + registry=MagicMock(), + project="test", + ) + assert ok is True + assert response.results[0].statuses[0] == FieldStatus.PRESENT + assert response.results[1].statuses[0] == FieldStatus.OUTSIDE_MAX_AGE + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Expected feature names computation +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestComputeExpectedFeatureNames: + def _compute(self, grouped_refs, full_feature_names): + from feast.infra.online_stores.online_store import OnlineStore + + return OnlineStore._compute_expected_feature_names( + grouped_refs, full_feature_names + ) + + def test_full_feature_names(self): + fv = _make_fv("driver_fv", [Field(name="trips", dtype=Int64)]) + assert self._compute([(fv, ["trips"])], True) == ["driver_fv__trips"] + + def test_short_feature_names(self): + fv = _make_fv("driver_fv", [Field(name="trips", dtype=Int64)]) + assert self._compute([(fv, ["trips"])], False) == ["trips"] + + def test_skips_ts_keys(self): + fv = _make_fv("driver_fv", [Field(name="trips", dtype=Int64)]) + result = self._compute([(fv, ["trips", "_ts:driver_fv"])], True) + assert result == ["driver_fv__trips"] + + def test_multiple_fvs(self): + fv1 = _make_fv("fv1", [Field(name="a", dtype=Float32)]) + fv2 = _make_fv("fv2", [Field(name="b", dtype=Float32)]) + result = self._compute([(fv1, ["a"]), (fv2, ["b"])], True) + assert result == ["fv1__a", "fv2__b"] + + def test_multiple_features_per_fv(self): + fv = _make_fv( + "fv1", + [ + Field(name="a", dtype=Float32), + Field(name="b", dtype=Float32), + Field(name="c", dtype=Float32), + ], + ) + result = self._compute([(fv, ["a", "b", "c"])], True) + assert result == ["fv1__a", "fv1__b", "fv1__c"] + + def test_empty_grouped_refs(self): + assert self._compute([], True) == [] + + def test_only_ts_keys(self): + fv = _make_fv("fv1", [Field(name="a", dtype=Float32)]) + result = self._compute([(fv, ["_ts:fv1"])], True) + assert result == [] + + +# ═══════════════════════════════════════════════════════════════════════════════ +# OnlineStore base class default implementations +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestOnlineStoreBaseDefaults: + def _make_dummy_store(self, online_read_fn=None, online_write_batch_fn=None): + from feast.infra.online_stores.online_store import OnlineStore + + class DummyStore(OnlineStore): + def __init__(self): + self.written = [] + + def online_write_batch(self, config, table, data, progress): + self.written.append((table.name, data)) + if online_write_batch_fn: + online_write_batch_fn(config, table, data, progress) + + def online_read(self, config, table, entity_keys, requested_features=None): + if online_read_fn: + return online_read_fn( + config, table, entity_keys, requested_features + ) + raise RuntimeError("not implemented") + + def update(self, *args, **kwargs): + pass + + def teardown(self, *args, **kwargs): + pass + + return DummyStore() + + def test_read_precomputed_returns_none_on_exception(self): + store = self._make_dummy_store() + config = MagicMock() + entity_keys = [MagicMock(), MagicMock()] + + result = store.read_precomputed_vectors( + config, "my_service", "project", entity_keys + ) + assert result == [None, None] + + def test_read_precomputed_returns_none_for_missing_entities(self): + def online_read_fn(config, table, entity_keys, requested_features): + return [(None, None) for _ in entity_keys] + + store = self._make_dummy_store(online_read_fn=online_read_fn) + result = store.read_precomputed_vectors( + MagicMock(), "svc", "proj", [MagicMock()] + ) + assert result == [None] + + def test_read_precomputed_returns_bytes_for_present_entities(self): + test_bytes = b"test_vector_data" + + def online_read_fn(config, table, entity_keys, requested_features): + return [ + ( + datetime.now(tz=timezone.utc), + {"vector": ValueProto(bytes_val=test_bytes)}, + ) + for _ in entity_keys + ] + + store = self._make_dummy_store(online_read_fn=online_read_fn) + result = store.read_precomputed_vectors( + MagicMock(), "svc", "proj", [MagicMock()] + ) + assert result == [test_bytes] + + def test_write_precomputed_delegates_to_online_write_batch(self): + store = self._make_dummy_store() + entity_key = MagicMock() + vector_bytes = b"blob_data" + + store.write_precomputed_vector( + MagicMock(), "my_svc", "proj", entity_key, vector_bytes + ) + assert len(store.written) == 1 + table_name, data = store.written[0] + assert table_name == "__precomputed__my_svc" + assert len(data) == 1 + assert data[0][1]["vector"].bytes_val == vector_bytes + + def test_write_then_read_roundtrip(self): + stored = {} + + def online_write_fn(config, table, data, progress): + for ek, vals, ts, _ in data: + stored[id(ek)] = (ts, vals) + + def online_read_fn(config, table, entity_keys, requested_features): + results = [] + for ek in entity_keys: + if id(ek) in stored: + ts, vals = stored[id(ek)] + results.append((ts, vals)) + else: + results.append((None, None)) + return results + + store = self._make_dummy_store( + online_read_fn=online_read_fn, + online_write_batch_fn=online_write_fn, + ) + + entity_key = MagicMock() + vector_bytes = b"test_roundtrip" + + store.write_precomputed_vector( + MagicMock(), "svc", "proj", entity_key, vector_bytes + ) + result = store.read_precomputed_vectors( + MagicMock(), "svc", "proj", [entity_key] + ) + assert result == [vector_bytes] + + def test_read_returns_none_for_non_bytes_val(self): + def online_read_fn(config, table, entity_keys, requested_features): + return [ + ( + datetime.now(tz=timezone.utc), + {"vector": ValueProto(string_val="not bytes")}, + ) + for _ in entity_keys + ] + + store = self._make_dummy_store(online_read_fn=online_read_fn) + result = store.read_precomputed_vectors( + MagicMock(), "svc", "proj", [MagicMock()] + ) + assert result == [None] + + def test_read_returns_none_when_no_vector_key(self): + def online_read_fn(config, table, entity_keys, requested_features): + return [ + ( + datetime.now(tz=timezone.utc), + {"other_field": ValueProto(float_val=1.0)}, + ) + for _ in entity_keys + ] + + store = self._make_dummy_store(online_read_fn=online_read_fn) + result = store.read_precomputed_vectors( + MagicMock(), "svc", "proj", [MagicMock()] + ) + assert result == [None] + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Materialization hook: _precompute_affected_services +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestPrecomputeAffectedServices: + def _make_mock_store(self, services): + store = MagicMock() + store.registry.list_feature_services.return_value = services + store.project = "test_project" + store._precompute_affected_services = lambda fv_names: type( + store + )._precompute_affected_services(store, fv_names) + + from feast.feature_store import FeatureStore + + store._precompute_affected_services = ( + FeatureStore._precompute_affected_services.__get__(store) + ) + return store + + def test_triggers_precompute_for_matching_service(self): + proj = MagicMock() + proj.name = "fv1" + svc = MagicMock() + svc.precompute_online = True + svc.feature_view_projections = [proj] + svc.name = "my_service" + + store = self._make_mock_store([svc]) + store._precompute_affected_services(["fv1"]) + store.precompute_feature_service.assert_called_once_with("my_service") + + def test_skips_non_precompute_services(self): + svc = MagicMock() + svc.precompute_online = False + svc.name = "svc" + + store = self._make_mock_store([svc]) + store._precompute_affected_services(["fv1"]) + store.precompute_feature_service.assert_not_called() + + def test_skips_when_no_fvs_match(self): + proj = MagicMock() + proj.name = "fv_other" + svc = MagicMock() + svc.precompute_online = True + svc.feature_view_projections = [proj] + svc.name = "svc" + + store = self._make_mock_store([svc]) + store._precompute_affected_services(["fv1"]) + store.precompute_feature_service.assert_not_called() + + def test_handles_registry_exception_gracefully(self): + store = MagicMock() + store.registry.list_feature_services.side_effect = RuntimeError("oops") + store.project = "test" + + from feast.feature_store import FeatureStore + + FeatureStore._precompute_affected_services(store, ["fv1"]) + + def test_handles_precompute_exception_gracefully(self): + proj = MagicMock() + proj.name = "fv1" + svc = MagicMock() + svc.precompute_online = True + svc.feature_view_projections = [proj] + svc.name = "svc" + + store = self._make_mock_store([svc]) + store.precompute_feature_service.side_effect = RuntimeError("fail") + + store._precompute_affected_services(["fv1"]) + + def test_multiple_services_all_triggered(self): + proj1 = MagicMock() + proj1.name = "fv1" + svc1 = MagicMock() + svc1.precompute_online = True + svc1.feature_view_projections = [proj1] + svc1.name = "svc1" + + proj2 = MagicMock() + proj2.name = "fv1" + svc2 = MagicMock() + svc2.precompute_online = True + svc2.feature_view_projections = [proj2] + svc2.name = "svc2" + + store = self._make_mock_store([svc1, svc2]) + store._precompute_affected_services(["fv1"]) + + assert store.precompute_feature_service.call_count == 2 + + +# ═══════════════════════════════════════════════════════════════════════════════ +# Push hook: _precompute_for_push +# ═══════════════════════════════════════════════════════════════════════════════ + + +class TestPrecomputeForPush: + def _make_mock_store(self, services): + store = MagicMock() + store.registry.list_feature_services.return_value = services + store.project = "test_project" + + from feast.feature_store import FeatureStore + + store._precompute_for_push = FeatureStore._precompute_for_push.__get__(store) + return store + + def test_triggers_for_matching_fv(self): + proj = MagicMock() + proj.name = "pushed_fv" + svc = MagicMock() + svc.precompute_online = True + svc.feature_view_projections = [proj] + svc.name = "svc" + + store = self._make_mock_store([svc]) + store._precompute_for_push("pushed_fv", MagicMock()) + store.precompute_feature_service.assert_called_once_with("svc") + + def test_skips_non_matching_fv(self): + proj = MagicMock() + proj.name = "other_fv" + svc = MagicMock() + svc.precompute_online = True + svc.feature_view_projections = [proj] + svc.name = "svc" + + store = self._make_mock_store([svc]) + store._precompute_for_push("pushed_fv", MagicMock()) + store.precompute_feature_service.assert_not_called() + + def test_skips_non_precompute_service(self): + proj = MagicMock() + proj.name = "pushed_fv" + svc = MagicMock() + svc.precompute_online = False + svc.feature_view_projections = [proj] + svc.name = "svc" + + store = self._make_mock_store([svc]) + store._precompute_for_push("pushed_fv", MagicMock()) + store.precompute_feature_service.assert_not_called() + + def test_handles_exception_gracefully(self): + proj = MagicMock() + proj.name = "fv" + svc = MagicMock() + svc.precompute_online = True + svc.feature_view_projections = [proj] + svc.name = "svc" + + store = self._make_mock_store([svc]) + store.precompute_feature_service.side_effect = RuntimeError("fail") + + store._precompute_for_push("fv", MagicMock()) + + def test_handles_registry_exception_gracefully(self): + store = MagicMock() + store.registry.list_feature_services.side_effect = RuntimeError("oops") + store.project = "test" + + from feast.feature_store import FeatureStore + + FeatureStore._precompute_for_push(store, "fv", MagicMock()) From 34d2d3e23ae6bcd3210a3c43af53cf5687f48547 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Tue, 2 Jun 2026 19:32:51 +0530 Subject: [PATCH 53/59] docs: Update feast-mlflow integration blog images (#6464) update blog images Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .../blog/feast-mlflow-native-integration.md | 7 ++----- .../public/images/blog/end_to_end_lineage.png | Bin 245466 -> 351291 bytes .../public/images/blog/entity_dataframe.png | Bin 140260 -> 41708 bytes .../images/blog/lineage_till_training.png | Bin 320097 -> 346167 bytes .../public/images/blog/mlflow_dashboard.png | Bin 276053 -> 281775 bytes .../public/images/blog/mlflow_featurelist.png | Bin 424492 -> 420088 bytes .../public/images/blog/model_metadata.png | Bin 578484 -> 201749 bytes .../website/public/images/blog/operation.png | Bin 502964 -> 175585 bytes .../registered_model_with_feature_service.png | Bin 232672 -> 88388 bytes 9 files changed, 2 insertions(+), 5 deletions(-) diff --git a/infra/website/docs/blog/feast-mlflow-native-integration.md b/infra/website/docs/blog/feast-mlflow-native-integration.md index 608d28acfdf..882fd7ef6f6 100644 --- a/infra/website/docs/blog/feast-mlflow-native-integration.md +++ b/infra/website/docs/blog/feast-mlflow-native-integration.md @@ -5,8 +5,8 @@ date: 2026-06-01 authors: ["Vanshika"] --- -
    - Feast Native MLflow Integration +
    + Feast Native MLflow Integration
    # Native MLflow Integration for Feast @@ -259,13 +259,10 @@ pip install feast[mlflow] Add the `mlflow:` block to your `feature_store.yaml`, start an MLflow tracking server, and run your training code. Features are automatically linked to experiments from the first retrieval. -For a complete end-to-end walkthrough — from feature definition through model training, registration, and feature resolution — see the [demo notebook](https://github.com/feast-dev/feast/tree/master/examples/mlflow). -
    End-to-end lineage from data source to registered model
    - ## Join the Conversation We'd love to hear how you're using (or plan to use) the Feast–MLflow integration. Reach out on [Slack](https://slack.feast.dev/) or [GitHub](https://github.com/feast-dev/feast) — issues and PRs welcome! diff --git a/infra/website/public/images/blog/end_to_end_lineage.png b/infra/website/public/images/blog/end_to_end_lineage.png index c60843b974d92cb16d31f370a875885fa91e6b42..8d49cd2ec7456c37e123ccc65013badb0095e26b 100644 GIT binary patch literal 351291 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
    GZ}ATbcVBVqR7iZ@A_w|68tMVBsuk-{w)s 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 z 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 zex®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
    hW=g7#g{r$45Y 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

    |Gi{%)6C&u6)hP_w76LjjK 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 z zM&^9PNa_kWfQsZEo-p?d$@beBirQ7B)!~dJpZy6@_lT1-g4xY~fm*U2nB8w~yk$@& z31nb_Wk`95kAB?g6{V!PM~~iP4TmFybC{xU9S3sjr>CEp-$r-*CW*MO=ig9MLN8{s zZfQibdh67g{V|ZDAI1B#^+j?Uce0f|uaYe#oX^p6et?98x5V^u^OL|Pk^O|%#Z~RE z0{gItanF^Mv|pKHznE^7iW@He_?4D?FP{Gq6u1~ENJh#6hLFV)kgJ+s9~)h}CL3R_ zL$9op^Ld*_m;JlKSxA*QBf{y~Kl2ip?UR6%UV@r8Z)%ATaaJq+E-LeG4iM5YT0BId zSTWm;dmfWeHQzbn%VpX_UsThSH0 zpP@F>bm&`TzSFqD4`?Yl@Q2#1Y|6Z*@7WPaLuHMm_3d;YUCepy_Sq#k9#OD|I2KA^ z(P`H;X+m>+6@INVShaj^f+!IRu2J0ep+{4Tq_A0!K#M7xvG1TM4#rL&(-5iI@$Yff~lA9Qw6y@0ko6&jD8^tuFwVF*Ai60zyT&A zGmjm0$7ZP4a}X;OJ|Ry5xWsQci?561GEa?y8wX!~MusX~QZntm_~Z1si%H8@FJ33A zJU+k+63R3#)KWhhS^^Mhe7(PKCKjdy{}$e$e~5br#AI-kt?~mQ z;e+4dlfavv|I7rVNCk7=Y~k6yyLLR z;=5HmP?ghP|mUnv9dd@6|MUT%Mnko zTLC2>5#jAnX3A?5FUu2OIWLJ(FRs%oQ0_2_O}6Z^mJD7|`0Z1iZ%dMo$}66BJPkm^ z&NI@@X`gk|iGHo}%i@}DJer6H3LR5CCM{|g3(H<36a!Mp)h|=gock_06`Uxd_kSPhMj%C2o zYVgZ9!qw$2Oxf7gs>ABQ%nxGT7>DL(cbgxR0F?V3qaqA{rF%s)y3eo_Z{Xx?j@prn znAWxw{On(nt)i^3aL@YpKeU7kqM}T_+;Gq>UcE5t3OhCKNd*b)*?=ga=mKa{q8|8o@d?6p>A zOL<85H=8zQyTwTR1eS$Fcq{&OPFx`~*oNjm=Io!7m-4y4RDCKb-VRX?l1_t3F6vgJ zqDr)UypX?|2OK|0lI(W>%DBeYVIAwszpiEa>@R#K2*52wo`}dXT^=D-4Jjhe;(1nwpsVKe{);Rx`5#Bua1>3E@@J+#4D;-E9G!IaHGh* z6kqjI>!3;fJn@dp82b-gpVeq0*e|U*4wh;{!lA<>)rHJ>?nFBqazA=Tz!n#=#I7N_ ztj*60mpfr)1VR3{9IW@;0tEq+mrqyX_FY41yP8?%9-ph#{EAVDQYP--DJT-ST>>VE zZ~T5wD4P1H34ny>DM{I0%QinCJ-MyM@UsC3wXAu10mHm2bY`@gp&V6>R`hzS(8fTz z9#N4Oea)UGt^?NnpaGHn_pDC_I+I`+N?&@8xw766xx=O3f@gOO*Ox+G7n*dMvuCb2aPKWZSdA2M(< zXM@=N{yM1rrR=Q!kh^7bH_L(nM@X4{P|CA2Rziuz(Tq3s8&*YgjNty)7B!V0dr`D3 z@|_Eb#q62~ui{)HMWfOx2p$}e^9-j(r;5ew*iDoMIz*YdlWDVHm0M=&jGGmvgPYCF z6#UAwtwzGed=+(g44RD}#QA;f*)6@t1*^UVa}dmtK;lNW(oEfKu1|~1w2y=B z&cB%~3G*^*od{9gA+v}^!Y#Ssc@O9l;NfXQ;*2%x5D#j;@R1;H%4SFCW=~4^L9-$MD~yl z(od*M+~rd_Bu~MbW=#)QcQlRXEBEy;eneyg58EpU;y?c9MfB|>fL~WZI_eInqsd2X zqV=QWe%&*A`|oV$JjBQ$Bi;w9zC#8`wJ><1t#Vp>*W0?ctNcz6DsA*?Xfucnkk;xe zKiMr>OrEY#AAd#3cdU`Ow(lB(S~8*E}+LLyqN(sMWRg zfsm?U;^I?|OBciGC68AL`*k5q2}{kJX;|Gk67XF^*RO zZCayj!d!dQVsOA*Do<{*Jon_5D+sRmx^XrTi8|>(BY;-^a{7 zdH3$aZ@3G}69#jaJudBCVJ014qWbOJLV7@Tnvk`u>^ShHsn9uK%E_7ZaOeSfLR2$< z+vbR!73wHq!Zo_U^SS8ikcB8nz3dwe(F|O%;WL?K+mI{KjEiBQ`ejz}5FcM<`#icT*$qZoY;N`Dr>`hH z?D{OJrXm(Tbj2ij_#Z5QC#6Smq9*A^BOoG0k3s^9mTo#d*#(zb^SECG>fNCeceucN z`w$zd#f2aas$UPY`oegZKzf&yS_M#IuaJKLP-w$2l_YUtkK=cQ zIh*fMl-@H%48R}MpShXuG{m}*b*Qr1b(hTT*%gLK~6rrb-9-?R1QLKzq<^?zREwa#=lL3B3 z=2w(`W0mY@maABl(_3(|5e;9k6h(~qdn_HrD;G+G8?#8`cdt@}-`LK8W&6(s{vHDz z0wOo*^xoIB`oR9X(6$bc!)527lx}3e>=#>eg$7&rs=zQ;yMuG^)kt!>5q~GgY}$1` zGJ1sHLV&X`e!@c{kCPZii(SIr1FX0H>~%C^>?=$yn0>Gq%(aTJe+m#xl%8?Dj}_x! zWLKfgIU=w8th62$49=)PD>vfc%6AOiSQ2$*K~LMwUhVt?Fa$=B_s?I`gFq1<_Kfog!4B(k(?QQ;cwHSM{UXrLX`eH31Dng&zt_5aHF==wY*~^HaoUd#9FFUwltC^n0xsINag%n-t5$_Z zYF8^FqW$#V8o6SG2{Aj*=X!XizWArDSWQc-?A+f^9>cM-tzx@ErKnKhWe)JNy z3b!D|+pd|CtE6;G1ZK);ceT9te<)e4%#=sOG^Hkq5&rCIP5r6hwei?w^ByR_0^mHf z^daj;4sgoiQt*_Qb|Mn7Y*}eSN~u*i&He`T;hrR?3ba}s;~fum5x65$p5!?;U0`pITz+GhAYtz1%BjKWgBl<5Bw{^1` zZ7Xa{|4}S_6it4x49K(nqD8&py3TpcIBBrKlC`YJ4qjejxsH?q zdr|dIv@mlQ5?MQVk}V#sk5tnaCw!%%DB6TS=O8cp;Ikp}jZ;rAD2mhKJ5uNYmPcfn z+gp7D3aso}rLM7OVOP#cP?ls))Gz6wtg-RU!sn7V7+Eib!`Z_XC|_ zrm6I_$zvPQZwE8Yle3rw;uOx?Yi>_6rlhfJ=MDwGcw!WoSYuknVP%NI$!J<({pYSM zzmIg?&ZBBg(vs^Ce-~(T=;1GtkgGdnOO;6-9{Y71mr~W~;G?Ke&VBuw7~5`}FTp4L zCJ!2vO6xSM3b%RbHa6HjcSnK*1x&l&x2HZ~6AlSO5&2mh;l7kTfo+$Pv39f7;isECpC^~s|$AH!Fu0&z+vP5>PoR55LH0F))SUBORb^cfR-gZj#gQ2Gj!K zPemm?sOhqV;_9A#68Va;(Dw;O(H%JyUA4^{0yS#b)<^H)UT(wU^G69s74zdmAJ}H& z+(fVKBNLx~xiA#Vs-I|e-1j#9bQg;}ltCtvf{53Z9*qz+jIC^c96*XvAPZh5yKUn>>S>QT5~O1&U9PmxBOb5b z5xi;w1u{>!{cV2)0~%8V`L$o?Q;==acq;J7OFlIQ$BHJ}{IasMxoo=Bu7~FK^atl(Glub8pQ<$K6PLvWUx0X*&c< z^cE=jwdo_+C2ORtE5}cK|C+vWqTXaN@tU%(y(}byU8MCdQv=r=-KZhM3VWuAlKjQ>L{g=J_ZWbXn zoVYj`P#n>Z&X(8+J!$ib%^IDarS#(^mc=DEWv+O2Ww#!i`ohWnO`q$<_)l)x6nM!@x6{ z(@@?{)B8obr9a4KpwpIAhWq4|ryEp?8=}?=A%5PD%eEp#6GJB~5BjRDC(;ZVaz-X8 z+~-gQxQU3z^6ObR%cF&D&OV(5;|#!LS00tS61!vXBO4(dM|dECK9qyrgX&!~&JGr@ zjgQI^+wZYi1_Ay)$}Tmlk}(Q88uxwU0k=kA+uMBWQK0p^Rm^VrH82w!bs5!7m8fqX z1JUfWqS@aNu9WMIli?RuS}YU(+L#Po-19c{J5x>R@7yyEE+N1E?l;|rB^1g&-r z0a3t?fWLjnz9)|JG}NS` zWW<63M;g?=Q7q<8k-X2?58e|nwA^>sRNv&&9Yg>sOpb z%<#!47_nkj8gPr*{DuT8*sONQ)&ci_j4Aoa66%1?y~`;1f(vy%47Gy^dJC(TA0!TN z=5$atzrKGvFjgZQ9xdPezN=EZ{K*GPjHo?)@}f35lOg_D@Xy`sB7}hzZF{dGft*A^IfZnVH1fS!_Rpq-ATo>L=aJ;dq3}fSLy!nUi@7JUFVHpis$2i3C+4l!!lfF>f|9pW)!vrb=P;mj2`!{iIjW6&>_ex@yS94rhkD- zFHVzFL&bx#297Lp!u%pGW{-Y`k_h9_wc7}>8^z2Pm;DlC8Km$pgU(j}WVq*o7!lSc z{EuZ82H$3HWrfY^6{Cnr2=E+oiUFF;{%sU)g2&DRPXBU@NFZp&LGaeW zYTq-bxKFA#-Ahr#zBu6@mZ_2eyYWm;HqObjUd{-t;L3sOX$D#U7N|iEtk9&|m=D%} z|NgI#^B{+R)78_n{3+YS&kI?7g#DEj6$h>^Bj@?+!gV*jQBr)gWw~6*yP-^^KUFe` z6fJligjo;VY*zToVuygz_q74Td)2>pyfK$dI}gAgU)+Y-YUfX*K~^zHcnihRfoW+I zFW0G6tDWdA9PP|*Lf_0-5&#((=|$Ko`g>Uf&qh(jfUTCL3Uq<@luuMt^qrgH4g}dp zQvcKculq6oVusKC-j1enr&co593tT(f~e%DXR)Ux3779S{O_Ny*ah3>FffqC{+GZr zQQ)dld40VBX7TgH!L<0r*CuE&SHqcU#nk*GqKQ_MW_Qfltt-Wm30#+d?io_!FC+Tr zQzu=l%mR#UUys(S&{@0lJhM|7WJr3?$25hcQ@QBr+U`9`7{#+gN~}!|rR)4Zgnb26 zlwH@h0s=}YC?OpZN`vG8;?OlBA}HM;Af3VhQqtWe4T3b%-Q5z>J%iMcLk$0o@qF*| ze&1UES}fL#4s)N}XP>?IbzQG1$2|TlI9)!pV7;eBMui0*!aKj6iX8OwOzf|89aP7a za=y=1O6gtEFZy?##`O}F!TA0zwskewyXPTa5)n|ZVwf7=u=zOYdHVb=ChalB1>G)d2Ylw8lk_Gj{d`%pfKcDG(=nm{U%`~G;)1WwQPW~sr% zNJV%BHyp~$rffC)dEUjPcI ze5nP8Z~)RU#~43<{U!M`&zgJ2yzM8T{LZDOKa*tr8R#n*T-;Tj-h#0W0G;!9>JJ9t z>TgNwVL3^N_Fy|kTabIFUze8CoT>;Qsxtv-$i!bZ0fdpNVWMZI4v5trIDj3Qz2u$n zij5@V_sYH}13m_uRX18mgGn9^awsOm$jYSo_9o@O*-D(|frx2|9366eAsO2Mu{Ulm z!?Q_rqWK=<=i;fMr3_e^fG+#T@|#?_*ytK~yRyX2Bm>)?kGgE6bSKeIxBW^#UC+=R zv|xX-En5)kbY;S_YVLK4fK7&Lm+-uD1E32$NO-tMK(G%0Bo=xI&>CQhR=qYmfO1ga z3LuvZY>Ax3Z5p8a=1MeQ**M=9n>+`-YX?W0r<#}y{q-A^bieZP>JE&Vk~U&p0JM*) zIsg#n;OG{K=8OH#4glqs#?Nw?(+N;b$E8IYXLPNGD&nVxGK%^Qsos0tR1-l7WW4zT zJ^8tF*mhD5rKB24U8|Rq`P-q1^JmL=A#ED|1uHJz8S6DMXGtmJP4#=N`EcM{A!#XJ z&Wlv?30#k-Hy)p{_M6V|e!YWl@+&`8l8!-I%pE(iZ$I~c%stPsaQKqcpk1e`K6l5gGnoL`OtG60 zaa(*`38>$DpiQ{ihG1E{opkC~Da`kX8*N)6QDS?E3-KryIDci&c_1&zGLO6TD3bv) zm~~~JUK*J~3*9P0DJpdy4vC()p@N^Q zoi39kAGad=|E%p}qTx%474;&dmOy8to6wykeh&4#F+a=`Ix4u{%}~4LUYXP)%Os$e z&1d(p-L-oGz@?bl+csp(c*VEzF{vK9~q!QBfV_fMNXm zp%h94blHNV0C&PmcL0f<2SC5m;Q-08d{dtbY*Vl2h<=^o&lonpz|QLWI@z};F?~(8 zdx7q6VKHmnhBslZeUMmh?F;~3*O|uSD>?$mqxckO?TfaKGFE2epUt=AEtJXNkhm<- zH$1jxxIE=e%WwwIL@%D0ysz6Hn`rVti6NMx5MNy1s*6R;Tj;x|e6u<0P?@+S0I6Ss zXKo+?xML)gdN~6gtMOh59Tmj?kju*WM!=Btem(&^J9N5Z;>l>(7ewbRE3^7Nw}w)$ zg?Zk`S{(yHnhGOMnWaJpzs)BRwkbV0iO`KZ5K@eYT?80dUpDMG6!#GvY+^Ov?pm)C zE&Z~;>tpy6*nqldTjHNn$H&q4K-gj$lw#0~+B3M?Ye1zw1Swt&afhosXevg!J#0!7 zuqhN0bI(Y$LG2%w5KiWfw#h9ZcTT=QpoptiC-Wb4Q1wUtqKD}tCI&0bP?2y!l0U|r zli~WH#U$ckG^kH+c}^EqEzi+V;R=Xir7~G_e32=Fnt7$`-UCIaz1x1}Frp9AW4YNy zwFtz8ac8~?ux&2Z`48MaiAMT2vMX9?Q!FcPRm?Y&TQ6MBpL`k0#cDp~#z65exY;=v zomp_$(ag6iiKUtRJ!%<;iM%S^z~0o$YcZ~TyocwcfWC%a>XZm@@VK;j@1mI_h|}bv zG$8eC-!br`pEW=So%CIV4ImFNH>Agw&kKrb7)4_2RUB4A_}3u}bC;D@UmEuZtW?F$ zVMAZWV6uZuV?=4!uzrUPk{vnk3#;tOQk@un@%d;zk<(;y02m@EX63%>AAd|Z?a6~E z=I3%IN6)c9l#ICYx;q9^Uv*N(TED!vDyy1!868!C_iUXt@z+QmKJx@VE4-3%h`9!w zEIRwT1SibIOQiG%e2gcIv+xi61dq?z$HB_#S-?)eb9Zt3-B~*hNA>4gKKJ*5RlLr3 zBe5R2kY57G&i5U=<|Tf6{XCEje(uJziMj%RDrlbm*lAAE`(8lTm6j1|M}MU~e`oc_ zXFmOFC2RTYa84X_tz$hSePR+{av)L&@u)*BDB=y$z76W_xcHOV<0 z2)6Rr`r)z%-TK<}wt*J!7>RO3DSo=a!v1{=lP$rAqz?)4o`)iC5&%m zDF#(2w{L)yvLW{S#JFM^sM&H@xe5m;ZDC$lP1fSMvLWBJh@if-<^9G7pG98BKa0yI zHy^k|UkV2n8P7dkP+xA==}l|Ea6Vick)|H7!d@QCIlDYrNb71P$?_Ez6%3#)>};L& zCqQX~RK8J8T^n6u`n!I*U1MOGVn`ZnCFI>%>oxO*OSv~50Urky^fUtgMCbC|5x^^= z%3r_k2XCWBS)aX{P=(Rv0Pt_#3!&Kg&F&_C0X^o|q5DqK7evc!vC3UQN!PCnz!42+ zHC~87K;VXA_0#>?13jVkY*We8q#0lbX;YRyiS_L+}UBRfkTkXYl;X5fN~;- zpEtGNie~Ta(bYxTRpxTk1L-g-d9g_Tv+YmVER{Vo-Jz-31aGq!qDecHg~y+!uLw@Q z%S=8okhpU`3+m?28CYFIR=nAN1vg0bSbC-XBBM!ME!9uN{Y)WsHCe7Hvor>3W%#6L z;3~2N%z~T0H#19HB%N{rSNOJ-#|LOs!a0!*XL5N<3*)ENuNW9l%&u)Q4&jvCg1`R5 z*1Z7#3g^DFnM1}itBX#n)sT>DE!&AJ)PjeKmQBY47kY0f0`MEnk4D1W7(5dBJskNu zM3SJ8-QZ5$G7bASjTKR2(|nwDtIOiXsSpa@Q%Mq@(KS-(zDM{|}uQ5nEC zLt~}67sy-;MI?%lQ`XnC_=HaGy3A=u@pn8Dh2-{FhqNq22`QI0z%gvUDtVBC(u^i3 zc*+C@#NMU+Y=c$N6xG55;oT$j$S7HmO}jB|T2VD>Vp8pzM`Sdot8Yw${HRM$df?W* z5Jra5Asz42hNTP9UG&EA?;qYOz1-|LiUkXOXvkcDP`JPbV4W& z0|YcPK`WPhlpt{zJTI-crP5U_=9^YfmX^O!5Z=fWy1ES83igpL7t1ysPAtW zV37jNyfj_BC_cDUy}KYyp?f|7lj?#qj?u{Nec&$E0ss$3vf(k>UZ`^&P1hV*=W1Efi4c9gT&v*Ul5?EEg#s<56P~ga9aC#6eSiE>pE0UJFY$sU%HjEmQWkVAtOHsTI)c)t( z%Ol|!4HvESR)JZfH`4YMOjJCWcLgpnXXhn0uoyc&13gk??#^iT&RXb zQjT;aIpo9jecR>W$XA79wfo{5rd4anlFi_<@?(D)SC4m%Z-voZFdH0eZ2f?7a%K3u z&v`;HFKSHT26!H-yDmc?5a`&!zGP#|L&lgVv{3m_NVztk*D=vIHr91&j*jlJx|p*t zxvA_PbZra0mhQ@U?^HaEIFz+2$fiCvhPL5uT=1smHq}R0jg2{9w&G|fbd7*ONjz7;m;`=O6=!_)etSZyP!J?xA4$^a(33==Fb=>RZb@I7 z(sd|;mNfx@ZCy~1oWW&*w_P<1!&FTJ)=VLo#CIC$zB&B*{gbXx$|0PiN~hW8&y?%T z+l)tM0p*nXb{+om zQlt&fFn)cI4BfY%-&srtz()Z>av@J3G0Sdd zD$GJ@zaPn1LV@N#%D^=58W;6W#`oq8^jj9G?~U!em|C6hB;O{5t^_lh`MALIa}fm4 za^)5x6INz9Od=6OvHf-;m*qWz6(3VH99ExL2qem#dB{$Wv@ozvZbmaZ%FLQ;{8E|o+b8Av-Vl!o(}`@2Q@Kg7yYXoZaM-O|6L8kndv`j#9m2Sn=1=)va+>xk%on9%;?k(V*cz1sO_tMG#Kq=m> zWeJy=)B}5CIaOC}TH=+dFHBa-RP{$f3~Q>kBejiZlz!Rq9QyFxTbcWO25{H;H0eoL z;C|iexB;Sp)3&Rqt!v4d(u&^}xBi0?X~HSO8t}dXuMr`;pcb5 zj4pR;G<8+SZ^JcJK+*Q6G1?Qb?$zdnW+f9cjl7LL;Rbou2WAAXY!XR-pj3|ILfyI- z2cO`_ppP?rULlOb4oTPpc9}Io2Lyc_g+$Ak>>W{2wgY~ zwM`>GVa6f%%;39ZXG0Kt@$`CzfNEmKqx2(ZFOFwFJ=D!64lJ)ra(*4m6WBo4I=MZ0 zN=77X$Y6qafE_tvdcocsJGljE7UTsgr>ax>2m86MKmF^6ktp6VSX@91gDW8y{HNW| z(lF}NN0_ww{y3&Li8j5SP0HUMV>dVqe-QL1J@ETL`ujURvHANrE#>gv!~O5~|MQ@K zUf_QMO8oG#>!Y4}DKa*f4R^bHauAw8v7^UmVhw| ztqu7TR%i9~d@p#uD}o#;&d%DE_|r07)!V0dA*yVGTb5`~WS;5d4<(VQ0*P-G`n5K4 z;wS3yuYYaG@1H#Req5>)o4?8%47~orLeiVYQXft-AE?a3|K6DhZv$&Rpd=;wwgt!w z^nCK0R0fw&h?M~^7h)qfF>h+%*D!s4g62;^-IKIs;soC?Y8aV+@TTwgnl_~iU+C>l zo9>AF5H>$)ddHIg*A3zNSdeKZe;DC61kAWA<6TU+84taM^Cc6o^v z-M8OOi0lAHGMIi?TH_~py&5!SrH*krmy>cz6eHJ;87=6RX^Q~&^F3N(cxjek0^64s56#Ul2TyDNAvp;hkYU$7>;IOJ$ zm|gWep;?GZ`_vdCv^XU9= zys^Ra;!~nypfu=+Xf{(Z^psBuw410PR+jL~LS>t^4`L!N&QzYw9j&=>@Y51f^~j9|&f? zgi;D8E)3@FKFud6y4p1s3BtB@6cG}l)tbi_+^s(-lSmzxRNDzTjX8NXM^2(B+RHws zuHYC}LafqXdTrcji1MU=l%J>~@!%hqXa(umgZecdAnVQ8ORS*r_hnT=;Zq}rel!Hm z#vSh(Dyo#X-ZH@D|E`}GX!1XXNxRgDxD}_=XII1P80~FZpDN8~KlpXD@UqcSiqux6+uX&Go+YRu z*!Lt5;zCWtlXf^Pw11VSubCQ&o*WtalMLP<{Ip`1Vz5;oEG|~?^zL9-&W9U*czEuZ z<)|C_WMh+m%wfqi24-n`I^7~86~X(9#Nqu;zxT&?7Wg>BuRwgT6TR1xlcI+{Ce)he z!w#y4nvZf6Yg^wWVXaviA1Y&Rat^+TgBw^K+!8s3vboM;57wzm3nzTw4*pOq< zI?KB1QRPSXC!~*NXE3&CE7VxS;Xth^s=R=!cabGSd zHEp-7`zffAKa?Y=*{_GaHT&^u5c#y5d^n84(qDVYQS7d2}`G z(~)qe3i(U7i`CbiZw`eVgk^xzzwp>u^AEAF?mNW_M77eDr1Q`}wIe9eQd1OlY z`;f)|*h~WyqA)1Euvdv=J1N?3#Kd#oobxX#$Y5G~uhmubt$%_yw&m5)>toiyP64g0 zKoI5T{jo&JE+e09q20dWX|wC^2Lk4K9&su26L|}>@n_#=uKc8WzQ|B*(eWPFJ zdl&zHTn_!+a~Mp2+%C*zS@Frj(%-`>1sfM0rQ$iESYL5#E{Zi`%Aj(i3@C(fQ;iKW zuhRMGkm3q37FTnrVRcl5*>@S*z2krv!Ha+9)BAgZ2XtPHFa#=)m3<{jxhxyqt#uHjJPX3;JO=YMlo_E%dLTq=nEm9weH7ACcJF zs>qKLy;Dput%%$NpRgMq4^-h$vKd@rM_Wp4m)P&}YycpJCrrenW>l2K0Y753$1B-_ z=YIF^9a{Nu8+f{ZxWV-GB?*huf(~)|M)j|@r8VFECW<9vKi@Z9a&(ySc>FgCv$`{#Ev2m`Y+{a%{3 zE*eR3OpUGnn%1{ z$Si34Urjo@M|$YjDYW!{CYekhbv9gHte7Wizg?j4%Mb*w?S=$4zKdV`ecrN4HIqLG z+PAa#Vj}{k(ndKU{I-K0!=bP8$&H4AE zNt?tKWNdxegduhd-@Oh0_XPiIvIFm`*Wlq<-nH-HXV<3})8sph#=qYvMoSH5!R@U$_(AQc%l3b!8#u)P=7>Ws z)Gm1a%U(t5pFw>=s9wX*+ly=OFt>3d{mHae4_TK5nOU&B2XT|A{aR04(V8Qh6|q#g z-?qG(&D=OsPUrXG<~p z+s_n3JDkuuI=?hC>-qE4VKJ|4OViEH9~(Yq+S8+Wvkw{ipA>xUu8p0H9n1iFa(h8^ z^_bR98EUz&c72er_KAI~;?s6aQ=o}e1*K7xi%760u^T$lW@>5tGMLRJx7*KkbT0LD zZ2c9#&s^sPo7eAtS~(c#skD3dX9Iu0;N1u~X$J$PC?+Q#4?P$kb!PJ_#@p;~1AaPC zrUkb*bV{H5a!9nvqE*-LVaSXeu}nP>J=~J3icb?g3`V#E;3Q59H21?N?yJ?sjdIA{ zw~edEEv?+w)UZUqQqPCjHss%Y7)C#P>p#-{6v^94l zsBGx3$TKjO1>&D!^HmiPB}s{w3`+227u+9?O3pn2dd4wCEAV>RqKn#+y5V~wg&W#t z77xc%A73@ReAtvg)>fI)WgB`VR$J9Uxlwf59j#dt62w0U*?(lEIc0Wv7M@=bLFu6S z7LnGq16~KY3WNf~>3VN7!{aUHy|eL`lL*(hBKq}HY7p`!w&Ybu78SE2T9vZj$=>kW zc~;xcyO`xKfl^_9yq>9KT~ew0^1)rFgrT`xyYd$gqSNr0!eFzwfN25t?*ZW$FlBVLxK)=|{(5be*k%(iPb zo7_E5Y8~@)4fUN^st9sME9FHV*+m^tlUcv#aYL)PSy{SdZjSf+Sozns`*j!P3uyMT zFf}bza7=5?ee;>UjTKxhdSEflSW<+cuaTVsca7kCLiVU!(va>+?>2Z+^61IImiaHM z=(R++d7k=w&|Qb@JyL@QxP%Qn8g{x`=mI^8{ho0`ym2+mJ}BDzg&?8sPA*a06^cVu zf^RIj4poOLNIe{RT^GqhS!$3HvU8AHKoCK>#(K%mEBB~(D<0`g74scgU44fK5LLua z80%El`~i$eAMJ~80|-|twv1r*A0E*`+L|1Xo1z6FP|Dxr3%W31WjVc@^Cu1GY>E%j^D&fL@@>+-jC#@odwwWjnRlP6@ASMc-dw=xV? zhQ==eNVaIk-r#*~HSIW?q@oCZNIl~lN1%vpGwd0)C9t;K@2Nl1I@i~&xo%WR0LIzo z)p>YLfYA!*`aEs^a&I&9Y8Py*130F@rw2X6FwU3@0A0JNbCjrH(_`~5?$N5$+-mt3 zb>APPawm70&k`7d!GRJ+uV9&9?TlzU>NRdc=uFR{ns1A z^~K~0EzsHQAkpoqsbv?1@&OUQfQ@@EL1B8=s7S!X(tJiK9^bVu!~Z?t|NJhH)_t&k ze^l8qF8VxtIvd&@8Cq5sz2M)^eq;xX^OwxBxEkCa;Rjz9X2ODD`L0{W`OH z8GSQEERUzV_l!F$Dkuj3xG?`(zq&EEEzTZ(I%qlp_Y`P`ZA{Fq?IO~ub_&7uieIm6 zhMsLSc-RK|WQ({vh(kf7xjr>0WmH#{&|NXj<_~tgHg_V^WV3q4Q zo|ZUSXAKorY*VC5%mxp;Xq<{VRQxYD;a?~9by#BQ?r@G&jnnWsQ|?q&ym999J0BGQ z4%W2)zf+(NJf5um^5Z-|Zz6ZDVkj^mwu&~_<0%`=djpJ+J!J1XhUEuKVrabF;wg_dtCYhdmWP_v*Js$))6f>YV<& zX@46YO#hjm8=L6lZftFOdV6*rA7{pM#C56J|7Ql?U@VhAoB?~@*pLT2wGnyRX=d^V z>}}^W|JN%1&lUr&@8MbI;!M_!CmUaW7Ez6c2_0eouF`eck0AYAzD$<2XteNXl?vQ>6EX`4)_ zP@K-V%fyhpwxY``l$uB}R(?};Apf^Pf|tb(iW&~DXX|>I5Ddb-tYc<(z^C6%mA{Lp z#kq*5eY>cDJtkA!f9)l%(a2cCzxLIhh}`h$enNC-EmE3Fiz`4=9tmD%n#*Y1WI8Ew zX5|?IYT!xZ_OV?wt2fn%UmXT*_#{a~qnGUdW6O9!u`5Dgege=arOiSv<0RDOaM>$h zcbj47xhoMlYQ|4BPN2GcsW(WBU~b9@E2A2IX^8X+d&Ncpdo~Z?{>Nw$Rkz%4P?aqf zR_L-KL0LOUEflf>DjwA8P)Wdl)5Tp}TAz`IAe=K6iTj!3I=sqPaG{DT#uk+$#9$m* z8i=IMEk_jAR_!1uyIP?~IWh2N#yueKE~O$pCh5i7lk&~8s;a60;4$Z-28tN89S%1~ z-kF;h9JGvAoCzfV&t9}3^kVP)*tcBS9dGwWNQjbXiUBQZhCxg~a7UU6=AlpB4hrWl zUjCsr;_>zy04-N^?c^NmrF>hRQ@_OMw5E)Vt1B{qu9D1sU(&>_?G0LOvF`5gMY^+vLD<% zGCgQ(=*OD8Lw%Vcd?cqAjgMNRZBi|XNsHgGaV1Li7V=w4#Uj};SmtC$37rOzeXH&` zc!Q7u9jS5NpL}C@c<;4KveY-yyWcD+vN*rcm*qw@1#<#mOlBStd9P?2hY;MS>a)Dq zs!IxTE4gBqW)9bB*IzZg9S_uAP3m~KJ8V}@%GLkp*7|+t@_Inqd=ZBA{hCA_$OWeM zZdlqqpLGatSm_E=yDpG&7?C7Vz1Bw^ znKhCaA)tOTjHE-H1(F}kMN5&eCayZJ`JqN54#sjJY8>@@&yRw1E;3w!@?Gxp>UiyS zHHWlY%4d=C>@`_JR~H9PeIZX-dtWSNRgI22n8m@OQQ+#-Xe?M>eRu4Kirkn7D}_G< z9d1ccSb_i&1E5TvN)buhwCp2h8Dy?t7)AN|5Msf^1sQRdEdQQ&yvWB(x9L2ecZngr ztn$gGM9z1OEhvbivATBgBMzfXUc=RS(^cKsRF~-MIq3QJL=r%Z4i7_ZhJESdXaW%! z8$3#oi%0+8h7(8~totzJ9PpS7u1a=YSAmFC9A6v^LB@TnDVUU!^VoqhZFr)2QGO91 z$y3kF&1DO|u^!RgW~!9GwHb?E*h0NeUo6y3ywfW-xu3i>Dj}7<0Gf;%O_E-(u+g87 z;eZic=EUS$w};?3MY3EOP4^PPp2F@P%L_Cy`vua5TG2-E;&GMS@x zB8VZ^;nN6kG#=6N{;hC8L~3oKK<5$;6cZE=y5lbOI@dC4lS6!Ip(>=a1T(A|Y6)Um z^yS+Z-4QKpAJ{c9xSCdzT-(Kk-*NkpIHkntbriFpzSOcndW9zy->*XSa(bTVO_&T2 zT0NW&@}u?Gyl>ePT~}nZQdH%z`t8oK?%QvV9}F)eGww$GDt$`3>~i4F`O5|H)1(06 zaW;lzJh(1BJOk7OG~GAB)V=&+vSt^+yZ$7yYtgLGtC`8hZ?1q2k+z=7W;vTww8SpcmJLAb=WG0rOQ4Yc z%e9D+(&cAzTj+6l+L|+g=&3GL-WzLeU5nE|93vqytS8hZe5bl{AniVfUySB-Ahpp} zGN*+{Z^?q%zcN&~?Lr(si;bU!F zAnGf0Uui#_?M>Ofil%Q{C%|JPs9!B4QRNZA(J)o*jObxHz+|zqE`5Di7T3U9ToXLz zUAC-PdQDR}(Qq=KMBV7#@kCphQrNLj_05`!ZH&$|S4OJ@e~P?QPn*{JJ3K*OtL381 zQ{=ym2JW23Oh)>CrH9iA+6GLA5{XzOxjQwcV|x+_b-S40cH{}Hpf`BF>BSgJ!L<`7(Trj`zX!PNY>fv z(98EMDwB$?D(0>L8WC7;G?)t3VXS^q#a33M_=dV${ALCO`SpR9SB4qg_j@4;n{+G!(~f zd>Y7wdm)*a?e20{D|;~$?7^kUh*4}w7MJ;H-elGRvv67b{UOwUyDyw zO_kXk>pNi~SG+L3o={r>CS2+0+`~7oyvdE4k$_fHV)0TB+C4ifV!KE5y|K8kyTuPg z2lw|kYH^F5BSSo3j7{to*$WIfO@J_%5YIC#=NDLpGt0dVvR11BOb`@(*j^z0wB@(f zr#+pDC?mJoK7q{^{l_>(ri`XRqbDF2PjWt~olSXYcMz_QmKUB?%kaj_xck~RF-+gjbUzQF zw@N}INw(v$dMHS=^?=LgU_|cWGLj*|$2X0ShuIE(_b4pn*fhM@TcE^;NGDa#{T0Ex zIF~4GW#Ww$KABJSg8TK+Ee^OOmj<;$YEz^|AgeoIH_CAqIANNvcZ;f;R?LrqYTj@b zk8FSPqt~;#R{)7BXi^Z)&0o#ZJB9*X5PahF@i{DH1<*BP6x;y_6y$&O&Ix@3|vJvQ9^I%!tx1^yReZwniaK z2Jx&67iOc1OKX!1{GX;oQut=yWBjcY{OeW6H=|+jI_cqerUz85>#s=gc<73w}9jWprZ_kAXi z3JS0d<1?d=6CxZ7)TTR5!H#s;|TdC?gv#7HDWiYSeEAAXo9(2jY6hNr~OjK^Iq8%d3i z@TwEidMp_7zzLx!xoqq!hUxV9;m*TgT7Ll{Y_Ri1sVbLs+=w8w9n9!IDlUqJs_scS zRZbm!t-Tlberoi#$8rS8EJM;B>BUkj?OZfFlE%&Kev$pj-z3sMS2SF}t$MlU#su$L z?z^5@_%(U5wyrJ;3|g0E8vB9Tb)Bq3JSTt8`gpTNkeDW(gln?ZxTvFMISO-!qFT>j zIa$e$%{K@tG!*d`br-TEbG2}Fxo|)c$3a{&%q*5cM2t_Goy5_aMoML}-p49{I6^0e z%6Q|U5r5tL(5Eq9mb5`*eDcap6&Bz&04W^-n-MbFesoICBn&+q@dp@{9n^0;Cs>a4 zLtX-EeF$r~jBN(4TV5^T^|J z(qpZ|lsI;JSU2S(=i3Du{4$r?1PJ?nJFn5Rw?1G@SVR#nl5u;}j~bBg&@gAaLvj>T zNIRu3*Vv6N&AaOBE7uz>dMiot-SSeG>jMXWq3-8=NxrNW<)r;q&F}28W%*#yunuc| zMvbKh()HQJvkqD_(M+{tyY44-3j;@Su5uv5Qf3Hr)2cg)cxn3d6wvF8Yl?3*#&XaS ziZOc`r=Iud>X0kjWBfMRsoka~DzezTrzIyuS;y>P^JD5`u_JMPdSo|?(X!P1HK59E z=(Jqyyu4m80C%;N3u$$AY=yjV@;GtgA@8LOoi)iLu=uFyae0*Rv)+pFgbSJ3(HXB(q3j<9*h5UQDA`u@WGAFH8uI%j@TN!*5x zc~a=C52<1z0>!K=-Ye@-_Vv?LHzcHoZt)6T`9U+071==ktlGA+M ztd1Qjyx?k|Ou|uG+9cj#aXj?*`u@T;u=Z;47XdZ~U8$HI&7PQ2iKG{tSze*5UUNE* z{yk67>6b^vGtnv8kR4%3%RRiLxhss+o1UPDJSq4~!`_2_gPvL{@%iOUg`;t(H)L1; z9g*^Sz}TD{I*qNHdZ^KKq~U_!NlwYCRNCB!CSWHkV%A?TA9OR3-b_5Z-BZ|(ecj4N zG`|CP-OQ&2B6Yy_bCcb};zA(4>#^l}0EMQ3IsRiZAC5G5I|LO8(QK9DI5a8hU4G=Z zP+iaN{=mz*U#!FP&@e-xN1SoTXCv7@JcJfE*Z?$Z)3&HYAs`wLCGeFLn~m=?Z%jrH zMK#|_N!W@s;S*C2ZVTy9T;FkBj;m5okCyc4B~C&|j%t;Sqz^21QKVeZViC1P=@1u3 zldvIP7OM->SoOCBfJuW}_50X9WQqBBQ|~-RpIvNe5yWC$Evoj315Kaiiz;u}s3lm3 z;#zzcSnSDoyjCn}VNWaS;!o}eDsU4BgDn%7%wmUWuG$qwdIjOus$i*KOtc<<0Ob8N zo3OhQ``l0F;?nT_DYq0?DKYoFv2sGZdY{2MDr~$@Lf9qux4n@5n zm}));lv@)?_RP+sMYa@4p|4T~;;*&9-tbwGDpQ9`YK{iGj0o~!o$bB8L!L=$xxN}S zLXGedXACY898Nope0nF94G~POx3>`zajhL!v-?~O|02ShHh8cc+(*5tyqmw$ZTMBu zc35StPtZcW+8=#Mz0Tlr*YItefr{r5-;A(3DR%^Tp|e%QJYGKov`Br>>+;j2Jz$T* z$HYC1d(l%iL3+j1s&Q~G$Ecey}X<$zIv zzga>0YGj%wtpavhB=0SOsRbfy!SsJf$}fXyz3N>*%2ihG4~3tS-Y=DH3GuHWWpzKy zq#h7Pt>OUGiR*1+e5*G_y2(RsxXThmeame+Y8lC$!kvA5r0!=M{MZ2cYc z=kq7)H6%EEtjSzV2KenD1)N*`9`RUQSNixp-j@C8@ol9t&z*f~sUY8M_wGKl<22;v zH}FDB2prPKfs(Fg-SOaNgO+Z#QbYBn=K!SXX80C z#SRpS?HNcKbR`84I7C!?D~riUKC4kq4?`51!=MZ>xi#C zufMU@4gAeOFAf4s+r2$Hp=E!3)}6Lb^bd=AcyQwPyl*0<*!R2XYk8bZqHw+Eqp@&a zZK6Z$z1a?24Vyg$g)DA^DeT3WzH?*C*K%gN)i7EVhDGzhm|0QLx6Ww7j?jDQiqt-1 zIfPU!wLd*dJW~`{O(!sGi@i`e_Q|HQ4W~YB!A;5kF_TPZ<&&E{atnDH!7+o0)VT$2 zRCUU1ETPqjewsuU&4r6yEP9JilPI>#>oy;5{)atpo}3O-~AV0$dcCCGryT36ex7mId+fq@`RXl!D#GAN*o>XkziU zd|fj2l}8VUnaZS~E?7iD)FGl#+0Qx4S6mvVl<2dOh*%LfLfk|@Bc8X<_!>!ahBcZ~ zzlf!QP*leUsOLXnsno4p03cD0fnM?+ab=^`z7bK&5(r)|=I*yjl#2d+HLX?_R3uB(p!+3S@KHfsUb?`_- zz?%wJ)MCV~H#PTBrIvM}gB%5Mez_W#kB@?6E4q>D5)n*y(~H5kdN>L{dArSE96eKz z!I{H`2u5LUW4u|7I?eLJ?FAd$5GW9#m6tlw0uq!!>ElPb2YaE1iA2TGr3ufnGj4G4 zQdlw!ml`mGgzy^HrEg`7jO4MH-ihgz=;(TJk4(ZHhz1R$@KF-^D*7^j9t7b>4SvE8 zRJ`X{X7;K(qug-vC=CTmL-=8);MH0$7T;0mc)maY-Se(_IhsEFqQ<5a`P^+Z$0m|7 zgp%?T*dOeFajpBUV@G6U_i^B!efG_=1O%WZD733iMW+ z0I7eID_attE_ZRB_ZP%-a7~*m1=i37;r6e^=Pq^C2S|dcVhwCOT}V*<2hLw&UC5W> z`MFOF#X~wUadGajzTaymJ$SYLww)e7=n|W zhByR&bmJKbB22+1Gk64#%G#T2)&?wU_koz11_?J7wBFp}V#NKGcT*lv>`_nLikEDA>Q71(dQqyK$tRxT74=O@cl)D#K6NyKjk9h{?em0}lQx-@ zW1;%m!{j2&B!(|{!yzBC`}cAi5u9ueDOI!TYWkFlxSym&TGQ;{OztGxvgU?g%qt*g z&k#P^hsEPO%P+z>1G|hd%oZU@*_X;zdP@7!({_QXBO*aei(ywRx;m5ZdE~qkOjdb&omLw zU7E>?##uxxlr(6sHf8Fb^S6%Vwh&Ot26+o%;PjF;W{IcJYV{ILuX>kk`p%c+%)(Yo z3w)HJ`(WuAB1;lH5}-kXt6oX_!)^@9&=~E9d=u)miMe z_N1mo#mnsUbS$7G9gtSvBd9@p5dg`NlX83f6wfoT)zgnRkJSF~72#vLlpEx?>)%T{ z3t29Y-Av~|xFCEmr8;sl4R1&rfSE8mvO?S*v%!es$Zt^6r|_Pw5lS&dceB zc7h^mNKw^1RR&Z(1E3%mdYrqg_?%dVdVVFW0-PSpH~CXdjo3TU@buoy8Z>r3C&cmS zKZ&R2o;2|CwpZuW8}wHo=8exRHEpTK6C*ZK2V&@EJYp*p-cSne{`27=NnAbx8EG5? z&_$=p-0D5SesLr#&Vd>+?g%7^hV`?lQV2fl1?Pex7X~paJD1oaJmT6MiC z1~Py;<`QvyI}5hsIUM`VP#v>HuqZt_;**{zE~NLK$MQ-i zMdDD@V%Nvv9$smtt4)ad;Yab+Akg}t#eHi|6GjRgeYb&|Z`>TbTzHXPpUGVqIl8^E z>^z9QT{5Woi>}smP>&|%iN`C*I?#w+nDCZW;_?ip+-m)K^FFXzlomY`$@!UQ!irMv zs^k+F7!}7qdS>VTojEUUl}rqN*8!qgF?i#NA$?ehH64dF*ktrIxvqGaYk%!695>M7 zZL9AuteHfX>4Uf*g@K=zetim)IZt;}ze;Zyt7?Ahe#a=Q)<+l<8cqBE`1%f@rq*t4 z1r!wpl_R~V2q;yG^dbilkS5Zl6N>Z_LJx>2hzLjr0|BH70YdMD9(pH~AWcdjG$jQI z1pau>{mS|7z5mRf%%1F-z4xqlt+k)`UC+B7_cu*?t@fOeBw9KW!&=p+k^|%HKg|r{ zy7@(_KB+GE{j-<)3N%8yp~w%I$DG%U}O zpiWZoeJcSE!#-e0)M5*jldW&MR|DFzQ;Xoy9B5 zjit(X@pD|&UL%twDZ(H~H&PrMU#2zLv35tpwr|0kDwl%#2IUKU_h z=nf~gFQWKb5>w39TAJ$?jo`1%#dFLP%eUzdMGj))I5N}7IoNAbp?!wgF%|<{OlvW} z8uUk|obZoLt_JCc_1EuFuVt$ek`98hQ zdp}VM%nNO2=K5yPPq(hE$fr1vN>T-fiv>M5UJH+XHb7U1C*x_mBVwm3ikH6SO{HCD zvXs@3W(xoyQ-D{MhmRWlvCekxrYx`3H%m@*SYGw{ey(2(az$u9w|zzPTW&K`kS!%5 z{BlYXed2&tK?|8U5A4YmCsP7C==7BBR^pY;oS18Li#a)O^aELaeY$e>CvSi4HvCh7 zURnGQMiEPqz50{2ulUAxrs|GEMF@hURoBWm$MMyJFQ>vGe?~N#C7ck zS6}{Q;iN-eB)7)u#ldUeRk=yeN2s%8S~k0tkNWkDDZBhlJi1$A--IAQ>d*u&ewDnK zrzuKJNB>|q{*x0C`Rw)4A9SKZAI0MB;*fvR#yk*8eHB4zpuZvi);|;n?7S$E_ zVm+|HXzlw!s$R}5*mrQ_D6LA{1A{5X@1BB6_RrZRTp zk&TjD3G@~#hHM+fLSyY0E>`edD>qYkqm1*je;(OTS@F~=(Dg#&P~K0c(2)~%J};qb zferv#%N4bZ3Xj*hEoS+hoEJ-ZpIfa(^gQhRB50uz5By$rvAwAy`=md6&G&LtTo^?O zJsYRe`ki*T_WDy!@Y(TFc4HFl0kJY3EHwB9(f+AXxzu!x4{Z7aFf!$^X8WE_dRpL9 zyzTjqRk=b09_(g}Q0EtkpZ6KpZYK@jS~EcS=leKL(r10$PgdUM5bD(DACH%#7esRe za#r1eb9fJHk`kR{o-dYGKKBpMNFEg%UtAeLU*G*mxHD^8v2s~{AklR?RO$3*Jf_D4 z&Alx;#Z9^ht%(x$r~u?LjtD(}kzK6iRjBjg%z3qRB}aOtSh|LP;nDZUB6|KTBM@5cRwJK@n%VRR(aCi#oKF1k0b&r`X6VjvfGp6n`qgwkK7t) zpVw=0d#q6}6k`VXNyV+5aYajJ=ZcmhxdZdAj>iO)HtO%osxy(E6E}6`@WFlEd{-gh zO|^`%(Hw?#4X%gDkA(X9eQYA{z#pnQNnO~Qx6ujd)E8+0Z%AbK?~G@uc?^828NcAc zQDg0^f4YVH8t-=Q6Fn%-wetppRJY(YLQK;o^9la5wV0rfr&D3S3_@9?e2RHkrmY?b zk^op)@YQbxJhnD{trzDiq8Qh6vbl1~^y%@d429QjN>R&1(Go7Cu5mYJ<}n|J9Xwf5 zGd&s0uC<(2*JM<*eY#NCve~A=ef07CuLTa7@w$W_a8%Xu>1zwp3oLUGkLqrcQhM+; zu*|wDXW{6wl{(@p!&<_RdSFg@kQUJ=w_a);(S28X>i}*g){^^6tyMlw;*+^|QWLD(R3ebYWezOUs+C`dl%;z`mkN!O1hZEk;2*Ndr~rG z!LvPG!>URfC&YF!i*aR3p}1x(JRZ-Ct;8B>Q@^-(6z5+2EKPal}F=|8feT|F&W1ve`Xb{p=bu4m;fsB14QB zUCwu+B_AzCD9*?=I9l~m(R*v8somJ{9@-j<4iq_}0F0N*kI}zuP1AXW=#)06?LS4) zci$0NG5bT+pXD}l7snqLD=1B^-pQ?Xetft&eD{X9>9PtRPOpYQfFee5 z!C|;EA=+b#b)thJdDhPp+MTOyGivvTLbRS-DW^g@(`Fwv-3yMsH>?grvOv%PtE!Ui z$fGJ#Uw{N1Q9#g_Kkllnrh)i!mt6RO*~*v^;giBA`jAWT3wrq6kv!3DmSo?>w;v=6x=MQGSXQLcu%{>wZ31lK zb4NO}Lb_tB@}X6xTJj0pAD!pl0$QIrJVsABVYxxst^>(cg`qyWiaAyq#{FsHz0W<3 z{591vv)w9uQCQWuaz($T9>=6$}#o2e%+ z4(`n-mUY+I9cPAom+=pz3*;OzTI_5ba2Ek4tgZp%vse4-+%%`{wZ1%wW_zqpjk$4K z%vV|$yuEe7O(BGB;hJwm>|R(x^WmZq%(#qXw7W3t3fe7$DkbX@zdMZlC`d^8;pHib zS}ZIW-f_Ciw_oB67X z$2Lr9OL`Can!^KWI-l;W2Q}0ddv0QmbV3(~>|jZE2aR_&C;ctHMfDvm*m0Hgidf(o zl`ZfcWRnFpX}@Fb2v}9?pgqs9o*r*u( zwas95$khLBOu6b&+t%|@#YwSK``Nfh0dHVw``Qw`33OK)ow0mzwgg zY_QQmKSTL5*FgN{x^&MPr0$>|$?7~^Pu*<1{3=R>nOV{IeNff7+826uLhhP{B&kO! zXnP~a^QI-p-~oFzL-_See>-;XR?ImyZM(;-zNdcA*dalwn2m-&S59tKV(yK4+UNVk zeZ@5P;gVZ|77tF=0tax$vib^9fzv)C#VfM<=IalCDs0G(;h4=vKSK2t>nqh>AT^EY z3%abWknKhHWuMjO$k7)$Ykx%Mq5oSVA3?6)cYB4LQr5Fs%%MM&3o(gAn!H9J#{ zqj`NcPm6mCg}|8fx*1w`PT~Z}zB)<7^3)RW&^>@d$RL-y&xY3qR)Pp6%<;eP7%u|* z48%fonsM%v#R%^bjPt7V$?&_9)c}1vSkOj-;c7=hr20C$sKP+~W8Jegy~goe9ga%r zx=h!Qi_q=4b$F3%b4>^9$B0u+QovjRV z?y2qqX>jv1b%B%guB(FBeJ%&RSYPz0nEc5Mso}@GtUGe+oAWQUWtVp@}v$qEyfC|EQsJlS65b} zC7EL@m8##hh#%H(DZbOrN>d8jT+$p`cMDBuu%XwE_Pn$+HHX47nf6h9HVVIxG z8}%J6I#R&&0E58&aPieb&yl%z;Q&p}!`Gix?PJwY1?F73ZkE3AyLt2;*aTrRjtI%y zsH^l@Xoi2kZPVT{q6FBsqE!2@ZbKav`kj-6rFJVRV9$nm!);7iJ9d4_&jBZ;JGuo| zqV!v;Lz&J)^oYpBQaRAI0TaDMJ!z!d^HD-P^TpHqiX%`Czk4vvY#~;)#BEFqQ6}+D7AWrqjG`QI@A|QE-JCIp*T<+v4yV_~j=A ze1L>bWB+_1WBWZnpt$VS8VIy?ZT5*@g5V*8Mc|_PtBH&jx7(ruX3P>B4UYvB2ebRFa8nt&CS+L0bAvMu>5ourPD@l5mn$~ztME|JLWx=3LuN8T}@ocQV zT${GgVM*vj0cTR?E_#A{9X%bz7Llu<{9Cj6uVb0|?nAP4bXfJhcaJZ9JE7Ug#`#sL z6Fzp`ST-B0PQLXEy43Q$n>+hROB3Gk6(c)pu{O6w38VC~OdcY%7~2?2w$BoTtz{$v zA|l>KASH5$vd82L1#MpsP09yk`_^=_;(fFIb))XG}i_VrqFfU@K8N{)hg)=!lXK#Sz7Bew;s4VE565K%!K|auFv}G zahCynvSabeosi*LHhF?r_ZJzLJfvDjJ&3_<}=pra(L#OJU9&$)GWgPSSrI=Ea< zic(@xYLDqLiljtf5jep~JUkUDNiqC2xlZbQsXY5Ue} zqZM~*QrwBysUyQhg`?k9bTR9pN3chDv-!FSC(pP>W)|0(STPj6tO7xQBK2tCDQ+C} zwjd|DiDc{PR+w2MR_h&P<@4wwNhgdjhzJ;miu&k_|FY_zao<2%=UH*8n!5Bf3=RM z(#S5mY-D{G_8J)!A$5W311|9SfppSUFP+7Sl{elJ;*Hv`q!pR7Loj^s%|b{bi7)T+ z0DT}|RoK^J>jW`(nR@>`JXalQGXv79c^~yQPisLyqNCP5DH8^ODG=pNOl0M^Y{Gb% zQ$v_<$zlc;Ue~U3OW?o4+w3h~g=Wm+RiMM(FD|`({I}!V5RFWhOhIc~6USYszXHVD zFAxDyGUz{SS(__|#=7jAJ^QY`tgyUu;HGKJN&hquTB~4S%udW~;$YyQgLcRSDFD6i zp$Fj@vE5mPHfPsXr|KZbDcb03wV21=9(v4*Za5*q;#IRWo=9M7Y|KqgsF{W z@Voab?~0&DA6tShu3zeTY)M95=8k(@SFvDS6>Lnf*uK>d(Q$)g%*eP*UH&2^{-osy zn;TJ8P5^PYhq~xPCR)(!^RQX+|9*}2bk@LHASZVTWjqH|3~t)| zHX>OY@3DhdAL~?n2b_`7MA9+?7Xwzmlf21HTH*(81?BKUu)Acg>-mSftIgwWMuDP?I

    bh3?ZabQG@Zj^u^BSQWOpJ%12kj_s+ZLAKIQe``NZAp1SXPc~OGe)sQ6gGaO!zifRMpx? z9CklgmGhmXE~`B^NQE%Bx6tW%KC+Iiq-!c)$KMtf)tUr?FnAu2q(oC^a@z~{2VCR&_cLS%R zU!Bbsvvr{fk0p~R9Ld!T%mQM90azv~gV%ND7T|%m@h1SCtD+SBNzc&EvuSwx11@%b zE2+)nzSBM@mAmKa&c5aJklYM0o6WE3VXu!UeFdKA;DMeGzxea5qLICGr9%ue&qH~M z?8wB6;tZcN&qj+55eon4Sk3%#CbvH1=2*A&!uZ`c{jPn?6S#v#v|LJC7TGVAbY-ry zYY7@fa5|z>53-gfZhdvn0Zk7WonK|2*7t#$6!#V4ddBM)l0OCqPpi9T2Prh8(iAo@ zYwiQhR^n4@D{XAG-O8R!=Ev|eQ9_(qMZ7&Bfrd?%?UktlPeyr*uw9CkC4oif5q_E& zIY?6LXCyFjL%i=n1%o+ekE8O2#$FF;Zlz$Ws-8N0GBOiWFqX^Y(SNUIs-~c9?YH`^ zt7bh#A?{jIV_)sNTdWkKtT;2*HKP*sUXgdOcOXVUiXwML!tV7?+?&X9fPB^KGb8+1 zW;A&$bL~pchbn=m^tCZ7tV>jPfJYnxdh}LYjz3WSAH-}U@uRt@2Np~cVKaq1^g>3W z;S8C$oN997weEM5?2@15Bck~kEL%45+lI!$#yau}67j=L?e4`QRrj{?jX7sFb5&#T z->81V<>6_=FueGjh5Vi!i6qWe)lv9(*yfz+ahHcLPx3f;RF!&*9o^(Ma52rHI)nUR z-cXmjyW^lq%5Hr&v9`bj^4h0}y^sV$g;@pYMVJ?gU6Y@Dr>GqnCw-^ubnW`7SVGE% zy?>*ozqBeiSDiMB?y%&0fx+9C@Ly}jfw_V!c&G1kg3kAs3!A-oh}ah7(ah{6j^-?; zu&D9m7u1nTeL@DmR2?Ni!Kv5qT-j8HRC9*3Od)so&5f9-5SrJn)}m)BmVz=kl5vO^ zxzCw?)kJbV!<+@?DO&g#J^hr86cTrY-U;^P&gSu;lw@-asQpQ6nNuA-KYtA`%+GJM zmhE=v?LRSAqh{D8`Rhsifh@;&Y$?oU>%{;)jLqK6VoDP0c~<{%R;e<@`-{|Ab>XXP z@u*ZR=E*OT$Z(U+qOzS*{WqdiyeutWjne6hpwWRZVqM?#=Y_p3lhl1~K3MJSaBAea zaZx#N=rme>_4Fd{2I0Mt?mTDtikzl7)@3o09}YV{ak~;EG%}2!L=v1@=x2)+*V?Dz z79jdy8q)MTOu^c?M8!htLt2rrRy8lqGBI%sB9sV|;)rWRF?*G?Z8f2j1_ayd3h z7nK~9+|*jTi|_R6eeVZJpDZG=NXA``{fnI^X7Qg2t~3UsH@SIQZWVEUXxABPee3kj ziS_^E=_?ze47YYgBqWvYZWy{7>5id0hwg3>3F+>Jp}Ums9D3+ZY3U9Rp8f9q2j$%pt%8BYjCHEoi86n5O7k8(#M`20QR3pLcUFA=e=CTuro;?fS- z`0K?U$`XF*bMDnTW;MuJ9UsEUhqj}r7md)6xOMWVDGfeFr&7K>+l04Mi_QxpKXXV@ZO=-`}Vgh zAtzGMHr79I)?G&#*A+=4GGHyxFs-@t5SBQB?I?++T+#6PU?^CDTxCnOD8qjHMj|myq>EAaX|zFc#T=@rQ-K`k>C>GZp!jN-*mqf$=n{)n5ic)v!wxDm)S0 z#Av@6Se)u8QALWEE;LbJIRB`RO(po#XAUy)AZm#RcBs~indZb8@7^l1W6xU6+rNg0 z2@fuAMC4NWTasBNAFK(rSg|}rY2NvdWPo2I(Gr5)9B+eJ@ zHJKeAEW=-W82}=LRYRP z!Lr*5X8(Uyb~CX}UR`YA<-L1~lAs2hH(!&LuxbD(b;l!+)0?1lRhfb~MN_00mE>o7 z`i7eymyjQmGmSrXfWeN5MZVvbA<2hQ+gacmZl>(vQH?%A756g0x8{hdwKjh{+5>S%ru3N_q~dh%`Yo*+OD7J}XL;Qj zvkmp9FI6m|gb+t?6S4iDs_{n4mett2$gE^n5ZUyk${@-sPUGsV&5JsJmlNBXpesj* z``#N(Itp$~!s(BhT?eEO2=)Hwu2zS*h|tBj!o{wN{HH8^hV5hoVkJq>1;}ZxC_u{N zV-%@uH(*@WW&Gkm$q|n!K>PuzLHiN+^HtnX-fh+sc$-uyJ~OidTzL%kyOx_b4PL|L6lq*N5GP0$IzezlNET zwP87rc2>u!`1dq0U*tnr=zCX^ma6NeO6ryEY_Zmsv*!Yobl>y@ECi4Az>xM`osR-} zp13uz#mMzL(s{as=TA>*zWsGm>LOrO<#8#+*H9i`9M9*O4@3V$L|&iLsw_lE)@$fe zS5fIUt_P?|#j8vhxsEH2lFG%&%=K`O4^NTLN+%h`!>|ahvi&FYN`hj2`0>T$shl~NpZY=ZKN$m< z!Qfj;RKgOZEkixvY6$kX0K@X8PQ}m2xNurNGT~Qve zrJkYYk?GL8+|o>{YW?kC2U;!@N|ZJ0d*m1smaMWw5)=vs;Ik6ou@~|7r{#xfyp$AU zF;vakFoS*O5O+I>>cwHKV*T?IR2MIJN6s-;BX{T_6{8`UNikCgB?)YoUE;OJSqTa#yth#N`T zo9aAu%8gK-{r71Z3%}iZ(_+WTO)H;D0^YOyh07Fhj)*CrvM)-WEgufznr z$ddiDOMvUna4$i6pyH`ZY~+7%T-aHx6Z-wSgVx4wnHd+FoWe#3g~8jv z;fGY26-~#(b`H9oT|WAhv{VKV(|p^tuyL z>tI7uf8|TQ@<%r|srC*?g92RD<*{E=5n#%m<~|mEp&ngJv0Y41@7=72WZ{Y314zd7TtnEFX~mlIU8h%uaLWtXTF2kv>Yv!$ z7#D}o{i&egi++BiXP+Ef;^daZ9Hw<8Wn5w9%y9%HXaj?pv;it?17oP#A^^4MAn~&H ztt{<#nL0Gb45F)awR(trIGCJy_(lh^JCy#VgmIk=^Rv>sjPHS%$hf%e3)a^i9{6?s zp??wXWZE0PaaAMey$+zu$r$<7XQ=8LDd_mEwicQ-Q7fD4^N)`C6&ac?Ft zgazp|cZ|3zX&?dGhahsHkqh(c`}I16=e!f|TgdJ2ydNOwbj%i=0GCZk;tX!=<6+|D z!i=Lxdv>#@54*WlO2%?842QxJGOR9`aQI%=)~5UWBQen!U0>d`h7lO>NK7o`tO+gd zloc+u_ofMjui%2WmgQI^5WfkLI&~{%QxNfcW0)WJT&=z9s+~zQGd>TclF{!*5Pt8U z-v*s>vSG$h?CGL{!CB!OXB1Z({_^Io9-nW`R0k(_G%&uuEm3)y>;VC+sUwGyF*O2S zbd(N42Ev{UYd)vC{GPW-@HhuA@)^(d3vFGc;Vg!i!)*V>Bxyh15I3l|-YCx}l!ctyuPVO?bSY$d1|-5y{wbaf zD4w3n0Qc+*%e@Df0e^z+%%}1O66-NZ+}SK}5OQ_>B=%z6c&x&?q|Bl^{TeG!QzArR z+f&s_JmeIw9vZ!ld~A-*PG%1^`8{tivLv;v#ZO_QZEdYSzwCJ=@N5vL{&e9UaXo<; zgzv;v>#oEEZ;V{vsnUY?j!xX5gY%lYzRxOh&?HTBl&LraU+>H>HCS6zXIo6`-z^03 zbreu{${7Kx4bg^=*SCFc`|D7*zgs>&*F}_YdIq6r^k=iAhi*516-w;L18zh<%_k#! zI#?^6NrC7o+%ve5chJOnS|8y#9GRdYHFYMj1yZ+}2vAeAPg7$?3iNp2!A8POB-=VW zUd@85%1}4ibk9_GhR$0rX4FOm@Ez2#n2QDAhi;#of|7mtL#z~9eu(XmT|*DAZYq;# zRrM_QIP?m%*k;v7TNM+Bl?=xj?i`SSJJ>x;7yK$6M29eNMk(1gj_zuD97v>s&tDj6 zVrCwoxb}na{?3lkmV4J4VZ`8oI1tYlTD=6jF<$-7_U0>;^ui<;Pj5O7gwxC5u)gb_ zlHe(?(`l6gsCZ9Kr3tYm*^nMipE+R_76AHEH3umO^e;xB^w{ z>u99zV;zcl` zDrXIJZ{Bc#g#Szwez=BS{~jki>}}z&wl148%4!df7yqw#%E{^ta$#y{_rY_KUc(;*M9Nj)K)@9 z)|xp4LJr4tq9a(aFfCy1GCntzJT(uoydQwwHF0UJW#(C!+j-~Lc}q1LcBp&Dj$KZX zDfQ>_@vK@VzQ)4N=OtiyT{}^&DLXm0pT_27RB##SA4Jt4o$_CsLwT$``(AQy@kViHRSCjVoNjK8MMyf_N6{2FgNSy z+>&uxmQ}c&jzu`+Xt*+dA1y4~U`bC-x)k^+EgFZ9DGX>7%HHb?Z*)6h#ZoaZye1<+ zczV58h+r-0yVKM-s|$4JB;?wpX4aVJJ79de$?(I1k@208yx5=F1!j6KKA*f!;g){Q z=^8@QGj%CG1=`D%^peLNqJ>2r^o)T2EyAujshI9y8>8saq9M^%pX@6B#Qm) zEPah!9^=@bD7i{CpArpJ;E-)7NgQv88={(z{bt`C*2V9}x8)*YLvhfJd$r6|p*8x% zdSgpc1B>h`^W~f`Nu`|RW2HQJqF>$0Ik6FNB+s&bd`1ii>sWzK}8twn1DCs=skF5_^^_mxR-veia z;pbyCyXvD^)Le%j77RO=U-U*B1&#*3lhuAS2-nwN5jY%>Iak{?9sRqV(}DF~5m|MZ zW)C;n-Nc>VK-izAO2j9L`)4Cb8`C?8JflxGkk%dDVhrMbwrR2al!EJC#4t}%SrOZx zl0@LywW{#x0QCI5qaROLkn^g}|Hu62&ND9EvX7g_M%|DF(c&=Nucu=k+bR z@bZZkXOBRx*V;u%{vd5|?Lt*rC#MzJs#U={NX414_-CI0epAHTs zmR!{rJ%!28$(a{{JLnB#P1)NL#PX+cUPvP7pBVC)IKY-P?NK; z87?_KTUv%nT4c%oD7Z+Z(TX!}CU>3w5%GadPR0p~Dihr{lNX(;2waIsZnsRHYbykSF1 zD!X(38l!V^>SYlTqSF-B+^+NuDR&LMRZPZd{tWq!$*!OheoGf`1@ICmv{q#$bv0V1 zfl6UjjD1?@d^SOxne8lR0wMU6lz15<6m>lz^gn91dxY#0eDqHDoWKV>=CR4r9Yw(K zBiLhhmX|nsl!@YY1QiTV40jQKNk;g^yn8BRrp%omYyklF=s?QTOoA2p|8EyeAnUG2 zX*56`r1i)tdTsD6YkpBNtKk9TEyvkd0YeR!#h3X8zmJq~$D&iEWUvc;wz#Naeg+3; zq|6eo67^*4pI^l?{T`~Lxe=9?_qKpVwr2g%P*?Gc$rN!t*hvt7#i6s7*)V&?)XIMO zU2ykMuF(busU{#l1A4Yl2)lXZaBZE1 zwNg!v5>K_!e7MEHRhoSM&$=b~yRKEa4gjF4U{BL0gMQ9JDhY)gl~^%~@TjJ?+|Q_? zL5k~<_c}FVul!mNl?y1olVWjwU=tdKLTZDn!ad(#ksrKI5*Toe#iRNj%!R5LQ@ks< zuTwTOw^f&B9QYM^66_)X0gYMg=`*aOcQ?qHKFdqZN9edYFbEZ7Y-`*pH-*f5&Sy6h z=KcDi=P-=>b@Q$U3*EwA^9w7QJ85Z7#Aj9YY>=&O9@vRAFwO8zS5?}5ZBSSX z>o^b|aMbVtb5k{Z%JY^6dd4)_562q%ZgcgdMK5fRKP33V(p|>Jo(JIhu>ypx{wNs% zj>MoO$uWXL8^M=Ok2`Nj@x9}^%LBcInxhpW%nMe?&lTb_wq+ZHwY;F&S-sSwJTPMG zf49+1^G}G;_xa9qwyQp1N!n>2yyt^G;W0{d;J!0~@B`WD>NGo}t#WPT*FXQw0^oB0 zWd-BYa!s})H>RYR43AJhbMRB zA}t597P}*Ru2>Ua)!)VR#5^*AHOJBD_ggH~0@Asw`k}`v_$nZMVI#?KV9JL!L8ZFP z1?CwfLl}G#I{U{X_$hPqd7Ka^cP7C9@+8x)i zT%-*j=`G_YJ5n~zIL%6ZDV9UGmO<)VX}0X`gN5CYh!To7Uxd%&I=0UprG=DiyS~K} zU-n@I*r}W70$T-G&c>VP(T&;CJ;Sbw3t9iu z!k)Z>I>=qYC_+~WDO9LtvPGCBS4QMV_gh?Kb_`0{`$ZqxteZSEb;mT!QKq(xD7{Pp zy(KR;E3ieAZ={~hBxi$NUI1$3huAlDqU2sBw|%J&$Qx()SLmXG+J*UR`go@n;fe-< z{j}*sd8L+e_BbSVNIBw9j|JUnbi7{g2}`?_xL;4X0>|kRcHmb|sNk~?E=w%$AcwcY z&jtk0Uy2Wvh_327veI+>O41!pDf2AzaP|h`5Cwo04UI|r5CVTOv2zQpFfr!B|4>Y% zosLE0djb`rAuemX{6J3b!$;g-u?0^ ziI#}==ZZo`F8QWIqy+~jHW=@tL`(&MjaH}C=u4!Lk8aiWYB7Yggbe|I>-eV8q^LG`d=Adz zFN20-M3Lp_luf`WQ(7t>)ulW!fv^kR#v&{8bttayWHsm3pz z8QdArHzto;+%BXHr#aj57L5TUd#(Tq6Xz{Z_{jvkhHo?*?8ZEFs zi>}f;-tbE1)HycrRtEQPZ-WsnqOu`3;O0c0;v%%(WOj#jNS1Se-e^%HCT8P*gSg@! z!4M|Z;Z?_&ed`MyL-uA0|5GYODe}sDBm9!u__AeG{2Cl6SCXo0ElcUdKIN8lQ+Ade zOyS5+?^eiB`0Omv^^I9dS-#N?K|qb!uK30h9jZdvKXcU5=(49LdDNji7i-9)FeWdy z-=Rd??$mJb(X~)2c^-Pd1l7E{`}Ibn2X$Bc_^KI=A1geRmd_ov1iCTNlb@8)v4*%$ z!IwWz5uiM~q{;PuaWSW^t*ODt?DX1!;V_3wDAu!J9Ds0+3Vlc;1Wm57!dlJJzwZu5M?hAd~v)*_h->F+-PI1O8nJK3Xh9qgtuk_i0CY!FhOa zTBQZ@kpyrXN*ei6jB(WcdX~D#(@(!1to<<1Ca#f69d=NNeyt>S5eA{BwV-=wN69IS z;Kr;>%@@70sP$~$1(BjYuVxxlTlrQEu-e_vf9{ZZdc3u^rRiuAZUuFQ0FV(`<`T&z z+)oc0N;|%r`yAMEIHC})7}%3kPapT|ttgQUOw*wdfbdiUimA9CTqXx>Qc(z)#JFbT zEgk6mw~8UE>U;Y2WxfJR$t&XhfHf>YDo~8N%s1SUyZb{f#ae)Mc35Qh(hG?v#Xd!1 z@F))uo?6&hhY_DhN>drMj~R!lV|Vj0o9*14(`@86^fQGZ@^AfcKaFP$ue1aOs+h?C zy}g#tZ_dPgvPP}Wj#hhrOE7gm|0LaHBfh=QtqFnO#hLZ>F7Bb4{Ekzjp_@TrYh@xb zfEX6dXM*sU8Oj8Uc}g}+^17h2!o!2|XsEpdCTYIHkx_qUp+&pp!* zV$Y=*VvT+?Y1qQnQdeDNSHKZp9A00cU`-{<5!7WRdx+pu2>-(ap@{0sfDA6-@hVk4 zeNI^VQ5Y$=l@k0bhi3H;NF#S!jZ&_yP z>ZyXXzI?thUSW~LQgp~G1iJdsoZR-+&v?|j(UJgiuwtvNPqVaq#>lk1^3NP_G%EMV z+>uML#%W-F)4oOj$#FXAY@?-=BIMeNzAOmjfx>t2Y`i48YONZ1zE=O((JUoCz4KkO zdCVcp?$L+Hl{c4lt0uu9eZ9Bk3s!v60`(*YQBG31wH+;33UJ{8JBA&?W1iZvBb@ z0R{M}1P=yE=G-u9yZyF85#l9L{@-KS7vnu00OBDRqYkW=uXHElC3=t|wPk^}zJdm7 zK-Eiw34VkYv6T(b>6E^Mk(r2A(W>O{t#-9l^v?rsSRT~nA9kl7CBNc%WiZqrJutJl zdC+Z%K~GFw`oH$=YJs`DW7GD75@F1#p%I=&I2y|ZVeO6?eV@n(!Um}iDpxBn<1i&^Fythj@UuqZ_irzm_BgWh%Yo0#1^;%U<cOO zadjWeq}=D>oL^y7xKz9{Y|^f-Idfv1N<1_EGblsejbkfnP227DE`{;uo}XCu?5kYJ zn%nD(>D<4O^!DXViF^}!$}3tjVvW%|G%Q29z${nape{o>%vZSIggO=bz}_QshUG3 zdsv-52k!)=5z9_0L;M4uuK;PfWfP|{_qY}NE7>+5x>{?l+nnt_e@qG1dau@>H8J)q zv7N=S@MYRzNG{*v6WBbok%R@VDJrhd6zIfb^J`ZM%x^E-QPZV7L5pdCXp~|St3SvB zU6a7Fia8T|8MlF)^7g3ho^?{&?5|Jz*q875Uo|FY=>1KuI4Fv{-X&d_-tcWv?B zEvw?m!PTD&{$L2awZ9o{Rn<>u%yM`3ADKZteBWf8t3DNLc$*DY(DguC!=8oZ1FFPs zGU>D8<~R7@=3X*<0RuvNF}V*Y(UWONxpfTR$_2{<3K^}?TrL}P_QYoVusLaHzihj0 ztrM~SU4Zbs@Mq+1KbYxjR(P6vs_VQFk!wVw{IV9?tQ9x`PaD}}U;d|%NqzTE@qa{f zP!-d#Zm^}5ntZ`4OZhobc=4&Dq~5XexUcH~COn0i!L}NdDw0sSBkD+`Rcq?@8TXo8 zg?aWgICvHo>;Ngv7e5BZ!t1uRE_{BoWZ{C^vORO~KSyA|g~7mv!32Aufk4`{xk_Bw z>G%_U*=Pw$C1yhfQszH(s|=*#@$D$+-iE0m+lPpGrqpt~<@(Ed6QiiNqh3~^>`aQz zRf#4b@P^Q21e!@Hfaz1)?8xxbteuHkKq?2pV$YZ;>6JRqHNH!3(U2Dfi=S~tfvw#0 zOa;PcGB$jsiU9sJ#(c=Q>l7?!*tKrtr>1Z*hM}zn&E>-!j_{3F9t{b2cdfVuC11&3 zdO?q$+kAU5X~t2y@jBJT(ejJFg$_5uuquC|oL1JF5u(vdl#mh|TKXBJ@p+jT<8BrA z5-W6ALNk4S=T1;h03HsdobNQ<24t>us@fu@5Wc7Sltue+LbJ{i;E5!cf?aR1`s){t zR%j}TxP}(rn)*?~5o=EQ>V&_?W7M+U$)NuEh2YfWp6ce9E2QTH)keOWEx_{1fcZ*Y z@;9^hN60zmjf~0%7Gy0SESY}Dc6mLS*^Lhie#PF18|4~0h&QTB-ibL zmZR7ss0N5C^FRx(M!{Z&wJKTytt<;1KuR)gnje>K3roc9^SI~na5xsF_|2xs0GYm! ziFkhgq_HCycM}=^89psK3x|bKgnX+kS0=3x%!O=pgQ8ZsM%R52)i`htJxag$SP1qlNgWbAC;^b5;Ku%ls6nuJCM7 zwH^ZUs<%@Q2z0$IvM?Oz0|nDXrJ9<%;mtK!C8dlJjk2l^y(13<%2x=^s4-e68b+;O z5cG_lM+VJXE~V7hlu&!~A0admuIMtk%EL!160?J5=gqNnv}z=MzaDzV?0s?OHFu+T z9scox6nm0X=w$rBf?nq&dil<{uKW3z;W*2%i#qSS=+4I$lD4J%o%`Si8g>DdgoiYx zfnQ(4hI~RO0x|wnG8goNZ=G`CBfE!RT%|;DNW3|lyWpm5Sec?P}h=$i#a91L2!0XT|NBNN7)tRq#i_hspl~&|0Mb#{D75 zzEW97sr_z2T5Z((HC=kUwDK`&VTU5-^Eg=Wmo0cTB)29%b*=2}1}!7yNX8OiR|Wmp z-Nu467d%1~F2RF#fYXIZQM9|X5I$$or}+AOhYXQ@-lr4dhgji9x|cqYXK|nN%^-X( zR@T~ftk9T$?QnAcJdx11@=S*Y9=}0&q6$)-`+OrKBc2_^cE|O0>*KE*Ev~e0QH5O$ z(Uf?KBtkysU*6o}YbZ1g)LAI*-n8O74F3>!HKMkB*-Oaicy~pv=_}Yw4$c1$mXY9& zg$uiw!x0jk_H;GKB5B)|QokD(*7DI^@`TLA7e96jbGlQLcqn+6m{a=8yDazF>pugw zJ~#mk((7L_{~-N*`bKK{r(xrYA__PyA{vzW_rTTaf!2CsS$98M3?;H^ps~H(?(8WP zq>_Z@!7Tk*#)kj9J3f_E(^>$Yu0r2#q zQPG<{p`F{cX#=d;Mg|0W=)qn1s7b%nnIq8;Pes?a*WLxDZtS@TNARaL2)AC2j`cgT zXhl;G`DItgb1`3urYOK(>BFn!6X9d3?&9hwIVE)Id@noNV)r#C{~A;m#;W0BH8A)s z!fEv9&rD;o8Ec=|T(sN)E~w9GSb>;7dkbf*0ml?+z{AvXtLy#*HM~7>Ki@(S3Lf#r z3~t&fIa%BHWwrG08a0{P1avI~vbR97X?b6vBp5R)Gv>^1ce9h$6{l;{-HrC+{e8dU z@1{hz^>LA|lRVVee{pCPR#N&YO*n;MahPJ63syu`ye`Rt!sImB6XG<`)Qyl45VrUE z0V#y-;|Ll*K2-rngl=)h1N{l5~q%xsmTR2*QL(&pv0k%n8qO zh7nLsEWDefgwmr^uS#d(^O3NJyU-<;3vb2|eG~lehsNuz82c?jK}F9}!uqf~%6xXy zOxrcdB77>Ggn0gndZLx&hzLubJI@JkHbt$?`>o^2P`PB|)w1pHC)6+YA%L_Q{4M7IA^SU1;CATgdgY|wofEz3) zaRjdr=t)nRl=m8V4?g)UItE;2Hny}_H?XmOW5wJVO=jfo+nE8&Tbr1WueEuyyxax; z{rND09D*dsn^w1#Ew_IRF|OOiCNBM#^>J=PW=wkcI5pWfqfzYKSBAXIn&Y{wMEnXj zraPksPFbMZk=K>`fEv9khoIC)Bj43t3o%-~Y(JV{LzR`oU2?}LZ!YHjZUE0Z ziC5x4h!MQp3{qWf@s~c^8*qDl_V&H2sm{5qtk*V`n{O!*`%7Wn{Xq&9V5t*W34@z! z+kg2@fdH9ZhRJFKLV#=}CtG3xPU}!z=tjD6*X4F>%-_=pRokYoZYg|?h8O0{u?7v6 zAo=ETu8c+o;f+qAStJc44+XpE!-R$8UMmlBneBHCC)cU}`GiIL$arnAxJXP;y@oI3 zg<&Ec!}fX$tiPm^7S^i{S7~%_-PyLtZ}UpoON*(anDW%%C(a=VCcNDLG^*wfrxEW# zL}_zz9*`Br@l8nJ*Ipyjf;rts=^56H936=rujwArEDd3lw>a)hcS~+pd5v8j_shEo z1jfh$Dw6tRL6-FtKWyHjmT`R?2l9I$wSdt`nAxSqqMJ+ zQiRDTUd0WGMqZxIgwc8nM`w zzvA*VtU+vwkC0SaLr+Z>?CHDwt?#s{&p(p{lT#nHwjquok52hSx}#ZCJceiR%Z$1> z0&=N&HOpf|FHc@m5QL0C-41F|P?Hsm48Nx4H+!F>u%lZas_dMf*b(S9K9*A+%&_p~ zi%@mKe0WI>p!QPy`E{aYQAdZ52EKqAK~HcZw)M9kHmGNgHP*MYVLzoM&P15$xbEF# zs%+7l2lzjicBOv{k03(ngS#@1D1wkI{oWBj0sq0Ku5{jg2!kgqc&xOhXnp1;iMcCv z##UtdLATsdP*L9V4_MWccJAr%e&G^r-n(hStgby+(Rkv0tbh>$1z?HGvK;^}&j0zM|; zQC5|_>us(gj!<;pYxmGk7C7TJ4l;XUOM_zX$`PANNlGdla|9%|AT_`7>F^0(u*R7q zzQtp4%xV5oH`F%%Y{pXh%?O`aSffrb%azM76tBiG4tMclGy(}rh)(lJx1{5Pfl1=o zH3e$zXDzGpOaDzY@6nN`525YiOAALm!7QgsOWF$xKa{j!(W{HWd(<5@TuynV=;@fN zo0M=3F+PeM^aQbLHSPlT^c#Qys|hRJxX>EvU{mFzR^stqD_iezYJ7g2ut;`~;k+OU zWvLhkf4vJ^>xu`7v)izQt#~Y%qe&TZt5JRks%#07B=aaAwySBXv9J`sB{1}B+iN%7 z-GIuBg$-~p`6o}UZ<>SN0mZg@Qu{9Mv`S=*>Z&xs&K{vO|YYy?znnl zP)NBQp!^ZQ4Mlz+&pPHzHL|CgAc2)P>J^?|aOTD=Rn#9FH`kJ&PZ6Bp**G4X%9Z6H z+4~|}S`Ux&Op~ji_Ip+WG88Cm;d4RGQbK>#qI)zyvxntPO+J*DlaFuDP{ z@DZyVYpbe&S>r_UbQz)b!yvla&RA7a3Ul$}xq`0uY4)r^; zKQ3=TN1`>%(=#h$FaPzx38L^YE4y*{W|Z&kiOwUW>sh|g_UFpsTb9fZe4>8^@IH5I zp5u$>Zz-YM~Et%~^DvQsNd7}2WT!i_lR9h3+fQj?o*x#Pg-u@>SVty(! zq}2KGx~#D@onjXu5Yl&FXa_n&0ie%$m8au)T8tf(Z~@#~s?sF!ISH2EwO3G=H6JaX zx6LV9CMJa#RMBog3(^=!DXtqA7GiE8RT0VOfMyj$t`q0a9WqoHRX7(HRi zf{kh^I;b_eL=ZGEabLeRW0m@#%H9wJhQNhCjUg%<{kY9D*cY(HO_FgSA})*X8i`g791=#Ub$uuVu+3S01a7F6F-%tDrqbO7?pipmj;WeRP1Hco??X{QzQ&7Al!KE2w;Y*p+fr!UL_?E? zgmy#|odmgouPu8+OrJr1p9aU`BXL<$29sapv9SIjZ+FqJpCe$SRr;q^>ixf~WcWbJ z8meroRbyX!ia>y$ZW$w>+}?qvWyY2FqQ1y`=;o$<#CR~GT;1%g7W}}OOPDHjZ<8@Z z^Q4pyJVj2HX6nLrEh3arM0C3MNc(i_vJW0d1R;eXkpj-eL@H?;j`3-vp9N9QRI}%@ z3uywx4(&8Q!{KzYW8L@~(7!gZaTkVEO%USs5<7L<%;1|Rib+{t7hkJojP=&nu2}9w za3PDs(j5_qPM@M)zxtP3P$5{0!^ga((G^2{{#I8r?fbb;7PZD5egioB>iSp++%%cb zD!p{37%$1$qT@ar)YB^n&coyc?APw~rXvi1?=T?48yaNh4>&{06mA3k9X7zTAcCvhzF ztTv2M{PwCJG2L4)MM`(wD{Ag#RkK-+Y`qPGkgFluQnk^?M%M4$Qb4Sv4Rt!`i16-#WB9OB%9Gt(Gb&0!Q>&6t+0Ezz%2~vMDZQ%UE|z0My5ocywS}& zJvDy9*brFadF9%&Dj1EdhZ)s0d^znj`dTU%K&_kT z7tUEZ#)2B3(k07T<+&m3@nK_;=+=X@ig~qHfQ}HJQ*llVN*mKcg-1@a=Y=}=dpi4^ zGV%a!O0HC7&P!KOUL$w$zKw_?vOvNpHq}kxn0i9bzEW0E1#q1pq_%)NvG$0r2JI0B zFJDo(&g>)L59(yo0(N6!d{YO*KaVQmv8kpM zQ$oJ;f>m2rg-h4vt#)^o@>>q2gOE0+IUMG#B^xdE^VPlc1xyXYU`nhlsXlic0q; z;l^Bio^l5~yj|E~E9sPCSePX=FM*^mDJRe`o;IpD98r4ZKJ(cW2Jz*_KJB!rX#^0F zMFms8_6NA1{~Ip6|3YS63l9vwvQhFEk=PK!-ozYqPLG^&PZq!ShH&b3#u1b-+gwi+ z*bA0a%j@cQ6uoe+%N&l-S}z9V#n)#Z0ZS7rjm~gD)TG&!tJ4Jg{2S6?->C~O2^#L~ z%^Z*O${KnxRK}w6u41=fcluTwyX?2{sNSpwF~o&>+87b>N_b!1R{3Mt{R_7MZ4aaX zJUSU=f?~f!o>1f{Qam>8a-RU|gszk!lKIhA^ur==I4R57#v zN2ce;Owm2-ZpCyqSBBpvRIPx{Cfz4FbXJ%N+lbH|P+ZJn^+a?lHSgW;P4m8*^_?_u zyEOY2eJ)6N<_e)v_*``ah3ip01IfylV0z=!US}ot{Q@>oiYOmjq&UhRrjYeiLO#_t zrFO*oLM_2Ff=oEmJGG+^e+Us|joeFoka0>Yjxw<8^6n@L!=HK)Ls;ZkxAVHw>j%1F z^6FemK|LU^h_8Ak7a^oo)bf9wM7+9c94o;NU4=bwz%_qod9K1ox<;n1FuibIM68Oo zF!Xk)bgpO^+Ocscq98C1K90GIBbEbbm5D^fGevuQThJQ_c^V4XTXj567bFFZ zDnnG=-SY(PbUThpXgj129Wr%DGq;snI%aoVI`MKZ;TU1jR^7;l+>Iz3s~n5=zm3n? zwJOTt+a2E9EmIAU zi_V&W<=f}~O#B^kjIP+yu6O>T+WD03IC$`V8R6G@spx_ z=-L8Ht|AX}wj%CC<+A5z$iDE(A(&;}b7qZpBIE zwb8QzEH-3Z6=4b9B~hm)avPU&dc?L!KVCH_aMFC6i8}kMErW~Qst-XrkxLjuK5-rc zk?EQ5*-;z>o$Hj~-TJmpqD<9tOWn<)5aabxAx?%%u<3X#3*4T{3G|VuHyWAYE9R}H zT+m^erhj^5YpF6$kj^uGm(cO$0mH0r@ZEaA54&NOX?LrS>?l?P^`P(BMdE&cfE8){5lpf_N|Jv|n>^2saf}iH>2Ev&ht*#u z9GsQGWh59<2>e!V@Q0Nq;cr1=K|xB47eyf?;_$?x2Z)r!(yuZWRI;ym=eAb)I|Mrj z4Px365!B_wVM1K2|BtG-?25t*`-P>uq+37xfOX-sCt^o$5 zJBIGghyVSYd!2Q@z+U^+zV`J?XXD9V$fQFI9whr8sMf&DY0%-6)VF(VlsOdhyW-DlYWsPf;4AlMN}4X$U0Z?3 z+Vya2Fm^if1n$_);J9-Ycr$Dx_M=Yr;T>$pJkO^F-{d|Ice6e9I~P5rpAGcda=Tso zj_aA~!oQ+`k@;(GIZ(n09+Pp?wz?8M2PTtCKk{Sr3Bz8;cdMVhh8;dq2yQcOvF?Lg zRC}1xzRd?_V2eEMjgJ=RRJi7ef1wsjCWqu+HPvf|ekm8@`xS%?L^E$a?z| zyD;mY-f<`PYf}l|gho(?t99n$Z`_;LAUc9q^058$FlGFFZRWlD`tu54BI$_2@V{$ zto^1IFj0pQVr^Y}Svcg3L?5P++n0Twix-iT4Ilz+b1Da)UdogDAVba>3KE86a-0Dd zAYqUgf9u?5y3vFU)i+#9-el2$Z6DJ_~kOqu79b<`Iz+yoUxHDcB*CZ&jH8%Xd zs@qPm=1Zx4s*r@1siz#T5sx${{MX(wH@I&X7B;<`#M{(9G%l&w;dD~SkSPc+>sObN zGId%9Ovz(5Al~QD`?=bjQ zl4m+?k$A%sBv_1Cj5nVvu^4a2#m1bvt)(9RMmgBjZ=uz9PQwWlJLyyA+R9- zmV#L{@%!$&>gwx$quliTellag`pIp7MzWJOv%mz+LvmyRg zVL3iX)mzu@tFG7Mb=3Z1^K5;vx{;@?tJnSn^!Vz}(&7G^m}jQnqul6o8LK=NDNkwV zHtd#_*g@Ys-_>GDQ!^ixW-Q`aS^MmSdRoB0-|Kfm_4{`WyGS*R7vkY+)rY@4^BeIG*kiw%eeTs;@=5)%is)>JGc1D^-bag;Ks_HjEA^@rF+9ldv14SmcLaxIB5ZuJ7ODI!if#iGfg!6N6X|4dj3 zBzyjrVXdWYD^7Y=>U~t&i#7G>TBpNW5oTMjV{bj>Vm=a<@&{^6Tuo6lc|#KUu2s*U zIxJs=@rdr3IBR(uR4^<8V?^g}8dJjcjsEV?k_LD2J?@MiAryS4K(~_l^eOjQh?K$l zJM!XUF|v>&a_oQX#Q)GOU89k2o-XCRiOJz%-*;a6(kR81*WZZQiaj`VW~P6)mitVW-s`yx?T_R5Vs969%tyWZ`_=CvhVM_dW%jJf+RRZMv@ABh@$v%} z_alp2PN6iDh?;VADpW%#|3+!6W&CVO@b$R|J;e}=HE48seAt-s;|%Q zcGajFJ!AIC6R?9lDtHf}tr%w}lzYE^3#9)%TjiftY1C?OcP6)i6)gxmY=ADQJ+`I2 zLCSx4A8OmVju6ssD2A@Fr{^j`N-Y4^U!0R+RZRV=xd+a<9-(E8+k86(*8CTbNK^w= zz*D0g@}OzwT#Mq+B?Ob-J1XXiBzbKXaPAeIt8+O-P9xenRo%(`rIF1}{1X(&9X{&( z+RqI2xl^oVdaoati*??kh0sOvQ`{n|pB&yy6ep=A6t!o)B{%b6nNDJ2aQy%}RMaO; zG_Vz(8hG)oXwNHpwBAmmkW&}O&aKY*88sVekPq$U!I7{e$cam|e*}QB!~nF4kRNZJdfucF-;DFDBbq>maB!(PibySd7j;ls+?x#5o0s zP8`H47eUqCIo`Ujm6-pKxCVCujAo1pr>j};CS))b(2!Vt%R=ZO=>y)kMT`~(ek%}U z=`T%@QZa7~H~;gj(d+kz&X?F%u6CzOrNciv@ogW6z6z&2O=GDTG{n!8(IX>_H|5(V zB?B^9*Mjp^zKUL$TN3`ZB=EyDZT5vVW*~4*)qZ4l zBM{rL{31cy&)4t--bKnNk2!^w*b;~-GLMe#KP_PJE+MtqHq(-o#F; zHE{g(5?3nYzyjI=usym$;@Z~+j7D15gOAPPm<;g@`ep1lsw2gmQ-6!v5i^#>K5fXk z=@+#1V@ms+pjdjNPZZrhJ(rkemQHqf1H3+gtUV?}({etl9&A@zFFL1*NM8 zqEFnLQ$)_>yXkWhJ}J>>aYcXPok;5E_$JN#GiK`i=Rxo=5(abF$*%*{TU#rJ*m_vn z%A&3caZzxm&yM;J)-27ee=M9+Ror3wt$Y(D%!@dC@(yps4fWZg-nq~Gi=RoaW!!3+ z&H9^@C0g9vK0Ob6^Fbl5ZJwS?S+kMdUIv> zDwUGxVWJXRM%lha(l&*EF5M0TY>UN91U-LX|6`EXzF`oIhv-?siVuOLIlD}LQnvLMF$7+A}g zdE0}4b@BKX#c3gT-velI-f{LiML8|zTN|?zZ7YMV%RYK6vu&Ng)7jWBl~(-UyzNxN z|ERRVthC!mYG4_>j6F*km#W5KPz?5<9Gz?ER5g;DgBA4;d8EvtHWk3S&Rhmf4kxD;*rvThZu(eA4{&* z-?5F!=^OcfmKu<3DfMMJQ1{CHB{emcvzng&PiXa9P+GeePD^(Akba)AI1Mrn3Jqga zaGT8iArns^C0u%BkZZN7w(>`KFa>UzoxCcbXjI?{u20#DQS4e68Fy zv)ifoV2b%+F;t0Ea3Xd(gV>=6GG|{BmL=QVDZaA|-FZlqcNVz)xW+L3z-WrV@F2=q zhs^m@?So!mmZtWgI8rH_p7teYz&_+eO|PIOr&6S00e(EBc>J>k)QvD7Y@rGbKP{R` zhRcJL+CTUf*H8Q68Zt)hD^zf&a;xeo#Qqpg9Jfm$80X3>r6ZmdOW%nz(~x1rRAaPU zBI)}`GTP+`VL}+`iase8F%ymzhAO;?>_02X)@p2i3W+z$u+mYmsSz%P#JwZFSa^>N z`r6^~ntg8i3YP?99wl)r?9#X=35P#sx?Uq`IP&FBw4v81Zt*@9BPi<)`Iaxpl6W#VJWHrNmF8(8m zcZ4qrY9Qim)`~ggiiOPDTwXSVm0Iug-18d2_Eqe$;Mn2if{OCKp=fFhC{uTJ)wA2d zjmGvt;)wWH4nyt5Y76nZ3_Xv!*<|sR-y@$mIi1VK!a+k;S4K!(E?nRcLR76N&QQ95 zl@Za>U$iKPc-h|xNQ&FYHLb8epVhFrI5fVdlH43)cKc;F7y}T37o_{?A24b44+}@n zDcJ>;&t>r}T`zc|`x7aDtQu}s;L6ii|2&Ao=^St|cgFEPGGkzQmA_;G4>j+`53O~* zc@u~Aokayo5)6e$!Kn(rZ=@{mG9>w1KzXN_26k^0n4o_>f|5+gKXQo9uTd}xY~GnD zFUfZ->z?@!vo)H@$-sbax`>aUl5=IKm5CzuX(80bY=5XrTQ{Up7DuIogXC_GD8>2` zgmiUSL1g7bkty&0urYjf>+i;!MM7zwMGTaYXRXkN&@S9KZQm1a<@ofuLOTxtpcY0oGK5Ro(pe_S%U)=53w|KV0iAxwHEalC$HFtD_F;|%${4GPxYmC~G zN-(4tV0JwFXKtEW^o74YOn!GXbv2gf_}$OeM#{npc`2oDXjXj!*lP%*RPdB!p=X&0 z6_dCuv1Tg|EvzyUkr|XJ(9Wk(NMK{wWcaN9CB*++q31HRt2YdWP#KsGR$N4*EN7^se&5MF-pZ}ytrmv*>W)!aOBsen-UH9K@}_~^L`|Be&olv|Ha@bUU^ z0up8%LV~{G{VN2g%CF1aBc?KX6@ptP?w_4fWL^V$t%E~Wc0Wg{(MyhbIw~ip4K@9W z9y1F6h1Mew?+kahV3mX9(l4EhuS|TEowtEKu5C-FO=1SiOjLk2y#r)Jq|frukBE(Y z;zb|!3UHNy*&|4{iU)GAzCo)haz6XQ{}hVnwxT`%+Gef~=b$|9FHikOPtr&5+`idO zM4$}s|G79Ok|B370J}Y3Be$kWFo{ZJ?W?TLm~t$Y!gC_CwJ{}BqrzJ}QH^F)(h^tY z86X-qAML&Fb0GGDz>jdbcPG}5NNr8!m-3LkVkMkV7Gy@j?b~rxDnx9I?r&4+g%a*$0D8FCL;B)&ajXAx=CC(I0}F1E>DfYiMbOoK}R~qswk3 z^;@r$^*nxOLDa}}y(?+dT#ZIPr|rhh!hTQuB7I4@mR^?H;Woczi+8L5?+J`Cq~LCl zz;Gxg?=icUS4@bHJWQ57!k(W|ZlUAkbAb`OB77Oee__UFJdFIjwROvmDZizPy5s$$^(r71>R4Eq#sMLPfoOK;EQ>L#Byi>s$kImqN8VV{Q5oGf%8E#eZe=a=wuNcqw)u{CWi z-hZB(G6b5mbe{$H%>zGw;dDTPGyDNsZFA#t-x`rq7c$xCmIO?ua$mc?Mxmze^Ni}y z1cAx%irt)!9~yqqKo6(y74}~W9{2yP=pAjZ%B8XyVPgfMTwx#~1=Zi*vbCwaf+KF% zo=-fcZp-Ho#{Oic4wolfQ)2t05??Yu4$~@LuT9B{cq_KvgaME)yNhseYcY#aFm9m^ z{;x~MxPtx}VfWV?MK~t8_92d@STaj*DfK3b993NGdOo#awswDkk)38so6NF&`T@9+ z+b4mrp571Kk1Ar1+`;MSgqFot(=e^7;N0%!<&aBQshu?jPdCKJLQKp!Gd|k`Hxj6(v>08BLiQFzAX5e6p|4a^1I;Bp8~er`@+&N zveCi+Nc6bt3M@g-Mbt{dkGcN6fbX*4Kdt!Q?G7TWdCd(SMVf@Lr>pKRP~VAv?YK;zIqT(hgF{`fp)M|iI)^c%VHl$t)ktX z(+%#!7@#f_ecBr=AUp0R83Dwjt9S%(nqX3lau@jT{gP6%PYNdaBxe6RMbr{kANvnk z+0-h79P)0@XjaNIx<%Y&33EQ39kL;g6V2ixB*!uAoJSTdHq%P1p>1gP3?g1ns3zN0 z1^&Mcc;LtF=0eU-Nj8xqaM=9gEODsh6i}u7E|=CyT&y566e0Jwr()q)SPU_A!h;==D#2x!W(%>Y>QJ#5??U_k-hZ#WnNp3JQ_j z%YZm%nl1~3rVP(sEv>zzIPE%t2j5qkHE%tTka0t@S^LRur;Bc-GL%eC@CRgJ%orFr z0e^|s^pM)oW%O~Ft5t`XFJJp2wm1x#)?eqH;BWABb&KY)6x81WbR-OkCzyPRpa*(?i3nyjMtSV=$ncBFHb&ie5sY$ zaRJq&!v#L%;c%T#L;!Dx{a*Y=pNlthfQJCcIQjn%B#&S4(c)V?%rwP>%I0Q*+6d}O znL!&}Nx~5KW{x~3__FaaIJ+Ts_G(mj;f~5Wr zgJ166>a5UdlygMK`;K)0HRgs)rH(ZM{cPk6z>~~&M>q}bBYicJ4f84a;wfx1LR>^|w7&t^>|R6Z|_LaDzA|1F#M;V(%Tp&&Cz z+mz;H(=e}L>#pkcc#Y&$MKZnvSKa67oZ8rsLh%pah)~_C_9Qs2Z)KY*-}CwawtrKh zcdq1l`mE6XtyY=4^U}bHGbFp~m+uI+KaQq-13kaOyBh{eAu3ie9bC1z$p>dh%A-M(Z-d@n==|WQ=S-z$!PEL z_xaHPN2atc#;57C7%514W z2(&)PG1UGS@?%v5REvLC0*;qY2gVQA+XCNhy$7{rxkkPGgiWltUi9tHyOl>U!Hg$f zgDF!90!59w<}ZZtU{;)`gpTu~6ImkU@VHyZZq20rE-uXLZ^2UjO0D1jcrc3WC?-T$ zZPAe6#em#A;F%RK9KAM10dBC{2J*Rrwk09r%}V+Rn0-@}7g9PiqO+|Nw)F}tEuxx> zlnDmo->g`Pfku_n-j}>kZ5h%m99;K^49st&$1Oy~Eh$>5Wrrc$QI69t8V_lyVkB@6QHMJU-$?P(OWRI^pvDr z=$slLleO8H?AvgKKR!>Z*=L;lVI$ysj<~T_7iR5=pv24Uc7(ng)g}M!>k=lsbnC>kfnu6@u-@UHca-@kM8_5vT7=t`% z`PPIqYF+%v*-Orsdn3Qlvomv4++%;v2TF#OyIqRSw?a2JTkXroLd&p>1p=QICrOiE z@CI+#YYsb-@wSxB7Fx`{`;%?qxR%=?7tB4l_v_bSI*cXOK#LiAnG5n(LqIm}x^9?5x(0 z9LWu6tLS5Hsch}UhEP*g6_CLfMnB`H+blxz{~^!qHe!|wquc-*oW%vf}Z z`_cZaiGdDCV(A^zAB*gy7DGJcTz-yvc5qB%{rc}oCqw6c8%FPt$N~mzc!MqsJkSp( z1{=-J^97>)=;y~K&ge147-E8!05@9I(f8p99oc5GhK7b?xSs=%F>=E@z1XisI+7oZ zmxteR*ntZVqzZz1xfe{o{Qjy<8_w>8PV;iX{>tfIO)@*2oJc^*s!S_#HimYf;{TxG zUQH2`<*v*~XsX}h%2dzCO<1(HP-kV9a9~f;OXvq&(J|TcMUJd1c5RQcAoY#uHh}L1Ao#4GcNX*eGP=sQzJs z39I_(14P8etAS~FIJ5I)rR1tKI!+Q%9(TwiM#>?TrX9WPHMk)hjaZjHXaj4qosS|$ z1zE1x1Ai1}W^-Pd6$AQ>b%)N{+%9DVeRo-e;2?cFk5WX9G3T6y)S~*o1kU+MqGOG( zm~c~v4?N}g?DZA=A4>d*TvJUR1Tefk+(x+*B=UZ3d#^qErJMZi1Z`7-KX4LvU?^Lb zD-yuadjWdfy$wM*nAL8is4A1VKOHeNz8qzS#&5tCpZICUZ4jdP2;nd)rNLSoOb_GIn=mY#$`g9xufOBte6#OhTicAcsXX6OV%)_Ut9~Y2E+l+n{V~K(qs-uqrM>uS`sj*OjfsNF-83`b%H`T zB%^5|)~bi!>SV0=b9y>*c@v&x2Vk3<&?cj{J43J6_FE|H7L=XBhRvXbB16cY%gDR& zg=M9~TZrT*I?Y=vExtR7kphf8)9Utk|LVMiI&8g9AR#au1$aE9>V5iz6pTg;Vu`_FDBy_k0&77A$bbLSj9!<@Ycsh7}za zJN!u8`L>RO-7h1?Y)c_AriiGq#6cUSX{<=pKWH4~mLN0D^Ua$ep<$~K#hV>F#TU#zK06FMqD?x{q=gsY8=%|d zA|m3`*2NDeILqr9SNKYDiO6wUY_~&$>xJ*h$hdW&J<|DV zhWeerC-(r4{uCQTEytAzm5}|jC@a;B_bn+3p2@JP?@O{}It_0vHu@OQ*L%zGK2{1MVRhc^ zu$$R>zP3lxYfZ zGH&J8e3nLt#01cZ?b9lR6hiH^_wWWBDQz)yQ;H@AArYKOfpfmkP^D6`)Btu<-)e>zuEPF7Ad|Gak|N$SY(Z2 z2g=w>`@W_dl`Y)(xgG28*9lz|-L1|5jcE9LBmVL>bAAIil*cbElYGjddtc@{1MCz9 z>xrgOdE-%PNNwpiVm|~~(?RV?yo5W;T{y}nH@1fp4dgS+TToql@-;?#U>7HSiYDQS zX`8TMMVfH>!YhxwKdO>&G7)qv9=nW~Ox6~D&5tmx&WG=caXfrQ^sOiDAeXZB}nEUjMDPqd<&fOI`~6TucdJIyE7RpkgrI2dQJ zB?n?&SgWZwrlNC{f1q|c3ZOc9a>rxcx~Y13aG3t22vIcs*G)O~W5l|$yZ`E=Bt}{z z1EgjvKC63lv@^C^fasFp+0S@!hY7=|%X`3zMSh3vUS&Sf~v4O7u*&YJNCv33@RDe6%XYDJ%i7;c*#rB3W|eTyp>c z7zGy;V@xtkmRcZd zcL2MX$WmQ1XC+vW^YjS6=kq1jT5`aUbI?@J$-WbbWF5ed-sD@AL$wC!`Q{?>^HG#MRbYTWicEHK$(yVKrvMefc=QjTctJp=gB%qeW(kuNcYc|<=fhFS8T zBGUA~-mW3!$FB7K((CSWua70lh zK(H|3pTY71BoXOjf@8&mhdOphHvf>5k;pR>1I54Lf7WvNv3kOEsq84~!L}QQPDc=) z$?r@%9!o9nVQ)6QpBFgYZw&Yy!V%pVvXhgUi9XPIsiovQt_&&0>AVfP+D}#ie7|f3 zi@lunQcLTYcSsk+yg%y8_*jS)FpRysAxxm#$%Ob$ zHdcUdm*rhB6T%GSX}jj?`Em*PjY2B7hCmW~pKbiF@x_nN);~7irBm4=N^<4Jwq)(H zwD+RmfyFNo>QP!_12ZPSi05*|4)h;w>!+(K;Jq>_ijLHspi~}qW0W<)7VDT zmA(W#l)TRf-|K~f1_yU{@!l&=R_>)Xdh`65Y$1`{69|iQ#^m~bqvoZRE{SjBWhThV z+T&>8P2k26@y^nH?;V-K;MNC^L02YWkTo;U)xW9D^hL0IP-b+slBWkjsA=R0?%LV? zf@knMaQOy=OAH%ACGlv=PbvLqim}_7PV_v65UR5<7L#`z{bnQLrYAU9RGCpGr6R}1 zH;Oc#K{f-UnH*jXnWHYq;HC3}L7WrVbuVNj;`o7LNP?bhagQC>WIHI8W@Wm8H)v_+ z(@sMTxG#Qrq4&zxErD zJQ8_cwA|fCn|v5BbzW;J=6oz(^q*e<`*{dqP{uh3r(x6>=CVY3PDn9zxhrIR0m~GJ zOPX=Qy!vp^X>Q5sC~_RmkN@eA-lo+7yaIA&00&EbFd&J3R%9nT4jQxm&wR-fFNJn&kcC z2mJDA-p;==SfVX72m2!u%k(xr_kr-wl^1it!DhRMwyg~Y;PeYRzLEb6%s*81!MB5} z?rnkz{PT1lWd7&3-a4mZtp-;Ge~`H{{@D*hvKQ2P{xzE;vGl!+_X>vNj@EkThp+fE z|I1Ikp={y*0|^dm?WP(~+t82L94RlFTfKoV(;wqAllC(uvF+;~<0I%ajD;~7%doDK zi)aj=OZ{*@SEGg^Brbj?gZ_Z`g(Mm$wt+PE)_1m#q$eW2J1KW%UJ(Way*v z#h=5GaIj$GV+w)Y^$zE6t<=hmQzftfLDt^5OT#Gh-QIhy2Vrt?Pv z)=iPT&va=5K8^5DQvEqpr8v!IHy~bK^4w<=yOxbuqPmvwdzxbEX@kz%21_Hh{?P>d zp%);HV(o&$?bh>{_fM^!a}THK&QInKrY7-GWs9m5UUsVO_OYwWy^L;uaM7+ujAFJN zv2xp>vSTm#_yDsd#i&@ggv$$eR8NxH;Z^s6M;WJ zDfP@RP}$WKJgBvJy}C^FdLq+d;?n`7?(+=cB6SCNFOw;`KCA|w2OPs=t zzYazIPlNuTI>vgsD&!s)_gm2~LOoJ0kZb|+`(}*=gMpKO*aP&A!=0ec5a^Hb0Y4pGK^A3n97)E^$WCVVT+@GbL(uT! zA!B<1+`@e6*ecW!En1}(JHM07GpJ$0VG(#F*O}55?bL-1u@t0z1k-B2BX35V4sIdt zv|DO+*pNNc8@jb`JXDr4R)I0-qy;zuVKCDVyb?dxNeQU#V%9--gS#;$|8Toxkf$#U zu*YS<&SZAOW*URj!o?p-WG7!Fz59g2fb1of);N7SvIS!nSR$!k5s0>WXV%S=JQz3W zJ{;yKGT>w?h81H^ty=q+o6WfF$vQHzr6;9J%Hb8S|0>j}+~Pt|L(V9wAz&=s;X!<% z1M$!Sc_O@zwiy!ay8eKXon>3u9um)gHc-d*2G1!@ZWNSEFF)Z87=j^P6jV}L2o#~k zuxVu7BED16d>ofbTN9mv#yS!UNXE%3LySx2yft@arU7;PZ{!PU`#SRiObA z*Q5C|s>t@!f4E{G84`}xM_|S9* z{--dWsJ^Ng3pa4Tbzbo^ym*+FzS{3;OJD$t?TkX1bKA%xdG7Q_yZ>E+LgA~F0%UT}$qJdN&)ui*(p#+p z4Db=~DJuD>@YnE4h5Gu2pCiUznpzbUijih#zPt1eSAK2_<@ujE;Sm7u(8|7hjv2(X-?dH_ zrF^7vYr^M!PepHQU(_)h21)@)R0kbb*0Z|v-C(%@&z3n5$$Iso036)Np%oT|-z36j?utd*kw-~@Gwm_23G6C z!KWY)X-OdB6Y#g#_j<71;KJtcL&sdgl>D4l$!Saoj8h@eL9^7Vl(G^wJw$5F9(55h zzL>;(sE3;B7kEYJ>2pHE8MIU#)R(BN#qaIWZ21Y3f6fmgO$rYhgW}REa6dAN$9Z}> z)&;(6;BxJ>ntSbe3Ua*`3?zSu0P&~Ec5@?ZrA-&lS+3 z(ZTLFEuB7p%hT%oE2}$2N!b6fb*)(JWtcilW>AjeO7U6!HKmus>s@G5m?|@3^h$e| zhp^MF2T)a&{_-0J-I%(_3++V7as*Eyls zB;E8!%u$YdM(3RI<4?CMiVTcwdf8$cCL?IYul(uXg&0Zi?AeJADRgB5D2zCE33kaC zri`m8AFQgX`x=ivn6{k{wE`@0#jm38k{XH?&5l4-WiDPwF^!$QTbJb~$ozZWi3ZoV zc#>V~nS$BMW*2yk?Bwr(u}I#WR5DH6(W(RIa%0cq&1G(Im&x-l`z2k{CIm&{cLUM9 zMj=s&r<+terj!;>AQvK_wq_pFnOX+zz!$$GGa|b#od;EAA;i8w;A*T!PGXqE*N;KOuOL;c#1@mA05IA4W|@e-9OPD!xZMV-Uf-CUmim1QE7kxN!+ z@L~uCOlqr3^tY-;V$Y3lNdAvP>wje+9(3+8jS4V8#M&Sd!|{{V#Gr8BoRd7464+|X z*lC>0x>4JQ;CB;RZ;dWo0sUcS7|CwaElm$RPX>j@jCrfmp*>I!)h(Q3LfFc(SaM4; zuS%C32Fb#(!+$?;_j}+Q?{(4=WHYg3Uo@RQOaP=G-5dt0xXsOQVc}sKm?HT+i%hnj za7amz|AOOm5`z-<`b6A`xzX5U)1$(g`1X8TzaeO^$axFsWI@z@;4Po88wZT!bTh!= zt7^>_J&=VL*I?7g-+e}M@_{Kw&l^`>Zii!)nAeu+(DI!BM-CA3-{0SECb%wDyND~q zs${n7YQO&GiWlY3q#!XQUWmgiBiu7NZKBd=Nh1U`V)(1#n9fzL>hd1-j^uHYfqE}~ zsa-)!hgi8mS0^V9ao1xrZS~oSq@l+5$7bU01$L#awYN>9YbjTp)O!`VTo9DS-IFF3 z2-BS*SL94t6AR z)L)!~(Oj$4ND*=o>`!&q2bEE#WnotxQ-)jcCj`jPYkjZvVp?0V`U<&Y>6NS#SbOcp zfyx5x{4WoUkhprXqM_iy_`E;ESfm9fNh#+a=~U=%&r7mvl1RNzSY|MT%&sHw8G@!5 znpMn9W$^JaC?d;{!!Xg)NE1;jdE{wbOcXV~`Cxb$ClJ*UuZ4`%7+}{X{(Mir_;HtA z7s3!I(JGPgSKeE^%C>V1ajfFIJ6$oFr)!MT3rhgIzMZloDnp&H^Gb z83+HSiT7`>mdF+6)NO(dW_=)!aRZE#XHPLo^<2DD6CXbL)>QK_G2fS$d_U>hav)Vo z!0NHMqxtkp?-PB#>y4BkDS$hYfxOEl2-92 z_Pj^R;mM>UpDF+TQwUBr+RbU_{p}Bw^B)$zwl1I`uww{>4DQodxi2UMRAuh((c40|GHe&XmT>T-+J zU<1GiJX7j*&T^Sby$qX$kxnW8CS?&3;S%VZXR>&(c@M~Aav4ypIqMuTg8jJ|DSJt!oQhf375X_~)K1u*)_Y? z$sXlce4_#uMA`iIvF%v<>SYrr20|-%))%JXRO!Z zuJCwAaZJdJDqGk(`}c>?c4gxLiOVmh-MU62upH9r%7Kl+mrug z(BbdKy&k@V?cl7%m!mWu~Nx#tz@0a{Uq|dZN_IFhxel9b>!* z4ED8T83QkOb8DmQBL7~@KsZ__5d=R}Lxn)PkGLo&WzFYyj?&fVc3lnKHF;egQSc2l zd(4b?XA`=M+8r6X5c?0UKfB-xZjCL3t!_D5wM-a)hjxZg9#eu;acI}~wgA&td%BCB zUet+=pHV;V;ZDki8WtxCX`!tf_@{Xb_)r|j)O2vz zPStskZ4B_YmJSMZc_d-sat?(7>^}8dy!pj3#ZNvYpF0yECn-{piUyS?n!Z_8P^=uT zDhdbnqV~7?A<#sa!u~2z7_P&z3ajl-Z|{J$Wl;$2pydPn#`elA`*hDgGm=oCo-~s= zn^2VezWgD_8E(v(hxfIz?)>@_VQ}VB`UC;frXH0&5&OwGzDqI7#F9w>Xsks6Fk)WI zv>Zq3v9TF))%gT@wL#?}*o-*m_JyIK;>G6h!zBW2h??{kRz`WlI`0oVl}c*v*)mle zeBSS-ai5zS)?AVxr!P{`QG6DT^?m3RdRo&k3Zw1xtj~Yh5POvZpjb5OejDE}c_xmdBg4i17SWKj!esyvwO64v(!SAb~I>+|R zwry+2X2n*;cw)0++qRR6ZQHh!O2xKq+qSJYYwdHcecnGX=Z87R7=5(f+TH7uF6nFv zw{(0GMHoQu3&up}!UR(<1ob!LIk+o9uX|=?Ui*?J?tQ-A@9uB3r3`0-jm)_A({w){ z!l+M~xk(7#aF4I8T#HK!#~sISMr}8yOcmSzDsl;wJo;^Yb-kAJ9r0f%GN@2CE4u1! z@r8=`MSgW%zLif)VD?MpVH?6AosWqg9!+lto^&wyjua7q8*Y04aZd8Of7|-v4e=(B zM!W>{w@G<|6Fr{reVpX~BBkr!|x!bI-~0)eDwI=t?J@ZY!#ttyUMBX>gzjfs+~6JmoWoPjuf% zk7RyQT29T^X=3j)z)L!fCXmXt4QYH)2$FU++H~A<#LcXh+u2%e`@k)ptE`KiH|A z0IlNC6&d7pO-;WN`1{&wK$(NaF%L0<1ngiorXT6i9rKJ5^ru0ZG?~ZN z*&@Zbm|LVuNRT`%2{EQ@)*}h@hfRCovQPorLt4b-3N~IvP01<5Uq!1?T;1rj;EyVt z!BdZ0UO8IHnqt%ytvTXj?e;55jaZEqw4T7Z06}<8YT@xYhr(uepx0Zs8)J@TCFWN5 zun^;3^G5#_IZ)qgb8%G0B7!+?BXbZW(3b`mFwe4zO;DvH`N8(NuNNHAcr`&+Pxz`Te8<=4} z)3Vo4MSVl+7Kv7jupRuIIVEb{1VmQ)o96C2G@(B)ZJjl#>__p`Gn+8)b< z5iF(_)(xbNG`%(+txINkhGfV9vhw%0U2gDn`Mrklp58uqYqhmyepDw6q{G$hauhpNBMO-8DTemM}FVPFp9`i~+Biaf`fSg<8 z-UVRJ#?m0nC429>fZYX%BI^0az85_pJIfNJb0l88Ao+yiO%>O%Iz%~N`px5fEUT=$ z#ccklkINgTekmO)MC#TTN|1vfFA z>oN;kpWyA_!oj277Vx;L!s&#GqN0dPCzF#9*Xd6-g(0glH>8?fsH^RhdD)kvE85q$ zplxfN_ycqHz;$Bar!Z>ObRP90bywm;3be!B4?5C9>md&HBiTW=b*Yf!wRCKSX8qQ< z2-6m(&uMX%2duqOu#D&9uk1FW$UUf$3j)TTy?1=ZwBEv{eRjwmg6yaolfv0!`Y*+j z=vW&d6sHWL_Ggd;1sFC;p1nb{)Ji7Xp+xm@jx3HKUw_U7R+vN8Xe!)CPof5L1SC^N zuwEEdmW;w{VS#v4K`9ycNG|A}Ibe;v8VzDzE|DxwC%6Rf5Z|IfWL;xDcaskO=o$fk~^^7cSXswrC` z+1>Y=1X~cd91e$IAWd$gCD45C^oAMM%6?(bp()V{N_^k(?lBTyp@t8Qn8Sm0K)oGq zN{_H<=Ogu*&GZX@^Lp@~l*7gUc0@a!VV;Am)~OY{DK(`if0b?Eq)KkIe_lD{2Qnk`16HBs;J)}XXGc!4)Ejw<~Duzjo`T)mpc)> zOiwKK{Jv6}+yNl*kl6F;i9P-6y59%;qu>VUlF059jpmp-i(LSE-Nb>$1TKQOI!XyChb zy=)M{`6jx9prCzh7}b|jmjn}$zq$2}t36V*W4Tt}UF4~s z!)M419hfn}S7d|z_u64^)F4!^uv~xcn^vu&oa%fQm$eOdT;AC5G)2Uwk;{{{08JC= z=E4?`24d$$31}7zQas0*qu$fe)BH)n3wD>QBLow2eQeTeBz(rvf4WBM4J4*HQG5e^ z*2IPO#4b7Zm=mwGOCr3eyv4D{aR|QN95x|FQ>_o zb2WJk#2>6D2les%Ed91I=3%MCUa>MZ=)JM&+tb~<-L8}b$KvlinSbSbYWDkwqANYD z;COpLC+Z@7n#=8(vDsKGh6DJ5sM0rayv5(AB`?J3XBITauODfO59? zuKuJ6?`X7c*q_G$$bBj}C?>_g7Yu)pV}<}E0l%J1ClDbF)K+#55hhx{ zmV2Jd7GoYzJ}|Y=v?#~JHyZa_z}Z~ftg*VRHb*$oOw$tj3|Icfn{=VFw>dn+ajk8M zQV)DqP2cv{pvYJ1j}rDtmk<`GrpL*%^Z1#-?zOVJCNW8J*K4@fFV~|$YQ~UYrHn_1bBnyw7a7VUI9WKC|IHaqxOm5jN{7XEI>6~VMz^Y7zt6oD(+Gv%2z<7} zrTU54s(FTynC?H9YTQ z3sD_Y-oAJM2mAu)R_~`kIo{S%Fi^-?Xc#QV%VF# z)oDFgN*U?}&y{2&LDscf6A5X@t z{RtrZ(VSP6o7xxH<@TQc-nuI%uzW>-K@I&*5eEUw%B+{?n-u{%mBoXBjS8d1U8p56 z6^1etK)3r1Jh(uZ&}$JF0uI}IV)nn4z5{U{MA7H)Px7v(6W{^E-nIDrR2vM(b@wDi zuy@q@XxUp^u(#ZtF#N~9{vW~M`CBlAV%7<`XV}>{oO<^UqsK_lChx@k8lmaW!leOX zZ?;YByN%ZO4quU%I(?j!pkN_a6)dHBOg&_X$qVnD1Wl-)QLp5}MP3g!-!=+T35 zVWa_-;o}C0;56$6nG%HWOz&7t7o)$I4^|L9Yw1ZnoUA@CZ}bgK7su({}L z%>nA^b<2x3_A-4j(snP|huN?gd2Yu)1Ii^n^JskDOdfg4$x#kj1 zzx1t`AXoCWt#Z|CW@AR!193Fp2PqE&FQ(Do*Ysg#{qs6kHN>8l2=pb+$cpPrl~WaE zXi7xL=#yIdTCjSYMJRwAr6$S_;-rtoLbM8}<%ps#$X~tm3@JMtgMik({$?8fYEL#J z%{|(bF;L%=rDv?{o_H+3Ba^o?pg|d9wboz}lJJP?>~$@o@A(Z5%($6Z6V~N~fBc)x zCW3cJn(!S-s;lP83PiBZV{za+A3IwVVYa0Z6C@8nwSLTKGXIqUj|mLpZ`bcxk`tF# zY)B)!uftM?$tO3eD8zj}3voryHkT0;M&9Tsgl$VQ)i0W`IMWWLGPbLRbdVFJEmm(r#de6lvK?Dw_7LQ-V>{fj?0CSeiKZG_PqBT!ZX`zEYCl zAkR9M1jDB?fU72rBHVt{2q#{9>Tc0CMY7sV{V5ADqSi-?4`ze;-!MPi#k#) zl+((Bgsh@s510hG3|py~XP8ZR9tBaqJkmZ637&o7#p|y5Up0BH{5TMTV*{_Jxxvf2 zVc9eAJ%7->y_lua#oQ=JeHav%2`TH@e|xWyl1roV@5V``g*v8m@pA%|fr+?}bZ>Xh z**h14B>|c$lGYNtN%dH&C(@I%5*TPH1Y46;9H2P_Z*paCQBG0>vk(TErK@2t91svN zNGzj|1SXx2&ZR5-=Kp)Gt;+eQ+mvLUO^zl5yj%6!%mr^gz=$8unP%ue@W=>;WU@`Q zf@WfBF!y1VxtmGFei3bs@|3#y+r=La1;puhgFxn>Q>Hog(tk=dmne`(CHi4CtQw?p z^hgBl$czu7ze&gk2GQ~pL0PbD=&}a@M27{nq296%XBdEwf%!uv+UrK2sCyj~%kTl> z*CkxYu3ve?fq*lENv#HSyo!k6!$$nLdW@9d`xzv zt$hfOTX!=_OP6o51lOm5NIZT_X>J*tLlSRu;Vy%xwqt#g$EmL z9&Gj_cN@8MqPg`aHsnI_5TtZd98Z;r08dKmd9j&Ja8pf}O>|Hs;NFl;zdEPWNfcR#@~m_4c_(_%3;R&y=3dt!rJ(c-h>?@@cZqRf z!u-rXfAx_J2L63eJQZ>METhf4?!9dqN}-ayqq+%2a)aDnl|`;h@6VcO?d4~Z@&N!H zz*1;e<`0!OhS6bm0F+n4UFgaVjggC(glm^JXR6L^8dJSlNQYI_XeS z?H6O4cx>xZseKC=6~aK6Bzo_DbD)1?>DqWWif&b098n;k zu3LFp3J;}ZANc^nd4z4yrfY;~o+ZYUG7))53KW^N%MA9A%m!=Ab+QUPs>yT8i5$P^ zJPsH<6g$EDCb6!;a|LVl-`w_pLVnj1in+*U?E-kiz7#q4j9bfkKehucQt`Oc6`|l^ z!SSpig0YgJ1zZk$?JxJe@t)EAp@w91+)3D+2FQtGKv027VCzk*e<6RvbbqzeVCD(=R%&pChePl@d+p zBY|c8v?e>ZVGQC!wipM)8d6NHSjOUvpQ1XxyLL|HK4;7pn%?o-BIzqI3(F4G9wjMA zt&O!K`>O|WE7vpDkZ#HRB$0EGqSERQ_kbAL;4z89I~jByVR1X0T2SG}8^L<>G8Ljzq+b+GS_t7*YQRKW#)W z=2h$aria#PKeJPi6ONJzQjeU7UNf2oPTFnU=8G zz^<}!ig}V@daXnPQ$+J?U@;h_eKuMsYj%5r-wj+-$LrrI!KqkA*xC9}?9JgM=q&YVXW z$4?iiJnY)WXB=8Q^xA(qH~g_K8TRfiILC73qTzEqO5L)j($Jls!v+}-N(wo7?VVs| z8jM2sCHmlAoE-jK-;EieA+9W14!s`X#WWX*8_- zLI57AK|P{+NUyJU58-d7q&NM~uJ6Fk0^c;1_=6{ksIa-_oGj(;IPZ|AHMF(*1Pr-&vk0r%Z2U*f6eTZZhcy0wE87t!KR_Li48~Avn2>^d{NP&-8^v<(>3OeK7?b6m#g68>0 zShPE~IYTkQjY;{kN|2_h@9)TpC7p2(gx5c67`zX4bQxti%@nf1`vnj6wxX*PnFDV3 zI&Ocui^qHEkl!*8A`^+v?I$hqMS>w2YQdmk{Qf?JFbPA~T;Db=fvsWHg; zn;@qVT;at;+D@wxf%@E|O*tVg0!51a4Jm*N@Ag;s^FcvTJeeO!SQg6JhYN0D=H*D* z8Hr@nrl(?D?yU>UO;u($wY#ctZLaA>s=~);-Zhm=3{aOHFk&th#=rao%(yE+Dh|?5 zv_j>6h_xkF2nv~&Pc2U@7l^rSNR>!x2Vu7&$x8O0;R-q|CXw8G|%rNkY z?rLZQ84osc^+0Rt4>qYppOlz(n`^)VQNZ*G1EzH(^#MpzX!|n6?fFJ%xN|PREMu$_ z79;lUQ1wMhcJ{?AnUU9rbbXLd6k3ziO|m&_Ek}`_6(p}kD_sivHfBGgh*djHD#j?F znw|q)-pGGf*0Olf1#GZ;*w~9KBrK4h+L!wJ{KwCe&&bOvuczdv-Z1`_}1}KTe|SRa{-uRM6;nIwmF3qnH7nK7;y@Bo7HCj~MOyYq8$ zKE$4=J{b~$u<;Ii8B_n6;f;34{DOpRAWFgv`mZEZj;Y(m0;Kz*OfhG!JJ_KK{b5f= z+Sa`nbRz%K_KhU`jIAJJY(%mG^v!C&gS=X&T zNx8QcDa>67A_RBCFG@3`6&PfpEhIcZ;43Yez?UMZ<=Mc=Tj+_BRW{ioaFUvKN+QG^#>AeFU(;q?XT) z4HypPke5j~PM7Ksy~xwJrpBqosgk45B67@#J>bLG8xoJ{37UuFc`Oh`wBsWKw-s>i z7Px8BZBYV-s(#!YJjiv19CSTtbla+s zd~%*(94E@s>t6Zm#;H0vmGNGt-}Ncn*`TW}bp8 zZFzo5g$PFz>ms_5FsJwbAKyq4B?L$pjPI5^G^P9dY<&5rna?tP5!Xc0>%#F83Z1DCrgV$o%n5KwiC};H2)dOL8 zB!4I)WZ$3v1M&G@UxKK5ki@-_H1lQvNUrCBY0`)agZ88(yiW!N6+zAQXS;FhwpWL> zIyYAq7$q?0AUeAub62!ol^xf%?T0VwuS3UL&xZW=h?;=npyYZVg!pK91ka(mv;wMe zMvP+pjL+btdTx=usWzVt&K=a9msg9{hwl)7`~6SasK14XF`j(zF)|_AcQZFwr{Nqz zCyKvNw1l^OCmkjQWL;p_RMAXQ@!GEYCb?K_t5dYu$+y2pbXc+VGFK5Ln=D4JdLI`u zOzQxK-+xNVrZAoTyy;kT>gD`=HU9e1%B3B>frqbHx4Qt0@w}w_uSn*Fn_y*yexX3U~1K-ZFJmj-leeUDMQDN z38L%x?6@*$A&A^;u6n?C`lRBRHZdax%?=89OsVx>y}r?)Xs3{`0@@R{)5R1)wuTlI zg!!fjw~ZIEC=HFDTi^{Yq9TEk?@=9@(my&$73>gz8t^|t4waJT1sZYLww-d+KBa{? z{{|=DJ+uSlq>j9>5E8SSquNdlv_)y^?Bx%padln}+Kp9Q7GDOKENis{buwT%rG=C8iK6@JM7I zzBsuE6pWyHz0co`|8z}V>O@26^Sq|m_*nUN(quHvE#4h4r>b5kuQRgHS0K5D*dZ~( znJ|9*4UXgs}}p30Vi1n7zhiXxPJLd)P>X_!M>`Wy+pRM6r-P8~)G z!eoOlZ3d0tm`(%z6Yti;03W4jq~31exy4NJ!Sc|0r(WLZyO?atW+k5{-(4Wa=;Gn` z7HwzD($P|bR%xk~pu5^Uqdp`wgEyfy_soAbXF5IA2iM`Mc5Tn{&{OKGOK^f;YD!qp z44my@#I6JriXd)a&ExR!IYG3e`}?UgJxMHrCamE7i=I$ou;*l|plyFc_#$za1Bc?0 zM_cTPfKP01E}_h+bk>)V6Rve)5#kqgq+Af*%XlHI!s2uS@^Ow_RzyAE`kWdh3MNP^ zIa0Jjg4pX?CIA`gw~l|7PK;1(hc-MG<20OP=lv6-gX9?x32|eZc8ux)OgKkW_UpX9 zD)OGnwi1UBD_S7c7=mEkzJ@Hoj8Zt=8NK1Yp)|>M!qnx*p5xG&_nE|dJm42n1FL&6 zwSx$^ZkYv;$r_x1a`(x$COxf7fD`GL>&Y*W9G=1a&HK2@SITPl9!y++)JqPT;P{-V z3B^aoQ|i`I?b&@+^-Fa@5?JO|AeEPP3+KVDaxLv@58Xfc5AIhlI3y+^a@=d8tx!vH~HZI4cED z){H^?BB7JHkaRW+4v%HtL6H%D4EUZmem~vrVTg(yNV*`E)sm=o8{S5;x7!R%ngI)C zOvkr4_vJkp7Jz+DwLU3D$sf6^R}KBvUGXcbt^oE&<}&B#;42K1LhWXaLGA1;S8G>g zx2Mq6NiO`(K)Q=|i<`fpjXv-i(YseEhZ>R(?lF%fUlKBLPfH08XGH6T7XPb*UE%&) za45NDpTC;B80=Tg8S&oT*d0y!=?0vgnV+mKIDVOSi8XzV@f96?^E&UXD5HM!o3LYo zxf#T|2%5-xsZlZBJYefVFhx2V7A~YL(qq&xaK^nJA{3R4T@_83`otl8?GKsXucxs` zUIsDM!?pJ|xSzBnfeWR*KY{reRy}}^umuYx*a`Yw0fFOoIx<8a3@yD{1KK@@1GIwo z)Sv@?63}Vcm)Dl+aCHVDpJG~Oa^_B2#@K?Nw>f*LQ#qElMf`$5qi57v1#HC3uwPS+ z_k}i+FY|CeU4zVTR)%ZJg^OJTCnaE_bLUrzc?7%-dJ52+!0hTA{~;v7yi3vp{-UFe zVy!LG+bll{r(+Q9o>C8_`Ak}LcWEtHvr!owJ&E3@+npL-U2$&2-Waf-Q&r@%cRt&M!J3<#k-1y)lQX zGjLteR%)AQwJDx#>X=eaIVgLTd2@0=soRvEz1+t}y|TakQ-jb=WqF8k4%-(ky(B(f zC~2Ul3#4=Y1MfpWngpbR?f!eV>8M9YM|joCd|ega(hh2}ra1<3OuufhDW1sDiqbgx31@!U;3(r+1w5TsnW*Zt7I;A?W)F9Q zG*chJ*eosUN-jpPQA!|G>?p=4O0K${Pt>8@j>^Ve=(s)oIvsd2?tKc-d}$h6fjx8D z?D|;+Qro5@b?;n#Y?PDpD>jaN$Cffg!T)gczuodpx_|%X={lNJ0}U*c+V`EMWCseQ zy8IO#y{7%CPtuP|pSP{KMbVtXlRSZOp)%{4(MOhV?~3^HApe3)j;bG3Bsy1+hIwdK zTHiHq@Um44D|0;hidT#4n}xgmm&U4=�f1=E?rKk;I)SC)2trg=knh7Qw+qMpp{> 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%0ALUJ~aZGo{y!q-i3W9nq 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ⅇirzb%5UHHk2@ZIQG~Of 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

    @5fcqqmp;)M>i=5MYN7B9(XIgH0+N@~`FQ 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

    r|P&_h{dUsflL<%C_k7y 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%0D3!KEGx_Qp4_* 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ⅆ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 P^661vH`?MS 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 J+#d43zX7#zE*Ag* diff --git a/infra/website/public/images/blog/mlflow_featurelist.png b/infra/website/public/images/blog/mlflow_featurelist.png index 5fb073dee73bf31ff7a839e8d02e2d7786c6ea8b..23920c179ff968078f96206b8ba0969e8f08eeaa 100644 GIT binary patch literal 420088 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

    c-DZKafC9xYyb?W<(7sU*o0U(e!By)o~hRo*0fl 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�MpZuH}3(v;M6HR*C1ROV$PCiv1V{5I>-F5DZK3o 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

    4p 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

    X1qU&zS$>1b>2k+CxA9YAWvWmH zI1rq}X0@!?*Iiug*rf^%=6E=n)XyROq?7OC8-kT4m&T3F!KIRY_Bt19RaVaFm?tAW zzAV?RjSua$&(UKe4&J~is*&;7xJoRi1C{C2cVcu}(_XerkDL`ctvr=|*07b-jT$c%upqf+PFBe9AcA1p|Y4?a}_zI91JIP3sf)Y{UeT@xvan!eW-Gj&Bvh z$NRz+lbv5xADdorJ=5T7b(`Nc61uEC^acmm)mQbw=P^ z3m!*9&`c_i%=P0^1Fo)40A4nXVW{J1zQg{Tt91RlUo2ZVjvN!gR0i_a6>g-C^sM%$ z6L&Y`M%ZZ8uX;PcQ3^9qdhFh`p|_3AlQ@ZJHznQvtopVVj#ALRRG#Q$T%O4W=}e3D zW1{mnuPhRHY=RZ(_0ni6Ip

    S=l;-*jtB-uoV^l!DSEdXfKNVq8{fRwD@}p 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 literal 424492 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%0AcvV{P5}HB(RJ3{+XOE>_QCIF zu5}HvJ^T&C-Ee;ded`6*=&?dt(A--_A8t$Z%k5w0K>14*T_EPpP+vs5aD+Y^TJ>ZC zcaB<;78_c%=xu+nooPnsPIx)27!MV@cFTRap*vn0${;iDot($%dTgU$LEF2bRgg_F zb>u(y_3Nh%ZMk?m7M1KL$Gr!ye03kl=bwyp9c!{FO)xmM6%Y7PanJCzuqIx!@R+{Ar;OJ$NVq948Ok>FKgIzvvag;k!0i%ty%&5M_b0VLy5`kAlkZprZ zwvDJ!)W{GJ`3Yd6s0OURZzAMG>&_RsU}PRwDytUKWrh@PHsD93-zL zMxqpZYbv2Yb0QZh1vV`FQaJ+M`BtjwN;0c?fi*JEnsylU%RB$bLcG1kxBoa^io@>y zOe4k#`v89zLG8`o8PRtLw!71tG#eP-!VQfVxoM}c3yN=)n#oa1_u)ZYcX1oF<0Eft z#WjN9Qx?^URc4T!>velG8Dt2 zUE+_UrHI;?m$zaE9&t;7CSX7-`mqy)TRyNTC%*Pq|08#Xbh9lfkb9>!^35+q=u~F7 zWK97CF@qRFyiQ3ttTojHe;T+b2Q?%kLDT_0#78**tPMx7{$v-b@R-_EEnNpJi@+D_ z@{GzyUgpl2^gkQhJl6RmG*TUMVXXjcuP2Tj#H)4qsVwVCuZ>)Y`l&b=FWnACcIS9J zpvNSL7|+naB{u zy0}ebVz}ohM%`*gI`iE^#eEJ;tP>vX&i|IeNi)adnq8-MrcZl}v22fPl3*w``#zAb zt5M)!8Zq$(ea^spgqsi9^3gmhWyObMjmVitrgr6#viF~#Z$++x3_n;2)p`aQ= zh1b$9J|*U#Nin~DE3|#SDA_XI7GAlN3(4$Qn-~2&6nxA+(c}RXV1_8`xgq^0EYg|O z`oS3<-yiWTEJe#I%Pp$5zP?pyuhGSnZflLXf)G;&!Yk9{hb2y%*$y*o-1=&;UyU z5y0I-X#>bej86u6mc#RG1EU3x&vE?PIXWazs>pOq#ppUHTO_JC)yFvRzZ`w?)dyo< z$O+5?WXRUfNRE{!Rz$Q(U8mA!!Ou?CbtM3pUCE&^7Q;VkmuV-GVD~dne(n`4{KVdzb7yfFp8C_{-jTM{s4$Q{XS3LJd++wn|`4a5&0O(G?oRzI89_u z6xI~H@_ZGkfmEgL_NS)_LCPRh5E)v$rtKw4{fQCRVrgH|MnxJfh5%#yKC;rg!?(D} zV!M{rSr{IA6zfK7^Pn;Z0B-{RgY*(;8+-xdIYBhgImT~+D6AXaaM{;pj3L$a7exFD zo@xodWzQ9YzmYB$P>ud*&aV~F%pJtwYr0%GX@6BdlTS{1HReZu?^Pto&m*BQ?jkAm zP(t|Ow(%ABox*`FLFEm1JCVd!*p-t?@4d zT4au2B<(Ys3k>oriW91ANs61NUIuvU&Q0a} zK|r;Oj z%_4yeLWg{4$QjG=QQ3kRO8yy!0X#l&I$?yD+NIxb&;<-lp=L~}*#(uR8sYAEJ(M9t zvOo#rgtT(}i6_~;z9fvG@fyzahN zRP9%rSWDGP%^D-CX!V*c7@35LMebqp@k-Q=qp8Jhyi|3Nx30r- z^t>vs>meLvOB1ulI^$?6WUGBeW>7)$@UqN{TCx+sd+=eD{jXU7eI8?33_G$bA$Yd= zucpk0IIB~fw5mND`jE*QMGPggdCRSoF(uc+crGQO zqhYA6NI~GmW9A(*ROYWICGo`{N75|lRp$C94?#N$!CZMQqNg?A`C0K62-()8x*G0C zk@$4Ft-+XRx02C_!lqR^Oa-K_-MboSno~S!eIbFJl|1(Xt8lpQ*UIjE$%D!5B(mhoP+_Pb_QyvGs2l_9s`V;j zONmz10v%>JSR`hHreC@q#mCK_@=_-|o?2D*U_!(|mN46Yn`-K`#;=b=Bvzzdp*Nei z{d3R5$mZn)L#eksxls6uwZ}y|!ax$6kKK29a5+CKgjFz^`)ffMjeFZwc3&onL~@%g zPWDAFSmm+QrW6L4$XPKSny@bP|`L2gX$3~Vc`+hGs2U@3c4yu)aT}A z#B(rMIVMxD@G(Nr`Ju9I#eC95PVBF0%O}80keB!oMp7?qwM98Z{(7@A2=ewd(=#QxN4OJ}iZu!$=~f3QSz zH~@7Zm|W5fI?g>x4J-qXkP8P z^`uSG5P|?bfD)gw@7zS$AMAi-R<8~Ix zkB3Br>;lUe%O6s(jDn#jOt{`L)kQec3(6Z-%xe>QhzBX4}HK-Y0ra*k(vxw$m1T;NCb^D#WR)Pkmjhi)KR z*gMp}GC8hBLEMktFc&kTKg6=zfPQ=u=}}-}!TYUJrs@+l_g_&;zvbC)Cz8|c3bwKq zG5)~w@A4<#Mu6&;RoNB5-;rZnbU6s)&X;m2*@uAjsmQPdinaiggJ~u8X|<8J*Xt>F znJ&($epbP7feKC42Hy7T@FLg(!v2i=z4$W}2HA)a#>&S(pS$InsYKNX@w-Ycg$inL z9Xm)3&~2rVs+!=(8|_}AqHox!Ykw8nS>&3`W;b|vP(GVivF<|Bp?D!kzD;$%pb1nY zOlND8vK_VyrfO^VOi;=fmQ@TX5CTyF@3;yF@A-1d1|S=@9kd3)G7+bJNn`=>;UeQb zrnje?Biq659=eZHjBs#d-=fG4;Ogg-KTHtewpG0dpU6m(*62tV`vX+#hE?4Tm9?c- z%2qA2W>F;;%0KRAQ`up4zB@)RCO&@l($ca@XU5`MqgpqIyj> z+pp@t$;GM>XsIcoDe)$qj~utC_1Q?plyK+vu5c6t28rfh(nFJJ+CO@RZTQ>C0fKp_ zVo#lD^nN4mKHbLAkV!$MxXGx0uS(X^hnSuzS}Q3Uli+ff)zS32ri27a?;PLyPA)f zzL@6Zp`GbRk2?pS4ql2JzV5>vv}l90;}^>b4q1_C`*i2>C7-F{aER)vTH9!PoyYer zhu#5>h~X^sIFKAD>x@Gh!)1%^(iQNt4w=hh4}D0`*9EZGJ9y`fYsTal>>NH7{N$f zl~?hG;Ec?4zCjn)4A2%6@s90VA)6! zxuWs}Wp~IT;+j8TGDkybP^VUJ|K8_DvP$^4%Q7bvTCr?cy;I z3-Of|b5r6GA+wEtIng=Qh{UO7w-cY^^!pFuCC^v(0%y_riH4|8Kwe zSxYKtnnAfs;Y~Rxr+}@OZrO`lvES?$cMRHIbB#s_+NDO>d{*aVHdNr6k2?HAChMWTlofu6pun zkEOKb;MHhDpr!}4j$?|%Cc6uvg|DDBF@0}@+Pdyt(1+#t%NCD=KeU>F_WO%|O_`la z8}=@z0|;8AtuYri;(Vi)zO|6;z2m&(L~RD7nVNbh)U|jW#{=C$hc5-=@6U<3@4utD zUbS$c_~UZ8?<;Ee5F0Jq3*+{e>|}%S^bANdty{9LSs%>T$k8fo{Yh+>yb(-MAqcul zz5xB3_LnzVm8ddl-R12<+@j~+g|I9q@>uR(jrS@#%OKq%A&C+}hy=tpk(h7SCjCN8l@dE(d|=H+lh~K;B5p#HBW)3HSPmlxz;hjli>os}*~@=rmbFN*hHLdc zr3tg9G?ohNX8;hQz_{4N<xZhF*YdRs>M4NIOS5s80gc$}={?c3(Mnffukrz3+XQL^7*2Yh zT_Yx5sb9(k$Aa4ZdlrRauWK>k`_-}~*zpaf#~iY(H{6SoXrsW?nh`reo(uwb;nkGH zq9TVyg~$CREc27sUW>zvcS?4O0xfpR??NS@Pobjd7znLDP_eYEP^RATQj={enqcE+ z*Q>}RtOs7L$^50q4fG4D{#1|F@!vb>`X0AR?ZW+>HBmAHn`<9$i+r;h1bc+XaoFADL^ z4d$@BigL9cq49nI#yLTff;F6NiOsT`^NMTsWlBWUoa%#8Oyb@#36hE+vf6RPJ-?^3gd9^&*C*Q*B#Z~3F#1qZ=&G}HDe(qzQB~3lZ;D{q$IH;70_MHd(vyUi0`&1InD_d~Hr+4+xXQb0OaBGMzT~?_OB- ztoDs(dpN!r{Z&!7pu#ltGjr>ulNXgNd)Q(MOZ7~?OG4N6o}d-YJh5RZH!X*kLtFLe z(2A`?20(M_pL(KzL$7*1kZ^-wCWmw8TvYPx$?;EvJN&!?zT95RSxb4eAep$j_%0Xj1UoD#o0G~ zm=GiwEasG_CcUUfhI(}#2KG7xV!G*uK|X0+4@TK@EMC&I}d2-blwrCmaij4ySwrosrrAZ4kc1i&?2=?+|hEvc@l ze&!`VG+nnWRwl+&xBrM>LtTpsUb%cZ!wIPl!j(xwxBkksNRtHBn%lfe% zYG6@)iGxfK@wik3!-43AK>NT&S(QM;-GIz_O&Hd0lR^osbQ%49K; z-w>ml_xcBH)%#SeOV8Dq}{=uaFOoDi{v`xc<)l2qjMNelVywxPs$`X0%@Dwag9I9CjfSwWf@?f6@ zFt?H78Z1%-1;(T*^x$_Z&*>RT{^}MUT5|siofOJ4Xt~9^^iMrXKDVn7v_&Qwcp`uV8@mFd8WKv%iYVKB@!v6i|c@IB^)-!Bj1)LYug@{ zr;z?bXd#LnO35R)Kp!=E5aWU%Z+$6Di&czH6^+nzxKzsw;8 z__!owi-&y-o&9{5G59r??#d%v$L^ig!a;P4Fr0U<1g##3<~SMhF{2}Jgs`kSAIDI8 z7R%j?4=&BQE98};Oc+WcC#HEDqD^KShdu)Z@jwk3b7kw2)K@(LpfWRFAsWgqS}@te zUM4v|Nja>03YeQIgos-sEh+r)W^Sanza^@?EQ}>MXIey%CuG>mI1ebDHZk)ZzNSka z4EIlcVkR`4;;=lFF!or-6EWTbD;2G57aURlId|Jv(40SFtnJ+eeR5@FjmNjx1 zek-F<_I5!%zTUn?aHreKhVawkgX=(#uIRxJrh)V>`=s)+bgtP`j)ch;Ncvjwv7~0a zWC;W)uGN=bScilRuUC332q9GB>k8{Xh4tKy8m4eRNfO_i@zw`3YK)w6W8RYyN728U~ z^`l+wf^eo1k_#ka z@ekhPRBX22GMqoWzyDgG?-5yK>b9oTKy~zzP?<2c?mWy8OyayV)i9;hDn!Y_zo3Uo zt~^dum`#Q1J9*FON70*XGnbSd!2LDksysEqk3@rdHT-{jzA{-b3Q1J~$LH@#oWf7g z_Y(P+O!$mLUUD@hB76Tb%~?pi<(^DR!F|0M(({2v1> z?5A2diaf@kXawTDm?&HtXBfq=O`L{r3BeHyYP4p=bT5naXnSh6Uw{3{8J?U=!1;&XFRNtM@PoOCdbJ)52*Rf1hlPSeJD zKL-Pk{E>~s{rrnKF_Uw@As?pC%q{M^c8UE!{&blt|EbfmhJR$btI_NgbG#PJtG`gd zP}cX62zQSz>TZ>${{Ud0Y85=AxL0)PURe^`yZrltN`oF9DTaZ|Xcu&E$Jic%fndVY zE3^O3aHoTEm+j(eM2WNDN%-&X)ppZ%QP-s*Keg;k0mwN+{^#{A+KRCtUw#8G9}dI?7N%ePVn~y<8|Zk2 z?b~I~eQx`NEF|YaIqVr<@emJNAWAY%Yo9L)Fqq&RQ=&diO}?FNWNWIl0++Vmu-YFI z{{9_?yrEmyYW1sf_lBwiQHWvIh8wd=y1SVZvd=P~9;`V{_gU19%fCc5!@ec$^pT{E z*Ir%9sRh5zLKijvWU|FcW#HD&$E^`A+Kxl9O8Y}z)r9rDEzw{zR2`&5&J&l&hg%jR z2AF1c^-6M8OKS81v7-AVaAv(W44A=L><;7cvX#5)Jb&jhS{f0@#=%mQynLg2G}dK+ z?_}hlq^l~m6cP7V={w$y#3v|Bkk=Bp{h`z)Mk3cYwS3+M(T>A|sCyU%A8^TgZ!io- zuOmw^lmfgja7z4Nidb2G!)l{r>N3Cv7kxSkgo&CkCqCCAM7>Xf#;b)deP32i3=9@gAUue-}HN-)WK_4B;8`sda2v-dY{DlRU;mR*48rBqqy z={XdPU2Gw=BFolAgFk;x+h!`MIDiw;l2@wpHT`?nJlB5g9mFlFl~%?cOQz$1GR8cY z1ulNF682Lc;Hv2=z6qroTYlX?mmX^y9qm??xhY;FHcDAk1Fp*nf#5RzOtc@)hwHQG zdxH;^;m3Er@Ukvv@0kRk?F#*XzwxqbUUKhVpgT#2n*4^!&q&bJm$%C|bRCGZ<2X}Q zr&Z)HgY6_fTuT!m4TQr6DDGjwB~=PS)9@RDXNP9QTdJVws+-1g{4~UMnE!Csgqi=n zEA{!nZr!gX{?>c1$*O4TpMYHU5$qdrDKXJ43KnX4G9E{86#u<9l$5_V$1D2-=l2L_ z4$&z>{5m(jzmfu-ubV%;H8pr5y9_cVG(yV9a4LPw(4Pad{HMXR_4JitAOkj!YWw;v-8#Uv#a1y-X76R=1 z_wAYtHZzFUJ*MG%Mfr(I6(bTFhIQv*xQuQC(qbh9Oye}5SN*w&jIWH-b%#467Nu5c z9iQvcJdIm(KBf(O0T$hRo|;|qT=V=g!(UfP;Hou`k{H)`*G~7Im$W5@6nWUM6ZW1D znB(V>fm~qXYUS?wKEVp#Zb6L1)^-7Z22F3O^E~zIls`^$HjwsXO1Yq6m%D6JYVy-T z(f1avxpkBfEo-UPmye9!Y(Sc*`HkWu`J{lh`GR!H28~UDG@YUvmEewJ7K>-}_&X#L zbEoOAzVQauZfEo|4Y({f8H}$zS!p!z@i?C!A(0Ro(zmu!>#M_!Nem^sN}872e7wzn zk{Z+N^H-a|(KX&LZbjneQR&|nQ6YRpl}3T36sK8u5|^C)Z4;C->~yc0ia3iy@1oaR z=M`6fbeXmXKszNa(mT?TI5$x>Zv5db(X{z%f{sdo8LJ5}-Mg!Hp7jf`UPg+kJ>+im z*q%qm5FNP6$1N=#>t@^umP%ExLl^z7-WnK#2c_s(!d3-uz|!|S09re`w#9St%VuWt zLm3tMT)t_+2Uf@HtWQrm2lZN7xiLGW8mxM=tP)f@W>HUeAR}|UI$S}sYGc8`R{ytW zXEx#SfL*!2c?H1}dj78Fe69vV(ULH|BR$D%y?mgI^6dBJC%9)aa0JVFuM^z-ZuJQC z?LunsM+>18n3!i0-;TiKVpa{d`t!YYFE|^}c_zWdWp>`o1Za)_`4pH?I{q$h$r{_z z%lMRHLpWClKnZ!+c?tPeiiOI*dR858g&o?f>}xqA-g{Hk`xyLh3kLovAuqpkkGa_G z!kZ#sNL0i9^Ol^$?Pd?4ckdG2bX%~{St|5-cfEmqu3PnW(|0sNH#=X?GXZnxHdWBp zxn5kmEVJj8>t6zY%7_8Yga2A#fj32p-FxHl1!(jOO=o~HHvq<5`@{3=@bAv+2APZ8 zY+90N${`JgtiaOJQZEK7Z9rpL4SPws0xa`~yCwsck&}}%%|B&pZEfv4_~iL4y5wAp z{QZQDadi7tuq5p5?>|%Ni8XK@GoLAaPXch>4Tm^7%H@ZW&(9eQRadO`_=cX9< z`F5%_#nJVG-aEf5UXT6clGE_CV{wDY2u9u?c?9Zps?O;>WgC1bbitDqxT%1& z?%u0x$f%Hl+)OvGcW23a}n?eHv z*4&D|7qYt1J93RVSos@G;SvXkSNCcu@V_pqv2aI3G1>9l8-L?tk_TJ!ezXugZi zL@QM3Y4hD;liB|*NbkR4$^1YsTGej9M@{=(IEmTu`22B8)!v|{>1N!hSH{m@MzUDq z4eimeGgJ_g`rppc|M!3O4Wc1V@a0 zvZ!l}6aVk6@$Vh}=eGI$MF1ySAnK3&o9ikFLp0m!j$aqeX9=if!NRzL2a!J6xrWCz zpJ~-UNqA28|xdf#VF2ad?ljP9*f#2v~QT|t^ zwYdCmeTycbOH74l#zIMQ;>Tp;*TOnv(Ht7VT8balT%({)Tw5PpZ1e9s{_BMnFGLGN z;|xLoP6?RW0R(KsrILMvR8vi2`2OFT>c7^UQ2H;fxEecKL)+1sk@In;zwG~|+y3hv z;2-C|{$)p0kyS7ErTrNEZp{9FzdB^z9mx3HL z@qwT8sGVE&6&h)CwMsYplsE{%94v$yP%W3!8d2Rrtp6Vi0bUnyM=aZy!a#Q6n?p=gkw5*mm(h z1U=Ns&Y?HN|G7Mm$d2o4r=#QJVVL;+Hh0a;Zydyqtb=AkA@kg}WR5nLGryY(edc9q zOU51U8>|TRnEw00nah0x@uq~U@o_73x4o|~xH}uHC4&l1_})Lw4^9vJBce#&a4e!g zm!~#YIa_q96XW)*{7`w3bq{)^W90Fr57Yl_%>VtkCXk>wu#4v@$9Vv+YF8AaqJmPz zHJ9&}&K7+A#oQS+Ru=!rgA(eu>dJ}0EY#FhclDvZ*S!2w`V`AJi@6F;q)jPGXZ=Kr z+cplU`1#R3+g80CJkCoi?=kgIZuW}!;(%#R|2()jKAEZE$&WqEyYWOm+WQjOS)B2; z?|$!pzUEPrgf*rXEFB!!WRa1OM%%6jo;m60o>6eu7G16G1cJe%zQ}9~Ua@vu!4AS8JkIQFjTO{jBle{6lRo zRn;KAR4=^TrGas*IIco{tbuA`8fqpV9u}#kSP3GbhC>grVwx8fJfD^ zlKd#}&o-k8`0(^!SqE1r&weN*SiZhP$*rmybb4J0x*lsj&qu%>0|d;1uYIb?`FN^a zzj>x6ubaxp6jmCIGukV0HO-6xMvTX7av` zpe12m&A(yg$fpUg#R4cbw&zr_{nN=&1CRMlqH#nqtr@y^;6`hOq?RnGnQF34$ooJk zZ-#fM3|C7{tgb6c0yM&%G(I#U>&_J6zBa!SqEK@=Pw@=}-JBmny~g5py>_W%YIeYe zxqmj4;^^8 zUnd7IZ#0+fTFhLTVIoyu|8$i}{}k{lar(3&D)+ASJj0R*+kypZxB^~6%-cKHY#z~H z@~Yn@37cEhWf=U(N6;!eEhB>}eu~V}!b<>UNZWyt)jAqG%(i#q53&wt0*MNgoQ5t; zPE3;9B`Vc&kiM;OdcASExlW2SyXh&QjhW0K3hmy^H%%i`x+_Yr_pn0<3d^$SUa?m+ zj3_fr2AfGAnOt4QN&}^!u0*rowe%z4$ba*@nK26|XS!s0WFELbBM;1c%)hak&r=6+ zrLAz{iG5P?gW69o5&8YO$2lWzhg~S%&^hl|240v_F+DrPf=npF=Wwf+p^fjTmP&}3 zRfG^V+}zYaJ4Bcrn(TYAw+`(1V6niWDx5ku!gJXcJ?4VFAkn&wuvtno<=u$U=$NF!csOM>s~hTnF{Oc(2U0DPj8T-nb^;68v0 z(?^KTxy*>AqCikHh<*)sV@Q*RCuW4}18OCWrlWPfs1NPLQ*I037+m{O_dV%bMn)`c_%fVUCYw*QEj%r`+%PYFpyFfp-s_(4s!mJFU@8fD-{xmpL%TymW!w9v%SpP+Z=u@|N#T7lW)gbSd$${PBf{50bG}fYG>TWQd$WpZ-+F9hvVO)KWY0CNBFX%PX?DF z1Z>#JQ8~V`k|$pMhH^})K_gdTGI!e{1YCIz)4f3iGRuEMg8;j+Rp6mwguD(E_=yxl z?S{xg^flm_%lD-t^$h*C6c>=|&93JO2b_Q{qe4EPXE#3g%kO-?uU>dj+&;l3;k8EH zziLf~6TlOkZ=aL#!nN|cE1fsRyw>*8UAJsDM|o|xHkf{`2{<1)dA;uGwT(ZrmMbyV z{qPPeh-B1_V8v(o3K=hOU@~JGw75}5M9TNL zS!?2yy5!Bav|w+O_I-nd>}I7(iCnL5`phhyA!{{v0!ywjf=z~mXt+2khl7>MZO$;D zr+PKI2!V+`z=&lKGS*B%bmp-&CR^x|bIEes;;<`2$+bD?M`fxnS10D6#tvY=7nz!B+AZFrUtP_z|E1u38C^2pY0ilp1pRo}dam zH}Oy0K;23ce#O8BGKaAfiXca^#LWJrpq2X^V@d~PBgP`Q$|kqaG>&$ys}0jjh>(*` ztu1~AV7UXl;0_f79wLwR@()1F{l?pq_bwL?!{iq0<>?krDVCGbcvTZA!*UsDMl2O+ zYM%;SOb2!P#Mpt%yJ{tQI|M(#>X5;Ix2{-5_%EaqMC}#GycJ;5KjUcIma5R7YEA6Z z$h>O5e^yKNB^mvD`saOc`DhAkuQQX-_Qmu(@-O7$sG#LC3(fU<>+l$?4s%gpzBraX zyWiQjpD~zBn3Yr^iM);S0thaI&=;98TZN=L3bTX@w zd4ERM)E|2py@|Y3{Y22$IYM84RbEbWtt2Niu^mSq*88yY5bd-#C2c^_?mAwN(e6kP z3E;wv9UPny=E0c1R*Vm@Y0H;G^ZjnjN67C@%G`6l+RARD-%fYa|C9f)`)jkSqaqp_ z&vs^}vyTev3H;m9I?hdzp5x2!T<3CQ-*_#YU-?fH6Ughp=f4iWjxTC3-D zu<-My(|)?ESwPa3Lm$cQoUUzN`^$2>e3am=*5iScaKbw`;fmLD&-!ujiaGZM=60Ve zg28IE*Qtz|%Q)IdY2^Gmm_aC@swHAU}D)7_}T74j2v_fB)P{a9RO#XH+-<}3K>m3eG z2rF7Q*_6o_&Kk4cbb`K&=;&zczni<1;T+*;?!3~!QUsVo<&L*Sr<8E!cX<@IS$j9b zGoQa2UWV#s044LURrQ{SyqNWy;@(jVhD}?&^ha4K#3%lR=n{hhTmk5DN-s3OY`{8PsDwyMi#& z+gYdl&5q!Hof@cK)y?dh8xMHJlXL1S<^P_1FU|s@0_{-oLBEpjeOlw0*FSR#5sXC+ zi(1sfXl~x2u{BT&XBnC#Ho86@3e$(mWhdwdx(#mu=hwbg5PMO-T%r>z9-B-$xP>%u z8%M_=r(uvWA&A%yxmUsd_J!K7Y@rXwe=oR8mGR>OCeiDf{-{Cwm?Ju;2r_91?3c`S zqV!_Q+jIijGUy|Tqxonv_i8`dk{FwFH-34x7knBr9Tn(Ew;(BV}d^>9G`BA%T> zqMQ+3*fB8kZLafyz-ODL%Z}IQptrQ1O!m^a0M`Reh~PlOsX1KwyEx{+FY%k)@OWj~ zF*LN~Qs1u>&8V=!!uB-F<~w$#9_lFsda?Q0YciVZq;ypW!aSNI#ZFsX!;a-*+i}3S zW|NW@2ehP#K&>r~Q@ zHzD6rZ(mvPDj-QZJY24)U>SD@F}G@R(1~>qS{022Gt4x+0D3F-keu9TCUkIn;ou9O zZ*<~8zDf8@q6Sib8Y2~MPb95E_aTG{Z(oq`!=U2SFmroahS%lb_3K@`@OdP2zYhyN zk^tWD<~XMmuh2|gmowA$?6lM`Hv;(SLGO`P z+3sRhk| zM~*N3IPP+L61oX$1)``QP|GaChkHTehjYd zPbCg0TmJ(+Un;9v05i4ZuWsaqD}$ccHwDz%S#7aUUBY=Z9knwRX~#>bV8>=Ikgb|X z6&}U(fE1s7hz4D+O|n05=WF!d4K)Onuhf{R>TuTZ?_VCM@p&CNB#bswZuPq{X9`B2 zEmU#ZtfJZuB1yRl*5I4FzDWieg9;D=E1N{>U;r`Rq=XK=z}_+@1`*xct*C(S~X{x zKKhe}c>5Lpw|!)YoB}$c22R# zJ9^R-RUB5p)6Eb4VTcB{NvOsMwvRlJe%7M@<|#sWeXLO70n1k_WeL|OL4nXTPQy<-%S=+p{3=@RZzo)OWP zaa9s`c+|!{v=PFgW96QGUOYnV5vq7}FrYuAhTo-A-FTj(#eeA=^7K{RZ}+bxvNP+m zV$GfvGvI(*x7?@VN{1p5H|eBkyK!z!h@Z4x#XdlnOhpq#UWep7ZWh$?Y*(3cv`s3$qt#np2a4@q!l+KFxUsPb`z(?^z)10*)=$itB#)^{aRD z^q5vhDs1~Sw&YZno9s)6Zt(O&NlsR2!PFy*+UZ&w?`r#9eJwSXq-KBixdhgImx$9v ztBFx1A9`QWeb0!J;Zm!kY}4J@^3tCqUw)8 zf`PCHSF87t44<<*A0dwugAL&sO1Fj=77G@ER6o`9ur1-&igr)3^bm=a*TVVyn}Vq| zewSRBv$f>2g(lKO=O4E7dJkUUxdV1raMHGMyxaYqEY~V6MK1UE!0WxvyD9$QsNBg; zB#YUEQwu&sIzZP3+YC13!34DlYe}Pi{k{H{RW$(uI0iM9-fD7;LA-#Jv|9H`C2kxHrQ+|l|5oh z6e+Yl5k2Ce??q-^=-(+bjzebRzoYgnITvP2EGwl5&P;VTa$!QZZx(?L8h$9cuC`Jm zMjlURZ6{7O7cloy8&&)gwWVvlUTU^@Y2`P`5*Wg~DtZZ4$h|`*mc{Pc=)sTbHey)@ zdU`&aEoRiR3qiWGu6cPqEhJwncv641$4!Q4jne(9vME#ny+OhO< zVF^!PjwDdLTdiVmWllOnt~c7u9;i`dUcZlm(}Vd)bt~8NFheX^9Hhs4_=6(A|F_~} z)dpyQJSsPs$b$w^e%4lrbeuEx65G&=wQ4w25!qp*zW|_xv-#YEu9*8$K_I=qbwwYH zLOcdtl7$0ePq3kM@Zqq!+Nl=II{1&aIv{`u zH&3eA<<%Zxlr(O0WH6Z6j_p4-mbbAPan6nN+M?F&G95# zFvYQkKb7S>sps{s|=P$aY6fow!|cnJP@aH3nX~Yh-5Rr-8}Z&F*tqe3MN#Ge~Ww zn)f2bTH=qjFy~H$VT8=%XTnJtVcg^SCL2Jr<8lsn3%c;bm#S1~LJopV?U07fEgt6w zOOMSC{6o1DnWb7*=+14E!!`c%f#%<12Do3>y$ssooX)aL3Z{lD z+LG6>W6Nw@&*ibVn~%rOeaR663&iJbrFFZK9Hnyk3HjA&bw@C^lGQQ|2!B5k@i~x% z3+!JN-2Z3>(*;m7TX^tym)>rpuP7bEg7ohu9&j3eb=$eHQYo8k=Ku|P z2+@nq1+T>9JeYE4LHrt4Ean-FaRx%yKhCIys$EQuqJ&Jy5G|E&SfKkN*Y62?5YTKX zUenW}R-4C(d6IqZpNB2@!tMCCc<+MVbcMa?^+OUlxdJC`04H%d6W0KC_0WCZbF{}k zs1&k}z?4BY+bTAHfC}Sk2ZbT}=ve4~SODJNhq$GN;kYa|7Lc65gN)u?vX&1WUozoZ zzO()U_0cy27k>AO!EWZt>S2BTv&&uHx5X`{*z?jE5L^wiqI2on9}kzrr{Evr#ho)k z?8;SsVX~Yhy4;Ff7FQi#7o!3n|K$c0hFxoN&kQ?*6&$!H+g%IOgiumbk3Cnkfpre} zaw}+*q>X*7ilelk-$Q*!$7>E+?7$&Yk2WcPSULv9nBr*Md#`Fm!Y>}x-16FxjqvoT z?D%&|{UQlx44 zX8F=IApCm2y+{)z8eFw`T+yCk=tV{#{<+=v@pjpEKY*3?AsUPS_MMWK#%!V(E`{?m z!{eyv86rUlZeTxmF;4>cU^AO&;6aNYdBDw*#(1C-%7q0VXL>^SS^^q z81|Xcp1KOMr|q`wT=30suIOwUrAgG!I_5*tr!=AcnHcpO-wf&!x*E3O*ZuR?LU!3c zQ#e+e3c{1xpn1dULCo|khux-^tpeLc-ERHQ3f#-5zj>d)m^woUk{aUTGTU~ao^g_g zgQ2*egi)w-m^9#;6?o53kWy#=jwTOBB z+qUrAl*etYEbq*>Og+N7w_9Q6B?t5_Z8&9hGhluvre@NVu(xoDqd!Nj*eTc<(F2Uw+y|0My+)N;N+1-bxk6Xv_IuA z9q0Mmqww3@?G49(3ZQpP-~HS9YyY|Ro4WkZI#ny>*at8is4j~vEa&5s;hK;UjOUU5 zq<>wpqa+8nLqkDca2$`F1g&rgx{U`jZY4q>tJcEux~cC?&2;sz;;LhA;w7m}! zY|%Q+Xos^l&o?Aa=C$V1YtGpK&)#@-#-1a*(?$$$-=`Yx(h6;v;$M=@G_Jw5_7X$% zGnQoz^B&i6SPbVci)TZE>mj9v%O0sKe21MoX>pci^{#KCj7KT)hFJ&X9Iz{#9F3_< zphMnfs<8Fu9M#)~w`1Sx`A93}1qw~moQmb0m*qLC*yq1?Ezf~`u!mHZa2Qem# zx4U-l)!RdnZOo6{K!NQ9wE##J63b`vDXLKBK8=(1x8rsT^6tV?f8r(Ge&|!FinIyd z5PFxJIsK=S%r*;KL|02kaS090n%n5U-_G8_YhE{hTYK+G!^`!7R&^?{a|c)POJl8k z@M0({4!$ag>nmlfv_h}Y5UH>o#|xdI-#)fK(?lqN6N10atN!c}&|z&PGk-S3GWc%E z(1C^}!kpJ5z;vy#&!U~6o3N5EFR*1wn z_jf&pzEpxc-M845_uBc;7rwIUS?^0PBPuMEfi)DHZ+7BE;i=eIjlPFMj^0D^-6=Q^ zOA7uYgugB1$9xW&JiAXJ*#*j}mwZc>yQYw@6d8G(a%+F2Ja?Xr$xDao_!BfoMiX*T z#iAr$BmQ0{n`R?+i5-q4vkL*bV}5^79Pwfm2DA?Hs2K(N_Jb{5#^bH67Q*e(n!!0onl<;In`EL`iqqaWVwOO5d*mxs?%6hCY z`HVD+VEQs)CO*4nuLt}tj^i!|b-Gh8&JfK}LBxADuqB;l#pms5{mG1(3*b*`@X5`L z9qZ;5%r%}cE45k!ls1rom!zX1K!m2WjW8{9PzR^}T$4h!4GJPZeyB|Kv?q zGZg(8b~Y>^TxpO3R7sl`+Un&@@$2kRS>67PGuFpH%TNMy{wZY{FP9|9*#d+hb}1!Y z;1r%b_)Z%2G)`w1)o<`7ObK>_#?$z|$}d=-Jl|nPN9aXIWl6ovzwK92ld2?MB7^Ucc!(`6Y$`Rhwa1w1LtJk{^amr= zMuMIFB6%GQSQh53m=9Ot15^}p8k1&zLeABY6_wQBSr90lp%C*LyGjaGEt}N1SjlN* zrpvnkti=+()YaRb`ymgPsXsRAom+tZ@@>j;V>zG2$~ooN4O{DY?as9-ALGYN833dh zXE`2sJk9^A!p9)f>gPTyM|>4jc>Bzp%UD2>dnZQGim-x8=cLrLdFhDE9iC)bH+Pwa#GklWS81` z%o3ebY1~R`;CCS8$qF(viDhuSN#?XHwU~CBEC!Wpzx37_H|u$Ee9c<;dm1I^!0-98 zX9L6}m5OM1iOA8YC*rtWN>rN~~>(Wn#@t449_;A-jAU0vz@g>f*fiaYUVL59sa<19c zcKPChln|>8IJ2>w-u6%nSKhqH z59kK*n1?in_M3qSMQny1lU1RwpTHZhCPE}-+j{KBhGEGP&LBbXD8Jr_^PaQWW17GR zMk`hP@{dnXwN#UQzr3_`JLfk7e2RuGUcR=Jj}}c!3hmk9A8*iw6z}^}pu^a3k!OX7 ziS|f{bV80(rt`}X#VK6qyKy)w#BmoWq%SQH1Z`Qmxh+JR+k|hy`N)gdO9;%#Pnh_G zKt%Cy$)E*GVA+q56IK`trS7MOqt!ynGTaLd(H`Xp_NYd3v7Pslf0$F*F;y7Si?@et z3TLP3C_H9TP&^BAkYzRSj)ZoYnPl$*osFR zFA@4z0w^AHp#WbZ_*pu;)KbKadUw2v9L5_P=%l{HTJiC#Tx&tQ;=TxHb9E@QUO}9C zS-cPu(Ir%#Lkzh`q0zM@L#W!+wgW_fPj#i(H@&c;syLZdwvvR>$r?6P#(~-C0Oj;n z&N>QoOWp)zp+A{8=f7iVR{F2E_N&VYBHR8 zTq^D#bIV&g=@#s*an^kF+0E1AwK}s{*e=i|hY~bP$%flR@BR`lL~=!^eC2NP+@cbd zghWFe+$kSRg``{#8IqEsXPNHe2s7pSk{nmEU-suCORG9jS}z{M3Q1vGpJQ!{u8Q=M zukcZ%Kv#2Xpk?fpmCA?FLquxed`en8*_WXte?bE`FBeIhq{OX4gRUfdkaGGT%C;Jc zJEs6|!SZ|KEHTgdIx&kxv0PaV{nM$CZ=f&m-VUbfW}Kn@Q@=NSEpj1FOI5u}Rw`U% zEM~KPjzWYqCpdl^j)xU6hc0e6*{aBpEkO|5U<*so_RW^TdE^0&ufj~0)GDoSPF19T zv$bS~!52j|S*lm?IHXh_6AHmcDA4|_{Mn1D&POz^h^y%_sqtcqs(6|pR$S81Pvu0l zg#`2zWLaVUv>y2Qw+1Hf%kc!v-`x*!++s(TTkYYx;YekC;zt`Ii7y+qF1>@!+q1_F zoRMEY&P{#~hUPEJDw?k?nq1Z^fVKxkosqEhKiWvn8Q*=U}J#+Q>+rIkii9dJ8QZ`H; zjno%3c!=D4B!XBc0SiSW@xiA9BJ&gHnZm;1U{`X7UPvz=SkYQvh-VrK%7ozr5=?BR zeRTU~;6~jRdyj(f+G53xAfYw0E%Qsi6c(=XHYFvkJ{X1QG5ZZX8N_nkPgi?4WtESk zZ5cPR5eCBF57p1M>MK;D+6Ac_ssJ2OpjhbLNqJ~XE-9+%otK7|X&a^=G{pPH(I@*e z2XE<5z%QGHP!^_!ztMM&Gk&E5_fQD!z4aI+=16{Kb0mL`1|9L;?OWgDNCQmHEBN!Lu@hN6ULQD>HTK!2#N)y zlaf!>q@U|v?1;EBbe6ytviB6QyImPR3vr9Ei3V7_EaOw!Z{A;~+u#-c7ZFq&;9TXu5g-E8rN@s}AB;ZobB&90ClLQs^ zga{(5a!HUOlV2wJx8uHCl&31f?Xj>y^g1muZe-&pPgm*N&s*aK@#(ALdRu@3qso8XW(EC z>-A7ejo~c;|JVR3)NjU3&Jcs&IpwvK?Yf!oN1NHC&(Dx29^$4Jrl{7ww1IKH_Iz*7 zR|xwu&k%W!P4`*I_3_6%RGZV)13*TJw?GU5N8^0)02>GTc}hNqeUiM1p<=3y;@Wb_ z<^v}oOvIY9qTa{xv=~aY3WgXyYxs;>Hb6X{4YU%U3=*_?odBoKxYmJm=Gkchk`}hn z?3YZ~+Q}$LwR}naWXT*ivsjnYvQXiQj>KM1_rAKUy^}4F_U~-|mtRHnh7l<#${)Jb z?HG=V@_byz;n*_opd3l-eR6{v+st*2^dI`=Q1r%BK2y6;Pl^YKZU50+9qmg{!^U#WK7 z26IRV*R+{@?!M9)6#UX5$q4_ zt8#8T17L(uzWnL@nZ8;VC)$C?7^gXOr12S+Xe>i;zwI?vgv7Vu$`)|NEzRF6_K!P# zhw#0fnfV0pIf;foi)9a4qC!J|G9X)0L_C~daz!%{JO*$a zU-gJmdaA}=!D#cd{qI?S9(Q6D_5AyAH5y5JWR44jUy3pvgN8**yOrc#E)(0GN>~n* zQEYMuXQXt&F#2SUvl-cp6{a&@kzfHmG_Z2oSQaJ0&{#(v8~@J8vMS)mVBY_tPss8H z%Coxd8zjHoo`yNSS4w33{dL@8{{a(@UQdboRWF(ZMN*j5Di<_pdK{l8T2>DlH)m<~ zkPiq9^t4G|oy&*R=i^&mC9{%gUaNBHh|c)lRBScXxAVC92Se0bg@toKhQ6WK)F0o3 z5#_7-h@CR?NBZVv`yE~KP8!;tnyc-;QQc~It%T$YTF>1DAvkZVlcAm_{V8o-XIKF6 zZ+<87a506s9Ol>CQg#KWkQ_OP+hMk?y2Qx)MZHGYRMjy|;H0Hev*&C<=!(-|z+dS0 z8K&s)_W*L872<*&LPKPX^BU%ORB%g_97WPbjp=MJ*SRBpIr~}#oh>*eEiDFL1jOa` z`(7e8ki5~Pqu4?|l*-LukCniAnWRm*0s+RI=GRgW%r9u@)2TA$W}l}Fu^z!B#F-gNGGfmE1!=cjoN;MAn3%T_J<g*a( zFJ|kZ&mE>wbA6DLlV485QbrmI8J>X-DehFMTg)CCk2xBhWt5xS|2`W^S-vghsa;S= zgbZsCs}f#sFZz*=%G5%@&w@kt)9_ToYIM&h>+=jIW;yrAtf+#& zz0_h1_my=b9&DUm+5mvM)7mV)3S#Ty&`12~{KSgY1pF0?r-xa;6|1t7H5Xpcuq20gtdL&9_T};mt zs66?O@@FfVf4-F|?`twHobsbsdsueOE%ST*Jzbw>l+6)pW=@oC_dZ9*7pyk?+2xUr z&1no6Pp{kD47gP(89Vzk+fl-tS+B@!&=AG6@`t`$aydu;?C#9s?un4_3v)?;H{?qf zExiwp4=3IejUG{`y9N;)uZ^>)m_{<06~FLLwYCmep(=>(h?(b=pJT}>F@BBHFwZ5Q z)y6DQEn`(mGd@bW^EL;vV`A;(AFl+-&Z+up?dP3DhgF(A4IUSq&aFPVY!1oOPVT74 z1}s6Qe`PNVAk^j5YQ0*brQOGC?fq&eH;h{MH8iWF<%ldUua|uqNFlcN zJfG9|e3?;B->vOW$qTVf=qgsod(LH;ygh7r{Is7f{2=BYKg+d4y5?CCJiD7GX3?-W zlolaML>cxt@fX5#2|P5zw>e#Dx!fRDOcDTCopx6VvwWk@)UR9wYV-3l81A)NQ~dc9 z%c4_U*5E4KZjI1YSW=da1cUDKut#Vk{YTw$QfN-)8p%r6)KMaqTLHA7J6rmdmFiPk zGp`y!Rzt~P6Mt&nvrg^0uS2K8f%ka^^6}K(hd8}9VNusdX+w9#OlOreQ4J{MFfn7Hysg7!xCkF!{4@{9zJ*E%)JhEPoB6L{84g;N68<$;e z;4>EQt0z+egR*3!f;Y(Q)V9!bkgL9fj74y0STj~){G627+%Z08SdXPWigb9Ts}U@G zzY(K%%%lsbfO_?OY&}zF(K;=?wjeLaZMawQG@SjySO8bCS;h^E#K zCIrF?9FdQ+@Oa%LYN*}a4fAJzde`<8jcUI7D2!`1E(okhP+`4PVejLpUX(FabSypwWSD(z!Z{Sp z4UAcKwkTNIk!;nUFOK6lI}|^rIEA^s!2n!o)OIRm)90%bUAAh;Szidbk+d)yO5CbZ z$+rwC8$`CC$Jn>Ny*`zH5OWVAgDIiJ&>Fc*0p}>sWRNN_H+AV#CHm$jh1gkT`W& z7m=T9RKQc+`ETjB$}CFp6^KTk<;YH~qWR01(ov>0EbOMum%3+3u~ozayzAR5<|Uo6 zhTIuwYja$Ee8z4Mgh)PGN$9HnU7MTQfSByeP-te}U6j8m5Z`aTmihA>s~NT2JiNpS z<|0Rpd1u|$FXb{IADO1ll93jNm*`o*5JGIlKcAq1sNXY{xKK(;1VjgwAX3_*{Jv9@ zm;9&O5v|s^Nt%WyKK?Y#x?{pHIiL0POV#-~mB}5oP~`aipZ#h*ez*0SrLtJcG&wi| z4=*TA>ZR>9gSm#$T_%gSvRP5a8R(`;l?1EH^chX#3AxYhP7et#x$?i)QW!_amzJ{K z5QY#rF@`JFLQ7Sx@|5NwB>0GR?f0sSN`DgB44!8DTmmok#%bI(f=*_vG@cHHAMj^x zxj>ySY1@=bt4HRFhRv;4ee^DyOZv?YSN^M+Nr_#Sz4>)U{z5IUQ%1mk6W7ee*G?jQ zzRLBsM&Tbfi9dk73n>_`NIIf*VZPk5178Hw5@&NpKib6aIoVZi&0uJswk~q+Uc{^%AAHvPvsP3 zGt&$dmq5tD)y{A}S}OsSk_phRD;Lf3Oj|T~@aI7_+G=tVaaxsH+1lR7W4fM4F1=K_ zAJ3?lI1Z=m#JE&2{Ei}6I5xpLU9TM*rJ-RHBe@8Kt<*9@i&V!DTWJ|6;6VV0MUoRg zXotUn9rHD<@B0D-wGm1`d-<6(mE`o>ycS(k$U;PD{OCn6Gf{1Bt@5YS=UQGf#2dLBshQ&Mf$6(R`sZ7Q6x0-k zwd}BVZ=RK7N;g571pWc^&TEUh)!11E)98Ng{bVhyd!k}+?T2lkLKy#^oO@(Xjp9v+ zs<(SvBE9Jvw}8NjM#)IOL!n0L-*8d1SbdqCLNVN)r^D$2?<+JJg1r1l`Ei!4JsLuLe!(k+3CU9G2~&*MGqGt`OurYMueZRj&N zMj%W<`lA^tziy89qpdD}f_5DjuMm}N031-qvN~2O__Quju}Ch5ao}dI6si?rxa7wJ z%eiaDRh@BIwTD)8SP>=MXZ&0NG1j1;q5f&Bk2iP%IMR4K_t>HrTWKp+7JkA493-3I z^Fh`dQKozkKApHkcHqtu3Uy}~`&_o8yvI(tRmJ7CYlHOUY-y7Q$3?`#$#rf4u`rLh z?Z9VaU+%6<3K6pmk%7BwEMG`)jF$RkW7yYL0(sTVvh3iS7AWnp2^vHK;?yQ_ZfICA zqGeSYK|Bc0fvoO2n%3`Qt#9LCE-7LHVH2X#Zx-(rmSgDj1>aBoBvgJDqNP_F3bP3% zE(~{532@WP92@gI4TNeGOmV{Y$|m!fCS9AEo1!zFE!2C9kX5exTXU;(0#gvR4BGUe z?MpRftTMiGsNo~o9sLuxzna3Zt!AsB3o?u6qW9q`pa%_>jm!SP{PkvYIuskzraKhd zdbGTDrcoz*_WWJBK3hP3Ny~1l!w;#}Dlvr%;pFf%F-!nxG5g*3yVIBE39OR^rS>J~ z83R6nod@MD^%T0f?3(mFiduuT*cf>koC`j$Z<%gxv8S4z%4~z4L1pH02Z<6>J~q+^ zGm;+|vTJ=s;3+}2KMX}+l5S*wa~Fcj4B=a30)~cD+}zD%GBYinm3X~1kq@3KGp~kn)2#n! z>j(6u=KrG7ouon<<2#vkq5KD=dv9 z2G%aajCM#3|4mA1@q&A3btn+C3k(9^!fu-w2jEU1>wPrN3##<<`$IM#HI?Z?O3*PB zT1i9XXR6g4h#ee70E+n7vtNIeCVnRF6ZP)?LqYJ9{&`Tih)72by$5f_dowf|tPJ31 z`N0bwRzX246r#w5&VZ-7B3*onx*vtHA4;@`a3dEFX868GaZNkB)XG4sCvttavge|T zLK&IHncC+Wb~5&F5@IiqgxMS=Icz7o)-M~+1_L8=?Brahmp?F`nvG@ z#SES9CTOTRqSrARTSVl>C#VQGJSvDsrN`X0WG|dr z6FzIV&~yI12lR6`+Xvqp%k!DJg0aT*z63Ox|ZFmh8dkK*CC zev_bH{ai~KEWhgaUZeRJsXe z$x^m2>GVEdCwk*QWJj8+wSenB0C75KBltQa2e<*j*c?oAz26EuG`!H{8TCG~g(xY4 zu}ZS9iBFPA$>aEo?`hNHNa?a~tGl+9 zdM4+IuO|s+MGi^a^qQe)*M5&);un;AJIWjo3Hl&8O)sS%yU?pBDh|8PevHLPArfD$ z0+*3+>-UOeb6Vz(SV8WVViLb)2r61}XLR{<{+#SXU6}lkp&>2ve*Wi@f!Fc8#_g|L z^Ss97n#Wt;TWle^@LW@-BS7|19-vUmF{3bzgz& zpQqYUWhDpl*=@NHCk;0)Tpmo0o1vz#ny{2f_j9J>PHFF%nr`@l#81)#Fsw+``qqr-3P(2%vK%E#2{z}`T zXY8Ov&N}DRt|w}1^czAAm`x(mT&e>5(?hlI2pD6RYn1t+1Ha-koD8`}?kN74;{S0! z6i~HA2*uUB*dROwIt_~rlmp8*0=FlTt1;D5PV8*b+Cvr#IWEC^qm~C>pFM9Pl7GU^ z_bR=^P3Ca6Klim|6}R~h7JW-S_1{E!O#~J0?LBF5lC#?P9JWTEen<^C@uXK6cGz{m zN9FBy)cBUA+wn+496S`Gy~`|!v-%9*kBtWEd4OS(4jLCi>)RW2dKw~p<1_5 zzh)<4+Z?ZaS-7J|lXvboXx&jnn4lj`VP)vtF{Lm#JZcBlxYWM{0RI)@FUuJ1F}q&v zp!dR%kYBQwYNvGQ_17kqSjgKWX!25tTx5fh;&#lSy}u^s9e_1JZ-emrwm)U(A;HGTx}CZJ_xacR4?N$6{mz zCvTocwruP<=wLAB16_=hHqU%aJN-c)%{|+Ee`B|Nxd_sjN!*W^Ra%H*t^5-Gj;0Il z%{E0bIy9jf4nUyGxK7KuV?>steE_zy4F+x)=vfwam7SikpEUK+vWcl@mj|U2W@K%o z$0@p~5>A*O(NHGyYbShO$Q;i)`IfomAt)z-asd|z^XP+lNzFEIZxejzjqi}Av??1N z!bi1yrivD|r7I?1$@k5IIm_IanRzW<1`EMp6yK2UN=s3x_Y}`?<7D-qQD@a(AlMG; zjmpa6Df%Uh6^ujF>0a({6#?tYpP-Io3~5(hGD%Vc4v4ya$?Ff0th>~W^*@#9za4)> z)4|!-uaMmfbohL6z-RddJ$?o)PXdD2WUY}BY{6jtvo~8>ZnH)s-OZmO>cY2VZ#bX> z$uK1{uVmgxIeAn=Jx)_qigmD4{@t)hnW&n_4|Jg|$5u6*nfKZdnA?_F56txtT0J)G zEGuuTaMr$it@q>R^zLoHX*0BWK$4Lq4t$iGxOY5!qn6*bRHrACF9lpblLDsi*e99g z$6LZcIa3Qip28i;p&m}~KULDs!#9;K(~Uwr-@r~GNG6o!Suc_Bcs{-D{TV366{<%U zLg2)ZS$uNxu_9!Tr|;&)9gkbS@a9J7@8Finu_vZga}v@6P0VeGeF`?d6-!(@cR0Wo zZ*+!@^=%7d-?-Yk0AWEq;1TtdmIi;#eEAiZr&P;$>}n}$ne6(qobv4cyBfsJzx^ev zC#l<%`z&J^1=*jO9#3%u@Tnno+DY{HVSB!w?h`{xKqP$4pZJ~YD)_?D&KBuu>G(UA z{mpTkxU=4s;p;x*K7&m=r=8&i8L5Y<3avK5*cDSb0kTnsFqQAmae)rEKA!o!d%la z*QEBCPwMnBnIawv%@&H9mE*b~gZyrVN7Z}yEi&B%zKA{gG}Gv>zHcj7f>LrzD1PL4Yo0y5p9H)cT!(it z1w=XARbFt+vu_3pV8a~+(wS2BhMc(~c55Ah6X2b=L8w#vUHVS1$p4rW6hGKgzfX#g zk=Y=fjA?6Q&2eBuqe*(QP9m2TFa>F^4ik6QT}QUceSk=_H0kGTbZ`#mjD{lnyi5F( z+LAeNEa>G!AT1%$N zs9||WvX8*(#~2L+XJrD~wjb>Pct;Ug3J%LnA_WpA`ViDY;&?i*q9 zkq^V<4q@1+L$15ORbPYiH*s-)f2P7`-F0Cu=0KB@lL)ouNL0cfMEcG-Llz#xjQMru zEsiEv!V}abLJ4deRS2%wP58}LV4KwkSy4eA`b}~wdCFeoka3*Yy4&L8c_Z_8N6JeqSFvPxzwXu*Bvk*m}5tuq$xp=tL=gdY#WfXB6I-@;=NfCLU0o(MGy2w6N2 zvqYmIHy$mi)_$W#o=@;C9hz>$Xp7bO)2B`Rv6`h%wJMmYQr_xLr9tq(XoMaMUL5vD zj8<9((l2##I?CUCY!&ey*u-~P$o1Kvjv?g{WUN?1o|*XiF+O!JT>u4;FwJaxHW~CR z!?ZjpLEz$i4N{vfR+LRUP4Fw@{C%}3UaUXERw6K~fHLmnB5*d)r(iu$qa;xZ0sCjT8$N}7=)GF&&n8* zOybYRZuAmvLB=h2i%^;uq@^TGu|o(iOTQh!9jj;Ef!U|9;uQYS#n=m|2aKk4&x!*59btvoULo)q-5O7rLZ z*c%~Z8mK|IeR$cKNj=_C;$87vTeZy-Zr_FqMxshl3P;d9GSU1yJ9RYafJud^3qC^*nYe}BYBkcVs3=jCM8?i_4TMB$m6AjVe_C0pU&@nVk;}^ zazc2&5;|So>3h1P)lpYxz>eow-f6#NIGBp9et#UkPZm(vwKo^?+pjy+oIZWPkiIvJ zeOg9wU`Wz9OjA(q<>)@b2kk{0#L>8h<-{KQbGpD}pb7^xqIuIV#>=DY2uovm;^fQC zogQ=;zfO%&w}1(~CKk&@@3gXYcO_!PbOhXFRHQAV^Fw`tmpDM`&fDeS-#U1_D$D^9 zI@Ow|jQ3dv6+$xGFJO=j@g`=Sgflx~+hcc5R>w&*Qdv^(C*Sp=Je0Zon`AWeqRZFL zu^pN6I|mHiG~N3vKmL5btH2K-MP#jyko;uez5KHwX}e$)fBW*S%-8>DmHESwCOz`+ z-1}A;6Y<*G$PxN0vks%Rw(^s0VCwTB7Ot4Yx@RTN`6O!IQ+d0@KX*K}%aX!3U*8gY zO~qjfO4h|QRP%)gESGUqYoAqB-U)0#w zh^T12Irjdmbf2hngLxa;`4%T&r-(-)ET~U8kLD2i%2*HFrXr0481rcNPrybQ%mBL^ zLvy~jxJ-zsY^CYxN;0GUrj5EFjtZ4#oZ@V}?Kn^0nAFYB7k8?M<$Yv zy>n|ViBai<)P5GZ*3aL}H^D^6ZMiG5(V<@J%3su2t6LQl7Fwpvk`HFM@eV#_!Oum(!$A6qC^tRCm9z zfL;@~vEX?BKI9qv`9(HwvPFoIw)-0~Tk$t8<<0Nn-;*p_bQ_Cx+l|ynUn+l>mGju* zF#h&)^6Lv@?)tlYE-93}$)8f{VM{&YmR2D)OXn4pnWwu0iB`u9>*s5-J1V~Xl5(T3 z!t_e@x(HFE;H7Wm>10C?0>F!Ux(+Xi_i0vjcSx6qHkWKT-GHw2%vx$gu>Z$X6I*ka z`fAyJ*$mgQ*038=nW_}8Xad^J)~%dC6S%T!9j|`(;(v_~`d&Q2CGJrAc&87?3Kq3I z$a1~s(0rT1=smx*D+{w!N;#4}^99~+4}#o7SY}mxR`$I;z|g_ijFPj>E3P!hm9%sw zEyW?{KRoicX86MwE#Eeg z5}k7ivLYOC;SW{!-YD(X_z%}6it;XrmifeLI3!(rXNm7C2=^k3VBj_4k9n%K3IdLi zmL_2Ns#K0Vf{lyK+z1kC3;~JzrA*zPz2z*n(`y*j&C0!M#CL%dXU3NKrz^snR&Mh# zsRUuS3AK)96SBkbAxmMIe-P~d3VY38A#WC8D z_r~{GkL~+LJAN^82J>oL>-Awzj zqyJ(_6u9w-M%80&I_}X@Q$0rp($((QV4tn+^Warld@QMSeyxg#mn;WQspi zlfv^Iaj7kxzP0^4|6w^~9!{lJayT$bM@@%2r+`|oJ8(pQpGou& zXVV!T`c?Bi;6Q0F=qAX+R|XzemJ7Zgt?@o&WpMGD-b$8mP-eR1WAN@FPc=1ZI zQ%0w*=&o+S0h*sMIdmd$WabezPly}SEp?Yu#kBI6e{d-9Nj@CR3mB=%IPw4LoHJ%7 z#Gk$XXF{P}2E)ej+tiK%(MMiaG57d+)u)UwCN(N{Sk6a*2*-2-+&T4u&vH`TeQdBG zEG?ha0p%X8SyjbVxIp4UsYt(#mKpc#%#=F4E&Wmt#KZ}&EjR9UG-G3mxXAiKd}mpz z$xxDZdd>%}_A>B${45oAeL_aNZ6 z%v>4a#-C}M{|+nv;`4NL)QSCe;Rcx`XbF;3^Eq$FBso_;b@}G{IHZ|+0Xu25c7h&Y z*

    a!=(FnLCW9*s)X@{gik5Nr$BDQv8YNn=t9*?`0u_~FRG{}VAX?L?g@hN>%@5b zhx44u)2s$}AhT^tEzA2r-mvLHFQA9ZgWDgE<{wi`h)+fYek0T2o*p0awa6BC-@%w! z3i*a|3rgoCi~}99+aG{ zRX)bkbShhw!dxb!`(E=j+MFd`=1ltIUq9yHLNvH~M2jwO>;BWl|MHOk_#FfpWhdYY zmYFr)^Z)qOzq}?1fuFK=+s_Q^bLM|LkAEY{-*-bqO3K|3Ba529}>U zK2{OXxw~7;#!)eMbJILMH5Jl#qm@k%_`i_gU+B9Ae~)x8=Iz}!Jv}W_Lyi$R&3!xW zbrEC=CA`YZqf1FiX_%hoEh#H=>7CXpcuj{Ws{P}^{V$)^;1Wjq;9^09{UXCEDV1?c zxWU6JG2fY-%d4lAXLbr_=E)x!iC0!Xz^@ml|4)v>tsPf8F}oNf36xr_q4*8ll^I!B z(76urOaMgd+l2!RnM&S(DfLjK|5Y;o7cv~-pvXQCh`~~_fmmT+mzZC~&gX$npl3NH zpiqOTKiT~M;5}i_{gTaB2y_`s(;JSa)apqhc5ZGK)Dpt>|C6f`PQa%(${Rs!({@M# z{kuRcgw!MeBJ}Nswi1=fk?wsPQI||ZzUlo3^nP=!_vW~isjyfaJ5Ym{nq#+xFmKQ2 z$8`8Y*S6Mway>4FO)%0^_CcD(8dD7oyS*CEX3eJfle>6ax0$*;!y+{m#{cA$5X~A` zelT%ET&$9Un-4Tj|Jkh(#O}1C!DUBwB^x*YPN6f&FrI3c?t1avJ*&z0&wv4J{O*md&scku=(fYk0_9RAa|ET9ghX@h{Pf9=@nrGZ^ODD%d8D# z-s}x9%iG7sn-WWn4wwg}3=M4lp`D=jz{%I$#%ge5F;>-S1pe@DA>}-s_6m_K*7-LY zAO-+*VV98wDVuh>XQj4^7xI{b)@DP=^>Kuee?5F_CPqN_uE2wl3aUsE*RI3zQf}Aw zK;TQ8#pqLq&mcu7M?>i&%lGz%dEPC+$5H)=I0Ub{5#utR#ojG)^m_xz5P`8ba3yUb zBfmY(!fWxwumJ+S^of5sQupO8+r8TLaLra5ZMc9t5H@VxG22I4Ml#danR(ZsEkaj5 z9`3epAt8w&$-Wm?*YIhZvPs-2;b8;+n@Dt)zj=eX96LTwzqnCwl~wD(WkmCb*;*O@ zJiZj1wnJJpeF!;Y^EGoxKm^@tUeFRVe*WY5w**QtPJ_4RIn`Yp_3crl2`o zq*0N`V)e!vJ~>z9cq$BMxS%C;E#7fBQCbMo^Bv7tEwS|dUre4oiQfdER)%F%o^bhW zBPXf8Z@-prE}3QJFFAIr!bK>y@C)}tIs0}8w3+f+u8_Z82MOil#n9yaLP1b3lLg(H zx*Ur?8@MDpY`-~6Z$nM%`Z-aj4)H@8#|l52MMsug2g>|XzP)cLkfkmGr}^ACQMLU- z#yhFKl=q>HrQP`lnc=AZExw(h=L5id&+UDn(swa9f1Ixtf*+`%h%uEPIbOWaCmcOS z4ZR_zr)lRLENTigEB~lc-Hh?(%nsWXrfRAs+>J$pwzUxi6{h?{Q22FfcKmPubN--q`$8_q9`@Nb-A%sRW5(Y8Jdxzv#mK<}>@1L9Te~%5esPB**=n!-2@N7qj&5I4KN{ zfI0T_z#rMS9-;I-e~UI^C_bz5rd-soQ1oy0u$CldG}N7`E%I4|*x(nxZ6QZ*T8!u5IN% zFnuD*%F1+Y%hI7d0WT%wWFaT~e?8(6_Mb;?_nH`o{H5XB8!$F^9yF1vqxklaz(sM# zQh|rMB$yuZkNh>h!3hjaI6PbP_^&r4Y+CsIw#*nCe7P@g@6|OWt1O^SrpsZ}*0#0^ zh8_FWWvOQ=UBi27z0<2~fQH>h`+PKU7Y5W~(QkLUU{~;o-e|+JdBU0cY>mFbY23yc z_myLtK>OW2Q$tQ_L-Wc%`EhH3;+?aS$+1O}!+VLuS~gZzeOn}3yd4!)GxeIw)@6AU z7SEqw)bBbyHmkp>5I8&CNy)hB;H;F9LGb$;Tn3@@AdlwPY?oi7xgrw`8+4=>dDhLs zR+p|@>Xr>~R6GV;eB)OLY1`$-8UJY5mY~j=)vKJ2-8+_w(T4f2sWiQvRH_DqsCumx zU7W(0F5)Mpb4P-oyN>d|y6J~!O-&Vuj#%@1($IzL#aWI(yYQwnrZou3B?zB?FNl^{ z3nX@eQ3DEg#w9O2f2iVL29*8 zNQ!kAx}v?!f^0_NmF)(7Ed4(Bo^T-z-IU#&x)SRW%>p!DD&JK{9LJOnp9AsVmUwG5 zYs|iOV{h15zPmvnWEtd!oPl?T92&l09`3dSu$U0~sS5jQ!%)T^tzr3wr5@>4^FJ4a zxP!%}d$cFXal)~~L9j!~7SKV^2xLUZmOQLDjF*>xaivRqZ*Q+IAz{nBTxdM=Z-&7} zwW=K`{Zz0j#hpEhsQD9Pc*R#Q#-DIVDBufDHMV3)*l1($GS(RM*lVTRxO0x~0Ds1> z$|`LZmeH2W$9rardK4Qtb;%s2NW6%tKF$#&<8^EKz=)C95`~rkb!7j}E)$nduvHAP z+=&cH^iTo6`ePQ3N2n{gT{8`QvYF6@BMMX>{7K?+_}s*!BUts~M&$x7x|`9WMQ(@* zI!c*-QlNPIPx1IbT+EF3LBdu-6b7S-L&T^JOEK$GwmCk$V~<^tZfpxEzS)MnWNC{M z>(L~q@q4*!&?~(+7d&n8$|Hll`li?q+sfnR*_mfXQXY%oyn*ecfni@`poaLgbyKY< ziH0z~Qb2(KF_RVrj7y>a0S`rh8U{XU!dfrc2;*^?x-E7V$@6ORWtQGg=FE<*>ospo zE@BeQBdl!<4KTlAY>O+V^J#&A!!@8R{d68v?=$0dxnUJAs&eyEn@Q%cSBRn&v(y(> zHz0>JQSPW2u0HIu5?=6@s55nzQpVUxH+u5C@ePTjL&b|k%dI6wTvkvpsiUiFV{AOw*WaJlT3oY&z)bvN z)WOR?ySHpU54bW1CBW7U(VlD>3yoA2Pdc^>yAEBwHY|U1uoN)ly?+h4cd&$d8D8os z6x`f9KzB&sm_qT3Ob-suG=Cz*b^wa8@x{ekFDgdPAM{GlUHyi$M zSKQe@lacN8K52Me&@UtL=|(pvjY5TxRvj<%A)*p$N>jf}g$D-iP(t9;H7$q+AwIc+ zFtweCfeA_Ws3Rd5D^XZK;x*@ZQ7Il%hB`hLFDh3jhIL{mBxu=u`lNGbw5(HCQ`S~j zon>|E2&OT4gELfO%_r1hbVVUt`C~?N&&s~$QqD=7>_yRcj8J181EuvOMH$)N*K?L# zFjWfQ`w3B~tn=tcg}X(JVkd>P7$N7BpQ-1yVGFaxtS4E zt50i%AJ7Jr0+1(ck>5y7LN+A z>FDU33Uv%dtmf^OR#YU)Cq3)sHSE856M~1*>!sslk`IHrpIl$Z zMF^)VdzBq5xAZ?nN6fw#&+QMVZYf;wadFZ2PRF@`K$fG^KGTG2(lp^h~2 zu3Zft@>dz;kC|wR+;LKPJD3)8{QbxAsFcyy_fcCYfaQ5igOCzowt@mbo_LAIL{m#4 zoJ!fsCSWYs!|Y!6QBBBEQoRDbI@)0PX-p;?12GUwl@OYJKXg;mNbMI1B4`*;`jV5I z0JPZ2lXE#sca1TpGDV?PqveJegzWz{A*3t$b#-M1iE{2H{A0&Rs*^&+v7cqr=j-ck zUfqODm+Q{VG-2V-g~($fQHjEOslMTz4_T;Jj}M0#``6LNo;%x>b=H1W`Lb_cOb#fu zZMvp^h(87_W0do-yv*9;Q*|Dn=;>dh(xtxvOX_k*2!|&85@i%bn`o?@0IHs!XU{Vv z+I<+Wx01X?-=FIeH;Gc3F#@O5k)Wx4Q^jgZ$Zns?8sVYyjJVm5Ev`_maO;@lX8KOP zDVyO3)7Y=3kTxUUzpv5CJGLfXc>*%>HC$hnqN!g)(PWl%M;T#TlgHEWwG@GB;VlVK z?}(gTe1B;&13oP-tNf|bE+?6GxPT7CEdW^HIWF(8-P74hVPf9^j3QLW6$d=Lk?**# zxSE`s)Zy;jBHo6bp^X6~0z2pjd1YSt=Jt_uBV_!xmLA=g2Rl{#1_HK>sGX@t=v1>A zEAMlVCL>Jc$Olb;qcYR9w|SzS%3iO13^f;IwCv{nf$0GVv!vpfm?Z!!elW#JUj;-N-S$>Sv&)Q zKprXi1qEsJSEUw12P1N97UNqR{gL)#7u|og`2V-QMkHv29~GXPfl|$f-_<3jr(Znx zl9WXMEH!OCqVODWRnAjyZK7O~zGv(BN!6*bC4l_h!%ghKX9cGhKrJM27Y(qwjvYd2G5PV7P?v(v7bEgb|0v@YiY!gnUqjLp_Yr zYNT)~H9L?#ZZG?n_bQve)6d-8AHS_dsTsceg&G*e9`6FwQVAlVA+nE}vsg^Q zL2j6Ccuhop9#h67iZt-)%v1@Fm4POeHzdP^{Hq&Gf6UDbl)Hfm4iOb5QS;{HklooK z2%$K@3&p1nx0JX0Bs;#y=byv(* zI`siLHcoA@N1ZMX=M}&li%uiNpioN|;7+1oVH~ZqmG-(){uWv%&YF;#^XK}yIEW{_Z{ zb;R8L!b&7*FmF|eV<5;2yth?1yKdajpNc>E_M*x3+LXr8_2gFG)y7__L_=`VCWBD3 zQonRgID<S26%^2kUNW z`mN7->h=|{$!i6@J6)&;Eb0*O6O!ZToO!lVu4yk!);3$`<6AcP00O4wFP>}r7L+PE zj}ppJXYKi!5q)kgqE@SwQL-ZYnQgP4K2DF*2(8Rb6sj@ncsLJ=Sn06-wM-;5v0`Vf z)2R}4Q8=D*HkwZ@L+h~(COgQWt#k)zfO7QCZtKP?xttTnt-R>G` z9?%}+$MWdIgZwC8v9VmEaW0Cq{71UC-Rx9ImrhPjpocs6+uM#u&jvZGnI?4BZ8$k~ z;XAkE%s-111ktk~fctZ`7MHyQmXe1p`v-gF<>F8}F^x^ooq>$@jYANKYX<+^Atx9^u)?L%{R)T?8SY#5w(&q360Yl~e&}_d7 z$ly<0jLsO;&5z&UE;|(|fO5gxQW^f_B#d1D67aR_*J?~SdCzL=@RO$-GZjsOu*Yz# zo5wWUK7SCStt_jF?d4AqLt^RND(RvW zKSrH^H@HbJFS5kGJvG!rE!hVZs2H?nO0|F5KW%-^EasuvE|RKKdB#t%K+-@t_uvQE zvn!j-MW!;^<+m+p`-st+#(adux?T8U%HC=^A4#Lu6{~i7v0g3cFAL7_{;Q#y!12(+ z!z{Ez=-$B~Q;!i{S-X>C?Ma-@1cy7K#g0CXGw1t+q;?wqfV_ae+U!uVo2I90OWS=c zrEbRIh$CiWW{*x@S*UEI$NN@fG*mF_HO_tr%gL`Ed6lKlK1>N4UaZrx@#H(@pA=1` zbod$-zWvOfq^a4RTd)U*xH5snWz{|zSns)b*m1tn8;s#$T37Cwl6xz)syx~`s5vF* zCg5)5=JM%M!NZk>G@B6OhV6yV!77O%4`ms*Yeo@jCFe0<}Y;`W?4WGobTmM-Cy`OWDU(BPkS`oX4#eB zIc^RRduW?_pY)R0jksLwYBa=k>tOA%#;F!4Wq`V#xa0^+HU%zrQ9fSxr=y39mp0<^ zZ1##;#4k2`ZlmS>chvO9p1eXmjdRlo2h4B|>0C!Buv(1rS<>W~0LCfEf8Df+@1<%O z_VWyE;GAWkJCeK;1AryjP1=&TWF*(- z3z+AWT*p*U7%7Q(2&V-b!=bul9zT<%MKkqyn213661U zi-EDP(fCblvc-a2H5S}fWZg~lNwSd&irY33^m{S5ul$D3m%<``D9!D6r_v+icgi7E z%lJoK{va+<+c1yw0frUV@E^`!wB&#`!7kR?2lY?BEzgu+zG)=ONY?U1AgRHE-n83H z3UGSH_2uPr>j2BJw{RbFFMC%JM|Mq*H@6d9FWH*?`xVCAZ>`C76_ePSOCzs|g!4sP zJKI>6PEyQ=JzL<68Vi0qB;1g7m~F9;{%+5s-?p=M$&NQ1QtJxRjtHo*Rv^+Xv#*w7 z3h3(zmp&4$w2LD?C|kEy;ABg|TYXIssWbM9)4NS%CQIt6xlx27WN~@iq3Jk=D5{o6 zf4u~;zj=l>pSrBC^sZx>JmmtD*KT)ap042L>f%DX;@UoC6n8=SnavL9Qw(F7-h9x6 zGvy&w%lWd*8FXYV9p}q9Foz{FA9tG(_IhlYW8~cYI6DbpHI@hG`p;SG zlR8d*w!D>MURP(i=)B8m-Vf1%>p3%9#ECZNT|euX3}sS|Sw?X;xXChbABloSo=40? z`YW?@8#S#QWFMU;F9$E}-1_sFe#bF!%zMkv;K@x_i+TG{uJ|fNKzE&xl>8QXkKtCsVMtwG=W;p5A$yTP5?{g|E`!mL+w7zxsfwG$oReym4S|ea ztFjwg1-`0EGs7kFnw|MqO!``g0nngx@7;;(xkCNu6mYRb*NzA?pk`gbuH_q2xLuqk zYeJQq#2dd7f)(J$8hPFfeyJ5NsPiEd`^uj&6>zgnb2|_5F|%)n=l{`QbVMjmKuy`| zH;KM*l7{{6(=h!O)FpzI#M1=ws@f-1Ptb#D-iaFro<1vKDs8tQnE`6+8`A~x5+BtP z8KVg&MlH%3y8ZYovHM@TtJCS**L?P5ANQZ*3!6cFU^WZ#I!1c})Y0PPiB_z@c;dHx z$(H(P`T2D|Qy$;l7w>O31Uo>}ySIY1b|1}W?S@0N`3N~SO$l)Al9Gmu>3r{RTrwyr z1f2)=Hk2;B!W@TxH*%w!JV*!*BrW6+*$#Oqv8G-q^$%> zZ*a~8x4fphgi^8xe(6QMTj**lDCi&J=E!|^!EK-GvoZwFdj6bs=tJ<+okM`WyCnmA zRWv~YEXk-(3b<7?-<{#QfWy~hcRJ2~D#kx6`xnd}Vw4OKgz$$SIZ38veHMQL)(290 zU&D!7KpW*RA6o;y@68l(V=7Wo*7GY;)OTGz#q{DG+pUa~pQW5b&+uYLo@vE-k%s^2 z^_1djqS9gfo01V7+U>N&z)m=s$>ltJ546$87Qv{BRL8qOl~(4s)l-=!T-l#YXEXvX zW37}Njz^6n#W>G+>n^T3hd?$vxC#(_{V-@z^4LPtbw1C|bO18lN* zS8x*i4+gEK4M!r%Z6z~{%f{wE$g5|SUMwm%1WaK0_r{ymvIa2+(;{F*R=H4w?oX9n z7)*(V{9iF~wYzbeW~8^+nRDpZPdA(GEqZneHha4Kh>tr3e}mG(7DQer)rk7Kt;Dk& zRA)DPZxqKpF9YrOI9Tt@n>=2^AP48azk$?YlG7Dzi}t>ce&l3;&kT{|wNy-4FO_8q zw)Qv94ClO=3Rd917Y`-u)#ZXC*;h60q}VjKN`YAS_ug%nTS=3Mru#(RI-Uh@rs)TG ztWbUFIen96iN1bimC)<~iKy3d{1Y}++^MjWT;E~~lbDb8^T_mp=+6kDDfIgdxzCz8 zpyNMBbE@K{$o6d;8VrPNe@VVRUff4)Jt%+hDeoPL5K{dy@?l5C9Q~&GK;xvDyFVy5 z#CobP0PXg?o2bPdmX6p&x>#?Y5vQqYHauY3+r&Y!kfzJOKjzm4+Es5M#@f5QjpUHU z>z2qHp+8)mYBG`s?VmGQ?@&5Q9}?GCoyPSgiu!z+S>T0>I;j7oc;(2F2|P%>))T(D z%d-YK+h^3J3oz5^PMl{(IU(j>e+XDE?@pQZc$NO zT$X}@uYhI8x98QRCArQ`RCM~W#Ac5-!I7m~b;eC-!bZF!E~KIqb4}q|E?c9ygyO0$ zR;_}Lo0(~N6t~Wtr<+s7eUU<>qSE`ndrI4`;8MD2;<{qi`_J^N8&m%Yw;s^Z7b^ApfUUgNxa2nlL5Xw|%;xGfy z$*7(Q^dSQ{EZ70Y-nqhqe18ndv+(f>&_mPbIac6VE@4v#w`!O0rj#2!d#l%a4KKV` zf`e}kg6-22B*J3?jz)(Vf~Hoe$PhTNVCHtM3sREV zgVBNSZ46fd{6|X@t`hARc~duoLk0W1(1V$5o`~g?j=?D!%Jw$<6Z0!vqqk{jPgpxu zu%Kw?pt`6IFO`IFDG}sA0{<5%aWk2Mg0lQ9Ok;P-E1!vUJL&Sfl# zV8e&g#KQ-iEM$j9$E+8`*Q~oWxX23_l+|1;4KxkW9`66DGsWJz{LZ(G^ql@VL3+Fu zu{e{XU|@4?ycL-p=1xGtJa;~l8Z!08x__yZkek?(?@vhr0y?~}uIhPw`*sZg zR-U)b`{09Dx62u$&Al^Y?e~1|D*MajF}x1DrCNNC5?mf&kF-$DmZu~j3v5Bsjps2h zm5zkv%m%gyfWDRugPW<|pq*w=9LM7CZ|J4IUj~9`h3!h67e{WLE>l)JDk4r5_})3s zp(j|Y#@xg2h*IL>JB8x4O55aTp5P0EM1I!4I^bOOH5#~lexXysiqz)<7%|7UXuoO? zh)U*vEdrWgE*rsr?PE-tjz|eRsa?*B`u<{GK>PJGKv-&BSf`NXPaD6N5XQT2${LaI z<>*|SMxNXCu2e$o+5K)f_6!Zw>8LY`ZI*BTd6Rsj$6539{T)Ya2G*~{xp+-3k694| zko z`n_dK1>eQs$kNGu8`$$>f_z&0SK0D|nBrgVkxJkBNvM0O*ncap2CIsdhB>4QfO?vL zI1iTfu%#`!%4q79SWV*CRu%za??&cCANy}X(9sY=HGR4Dwg&Zj}=q2K%ji(QE+v=>K*lJ~LG_HgMUK z0Pd9^U@EHRy7v7JhT3o$2540Cn)iBo`aHEt4j<28q<29}XM*I>NPsnqa39rug{ugJV*6# zq_EkMRD^$bzkBYSU2Yz_gAa@yZzM}pbo^U$DmV|tB6L|6?d7G z7m?R@ml+Q`8T%X$>l~?obBiN%O0P9rqaX6RUra|@i2_N%97{&AK{Ci&3&XKV=p6_+ z_!Yigu+t*f=t|f1-+c#vBK7BBSgsIj6R7nRFC@92!<^_o9)osHrc)DfV2luFs<(>p8r3)9MO&*hTSS$h~(;s9loo?P8HBlflZA{6^H`P%^n?R$!yyPfYU3DpA;Y8OPQfNy#?b_}Lb~ZI8X` zdj{{sWSRb6^_ZX_t(Ffy)+`Utd~QG#VlUmRCSR*DqseUXHWi6J&6fKXQ481W5KzC; z!UH>IR^Eq=*U3!Jlly~$_mBM)p%ru9n5Mp0C+?VwRtHm6;+_{%$Ouc zN*!4EZfrUL-_&}x@=xfJ|ABT|14IEgINeBKRn_VBd^lyO&`qIFuMuq6Jw2eu z)ZiF0Oz=`v&*yXt>XO8;1NN39E~CYoGSP-h)Z{g1i_fAdM&}AhDh3uVD%%{_E8Q$J z)GUe&Yf5JA<_om!hLT|c&+3&8KUik9&wg-^ZgeVsX3)fX6~giRg z$BUzej5g3fbFNWQS?$~iQyUv({XPmWkF_r$CP)*S9u?~ zo1VO$GDGE)B&0MiD*5r%t&Z3}J5cBsUc4{kY>l}=Ld?go+?5|5WGh-#frE5=J#0o! z5#%o|>L1cIo90tu1C>iyop@JvxQmG{Z5?soeJK@S5#t&bI%{jP+|*r1{ur8#8a^u5 z7C)o%r`DQ7 zh|<{kz0PEkerD$7o|BVss}lucSDWWt-f~>hx_=#E+V;C$@!v~EG@i)^6H?v}FhE0W z^}7=L-LdOd8~#JU6p8{C2hfjPV9w;1Ckx-(1#@qGRdq~P!uGvt^}gOCzX#CmZ|mSP z#q+11r}YdiYm`=QaXd32yPaz>rxwRr1=qpV%-)81dU5%0i-7U3jkR!%#v$2hM4*tJn< zT50y*kRv~lV;xlz8}P#otdD=70G@CHf6NTk^)U5y;((ddKb3(vU1GXszwh|o&EY*>M`7lF;!oiLS ziQ)3}VP@A74%!S$Me91TLM@Z7LDn;grU0qO-f)tG zm{zL$-TyWQskWN>xYPr<>-J5D^ibw=hOEsEXb7rl`Iy z1Mn(m+DJDwC+(*zb>A6l>3Mg+wOxCOdceFmY?R?u(-IwhujVsJUeP+JO0p9?nYO;Z z9_#lzBJn*fp68c8KbB;+7e=B9orgEaz0&3WX@mnr5gV(hy2vUSp0cS!)P7e7tF@6^ zfAzF8aSEq%l#MFXM=#P8Ixv_1#Nl{4G4{v^K<1{FUA8P%C8?3>z||+6na}?Frg1O3 z#Pb~omY&Lx%?YsFR4>hIo?L9gc>wcz_$hZ!=~on@`RBPi%_AXQAO;kUJWz(Do(Vqw zKB+fBq_~Oqo$3Ki;X#siZ!P%Y=u2>)a;ax~IO{>-ZRj63z$mA)J8JYfoCx!r45SXl za5~SFzHi~%_oik!`^3{aNgY()I(XX~Zrf8*5ng@=d@IS?u42QYMK1B2oEpIf2L;%+ zRUqG$ixR?G^3g%^mx+grOrqB@Pybd69aT{)OmUMwV8E}z9}6e7=vZlcA89n*%R@zp z0yCh2V*we}7velGHrv^gAX)oZ*-EwsA%~%|;o(3tt`_z;_`l}8zpM<19IkZ3`aYem zD20G1*r|G!|Nec9MRE7$HiZxE2o2#SvYR}RNaDcwsuUOVmi5Xv=+ebcN~l1YyI{MJ zT?eN0C6}&Jo(TYagE8utP?lgqkj(v{)ygoS-gZ0G=G!B9VVxhlFCt*7Tc%RR!@5#feWpAVeg%^3gJE{9^4c&j^gK8rfJkThYS-2?1 z-hd5=8dMc=suT&X!9wnbUs?lX6+cqMi4X`;>YSw|{>I{8S*m;nG3CMuF2s=wG9ZtB z*`E|uRQ;O_cKlSYTny9pqXLSF{SHORjJz5TdW3rDD{cb>XpGA)-RtQaFlW9a(b*Pd zyceU8%hgfSZQ)FG5K9`yASD2mNg>iXydO~bBlZ&w*HSQ=n?4?RVG}p3U(gz={@qP4 zVM;roSjc=p#nw6d8E(|cSmg$UwmP(loP1&-*s*mg?7=}wwl@yo$tfZsH+LLQIZwik zuwra)(_&vM$;!@D@ji)n;E;AEnp`oUcH6#$w9G?+mxppift7yA-qj>_ay)HKrUir< z#&ZRJ2PHWR_e>5T_FevRmAKg-bBa9d&dd2iGRyg-QzI-nflb$x#FHa+SVyWeQh{7; zw%hE&Df7ZOaPNVS{COwnLg~ToKfuC_x)Gu(i`x{fG8r5_D1X^|mMhWk%Jq zpl*>YuD5!Cp<>k?9%2VU&$3Q(G7=3NXU1h>;<=n((R;r-Bd81Hpo1Z)O!04pDPRCqS(vDN z&)0g5YHLoIuHvB&rj`zoXzF0_HsDzqX3ef0(_V23O^XW#{0vO{%3w(MTU0hl zNu0NUr~5%4v0YhaDZUYJK*y1Ou5!XvnfMp**oCh4FR2ioiGYnBc02<8M@LZ-`7Ox@ zOwth+8WQzR7VCrP?3<6@X2HMvhQ4#ZrzZfN(!@Nv`2BuKh`gq?nL9AzCPuv@ zVEIw81>tpt`7Cw|B$o)6(3hCrhN6lv;9tGN;70P63@aFc#6aI0^tf(N@|z9zR)xG1y6zpW);I#mxfWWmen zyF*?(glNELSaQfqD&cvV>E9+pQq3b`YV@2u>V3r9Gx|i)G>Q6jc>bg{F<`BWF zD6@oxjdqg=d{ibm8Fqs zgj1)#q>*K11CmG_?4(;=CFb-c6kSnL58fH#}DgspkYP@7}eU`~?Z>%p)GR+h5k4qlLmBp?ldPCQUFF2dGjN zYH@sV5NmM4GM%95Eeyfrj$&L)v>G~qS?tXQP~bmag&sBtHx8_4P=og#(#C)n^x>Mt z*^%w|pZ=s$TNY`G>6v^Yr4%fkZ#qpl&z+pAzaTn1)f)FaJgd;@CstF3(P-S`O;%O! z*;PUWyW5J$r_er!lXpB=8~D8-998SNtfcdFgan@>M+(<< zJL&RBW+?-fuAD%q94>0diQ17g3T=E}$jA;=!ZMdD&OZ7T-H*~9F_t#W(iigxf5y;2 zC)(>CYR#9#=T7o#y3D?MzVavuV?u_-uLd#)K99aK+j6>7JEpd#yhnuB;n%ip0kYhV zejxoiq$Cc6S{bXu2|0>A$63$lD&H}Iu~aQ@`z!(fXTr&th)6pia~em4#y0`4_&0uW zEi8aH!fi2d{sTaZ8?fwV;S zc#gR>))@2Dy52^_N93o&Frd8L19T|>gg*%dDgF)>kE7W|*&%y!4AeTi;-fbkL$JY8 z#HouRze23r_|?NHD;lC1>9CkBP>{~s_l0pd^f5WZFO0jsk^%GXb@o$qyNli*)Cj!# z5?d%0c^F-~v5Y|vgDS}@0-YXFeK1{aioPKmiCt6)XI)@87Rgb3IX($aGtfHAhISIX zwybcm+L6ZtRjYt!4;DHJ8Jx-~f1|7^)Xi8S-OXi;BLW>9?x$d%1{wqd)J8$=M#XZ) z`^XiyVI-ji$v!C+Htpe0XCx*s8iHE{sBE^D?V2V8uAEc{mi=;kpvSG@j!W_e zdI+%IhPUn|nW^^=PnB$Uf$0kys{=V+><^B+SsE5a{o3s5R=#9YZLzW@>~dqX7?FHn z`^pry{!Rl4E=D=7mGrRWWcHNCH_@*_Es}LCrjO{a0CYkG#{=(I;0IDPtEhB9&>JP{ zQ}1blUAkAMc^%i>MAPtex&`PZ09X1fdzbK0C{qtiNi{UXii5 z;}jqV7 z@>ug^u~*2seh&|t7j%0NxM`c7sq0L{dq~JJRK(meYH_{r%S;X1szExb{p*#c6KZRt zswceFtsX3CbckVcNownOvVGc^mb)J61al#cdImoAOFsO{JupC$U!P|bc1+*f5+YvY za^6u$f3ZanQZ1$*Tgq;*`xOSnc$w+C*VRF;F`{%Fe|a^L^3lZC`w{%L9`w9l{XBe~ zdVU-Ha`F;*zo!~(5BZpgDemKMB2e=y>-=NCC`=Y(ctCXS@#oIk;T)dY{bswOq$}Yo zc%pxLLo7#9O#ok|1^JwYPMJGw>wR&Iz>4X~1rYP4F&5!YE&|2Njqj9=sBJjJaHuv~ z;uhST#EK`YyL=+9a=>KP@1kqid&DPNo|ydY>48Z;&B9Q`Ppo|v@PC;~T z@k&vdm1Y+;Bv>4X0S{1i%bB#Di$oQ~K+`NoYiwK{ z8iM2QR$*hh_2u~YXfc-vs>bKHd1j< z74mGlhK1)OdGE6Ci%Z?rR>|v-R_%m{>BYZT%-5hSX#=%Kq zj6q|y9Ct05ctCQF64}((ys*YsH$$MJs;W@sHQKpf2U~L)t(L6)!;sr2vN;7s6ywOzOUM>&MU2gsS);mUWe9g z7~J(LgNn{7YnY;kZAsBX1*=D6$d$((WRKd>jF3Su8zrd%mh5H6mjjsMpEu*liV0`1 zU4U9CyX#|x zT~TGWxFXjEdwG3WL0reUQ_1t;F6qR1AkkSdVRza%>F3}F)eZ48y$7*4An>H4ik5MP zQ}d4&JTqo|1l1j;Npea=40qHYY{$1bf?5La!8+OB{9e(Z9;xA*xsX5}Es1vA^=yNO zlH&ID{+|j5oS_P95^F zLk$lqccC8kTLeyOJwV)ohHkYzx$2Q{cla~`3xO|$3^_*4ss#s)a3V=urJ}m?p6O|u zzpFM7F3$#s8JR25`Jc!CfFc0Di=M4*CB@+P&EJCr+3!2Y9C;xnS%*~m0rL*wztrqi ze&>j2yUY<1&#g@Aa8M35N1(<{0K1Vasj{%M+rPOwSbASq)PZWTIcTpXpd z1smX>!z+X=FE`Q;ip#-yupgkU@%-ye+nICiN@lJ+g>`b#iUu>)n8CFNn!w9D{zYc{ zVGWVdjl9kM+wXPP3S&Z-(%6UpP!0S#Kc0S8aI9oeFOltfHt4^%ASFBY1SlG?(%+BUly1mR zAnCi6Ff@2r!t%a)&`e9(>gy{b7rrdYVh;XxlWjdVyT66RU0PbtroKEJmOJDds-&sd zu@?kw3)rcah2~8EMta&={i{_R)zNkTbq&s+O5HRsnvipF;e6tdJe$?)R0$_Ssgfxd z7tLAIl?0m%8OeVt#@gy}{epQfcJi6WPfdkhIqMsOf4F+kwp+scE`YCxOD~Q-%b>5< z%cR!5p6BRpB($ zyGui9Wose$$8g0<}GPRslb-U@v#Ab#U!wK$F`{Pzh8e_7Bc3sA% z(sO~#8qYwe;KoYy#N{Vuw+e@DbQU8`s{e z!s`h?{aCx*-b&gC3P{sg__Ah-uc$InJ=yg)zeriRTqr{S!QfHgqBt%JwBaj^RvasQ z$(nyF)lR;voUO)^6mb#GT@PDWjnr3ubWxkc5P4Pf3pU!CZcvynh>Qv3to^|x9bLe@ zl?u}=`O5|)x-)Y2H^8JOF&V^Ubz7cz|K>1I<{?S{5v`&p^sVz^HdUIsVOe(L>mdkucXKOiXB|=ntdcw;pfE|=tWqSa<>_10v!+o zVZBE-+mpDi`-L0m%MHX7=)iw$FJ3WFs;biXPTK%sQEeOGKH#_~6$2hDpwh)`%GQxO zPqB=lesxGhKi;fr&SK5DXLw_oX4~?aCL?SPZEo%*5ETT!lw(ev{sFt0=Mm3Be@l+~ z?9ZVo?olvFS;t%|uwM={PMVQMR7Bs-0^xz&AaTts62+-E69vd|3eIF?wyFRJ_fkhY zK7hb{^@8Fe@@H3hzq>=uQKyWgFdMF?^R5@MSbJH#IDnO-z%+0{>%>TeIma#er&ooh^RUPmkxSQ)aBCKda=Lz+lLD3~vr2w+|Y!nbo~s%yyct zmd&!VDdgQeG?$b^QtfS<(;;w?u$}qhm&D@=Y8A;25Q_#G{TB|oWB;@bXFen6C>OixtmoZBx*j2ym@lW8_iWEYsW)H(iDFV}xPkHDXZIz!H)I6- zYXjj61U!SN^f+7;_}n0u5YC>I$+ihsiZ)_F`TB+R@R&+lK1Jg7e>`y)mQT*fif7+5 zo2xweYa+#t0KZR!>$vv!zE6LqRPr0Z-r3h5(0G|C#EyWlFJ7iPU!EdJFg-df4jSKG z*UHwmr~i#v*?@Q=G)fnZkKX#rVNp*Y%cb4rNG@Xx?6NjtZBc|fdyO=+4fdODD>g}gq}Q#`thLA~`S1JT)A?N6A9f}+Tg{KoGK z|KXkxrfk)Tk2kZ1&iaN)UQE6m45-LNb}l-#C%DWg6zq!lJ>)_@FVVqg>=o^~LHDI* z7~}t}N!eyRhxa)--iu{k4I}6j*m1yxC7ZGNull-8HIW}L&(W+Q9n23SFMB?W< z>CY$SpJwaAgmlaOhx#j+-fH}aR~>OE>SZPT?hid!%q@`8u^dd(`We{*yM#HiiVHl; z<1R+|+!TM5!z><%CmZaZOB^E;W{}ekHc*qj(H_gnG&|dUHfAN9O&H4&snEBOoBpOZ zXTrq2x40a!hzv6`m@P@e()KG(xY<<`nySVkPkd{^C~ok9?ikN>(ywFot=)g#i!s#~ zQ)A`DM=W!;o%eD`+}Y`OJu4dg4Ua2xZrKGl7-S;J7(@Dm$zqK!q2^_nt-Gr zf5WkyB!g{G?n2oxIdWgpoz)SRKvHM(nMBrs$`Y4-1c+u829<-Y?W@Zb8ABFWi!i&0 zR7F`ArA|w%Yd@Q=52lsPaQPNxRpeI7G^PYVD;~eh9CF#mhfxeHZ>Cd_V$nEU#U~V$)I7g`;CioKEu6{p#lSImHJd3 zVH*XE%m{ACUi_lXuhw;twKpkl@OEP86L8FMhB`}rw`I}tzadWNZ{k3 zH7V)bh&hr21@{#)_hrA+vOIX&-$oYdDq5{Cx>L^IKQ+HO#8U}JI$c>jtsvy7ASr*Qq8bNVzO1Sr29O)yrA(bI!{NXl@j?sWYzYf%*s<;UFdR@@&=mp7mqu zNjpL?y<6D=gOqQbiLhYi7};dVN8et&-jlHLV<4{RPfg^9DMK4xVr4FSUP;zJ!YQ5i zkM)=RKvXwdjAF@lTP9~Ole1nA3$`zxVaR5#?I`f=7cqQRh%A7M+(&5)6VE|c#2K&b z78|_jSaVCJo5Gznr2&9w(e9vy(ifZ~-cfj~LMFwYUzq)9LPr7(1PPz%b0#aiPwds= zv%e6aal}k4L=^A9q5B({J$`ZjnyOEkV`bp9+-fBoLH>LiF?+@i(TY}f%&_0w{70?* zZ{zm~S?J%FLLekw?9EfYu)R(2<=M`jjrar9LpqFzS8V(`!Z<0=LH4Pf))S|V=S`(% z!Pw%=9;hR1X5emr|LJn~?E9hqvb}?Goftf;fU|bJM@Licup@1@>PW=^rSwu9w+gYX z3sOQjpZHP7KXo+TGk@>}e`7B>!PGGr4u(NHwSi*(PU5yFqLE^ZWHIP3bT%x`KZxWz zG>)b+B8lBmnMAd)_-L4SFJTm#h#5zDoRG#NP{crNCx3v!;KLOXp#UukIL`fM=-;NJzjn*yiW{w8F%$ z-C8%3Nf?K9KEIP5%PT5ee4x!bG?#Jj*9JT_gaVLNK_@e;tdar+h;BIvSxj_KwcP$X zm1XCITAjrWhf{Bls%Ppzw$x(}Jj1K^Qvf7-6rcV3{Dbzym{@5Y80B2 z#NULRy}pC(xh<(gKG=%D2Sgocpn1(Uh!X?NK0|&~;iE&HSi#-*>xT!^v>n}U zXqmql0eP^BLJmI{9R)eg0%QQ^xLB|OUpy`J-fI3NwbL*K3`alQvr$J>r??+d0fgJj zHtAd6jACwHJzSGsFOvCzJ{+^vHOmKL*@-Ue@cY zUr9O&foh#zRD-9cT&*GxKq}L8azU6u_~|R_Zm8JAw)mClfFv(kCI;-F66K=;S-!gV z(kDzWm1?oJnW>#L2|6tO0d7S<0xgtBj%CUU#WlyfaNW@hytUw0diRv$3o- zR7Iz0>dk#jwoD~!rWGyyXH4i6B9k!dC~C=&owX0hK2nEOp+p6oy+xFjo}{^De}5WX zo^Po70(rTO_E3i~j2-BAyqu-kY0R@R1|xA(Yy}5&Hco zG?kq*nK;~YK~J6&k@mysy~>DS2Wovis-2aqWPOl7@1_bVRcH&v_*R7w1GAsbns|wj zwf+@)y7xg2?9Guehe*S9yO6};$xOjyLUP)@?dJfSD>jyI#or00x+B?U*tv%fHrbsW zN|z(9J2~_aeYD>{!LqCMzMaI7*rsXC#m1l&%gj`hx^Y~+H?2&xy&E44?G>J*W%1W$ zS5KSLufs?hu4SNf%~4k9)P6Uquv~E|MKsE&0S>om&ASQw{17w=XQ*ks^jl>uMArA( zfrsG)89`-!4t0kDf`~D^fD$BvSuS2&Un&i5%}0;DcNs}mMDA^fCXod}Db9+&#|Z#xMP z2Xo2Iwp16-*Zbetat3`7kZ|Hx>W;vwgL$khcrQR6H-!EhraGb}oSvqxiyI(>5i`c< z-<~(+a)IPeyQ-k3wtK{V;?f68gj1f`v0d9w+!Ki&vzZ!MkHa&_jU&sUl7bZ`;tqXu zIblT&O$`o9DxlxC&c4FcBqwH|NrLpta?_{b#o$*hZm^@>nzH||+@`)^J9)Y0CccdV4o!YA5XL$ zNy5X3OYW;Y@m)43Z~tU)dq=lZI8O4W4H%kmyeY_NRIh8l~cje;)^>RIeh+dBweIIcF#l!Vzu? z(|ApS%V6sZVK%|l`@Li{frcI|>#;-H#VGEmE897jipBcWaoWc$ml{CdB zvaCB!lubDJytct2O0{4^B z>Z+xh(a3n(j{?<2uwemu8;LMhEq?E)VD*TD9?Ni(YN>skYU;8kM*PR22!VYM>$e!* zn7TC@TK%X(C5)-Gbs@J<3B+9wZolMQ@8l;XKA6Lz;-f&jyCeVorbiGR$pE&vwYF?()&=df&7mRb*fvvk@{J+3L;!78Wgkk!1HQ-Wil=5kd zU{a#)9lDs&)EY0{9S29^pWq43!OXxQ!)d3w&am{F#hzrOcU26=(f6pQ>mi+PIQ%P} z=Prw1Kp!DT{2PxeO9roOx}a^bH+}p?sq&@@ld5X_4mxHP#5HH-0+tizkI9@1NQ1ic z+ik6*<(-FdYzSmWKu&JhP;bb#_e253XQysN!-ky^5v%TA5vj$o|KXdE;p&xnBRpM} z$x*(z^)`Pu=U8y_!=%SoPcgjG^3J-!QH@!-sCh*BQoIjHjQ_3s2!+yeaInI ziSl!O?zLN-wjdmOW73sgw9VUNSV|b_Eb=}=JBvg+=9ui4>*1hUZcMNio*+3|^68(N z{){kvbdv1DM1iN~ewV?}vr!D}y+vm7VKXZ{{+R9&qOgz--HJL*{cJwP(%#eakyyLO z|BOZ@g7bjCNAA#`!3*?vpbQdRRU~V>NwW&yPLr46=A=AYY z1Lau;YpeYXi4Hik>_`1_k9M5S9=jnM=8)&>rbCKa(uKP(R;)CiR#XDl6#SzPv$)JUp;LrC3zT4U$L!4MDpa$u!5Tr&Uhd zJOUxoFm2^sKr7SL1xX{2kt7e%b0VfU z7c3`AehfMD=zL;`klL|>AcdUUYVAgr^M3nqeAk`jkFhh*5Fseub>k6)$tox4h!NTK zpK{dyT$aN?#3;JjMX{DrrKNJ?@@J8NOM%$f>P01ro_jw+k7S#i`V^Ta9S2+8+cG2u zF6JC-zK6Yyn*2Z$p6V#PhgpG%6}O0}rUrXWj*?w~_e$*-XK!EsktK(m)YCf}ZR+(B+drgCt}mJ9U}@E9v6*%8_N zw<{!8jv^KDt4Ps9oQ2MEnKtnB;`fK}=>y9Ywool3AuAbni!5Sy;BEa!X6Vl4M7ezf z`8MnAkc-A?y`g+>w$)>*7N>>QMSBzuu1-EEfOAbF!NSeV-5<@dF2}Nfpa-i;WG(>! zCfEi6?->Vh5tEUjl!YTmo8*ZurebdQUmrP1Vkj)~lc`t{8R(g+EEKwh@}$)$CU_8| z*qd)PHg$<6}s!g$&wxQjwIyvVQinPtIqj$c{st?rg2kas)nS)jhf2 zWvI$cJ)$ilgCECLWhr%<7*os)Q)IV<){c%DI@k-L&e{R^9aYR+S~ajy)@qD&wJuNj zL6r`N#<-5-BZ{_R;Q2&_&_2r+tc8MaY#c9kq$IiI$7I&V*Smy8K}*?~`w`fW?*b`r zgQUTrjhb&NX31Ge3>DvH#u-R}p<2Qt>$~ajG~e0&zQBK_(*K)8`jf*obk6V;SV^PC9_P}1wtI+y@tj$z z#FgM)`ObGmUVZ10PzqGRa0a`cm{sIVl%`-KfmDxwrN#@mNF3eeFUT!EmNz2UMNHCN zTxT_vvmoq7dzm>lulkEzvc+GN#g@bLv-(d&J5~+F4WD>>L`^rcgGKKEV|LkTxsdf^ zigNs&fJZcRIl(}Th1Z*Ex%=o}ud z5+P5^aKB44CM1SYqKjwCEFX?ek8%B6=>Vg{BafnMNVd9s@S}U{tXgeYuyttmMU9HS ztXa3@8Jq#$1EkhNj$BnvJV{Cq0Zi!x9&f{j5Ayx@BdF4G?$geC1sBWDbug%hujtKc z-o6EQ^@cSY?J#`Ery^ZPOeblr`|?y<--mmK9cS6ViD!vLrZ^nXk)V(|yc>11);Qycc`~Mi#H4FR-##}~9 zpe;2fM$Nc$SGKOb>JrzA5Ha8x2YJ+HaoS@8Wz?}!XNkI5@d4{2QZ@SMAv*utf*p|= zhhSd+n7?>T^6jQr`RSmbbI_XxX^uNsJZ5{J? z$$AS?8z&I2lkM9a97^cZ@-Zb^2T7ko_P9lBi7}m(@a>fnhzW>lVWn#$O~0BbAZEW{ zZ`$yit1Lvr=cyDru|Jq_Syaep>!}RXRUJd+ z3K!Jz#wN(<&3<;&W+Ro zvU71hYOz+zQ|?}(L6?S1CWf7I+|cq#*Ro>QsBH)S7* z?$pkPCc|!O{v&&R{zO5d^KjtHD`TJ(MKCg=LdR^-hq8yq3*psGT2PV!>i<2k-0Q$g z;bdm7l%tBxV&5=!`D)w<(xUBVmqvGo_60( zpsgOsbs!_K&!A$YbM>?I2i3SzGSmftsj2Y3;&ZY#2HHCaSF%NlIwSjzR2j)(!X4U< zoBghS4%?1KZ&|iBz@`Q7Zyg$&x?`vBoq&()mXTT{8yscw+}K;0Ga8R#GW>)O2j7K} z0K*H@_A!){b`1v`eq#_5wbek;!e&v1BaPgYCfa8{247nfx zYTZhL^!BekE#uj@ruQ~5_i)<#;R`hqL4k84LS2X#^-JAX+*H?E=MN>kD#^mn4XzJG zYLvGB?NXE_x)(d{rIHp6dxQG#q(xW*Gp}dc=Xe7tiEFHn_Wmx0SM^BoUwyTaNs~xE zrIHaFo-_R6Yt-SsK&TZ@ZpVjO4bxTB^*4o-n*^|q``u&#msr}#Ffp0aR>8wNM;j23 zE9t9eU=NoNs4zk6N~7{@h|+Y8dQxFXk4Qt;o`Gl9;sp{`YJC*0?9=3CrpO)H(s@@^ zR9$oyMIxo&xm_L68anNMdTQ@CUOv)BWC&a(IPvz}z?JSWjjMH#u8Ag*lKPFkwIOIY zCKDjYQ1$xPuPsTx5pD1da?0jUoZ|nQ_MYXTdBE0%f|x`KLK+viB59J-RmY1ln;Wk3XcYO8ABWvsX4L)(~cVYwr9ymk9=9w+#k4 z-(#Jg&(g4--PryxG`StE>?0a@vMz^=A8^^B^bpV6>L`!9mHHq3jLnUw zZg1l1qrjN&NfU8}a%TFcrS}<31d@u^w1>voaZGTSi(O5kyc4O+k&DYn1P?Ych^tv7 zw)IgoT>|)6(rnw%Uiy;>hOD$jUBV^E))BskPB=n$l!YHaLdn(VF z<){aA=&Fn))1aAKKM1s2Vr}~BkOC8;Rh$SK)uMh?24vXv5wxhkPn#T0V&t}N<;wu% z{fyT9CqW<%9TgXf9vY@Wm6W*4Sz6p`wOLUA##$zA>W>L6^X-zBm)@fwZJlN~S7uCw zFyS9_6~{h)oiLJlvvFuG<;pb4!5B9}3-u!!|Lu1&?YVVY_*S9wN@DD;m4#LD@vcMD z4+G}@)Li$VGR@(({B>@uWq9b*`&Ju^+!RchY4b-^!CYn7U&m_MHpc94eQgPw4nAq` zlLfa!+yW(AKg-n*HY#PE(NwqVbWrb|3$47}fe&oP*1+vf)fidRZ%&&S)8@in>_(gN zbGgept$FYKR%D(8AzZsz_TFmfpM~htf=)-H1I$yr}e0LPBZ(-&b$+QwW)9 z!>X*J*bSWBdniq#X@^%b%AzpHGEWuEHEi#jp-09x7n&6&vE-Iyy_;CdPP+K z!_WZT4a+Qz=d9SqJ3n{dk;fEL4dS1}+3yXt>6RrL?nZTb$(qy~Kka{`^(M9|*#^4Q z4%PzIY#x-9Qi`t25)1jLj{n^hLy5d=<{&-@*AGuJd->rrX&6R0+F4e>--b)xL%zR4 ztRl-h=DuI^n4CV}x$fEV|8ioGIDXUuAm`KMYQUdR=i5J?y zmjrGRM;f)aB1&)6xaGS|vG%lwsF?V!m)Y%G>rVI^rL=Y;h9EnpsOZiRj|Xo0w%x`~ zyEa8&xzMNN-qe&({{NOHtiFTi3G8^$MSE9$Db6%%&Ra55UT4i?#+R z?4}!XpXMQODxBp%Q2`HTXletmA#Q`OAmUEo4+%~$Q!Y(PCmlwO*yCQDw@sC|Z$?#a zCFTyP(;753SbNKe#JriHcq3lJRJ*TmlqZpQp27#0fd8TcnG%Iml0@H*YaAA;?aufy z0v`GWmVJBaM)VgQi4&DI_{5s0IG4U(wW3r6VEb4I@+;IJhk3_%0^pAYj@X8cVU^|k z%G)&hvkT+p1ZOSW*PiKzEM{u2FaEzD@P9vbGe=2`)cDDe2XvU*Ks6RV>2$Ic&$F~E zB~`EQJ$Q)_KP*RlB@i@X)2Reh(v-n$-BKIK`U27BRhj0anFJg;%yBU~5V6(kog9P?2M1 z#e*{5htZW%@{$wE3ID(6`k%v!hIS+Q>xI#rKdBP;vdzC{FaHkw>KiAKO$`riVzrkt zrgN0lA>9A&=j-fyC`$5-Q3*)&sf6$S0GLU1Q`D2{A)(X+Xf4)(~TfSyN{#T`}`?R7aFjz&= zxBwLdc1s)DPbntp$~s^oYf~^5SLWWLDSo1I;NB{H9PMr(tmBhX!TH>wT9ead28pEL z4T_gdei7t-7hiWLCt8!4TMkn@$!K?(#c-2?ysekzs_<7M&zf1iT1oK(UG=P)vIh#T9#y?|W_Uf`_&t`JJa;?? zeCph$s>v|1bE*>FA;TyKSX`ZJ>QsD5iB=vyME`ZPn@m!i%FT#(m3_ZNQyoDRsJbA=L%*!y&$Y7UfR))1&c=$OCp` zqZn~x3ix~V6p2CXlL-HNN;slXu@m%W&Mf5r#7`~$;Brp_K{Sa@V!)=wx1OtpAFt1As{pl$9##VMrkioH#CNM zqrShLIsMDDj_3NI@DgZv6vMi<$W_K-%DrFamyvc+f!}3J;MU0y@8`=CX44Tsgw<$j z=@_0}eShJMR21t&e{g0S{`&5`_3mc!)nR#ULGH%JqBgk z4y+s1@-afeOXpA;RcqeKzZNjIkot!kahwr`@qR^*ev}*Duv=%mC@88@%DtATIQFU3 z|EbpVSUA?RN*MSOw@XuGKP7vY)LHOJy0J|%ulB@0@ZCP_jLI(obmcQU{scn}#5y!V z;xW0}dEpWP<1bZzZA#rbiL%RM<-L{yhP_UbwSS$|C282Vus?4N-WUhrRbil z^OW^o30+_Hlpr-$qw*1Qb`BYCxufz$u2^C5yA`mQMBX)|je~~03iW_YjAg$;Lx}`A-Dy1XhN{y z!QI`VvEc6Bc;imv?s7ZtKIiOv?%m%Q-|zZSRcqCHYOXb(IcJKaVAI(hcLj0;P-E1y zP)?O|r>^pcW?#dH`5$4D#-Y*=60`2l{C4z5m+I_j%b(xO@40bi_zL(oygs~qTEWxb zd?XOtrOWDhZL5K*RlfFxbGLkhD< z)XH}k%H>$>7OYF_RKbXJQ?BzV9OO7!S--^aQ5x5I+gN{?v~z)!MrvA5HO4&Li<4t} zQ4dWcnx_Bg8DI5C^3H9XzL0~LfRU=~jaKfvVS~Pc0iBi{*!%gAnX6{_jsltnk*sg` zlFwV`_Cw@jIBvsY5MUlrYZEbJ+?x4WI(&VmH$TG4j!smKi z^+rI`66F;X++ani}>f1aUu3u!GEBZ9;ZuPDg$kkyZu2 z|E-)|S4ZjM>}*q&ctVCEA7`(1R7VYd<*_$n%(B)}RrTA<+yI1r4H?j=0flXHuizrPPeb0lFE(2a>m!wM5k$lqbIjd_Fc1MM%=l z{nT3hw!_})u>qpv9UC$2JL;JiF-t;|8}S+upQ>?2HKK=O7{YSL#ZppO%KiQ@lYlOX z%G>P$=|?Lm?d$K?-NpkaKHp=fA2jZET-|WTCAnSYdORJE75c2`R5fN6CG|J~vy#TL z+Nn9r*O&#h>aH&(bH2J8cPAurn=p%~U_%;?w&G7e?P_|mU%180Zq~0@mdg~pi6P4X zEZTp5rZi+#ROael`%tLD^7673$XwUmW6db!mcKci60V(nFEx{OtQeNF^LR%db&2H@vFF{v&{cT8Sc1qU&k1>f1h|*#i%}pC$%e+k+(VK^-A=vkD@$YT1ge zik+damtE=>ZL|3K8zfEh>tdQe%)j_M=2~hO=Hs$#wa+oKbZQC8Pe=pF+piDi@3H;^ zikT+Q!qc!Fsj^Z$I`VQOR^=(P%3K7vwttjThhY)tpN9h`)fD7;y-Je^#)0weKP9`F z@a+&jDbWE1gJ&YiY_yOaQ`3f`Cr#;B19Na{%{IC@XZpj2ssU$9AFPw?)SFJ z8tEF<>Jq{)E|Y(P!uyS4y3e%Fn8o=z)l&S86NM=@AByEMJ*_HRILZDc8~@+;P)E4- zY-dYAC=)78Jbo+IY2XWYL%e5=h7}_3no>2X@S5_ShF{0C_>U`Bg2tWi-ld~n82C?R z-@dtDWT@K%<1sCQoM<6gmFEQ5rvE8`*A2PnUFq_AJ+q1t&Dz{MiXMYkS!Y4NU5vKT z3ncNo-6C-seYts0^!l>i{e9D~Zpb!;hJrx1B?@)exE~Vx^)(c`G6VAdx%%&!_}8ew z4vM{&4Pg*tNAO|ok&$c-Jp-*^Og77qbObS!4~)r-WcV#1KF!BPUuyBJsM|I8OP_Yl z#+GR<);Pr-dJQs2WR3F6*TPk!J9@fLJ~fw)I-fkhv4^rHCZ2h+_q3EXclW9~P$3D= zIlAy+{G*5XKh0D}X~17_eqQ(l8mri-_E=czIE(@l%43&W8*Eg{s#?Dp zyc;`Jg{5xmIeyhUR;M>u&9;C#`*wii(Z%D}FN*i>>X=1OR$SdiH7DB(m)5;*c80oV zqcbYDeYQ1AH>$TfwnhiYhJHl~daa~W#zB-Lg8p=&Grt|Z1r;!HV9QbYrJw)*#RUC( zvSE^$Kk`o!cO3LSJY^|?Hm6St@9j6uZFd4R<@4&Q7nkk&T$-K7@$BG%01v@Ji!a2; zhl&V~UUa@s0Um!6L){C{oERgf`tCg5&+n}{+GGZcP5hO3{eS1=ze_?39dd11d3oR) zsJaJ)S(}%YI?>R8ojLI}4fCu@*ZlDC-mv7Jz)5IQTG_7}$~);qbMtDRuR=VU#bF&m z=?tIbrL+=9s7k|fQ$YyYvq7c=;jlvb%I{or(@+(C(+<6O*^Z6}C~+F1XzUX@HK7G(Wvr1SIpc@pGlpoF(xFOr7p4>?Oi zWBC!{cE-@Xe9+OUE14ssO7qtMijL9WcnYY zLZydt2emn?u{!zQ&kG}Oos6{CpMUxjHPlf?_pyPlJ@MDt$*hHbe1!h1qblvMz>j~A zJ75L>lyhhpJ@4G5)g7ZWe%vKA(|VJ;nfZc#w-wJP;D5!-fykiJQ#v$Gn> z>Q^ncrHN>%G>ZQ`e; zKwLtJ^fZ*bLo=?u^l`Kv(jc$&Y=9*jz^lxrk4GcKE37B{`)iHegr%Dkkn1Mh!9n}I zi(t8W;xc`Fv8XE3#MpfM`x%|;S}Py|ol$8mUTO( z^cOUS{1_M)54Vwo(SO;F|5`B}!@pkH5~D)^Q6$0&ikU+4005x4xtX7c&za`x=BDua z+BM8K509x#E2Lrpd&DTQ?yZzpL5i+YYI)p!BV9L8w$n47WxPb{ix zOzk^o2^!%A&kH}B_+c1P7}ej$`` vj|9kcd_2gY^1UmMW_;SdQwyJUV8LXa^w4x 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

    dB!`WQxj(_53i>NKYi@seK*ao>359QT2+4j%Y za2sONz_N@e9I)<^hM&ACNe&3CgJrMkla((9NO;RiZkCqvflel~KtEoCtcrh=?#zOU zlSPBc6SXVvRK5f``f2&9s{s*T?tW2LgWxMM62TtctuE94y)i{>C7{`E@9J~vjD@P4 z1?4H$goCmeQe1`ChA8!=DBq%f(!0)&9gJr3F3*dLSo&XFJS4c*3g}oUB7qG;L?3H7 zc+Zsp#@~D{WtbFm;2Ora=4<$*sV@S{HZPVhVBzd5b45O>E{rrdR5)&qIOupUQCn)? zi(xNrzux#A5o$k__|y8mB@h3^Ga9hWn~E&^FOJ2FK-hPqGUI9zU%mphZTdUo@%jKv zsB_ZG&Cl%`jMr^hVmDXDceSoXxSQ5-pHn0H^4MG__9w|ebTIXTHmO>^npb*)(@e_G zGqPU49LYEd|1~=|@(iTVkPj}572 zpNy5VWFSIKahtT3*ktaL_=*-*oAdCPS~V9m=A@OZsR0&$k@)p*=III2jlMWCi9v3b zsr`~UT9zzQ*3-Ok$8LZ^OC-(PTAh};&$o#v7lrnss`5g-69!mVZ2_g-VO@9|O0mW) zYy5bOmoUu9K0=_~IHA4~OrMx6;xySPm2tq5y`8h9Lp7^*on^jVa?=Ez4nAPi?%7@W z<~_xU7%3d@%?-EJ%E&a<-DCFwPPUiE)x!fOc##EbicFN_m5AOFdhK-(cvrXP5 zt+gFZUT?5(`kWos&_w)Zuwn2eE|*6?!;^d^vj=z88@acz#mHs`Zae(hybr=e^#j?Fi`q4rl76i5Fw1rXPfm`Gevg&^UsSziR2*FwtqUPQ z2o{`1gF|q43&9;i^fAmU-WczqK+Wn}Qzfc_dd87AjP+;I%;A_ab z?;2x&;90b>_rhyMA}bv9+`(M(45xhVmDBXx+}xyywh&oDmVG^BOr#5yu*m5NpyHbI%;_`#R1o7})Oc zx-Cu%w98-oumU+xi1ZFFSJWLZDn0?2Ic3`Y@9G0yIUHRAk!K4JC*3FJTm!M~t>-Pw z@y-5upQYcYLoc{*M5<}Af_9Q^FFMI&0e1Ub?0qu^GHx=l_5l9tJvpp_{L_)`iGBI> zi-CMYtWmG&Z9}xzT;v?e#!PJYOumbu8>Qs@(Hk;Zy%i&o5!?R_BaQzHiwF>1G0OVd zDr^SlF=M=n_q6sOcU;e{jV!mlDu}gPiTHOrg(%FmP>2Qn_xFkuZJPz0aI{|wM60gl z%76hBwX4@Jv8-$gWEC0^mdA$OtLVs5h>&QM-lSRM9h_qpj({xd!*^f!UG(Mu6t%!;7@;LuR0{GA)^ix%a9 zyPN-<q=*#48v5O14A+%! zA*p2WlsMnp2D(IjDrcO{`--O|`c&<>&|lZimLd96h?4Z*yaY}8>8FtQsgkDxR*XYz z>lu&>{<5RFKNTo64Rbg9mil^&jm1l&It?T<29Xj|)XwEOw!0rz zlkXqZ9Z~2K{t9dL*bFD1<`ZQ%mX!9l6ox`BS(urU9>mHkb=BF{4E zIgGW0f8V~dlOoG$=$N{+0oO|)!w$YaqtEWv13Ov~_h3v=H>?uWF7t@NBow&t>zAjL ze)*c#gTRCHT}CJy?XOU!gl~YAEOOnM?W7YGHp53}y zABNp>FE@j#j&@C;J=!JvYEB~ZQb(*Z`|{-o}z(16$pIAC*=AC?_dHE`905-JniOJFaCb4 zNHJ6NyxJi@ockU_bI_ees0|Be*J*&5C+n%~R*I%1Ip}T+luPB5h8lt!P&cFdZn8jo zqGnVBXXa4PgRR=Y_F3^MBG$v3wvuNbJF_LeCSI$E+guV+yC;=CrK#@(r>kY9$3?)Vw17^>~M&xW-ytLUIwM0d<}LAkt3`#*w>O zP7YEAIh3j7o)bVEmSxEl7_Lumq@~ZjM)gRUndq0^2^C1fJzhz+!mmt^84U|#{E}N$ zvAf>{Do!0|;s5dHTAk*RJ|+7#O-5w{d0?O*rvRZYOu)a-1^gl?1#T#?_u?*@{9ZOK1;Io_?xz!*s(HFSZv)2T1s+){ z?qM~7+vcMpfpl@wWr9KJevy3X`R@P35=IjT+gBFpvkj4b{rt$&4U7(ATw{2)q$sxU zd+=mChqGHm!oyLCO#i#fjl2IQNv~F`-rZ`?G%W1k^`y5y(;Y=>C%W3~G;OjPHG(vm z#l!u=g{a(h@Ndd==hZ~filQ$XWysI?-hUTrEzHRp4E{MCdH#P&#{u4F&gdY-`* z3v_+{jv1r6pt>e#Jtoyz9o)t&xjtxYkW^43ZQUSuij?)qq4c4zc+{yP1%rzg-#Crh zN%#8(uRTbwndwOTQLS%ErGJdYap^?7n~JIy-$lo7Om)!(BnV@H-@885zw*B({(T>?eycd@X&Ng!ox8YOk|WKEAdSey;D{Nu-sE<~n8by*dsDm!=w3I*5cFYsn*hjkwp;pY0 zT!GjZ>c>s)N7e$Qt%qKd9#R3LgGAM~TxXMO0>XAR?&Ng(?PcJn<7H8~!fMFzL9To|JKe3HQ+{HqWja3N;q`;!4ahWbAnTA13|0pZ zpU2?;3n5V=N*!BzR9HR3Pe&P>)~dt=HAZN#8Mb=J>bH(9CPCcvbFyK-%h%R24b>l9 zK7$n7>EGMkIL03SsbsEpw@WDs<-0fsKV0AM;XL$`)-0hhRTF-#uH-*i0@n%8t#EFP z-19M25qeNScUQum@Db&Q-b03?y&Z(wIe~*ewDLh7 ztd(Q!<=02zufbyth(tVSD{0%+iymkBlkfrS*)EUKB@4Zgd;lv}hNgZyq=V_v`kzHS zzK9+ZN2M1WJKwO8)T_)QtYSE|YBR&YDEaeAtXtX9<(|B*F>Ie)S1rHJLD8P{fWaDM zrIK6?L(C>pNk0*3WM?;kjSLe!VP%zo9Bt};x8#Zj4h1?p&dM~Y^%<*=fJrQt&0f%K zlL^A5Dd(W*2Mj+OO9y}AJ1PBI*fCeRfH^WnRf}dcsdjhlB>y600)p&UecSYpPKSQ6 z?yYutUIZJq_$x9C?ymZR6yFa=H&ZUer>##4>LATcu~`<4<3H?0A0Eh3EPkfi3SX5*E82TLj3YhRxeXszJ||zyI;{+N%x$he?(qtj+-Uo9 zq#8ffJZoSdr0lw!hx?7c<8ZP1JoY=s1wYw6l<2?29>YlK>+MK^38jIH(466*yeg@P z{74_qj*y(7u%yb$%25IX2l1gV`5d8$?*M8>iDIgMyYCN}*SivK^Islc#rmn6TqpkV z!$C6C|ECXU`IcDrcAtgc4SNA$z zIdjtpU`YOq*8i6tvMCiTLqaHnGf_mx^0-L%t;0n}qw^IuAeLuAF?gGFgi!uUh7Tb) z(971lb_Jgk%zcTLMj-y00pnye`$=bR2py96^BT-SmmD zs<%IqaVwsTMsjv`_=JlH{y{@T=>hqM?XJdeR{U_YAPZ6WN<(IgacJ^+(f?)>@t^E1 zofQDOFj3BK)1WqYX!UEzBjlP-n3s!%%BGX0gb;T3`0}sw#*I$ibr&$HNA&Hpe2N{| z&nk;s*jyCK%XaiK!<0*2SIn}ZPcZ@%P|H{kDt0siON}ImT^#q7h z?4NA=4WZr{5qyh6IJdM2jfjY_4wnt}`!Q&$9$UdX-WPUu@La6R^u^;k*{T^^;Y_4> zk;qtKxTENz_#P!3Ht89mJLRiwt*|;(Z@i`*j2j4!P_hw8HvWrU#Re`!$VSIfcPWjo;6D?-$eAa?=ad{74k30`*77tqFmB zDOQ(?*5#~?F)Id$N&GGw1+EgQOeghi;Sx~BZ@p1kY4gVu;i{GiUA_-_z{8k`#6%p> z!y=Aj!-&i>H%4PU<}WKpCPZe3>UAGlseZGJuZCH~+PlUhx5s(ar(gS`VRC~_VS6PI zz2aw4Eki%*V&(NAwG088;#d?sehY-I>S*vsJ!Chj@C4PG6)fYmmg3Y3z1EV{40JBX zm8pMi#sTL(d&z~n1`$BbiZ@1yWWJwhdeDX|(^bheWjh%#Y%Pg$t+z;Ur^&w4UJQJ@ zwfAIAwbX57V`B?5f?ae~CpzmR#7A%fn!~@QQ4GTXXI@Io#)H3`9YrTT#jCon&B6|Es=&gPPGD&i zW-OIF*fcji<7uF`N6NrS9XNX6Q{SzlZm%LKXCcU>J2&9Ny`>1brk}qOa~41C=!v{h zP@w)UmTl>|{il;(z+ZKrD&&`mjMVj?TD|Y(WS|$;vQlNh3zxOI&InETuAchb>V+q< zCTZaAa1K3(KU-dWDEA;t%-(NlFg_bvg^{D#aA7Cjq+EajBrX76iGqKD%#i2y@wi$J zmRs2ZUo`gFa{=>Pk!+yk@|!Pr9d9(0{Io*}0;?rxwPmq5_GC&fbh+v7_y3l)Fnig?Lmvvd`f1@pYMyVzpGc3N~SSM~PLC$&p7E-&@54TkB6!NaF%Uxg3<2 zhw^7>CE|j6%JnVC&Bs98NU6$Jcr5xzW*L8pqordBIK{yB5bjl5(#=F-Z4%W4+2o@} zx93Nn!*~}$rT})N=n#yH-TXo{=m%%wYys@lF3JJ&7$xGsJz=xk!UcITcP1e?VPJU8ybTl4q%%1oC9rR?q?KbH4tqc6Q|O9^!#XeyMk zu~5nl;ZFZtW0ik%?O>zNNG?|%!g8Xx=&7Z!J-;qsss949(YtUZQ@<$U&^v8>SpS=T0&+*lnuqRtlmqb_LAUEGfp$zhkB`oQh{SW2t&6?u`Ru) z&#lWp%+EH!ACo-5-}R>zY8#dyXYD6l1ZzT5I6tMY*~Quc&zsuD;p>6V9^N1gW(5l+ zzXAeE?EF9B-NaKs3!;gz#I-qRxQ3#4$x#=IrNE|K-WDz@7BA{;c=@+Q^3+2uFh(o0 z<~THa|C@X7zQ8ZxOF zkdvNjsaFZ$Z#+QB?0=uvm3QrI@P2{4+5p|FEX~3Jt58*Vezn8PnAsBu9o8)7isFx0 z_jlnpc)so;tnv(}d^~0EbM|Tg>Q;xT0FGa_&(q=2_FkV~(Foxf3yR8mQ`9Z!OF~x+ zlpQ!K*tYGe=bFJBS>`!R!t9JxNu=L3yNyH0#siY5{M`i})3J@FGWEycq#)kg=yhYv z?x)Rs=u@U8z|w-OU6eUwar+c{67)gL`=kg%CdAWd?Ie)DBDmKYo;*6=$6V7{T(4j= z+!HKssl_!Bt8yBxWfz^4DMY067+tA8Z>hHb?-ar|)SAn+Q+FV@xUa2pV}n0M zE(k6l0F?f0;)PeS#NjchL}(k&NkWsH&=qUK0pN-BxnQW2 zDBN#7fHfwn%aWi#*_t>nXkTNGlI;BxR}Qaz|5WFGtn=o}12$l)k=oM{Xf5Xvo=&f7 zuh=6vyw!BNQ^_7NKXGkuCXu~$H{+~`q6{e(733sY^Lfevi-~z0G&{MX=BM=8B4u4Zd4ykZd5anxVWeA<36-)^t@~c3o*u}#wTvBb^s+?V7#gm^ zSDTG7i5LKlk=XYF;xG61XU-~*;y7I|Pul-j>hznNs1=#Lg6=9`Wa0Q|)kFT}1a6jMw!hT=RO0Vr-Tw!bHfU9_$4k09PErUdXq@x*U&DmMz$b3mOphp} zfrp?w;Xssa3KTJZgI0}TL{SASD_9chDOuduoi@gOruwJ^g%qK}`;-rV>@0U2Jk|&k z0&!7sQH{K@KDs6F4gt~yhbS!wU6CWEaZ#(93ZtyK;s^CD?giV(YOyw^SdBg{;`~J* zHxi6wY_D=Ez@|39fI*2;kUGr68-se0peERkKH~hC*9V!k6zsmhKH4=@A?F;me-%>=&2E-3&Wqc zUO#^O%8G=3VmA(4PSZ#&dE(q}=BY2jCmrTbQZ^sSLZ-I1O135Q6JW+APwm|g!lRo5 zv7~V0=WXLZ3ERvNog-;uLL{7h@uy48(fnsx*L(t<$(_pX1>gIpn{|F9k|UJ653;@y zy{eg<9Z!FWx;gy+n=%4AyB^O+PtOJ^NwIt5)zJkoe5zj&3 z(_ztK@x&qF1`T)0k)6tngt1JJb;XesD`NiL+A4sIP4jsyou4cpHY|--(5-Yp^V;=V z8-HGK%?`xc1Mh}T&A~d}6%ArmO>Jd#A}RG}i79=%<2mS38ei5Dzn^qD$HZZT594K# zi%nAZ*TiLLn2VNY-Vj$25?YlY%xyqt6I{XtN7zylegxvZSiI^Gx%E9)VKG?lY}WDE z;pr;zHl)Q?+_<^K|FF_8A2U-xhosCJ_u$aD<2Yw4R}ndFB1ij|jWX@m0C)*z(ngQj zA|NyCuc^;>N{&?$c8-#TjNgA_;}wXo1R_dQxw!=9;o3pBO3PGZ_V!Ys$k__k zEBCdry;`8QO|(QE`_Be!h1uO@_H8NDw-k-T6Ova)O9SQPpi&gu6hJA@u3A&%wd7cd zICpgeRf&?cX)LbZy(V`NFFMd>OZ)eTEAi|>MMJS6{GWIGxExMZbzN`Zp~Omuzv9T; zwzI202ic5WBo1IL@MS;0sdRJG8OThcvTvwjL-5;~Ut#}TVlwK#cNvQl^%q4IiGRg- zvq}lNwd{T0qEW!s{j4sU$F)u+2I62}BT#Wz#*%#912&wNcEwS_9j{`Ws$xw~%9}R{ zkW|lP=8ny^hcOi2^%cZ;ADhGy-D*(ez zQ9-=}AHy;|;|aQc#hi%dqFK*!9>bz2K`|uZ5ABVy*47ybbtGvk{=tzW(TtELpCF^l2}6obP=8 z)AR+`(q&~;Zj{8>EX&`yrlRCX#LA&p9GHqt6H%pBdefWzJbDSGyuI|g?MMqtx0a93 zn09}^w6CQCe*H!~-|9@#PIj(Uh%R${b*pjlke`sg&ksD$1OivFtlh0<G%V+P2U$(S|+Srqm6ND&pR*>18ciS~vjS2e?g4b@i8X}zgvq532TLz*F?mzCl$J1Z0Bm+BBy6^S;s zG_Yw+83f{)uwPz$AW0F+^(|^3<7L)ZeuIVW5zfsp;QpGKZR&ea7h_arVMCg3dgD!; zs@|+$iPV%$KW4f&-z><6v~CkW?u$2r;w#jb0jaP|5UGK<%OklgO)a<%@+9Q1G;AUS z2(qPgb`V+RJzp8Wc--Cuy?E(k_A3GJ1A3gjHdAkqFH&}(J;*8;nk%nZC>EpfVl#w^ zjr`0?M*jb%Z6~_ zWqymv%E+j#!>C7v3OKVtg@k5z6d(m0$Z4lracrm^+3xO&848~6f*&5Nls;){M`4M+ zEGf(CPaWDs-XVj@lGtJ+tvZ(|zMs9XmNzftjh)%ErdnH|5X15_13Bxys~QzQ9vaOR z0@6;U`@QZ=e{`UB)LSh2d!{@^#^I9D1lLtrgFVQi0)IK_Ipxs+{>LkV%Ul!Mcib+K z&M|72q`Ir2F42!Vg<&qy;F93YIMZPUdV!~{_$uqeeWxa_Xae=BJ!@P-?|s$Jr~^Vk zA5#Zv3Mk=|(FPoC`?qOAagc(TQb|$#``E4C3O4>)9GTYwoq>U2>{owo|5wt=)EF#emL zun%^m>`ZTryWPjF@|)4IEM3CYy++EjQ$y6A%|3M4Xn7|K5q$lel0jUhmtvHiEYH+d z0VdoOWNBL*LB-D?m0`5Ak1^;guXnGop6SORV+!q6O^%_8mmvvRsaP{Evk@&jDtum! z55jj8_s9QP^6}+DTN}D7lzvzQ{NCXM|LVPc>9U{C9sXXnm~1`AtBNF5w(r5rwZNdb z;r!6eN*_5_qZG!*^;{t~9lPsKb7Yb>T%vQL{Pq`$`ovOWguvOXaz!mH>RrJ-M!1JZ zlzz!ddSO|R#Ct#RmjDhLsA4=&8x+b37#y&~kji7>mPoYBBPelbw*%st?oIO{Idz`- z3Y5A%`Zm&0=nQ{9`Zz?2q%HW8(K^at0ScXC-F+v`*Z652YnuqusIS->SVxWh5m88o zD%7P!-?c&0Qaud_w7TF`{8`0_4KbCzPF@u{e;*RK6&|SkUY`C?gkzX9I8(_^{dsbY zN%y-yJ+h;e+??gc-?(CB;skXIgGyhgwfuV4CzU)w);k`W&7jJ0zocG8fhC@c4?bkM zu3G1qQ(+kJs?T|TJd?sfc5=*ZU6q&E(91`I+xulw_;O9xd#~3dkX+&7i_Y~14w~R)T{%6DyeD+3)fY3_ zAWf!gaR|%Ii-h)KK9bw%3nTwPjJ*j_4~Ax$a_Tcpd)5qpT&}p@Xn~|Z!M)aDi{a2h zeUNoTivMekk18~CmN-6=g=uWuUg|b+Y=b^{eL8T5)%}UE|M^$s8A8| zyT@el*F*Nkp4+$k6D|bgl2LN(O%(yJzo!okP_kEWH!l5a@kK_DmD1L8{;~PeDb9#U zsGdn#rz2oD&+~^j3)HV{AUTBVyUq7zl<$0VCbT_&jx|ns>lH?nsiDuzc7t8bo^r{SJ%u;XD#d2Wsr#Ej|cBg#TMT+iA8fZ7% zb*U9Hb#&3%O{;p%e{VAbljyuM0f!+Y=K3|3yr(yLETP6P&#pS4{j_tP%6D=0qhd_@ z$176~cQCqgEp?n^ey{QA&#SR^A0m?QdFe<`%l~MMU)iJAYGx7i&4p+?icYsOcTTrK z?0()!5Fa0=O>5ZdKw~xL@!R{}a@{JSZHhPFvVe>ByL^Bj1+&dGf+6*acSwrQD=y(| z#gi#nOV#!P%F9x=!d&F-cyn#;Xx{SV7(#@gIkbY}NwWLp(w;VFF|wIV=6If&=Pt;(-`AYbGBQByI$<_bVl# zI~%sbjR&l=f7`>OXSYwrfW&ry?&zc(zXCklTXn2GCw|a)(0bsWefla)XpQ6q|DA<^ z*4KQA^K2$&FkfM5MFep)dUW#rM-C^o=*1($n^Ih~g&B!dx~>kAl?5msGFsi^5?Oj$ z$dIhK4hh0Nrew-eppQARI@*x?U~*m-+JD<J?X}&`wfv22N{f;dND7T=s?z z4@B;SGvCKKXBD^sbwU;!PBT^9%A(>j?z|zL@e&F!Y31i-@w=wJ_0K_&;~Qncqk{B z#P4JOV`sUoFt$UWOanvHxtGR~9gon!^hZ?C-(WR08Lw-KE8=d+ZO60Hzj}2v`J4kX zf#0LOU_bfl8x#j5z*)jxc3*aFY`G#)1}ff|db|!2)-WqqXA3lHtyS|9>b^FL1r~w0 zn@Zu(uv1twfBy|ZuJ9aKo{39me`38nAeoxWygf`)`^Q8l7BfnzivYWJ8-E&7HO5CG zlov+ah2yQ)<7h6(wC|6aRs8XQ4`rgHaQG(((r=r7?l|wqKRnWPz1$6M!Nu{zxnSJ| z8RSw_ZjW;QKWUbPY`b^~dG0=RJ&ra?wf~iE5!pzW@)=YU0Gc5jGA=~HUOf&(jpMw8@;!H$Q#fVh>k$o-_?{g0EFYO)- zlZ=2>T{0(j-tLdSy8pX&Rmkt|nv!{X%oxuvDmZ|gl2KxGSZ#aRW*L15{XW3g;aeSR zxzA6`!ap0m!O>z2JTsKxfg>T3arK)FUB0gAbmLE7FF1)(JN~;lj~#?0j#i=!q<7At zY`an}d^5Y+PN65AcNJ+%dFVu{*kMe=H>!?9EiT4UDonRUe-(CvE^iJBt`ko$)}M_A z%E~91LxwUFpE)?E3&B5%{vO}fJ)hofXTBCtenQ-(`lxF+ha5LMr>WO_evHKv3kBDl z^)lM;)k%`7IN=_@t?2kV{`@Snbe!Qi!P#c^s00*OujNkP=>`am((EDJWja5tnFH)} z#y(m$9?#_9c^r9qUx07=NYlp;5blFHiU+Qu*@YW=7G#4KsyN>=&%D`;1LEb@@>-0-6X* z7c$cc;sMX38Wnue*Dc$|U!#&gO9D{3@kq)o=z9Jp#l*&^L%|P^FV38De7 z|5SJz$esc6oCO;R_5r+)kGE;B)(qfsRt^=n@fZqv{Fg4|7X}d9g|@`F-hceq24`Cj z97M}iCQ-H-coZF#xJ(PA zT;+%d8&aA9F+$DtB12Nmd`;K& zZa75w&G9~Mv)U2heKOn3&~BU`+$av7lSk}qT!JkTy>h1r4(NzP}AEPEw5;^ zvKrgUEe&tK(42&~;Awmg2=L7elw@vDmjkq4!Gyn0$4^Y-g#>^-~JJ*2A z)!j%>1FMJ3>r8J*>96ju{A%?9UxQ9CUmmO}!qeT@u#EgxiyWv1>l!IXJ|o>?+I9q9TbbEDpn{mI2Bzw zjOqDWaL_i*o0kfEC6#$>_3CfD;Fl(QumT6&0p0P}-MOL$aro8~@G+eya;xqDS^z=G zAr{3kYV%e&F%^CM7bK?EnSsk*Ce;nm+S0c!b>UGG>^wVe>>nodWnDakhqb2H)870O z*pOkipi(foUb9A+$a@ff+E)cB5;~bT7rz&9ico)Fi;TY9YZBUb+t0_r$fEYK;GaZd zFk%!s@|yv!J<|c^7PW5$_#ZK&-T=*U!k3wpm#1?6;=Ohdu_#d!v=}8??F1n{pInFH zI;uW>7mP7w^D7h`9)#Ya;El1s~3jg*eL+AE%#fKClU3qmBL(PVC0&3mXZYi~O# zts`BY*4H*!_(qpL>BFnc(VUxUka$5dZ%p(H#F(Fn}Xi@pg0_vMrC zDEKQ(e-{}Lmv+GjLrO}6M(^}H(3d{m*ZxDPC2c)y+!@XM-=X^oF2SV(dmS92MDwe` z-nvcF?0&}66^3gD08}aB!y?cR;Xfg0dTHtvy4(v*!pT{hDLqH)fNC8$x7Z57njc6+#Mhb1-)CE|<#CL4?3Mx(Os?@$zICB^01-K3 z>3E@F##@h@JT+rV4v*C4qZ(zit-^Ev3=;hBA{z9S3~)c{yxF9fb=8gU`0D-~*q5|{ zIhgNw0be21lqnc#{QiIy_P(uJbYw2g7@Opr*&!t`In**s-2^rq=xYfjk zRtcuVap6yfOW~D@nor%Wu5^zO)n%5*ow`j1scihVqqZeJfzc?|GHPul9M(pa^_5OaLhD^9_F9ngNfCb)8~Z{lPxs>$WnXAY!lsaM zxSMr#&_gUxs7gL^-QIe|0p@bbRpR%zr(qX?7d0Iq^T!(TY>*j9cpT5;oIb8Jl;F%@ z@O)7Q?|xZUh2BPLnp$>h?e5vGzXIk8%T&3CzE0>`4(&JrZ|JiBd`y7PU z!A|FrTD*w1uhwKaRsrZ7KBKlPLri?~?xe$2%>QDHfT^IY?`n94tF0<@LhPjv*wE#< z-+>`}u%-A7^V&Tt=3%}2UO6K(8#5$J;M84DUw5Sq2go}ab&g9R59}i~9HO`R+gFEd zx4Tq-Op+jP%1XGbLKF}HGL^IbVD|MPc6|O}s+1E{E?}a6Nae*e)s{eo=5oew&u|&z zpG&B0?C-()I9L-%Nk5@%C*h_sazE$1xr5n+L@w0rG_*w;>6d9x+xDS4z)$$GCSC}7 zW0W5%Tv#L9fD8-tzuQi&6%uBJ0_|Ih!0*c_Rqhq1 zgkgiM6puzx|MQ6T@IlqG(yDm{dcfGu)tjMIn(SWRmSTk!(!Z1ObByKLyP}WI-!y+0q9*#o;YdV^V#8PnJRk(TjwE8 zt~KAo*JPFBH7xtl3wX`*q3Y){6u)?jf`|Q=M@ILG=#3{u)JYAw$jwmQ0c??i@!+@qkjI1>b*^msUopi_h-v`zE>ARO1fY4PQx?y@_gZ+h?#sO{?>sUI z_kQ$Zp{IH--piEbrbDUb`z57!C$PEGRUyC5RH-x<5(b_+JREc6Qu75h7c|=ViRsx} zN#M@5B?Sf`T5@kjRU9*&-57!B-MYp{sQ4rFW%brU0}C|` zsWGtS5B2n11#3Y`qkhgj-#6TA#s^=^TR?K~L1+vWyZvY>7MdRf`Wa2AEEAITjXeaW zelA=Bg=Oqj}=rFMIzxYxjNayrSGTj;{l;r^V_r{7nEA7g6C>3=$>SZKT}RsQte z;i$Q2^q5*cdz3N48!VasylnZw&VFWu1+0=aS9Kc}=3{#^2URn65}doq=!F z88M+XS%yM(HAa6fZnHq*0l!OVtwfh)5po7>t^Fi9EvGmA$<=F`ub&a*45Pj3ym8G5APoMSOS& z=q)6K`8lgtwNb$=LtoOPhj7~Qfl28jVH`1J^{Sx^MJ{r#$1yR}n?j0}%2&4X$!~WE z(@I(Lv<<~+GD`_+gzU?WWwPkE+i5dTzlNtV0SaHO4Tp!j6QRv?=!0~^0yO2i9h*uF z5Ojm&I%9Dm)N)p`8HgKk!+0(+>@5lior*f|(+m7r3`|do4gEy)2qkW+ZN$wJ%fl-3 zAlzt;EOb^9`H6A(##^MbfIvkPelV5|@9yxBm+9K%YIN6WO+#*|;HLTWf z1XdnQ(swd|-KT|fva-}4IA}Juf_nUwOUt^$7?8&T-|e#Ivxn z8^By+P&>vK#b}`rb$`Gd|1|5AkLTC*A8W(%!}o;AiCMD+Twpe(%qsFp!h{g6M-KA| z6onxJ)-SZpoIMP?oGM?cWxnVSIL3j$wf~q zzd1WeL8HIks4Cl&ADwGtr2NVM>YcupnY6^;|0Px>;DQ)AUu4cFEa^fK-HmIu$-W&r zW2%wNcF)7;2-I)*bwozQqid$HzLgTAS9u@K&;;5(T$($Lq33I~tMxvq1|C#^1XF9+Q`2B^}~-m0MnJ^N>Wq~1*%ulq>CCKl4oCr zX;eNU|8kkP{)kDAZVARCpu_DLfy2K>U_&nc&G!qmjQ)}So;8;O69ft}M)ZtMU(Ksj zNl~mE;sQ0t1fp6-PXFsqfqgjxZoA{D^j{*_UYPmmGsv?~Yg}dy#3*2}YbPtZ3m36R)1wDQdmb5u{ ziMZbwjBh9+Z_P0L9{D^bgonXe<^Nxsk?XO=-x!@3$Z$7OapJ!#JSSTmFCZvri2MknJn4cpSY~XaVTLxep`nWPjpvEl+oBc6|3Hj^ z-A#^4i>HdQ22Q)et;1#ouc$b61V!9&P$`_b)uYK#!W;2$19ba_<6Sp)RY*oc^E-M_ zF;g;mPTx@APH;b&Olw%h82JQhguhB=a8XI1i1Zi?H{ad9d8RHd(g=0$v0H4kl!EW` z6l^6G1wKiCO@`#^r*jn-OE1&NnfpcHQ|p+vj=bXMkysTxkG zuPXr%XMtZuLvK9on5&NSARMI)$wJw{qYhdO{hN~C25FME>OKYDF(~9x<_&{)a{F&g z5J)v?c*;W#1=DvjAY6YRQv;buP$Om$n!Li(2Yfx^fHf&~OIT&CH2ycS=x|6%%#6mV z%RABB@4O(7p^6d}px`iqr_z7`eo3+d|F6ZH+@k#w8%MvVB&${Xb~Yv?I8H7W!6?uf zQ-Ml=YnC}A4N{|)c_NxMmlnnSb0IDzJqWa&nugb?ASnlkBPT^G)=24g+xHfjyUGHJ zvxeiGRjV=&p$IQQ{c7^kITdn=Q?>yle&S1Z|DayR=t#xp8fjh&f?8vGhI7kZ6yq^h zq4R8UVdZNcQ;Y^heg-GUDfnP=vL$LS1%=C1M* z4%g?yZ$eh#0F8GV%B8O!Ev`dF6pxA!Q2}qIf$*6m-Xd)Q3rKCM%2Sd(kvp5F{e_~b zYn3pD+?+cE5|*wSKl-tO;&_jxuS^42W6!tl0!sAub>JaO?^WUp`klR1Xc2(|40uWs zPCD$&8seZW{@Q+?la6DrhC)h@&M44vb*`IQBOSs4E(-f92t0_fV{W7D@KxxrtmBNbYmoH zUJ3R6&42sx(l_EhkB7+oi))v@d;LMwC9!1u=+J_%BQ-{4z>Z%!NS>$3)_%mODYw`+ zLdj&Z1h=>I>0UZl|LTjr@c7U>Dw>k6yBTwudwNs{kMpAGE?z;xxpdS%ml)7ip`vVa zSOb@D;O%NNR9+dlKlO2nI#rxwm^TdxV+8OR^y-r3%dq}1){{-3R{ieVo2@qrXenqI z)j^lVl#5kgQ$F+vVtARn3wn9FIf^s=bkZYDf{(BjpA-T{K%*f?VMBSmLlg7O@-z1@mN2%K5Z|}x=Uwg(| zlc-vSZvK!${(L{ECwaQvBn%f9dk!EL4xq}(6Tt~@I*|7)KE22fAp2?gp`FKv>v0=< z9b20%sQBo>F;rGBU^2!hF57S3;+i4k-c zqRlhoPv?Jib#+?CUj24oCyeG(WN$ND8^6V`q<+;7-5I;GywecuHSDrdf!RLvO)Z|G z{*GaEk{GO~Uwc18S#W*{fSqayP;NXN=fz(hPTbihHc!_`cl&}Kri6R5rdTi)%xro9 zVyiyd*VR{2IhS)kl{_hGk+obSkx=uIo-K(qN3_-8?7@c9niMcR`qCr2T{HZF+V)N zQD3VjR3@Z|+GVTs%huTTNuq+^b{#9dCu&I2cB%d2m?=+8VW-k?ik-VszyHRy0RrE!s9T9Lk$C9u zx%)GhL?H@h=t3mQKFU6Jn2eaVuR$`^o3h@;GP50*zkc9$^nQxFs2ymE@$$D2a9-;z z`+wN_>ZrE9CEP+F?hA?tN>$ zwg1RT7RfoBz4x4%Z)UzP+t;q9In8672I6MG{bAK-OKpjxOf5Mb2SR21m`hQAb{QEM zVhiLt`z03Ms!lETeMUI{jq6VO7yoMU6c#)_HQR=1zf_NDa7zCPsFk$x)6uMGM_ZO)Pu{~z$Ffr{= z!rePGp$kolP_4?+)Ke*NQ!EMS(AJ|iBRoVk&Yv(FurM8j-HNw8Es4C8T1Jbcc7Swo zhRJWEvxro8tMf34poQTP8YcRqvant=X*;53b7vSev<`k}7W{BWi#d2Z3ub@*MvJhXu5lcx=-e6DV5|p9}Jt zii7)2_x7o2BtR573~cA8RVZ3F-48nEaa!pBe*_WA z{bq~Z?cFW{$>9&wo0&gajk$HMtN7@T-yLUMqJ49xT)%F;`%DE|qrP&$=xd<)i4UR{ zh-SgG^B7i8z60oTc&K;?0V@>?5m1^fw$A&V2aONKX?}hve_`hql!P1PV?`xFD+La` z=#%6P#6*UzA=xLn6}wq6GIjCDqh0b;Qe^Lq4;bYbi(B!dbrEJcJb46QouAZ)JE#5| zWcmv<{T*OBP!6$O<{w?R`70U3wuj@DvvvP3r(bJH zyqGdtP4=ECWaGs0SNq<$hdWxCJTS7~!_&}VcB7-240U&(I$HoU*_VR%RX4EzeR1|* z*C5z|1X5`QuY*Rb%&wYtA@hD2(P+G=Nz^}ynxk4AEtMTr4klSfo3Vv@=lj{n;Yj?4 zMZ3K}-3v^RO9t?5fr<_$%9X42*Fqs%twL7qg4(UtIQ-+umPSy++X95D&!SXmJL8y3 z`_}_G?4`#^&EN#Mo$|OJaD4>$d^xQ!%btkIBLq(rT6H-x^eIUS0-kXCDDRE3(z=jk zbBg9?SRF+Lvh)zwRx?pG>{c3Bb;csCTlj3NeiuErA& z_hPZW#pH1MhT2T5r6>fFDOx|8koefX87f$%K`}DCp&buf`kOlSs?mL$vPq0gvph(e zB2@q@M~{oVVyHM}B#piLmv3+P5SNhy1Ig_#pdspK)SlCObZ&ptt`* zq+`xJgS?g2b&l1mq`1EQYw+nl0vWh?!ds zuFuk2%kuLRkeRdyf(w*sTFl_%#`P7EcJWhs1DJ!60)osi*2Cb*coiQw@#-{|wVFf^ zT$4QFM80L0Lbkj_zm7X#0{QUPW>)=$%?_q-K4c6-kx&>6Rt^ujj~TGM>I@E=t6Gt5 zgp2T-OciOEs27#Rbdk4KWj$}rcd%9zr$u!b=0gL7MOyyHt(e5aqr_fwG^iB24P+*4^utR}b5Q4Nq7h_i`jb}uh##ays@Jv5ssp#@C; z9Uw2%o)<3f&GIFi%o7Q2j?Ho3wj#%jNRES0R-DL(v_`$mcT@JoDK>6Ns+hSc;IDd1 z9>f9_kY-m9oQU$&^il+08|3Tk)##qHM>|qL^y3D(_@^;O@<_;u-}vn=h=W+XnRK_Z zXJ_Laa~H0xRcUaG*Op(89}Ue7JWlo+xwZj)yE^Tzd%a@R*|{@5>yRY@xwE>v%76m5 zmA_fJd{vfsI-VAnDN>$tLhxhA%Q2-AmMZ6(CYEJIe8*p5>x5P~w%=}I;- zwRB_ps0fY67i94u+=Z%UGQ9Ply3Cr=9s8e|L+}_C)9>wAw+fj>-VF}HEMY1l@{@J# zU8$mz1EO3}QyEdqnexGKS#Z=UjnX@GHlD#gfJjd3#J3^UE=Fc#BlL%U4@vC!Ba6Z@ z$ZFh06ctpJ)yZHgU#n_UpTlz7oYFKX8TiDI-u>(RDgP|-A79sLGl>8$M z^fDU*h>~W?a3IxQ~@ZU`#djpI;0MO;*=j{1Qj!DcksnNF>DR#l?bQWUT5tDC(%lw*1pS z0|$qZQHG|OwxSXbxe`b^Fw#4}7O$++hmS}xT5T6*RO#Z&Bavx~qpfIq*M5o^8)>~E z``xlP$ECEwJv>ZEb&0#dyGv-sp;Zb$WSf8&>pe8(gbf+d?$MeQCEobMvK{yVq9uwi z{ALU-K#^t@$ilYu&W!$22)@I}@g{k6K+?KSo*Th;kzgpxOfN6URM(5}E+^HzZFG+k zG)J8{tQ!~=K%oRNeC#uEfcwY|BGNZ?JpU!?{w-3wm(#lNdlEGZ?fcI9`a~(C^Yl=U zUMC4{N?`$snfTxDZ0<#4xS$zGz*-uzb?H%8$=S#PtIASAs-{JDs<0IGu$)Q z5N^R;5y6TiE zM@Go*^zQRLFRxq{|9JlvFJ#MAGi2+;@npQ1d@TFY;r{B*y6JdIeXBf(GU)HdJ<0|Q z8rJy|5qTnOU4BpM{vdFoRhIhBY*ZaCWGEt0`Lh|^2X)QK`dr$N!Emm6eb^ck9)O6c zk!NU&D%#!vD7n?x2Lq>&5SO+hL%&_8s4z0$Qz6F*9}bzfCx7762x~v_tE43~QTyA)O zZj*~$dL3b@o0Exm5BMY1+5VrYH~FExD%mpbr2H3x74G`WgCWX>=)iV9i3n^Me5UJ6 zFo{1&p^R>p>p4~GUCKtDjn=(%+CkH{CjEA_LjtE3uh#kzhDbB4Y_xhCE>H*#W|;m` z9PLfoCH<58Tlzk-7AOnp;*>~CTye{b|67iiJ%)ShXmA^fP%4OW;_mYV92&u}&S|ik zVh)VC1%=4U@}o?l z2r}3EA778o#JHe~?A-Rj*iJq!K3TNRH0|%=1JW-gEbQ&sbPn2QXXajY9-UZB+AnhJPamHN*^Qm zKMrpFdfgqLz4h{qZG3We)z6yi<~#Kw2q|&Bt?l{Bjkd)l5H{?%y~Q_jd1HP;^yiEy zIYjCojHS8%TuJFqRL+Tok{nF09wNrdce?U|>QX9e)f%y0JZkM3!BpY7 z+`#zYCD7ja#QXGW@`FA)NhT_}mAJQNbft56(l6WMDSqfApsH5vajizPNa8!XC<%ns z#KKSP5`nIqHtH?d3sdkl@t+4}f5C$i4Vl8hp;71)NH`f~VaJ_A$fSC)#%Iy9B+>$_ zlAeOwUV*)*G~ENgQ*~6S35=^!n2M#SjUAA?4Kg6+DSz#8GQexKqA2EC{JQd!U#t94 zo_k^QX3`I=SScXdcxfFGpMhy0&w-0s?=?d#ai_qaPb!;B;* zk`(GNgIosP`6R<5(ybdp?pHRrF&-K?r1ukhoT~Wz#TgQ`fxP%e6ljFyf#gnu zrtO=Xm~m!;LnjOuy#V*{k3__mq{X~&z9g9jX}>LJ@|%z|h17Dt#2&OL`I z0piS<+vl@-5h9d;#{n4F8uL5)98m7{iA`98%knKH z$>|Z7uox(O#FsLBF}|L+V*4i&Fz@Mys2Y|!0!H=`A&wZ;$kvlSVB{NN5w`)_8jWqZ z%)g!Xf4lCUpaIvsnl>lug6f*qvb==a z6J2}0+Thr`^AVqrOS5D&o9z#)4rqSjUN|X96xPp*tbgAs_Ms2a0LOlZoHQQ$6oUyV z@XI?Lj@9`^5%IdG@WAmz<~~0PC-^6`g7d*|)zIH%20v4vf{al$y@w7y^->LowIYWy zSEVMok`kL>Gs2q9ej*Ss_8yuQqWO_w!a|T(6QZe?$O{-TqJu%#H$s>Q=$BZ)%f4gJ zHrzs_USaKUx~OK{#PWMVh{{=K=uSj8H6kB0s(x#nM;r82@Op)H;Jg)Ccx+o{;XW!F zTiR4-QG4>65LO|MSwu2(=X~%ksIM-dJiQ?_~-p8eBGG8yXrNT_uzAhGw;(;^j#u31jZPVSHKSM;v4YC z{TU+f*I+0M>2C>9#SS@+;B5Q{fY9{=-!Im^n~2GJ4(ECn9UjxX)B>f9Zl z72f?XirV9k8w@yr)wud;?UvkN7Di5AXm8W*+3?)H(q*qR@BIdAQW>j0hE93v@3(e4 z{7ox8QDp@}wZ6Znm(X-{*0iF3hagI>8cANhxEng`NTl4BvSkbyXVq}2uyFptf_y$S zUcKFa8SN$m5zSi7ItC)AiwvL7wuSy=2?>SPSI*U?;V;}Zz- zF;1^nTh+$lw%9}s0|sQse$F;o{46zVQWV$U=w^ynz$K$4|11W}7fWoJQH~ccWCr)~ zs}qMNTvh}uUuz_ZOu5eIk%)cB6}f6TF>T6HT;e1bCj!h^6n`)Y1hq$aflE*Tt?`sTsFMa^RqKNmwD1Z-u3Lg)nLj?v1ycP(rSO+d z;a?-?1(c)lD+0Azkc=(!>_MeQC6c3Uqz}v^mk_dK|G-=E>rTbjgHcz;@;xw102tqS zaNiyP5b@{CuBcr^FrxZ-VQcPavX0Kya029^cX+|~wTY+ah!{GQLFiW#{#-^>T`+r< z;!L#_tyy}$EsRo&Y;cn#gP!CWJ{U^918~^?xH(chzN1V7xg0hBhUb+GkFzrgvvr28 zl_ty_Fd{LKoqJJ^bo#DzLbwqt73_cqj{V81Gp$oWn4z>yS^_$_R`?L>nG@UM#(Hvq zH%o_fahAbFf+YM|ZCb`Pnvy(;HG+vb&SZGkzKjlAi4e$;vAc20YxG3zglo;Q^44{O>jx@mkKjkdWj{P>SYrY zd$VTEL_C~fpwDfRl4#?F^MXcNJ?MmgeEgJ%=>DW6O5-Khlw^DViK*?w*=Js}NUk;1 zPA6(8smp(E`+r{7;hl4S1n9P;_{QRGJQV+$s$IMKI?7r2*RXT-ah4YKjWl`2wfltiDAE*4!F>s)1YYzD_&^&>=c74F=f&3 zs;MNqPRF&*iu^2?%BbWJ*gT*aKsX?iqWwesp@??H$sdelE73ufidT=uR)KHg+|Gj+ zBsvenmVsnnsc7nglKjYP&UW9(D5X0M!%&aK?`%sPyF?45Qz-^Lt=n|Rc)MK7y97Hjk z|D+kla*HL@k=&mOkX+?+$nn3hN1L(9{PgPXDKIo%N%uNg*yoQPZ*Ow*Q!2XZV*C#HZ#ZW*MK}j^3+o zlKSwZrovKj>`OB^uJ`Wv{a!g({O&vU*s!Te#BjPsgW{;udGdpQ7sE#7{&KR=6fx4N z9jEYKwU;Rfo#;p8kU8R??SwAEPsR{0Qe=WrxX(mB;d;Gq13>V2WmW1X%ri}F%wlYG zag7A4g7g!kB3i~Q)n^AF+F1KMO5&EZWUun42^CRAp=2>b5~??&X4S4Xs7xOJdu#p+ zkN@ZBW)y0#7deq)@L(-#X%e-I%1YrE4E!4=yyGGyGI-lDf+5AkxLrl1X*OSJYT@!rpGD}ca$Ad91h1GS>8cR$sh zzodt34Nj-(;MI|HE2IN2DtY-0cE5*|UD=QN_G_hy8&hOUF-&cQF$B0*o zg8(1YZ7fqMTPxA1yzM%5bnI9qM4G%pQaTe$F->aMx?+x3K5zEG5DD4)dAyoTr4W~B z6Q2C<-D)a&&!COF(dmQ`8WWnwi}PL|d;2X842-X0o@N@f{iKm*^VMjLh#ARDef=ww29df>{SJUwa^@#o~UCfCkNlX9`NT`szFKG^KxVn*pz_%q_X zy9IM2o(k{E4TzH4HFhlu_9=@ah6C*PfBquyr_WAIh}HI)O|$FzZoh5~;8|<1LMQyJ zg7XgMUKc6v7W8&?v2dPsF_FnJ=Obvol>eBk`}pmw9ma5JZ8mpZp)OO8lKSjW{tvK6 zhKH8&&xbYmj25%U)%C+(|5P5YBJWLIYB%2BcD^7hO1D_?o}1yA0mk#ytQtWPbH%0F zl)@RFk2&ZRueR8*1s&WDes1_{=7h22Sbu9K|93#E%UcDSUYR?LObkH9mY_^(OmF0^ z@el}a*lLe|{t$Gta2wm>d_070&}Fla9QxSH4>=#Soc{8?6h4LXYcQ%Pk>cAUBb^R( zH4OTUq9-z2u|Tq=P5DLoyp2vfC4y$*)~b(e8C$Zd;G;6 zNqh=CwA5lUSXf>86q6i|Qu@BL? zE3eG+FE*9(d`^PH?^dk3So9`K8%$Ujss7iqq615 zFC=HUKHZ?G0ru!F6A<8biiHh?UVsoxWl1-o9PFg*Z!Fk;v=%&nu!>7Hel)Z%wdM1f zYbv(US=_2HAUYhURiswF;N411#7XIU4oVb>wlIVa`Vk_1Bh14!_;5byx$739dW2jK zQ_B%pocO15V(|?(wU6iP^-m3yd-dtZHL=}r#;+k2FkW(}udy@K{BgL~&;9!DM}?t4 z9;c;lm^clZQ+Qk0(se&)uC@<&rDa!&FxpS+@TDeh0r}jvp7J2DAqXtlN28g5tPVT^ zEHHAd#_kBzZk|uACT4!kjd_aO(jl}_;C1e8NVqNh0vp5dmEqkM?Z9=8pACeaX#c6;N_!4y*z0+Out{DW;6$ ze^+4pvxVcWfjXeEbTRwj^<=GQj#~NIz9Z%PcKhP~L)}bavMLo)!{?t5JzJc5*piE- zB);X85XSpVws2Fl}K|dK%wFCZ)tFe4e75$XClj!EFK-G{eH7j9X8TNXm5H`HtA@q z6}^vcMhnhdgoNXa@6ZJ1#M9=95(~=dbl_fqkn5UYP7t5At7OdQWrzbzx*Pwz=#k2< zL)jPn0N3>z?6yauSw~ThJh^oiIonOxgK?R^U-M=#oLwUazY~Th$t^1zf3m_-Q=;HV zzlwlAWUSy&T0dIs=GzjTqd0=`CqI`r6?=fq=!+u_#_CXCx0(=9_cV$*W?!@R3P2fR z%JudKue0R(h*fC$-lU5G4h+iwh@bnElt~izBVh|Y`cNerJob6Iulky}BLbkS_trd7 zWa7s|_Nwo5yUHQntdjD@oxYg zNHIP=PdSz03i%&f#1@S2hk?wD8s(UAlg*h_%jyMULW&IiU*Kh8nd(xj3Kdf=(F$Xg z4@l9b+-oqRYm@BBlf%wN9n;U%i&j9VA5nMR(AG|&eO`=NL-p^<)9;7@5v-*WRrOs4 z8D+n6Eh_TRVs-Vvm9~WyG7Q%u#*98_#N#+vn&XgF;zY?2xu8YT+Z8cF9PJOnl;u`$ z3_b{31NI8;LW1UkCk782O6>(I^BF2W))w6wtjv}Uw@9BFpv-=>C?ilVzIylT$LSiS z1@o6OpXalJ=ASUKJ{b}_5qUKPEWy7UKKxidj6lCYOTk1cT~jG}GmFvMerJ>-7*7d} zew_^Y*f=>u>g($#CMS)0!J%tzP``JT(MD(J*ZDL}b7fnb`WyREBb;basC?Z!shjr& z$xG%ZzlWf$)9TAbbY)59>2Klutu|dLMKka7)a8-ll>lz^H7t=3YOCxNkExdTl(H-|ZFEioqO~s?;4g zV0gKv4m)(M7<5tk*VWmS^r_$Lb^+~T7MZ&s20 ziPX36Rae|DA&HHOK_=}nSfmEAnVYoJnD?4KaM?Baf%L?Bh~@d_5>OrD>5wHJX?+Q& z7zP^CAtM^X>-I5wgT4Bnk1g9unNsBgzg8PRT)!O3QObhpYB|E?-4*TIIKt;Vrxz-3 zPa%l-GlL~Z1k}F~w6MQ>US0?JzHXixZBS=-8Rgckx+vdtUqCqgKwpUf~=+WhVr;<9!3ChScz?16DCNo%ighN%`i5=8vkfy-}Mu3Ndn2kS40?L5VbX z5kTC2@%@?KuUOB7fGR6nTS&oCIp<5DJtZi|h}LS^;+o*M(maA$x{=jnGd@euCsbZy zRMEmNAzRgKYy|=(A5P=h24u17pHv|$16|_lba|GqMo}C4FZ-Tf@RZY)4fKD?AbcY= zEq2XmYdR%L-&>ZOT@`}E(0h)X!{0)cj)z+Q_rNd1FbTdbaioYD zqx??)?x{{*I>H-qAMB+V$PJ6;Vpx|Cqx<1-*wxG7@OU7-(|YAV`{p3`z#K8!*7R?OE=ZPm=%O*#V<4rZQy6vQkB$quZ<>&?*!gP$eYdkmrd@mF~=EJ(rXl zBOQ7QhjnmeLN|04C&P07UySTu?{FgkQdLjJzfM&bd;EEU1WK~LX|oBh3-Sn%00SL}o8_%rq=*!RHbw|{{h$<{vA(Es1H{pYh4haAZ!?cvZmmHEsr zA#*ar5B|=awM0cv(9QMf-}CsdzcugnuO(lv*>D~r|2O2Z{>G6c)6T_DU!3$mAN>mh zfqFJM1MoE;;#D4=uiLUYU%y;dVA}lOfJ<<*;{^<*sCe8mkk0(~R5=WQ*SpQyiCHc% zoBr1Y|9d>13J@!+2=B6rtNSod3KH9o=n9{DU;p1@qM#@1B-(${X#dH7&twB2*Ai(= ze@Q+5H9*LySOkR}EQ?rLgr`ctfCpomQcE}*g@(t7^>F5*iT~V@f4v5b`>)_h-l%-f z^U~Z5)_moa)Nf6ayb-8|?lLIn1&mjf-ckQ_Mf##i31=+{n za7erI!zGdnz8%`iJvkK>XRH3<;Yo8DmUwBM0u!#URbf@^h|CNTn7z~=WNkd2abOgf zWgVB+WzHUA()TSWjBm60ah#QDf6uZr?e4`-cmKb@!3D^0M`nix*IwgN@qit^0)yV# zY&FYVNxs*mH!G$1^3lggzm7bGp8uzxq%tWOma+0)+lap~+b$^8}OPcX#fX*fXYgN9(?i>pn zGI1d_8DR(iTJoL_B>3eAoxOou@J=0n9FvCBTEFFDW%B+#ComDSp|l0bZ`qKyahujI=LAwG&Yg0;laFE7q&XPiLouDM1n4;x)1m2l zwRBEuivJkHAC7OjVZ8JJx5kSaXaMcWn6%U&*ZK8@?Pxbcj+df?Z%FY4^ z?^=z-yPOW*k7d43TYnF{8SpZFa)1A>u3Ij*rlwncRI}^|)3KGRDwl!2^wNdcMYUe71m4fT<(Oxni4bV!!q%3IZvSzI=g*Rz-JG-#1jokK zGWjXt(^XTP+PiR*)&S+hvd}Wmt8*1Khtd8#A2T^avF*n~o>A)t51S<4e{ziO9Di{n z^X}cmVWSPd+eQduNB71a76|8tf*TWm6@-NZe=2joHSsX&VV=*N1=V zlpNT&Dl2By%1gENwNY32^t9=xakO=GR5j}$_b0;YPgA@YS(8uSG3nL^xL?8(lGkNQ z@@_bhH1co<@MG4qc@tZEhQ9OqS;t9?aR@djXaq8~!Pw&tfu-$>sN&2NeqzulUOAs1 zJ0z>IXkypU1rgDqRxa&d3|XaS>cOKC^Tuvi(X*=7rRBEy<}hAeyB>bE8?@5FeqIWt zKGpG9DV6qKCw3EQNO9#1T9o;|vaawCL(KKxXV7eRF~XM7j^Awp{>S|_g3)-V1Yxa| zm&#;@$xQIsH>Vucs+x=b)t6xL<*5V*X3^_cs4(S^?E|nSKodSs}M%;QpY*g4x)4A}lW{v`+hG6y}vfX=>wk zcd8+6xN{4>%f5Q#Ajmi0%y3ibjni%SQPXbs(1g;<&UycXdf4yFD;M5JF}yp+=>B2F zz~ML33Q()t5w{5y88B1p0}ck?+|*CZ1y>G9> z?Md9uNM?T1kXxl+!l()3i$z?1wi!2M_uM0!Z2qE69$noEO5b(ka-rm3^n;hcMNi?Q z$(SCT;anE_9af(YRlUS|sgEi!k`{nk#&m#kk8f)eoZ%cxFKMv=(`p zO6}D=45u3LNo;oAH~jD*>pXaAJU<~!uMyfrgB7rz-?qJF{Jc@dxGO^x2vFe8y1Z8x(Am`WoVrg^*mc;?`s>V+ zI*<@B(8wIn(?M+JrnFmhP>X$qKz)qcp#=&yse~9gPPM;ta&CJJTztlfV$S5sl}hTW z$xPnzcE~g`e^yyASsQi#em=3y*1AN#6ni*Yt!k7(DsVwgM^JVaPzg_sZ=SZr%6rqr zsgw?Nmr;>{rTjbnG1-A1IPI)mXUXu3DY~jm`b~eFA|oMbJ6@j|xnFFD9dv2$9dHwK zbJxj{V4H?SbBE>IId~A$&oRzk(D{VyWg+0zZpdb-PVPF^ZF+Yl^gA;;tveEd#{vc- zNEiQAodZ8;nAG;I$KMK?iYQZwWZ}6w^So1`lr@oz*(tGgz^AUT=w6Bc?QzXi52nWy$ z)lDDfN@!{3N%`(i-^#@FDyT06uIq=pUGt~j-iy@!_pyDXP3I)<#1p&Tsy1Kflp^nj z!Gxj6yO(qYOwzO&@b&xVNH?0ay>oXGqUw@G5Z8?UvA4r%e11a)jPH(zvO9gg{|T@Biex+2OqH$8Y`^eBE?0crh!lFh2jqubZsDYo8S}w_Sm@WCp0Mw~x&COK)Qi z!ejKs?&I>WTc!+NY7_Mk)w*@1#k<+9tx^|#;Kg&b6Q7Zjex29V6-Jo=-(kzNT$?bInzK(!E!t%2R7TYyF;2XRccdviNB(A-?=piU}x*cv!qv5LqFB~seCEbf{g zP_$@3wO6(E>ox_P#RF9?hc^^7>@1-4D@?re#C?GP5o}xs@Nj%|jj$JTcAU{UsyP~J zHlJ$0TKD$3yY9$>6Vk9SQw^w#xV^bT{>jsQ$5;g~t}{HzBr;X<6x{gL#|KFH!kZD| zxK={Dfl0cH0#_#CEVHpC;QK-RaZxzI;zM$0c&p8Ozs>Wlxu{i53N%*zi}km#nnUpR zkt6S5J{D+uBo_)*)I6_Emozc8SDJ>OhfVrV7>7M&YUI#wP*Jx8nix6K%Z`uj=bRQY z{ix3^E+eb8(&jV^LZslCSC41@YORrz-3aYvKInvr6ydaAMJD!ra_nFV>??yEHv@OxWzlL>1pei?bb>MYfNRNI?g%8l zTZ6K@Aii^wGgcA(`|yMEr$<$?_bjYDV@*CM(Nq1R(_Nn84490XMJPAyKzF@4(i+4) zgo9^E(RWZ$DDFxz@S*PZ`3Z5tBO;>NF%3mqk4frSs8V>~V5{;UM9}!DUl)dAVq(H! z`Nl_#Olc%XTPm_TQ;j4r8!E_d+F(ncs!)q!J10`lU-DpX6H|nMQfpajCR=-^)^?t$ zw7%T3g+Q7Bbr&Z@}N z35gJnzzXb@y}uTpyJ!HD-3QLb zpLWY=oG1KKG_hk$EK|hXqsB$N{usPZOzkJzz$kg*TK+5@RNt2eb@#hHBlp|ul&*!X z?p&=kILn-%Q(HBnEUBeZ^Ce;B@hVqk!!hbb&>(bS%_9IcAuiYHWgFSA_pd0s_tEdYA~1C6na z&`6f|u9wlrX#e%b{&j8<-aYE_Ryng`4_~+ZsgOSB*!}6QNOP()zecgX3mwFX4d`VhxNL8X?>~B zqa!0F2K9MoHxosf)Qi>bn8JkzS{HcH>=1&?v`(<|ZwlH>l~)I^C-*(O<7bqNtQW5M9%qLJuiUco@=yf}#$;0!qP{^FP~B!KiL1fI%dWtyhdY!a9NC;j zlj|1hQLZ~UbhuiE1T2c~WP#U5G2~QB(y9er;b*Bfd;J1nlRrC4!Hmo`948d~I-Jt@ zMw)V5U7kBLI<<%T)M_{bXYDEs&-d+`*H24vSsF)BCj#oTX_bn3EG~VwX`xYPoTqaq zU%z{M_D1GG?HOKIx<6`SvH)UN;2jyIV$&qY94W4Bc{YtFGM)FW(QR)5MA9`~YON=w z(S+40O~Y_;l%!sz0}r3A-uFA3Au!wf#&v#=5K+X0OdDf@kh_CSGco=w^rGZ67ym|x zwlYw{GB(aUs&l#2#4ZOECRJ0o&vg@ESVyOAk_<-1Ds=JLOMw8tnP#O@>on0%ptk-Nc1 z9hzG#@eezzs||VA$q-8NF67Iz3q0_JPKOnz6KI-RFU!d_S7aV}3yCkYCHS~MxgI;2 z*xdtp3dDrVo_FoP7sUTKHYBU1W@vhM@Ll~QyIW9^I;7MhS`SUob}HM!;Y2<~a z(Bkq&;wXAIsAL2&n&C3`XJ$%%EnX82_6J}{U>RtrZ}H7!_t#w8$BP%$yUPZ&?sY)} zcLm0;s=^=g-?#SDQ)T|5yidFP@p;HyoDFDCJY}C;~JqjHL}jy%S}UJ2Om+CGG0ta zr>w^2DwI0^%pSVAm4xm$BN&I~mxvvWb&VtIE=n87y}CCH}(3GDcy2cLALN7bY$m-$!*+ON7I4t`%t+`rZD1{^p6Ayu#B z9_EP30a7!c05VOEH2b&2^3Nm@6704eG3`ax2fr zg~cJdLQD29{uE=ThgO$uVeGh^(KUai)`ny1TCPSQc2&4LJ-l)TO(34sTt zp6d|byAUG_iysqT{7uTPdbIRCT2I_iz1lzn;>9IHJ?HQy@nXj#O#DSFgnx=>Ilsra zo^HjATZ85^+DvAx`xFN{?(fs)DUm)zv2d@1i9-ND?ssLKv3>6wua0pKDU4<;AM{UK zFXiu`TEEyD8?WcYuT>A4ncqbVUPu5GO`mAuNveD{)Lp~w5`)`}r7;0c0&q2IdZYe0 ztrWx;;7gxvPH$NXdFB#?J6?!~rieCmB)BV0wD&DFg~ZN2okGHR_u0u6YSc*vV9bBf zfy6S(DqyMV1Orvo&RDq^?>; zDUhAz0xB1*W@e%7G8!Oo_EU7{)sI_iCY;Iy0^`nQT zDcNXW@BE3_`IYnjEWR7kNVQ~qoxhT91hZhn6SPSiB`xJB}T zDe~EfC{s_Xll98D6>A9D`pq=@<(3XJ==1sq3&mORA>1y(BA^+~VqwuHXH+n-w96l| zt;OYZ^d=RKNia%bEX4YEf7iXt@9y|49@HzDxJiOPZ!6V{*=6IYWvZD*Wf_AN7z~m& zL~0ghjM~0l1|u(^Y|NkMOHbpj-rr3-JWb?mhu7Ck*CXKyw4kFBgODXY4L^Lk%&}G0 zLDp|$e&6T%XLdiK_*2c|R%CNoyi~SsW4V9mSkUB6UclnFv%!soMSVpbPpKl=y~yGi z{uV;>rP;yewzg(03URxjlreq`c|tx=Gr0hlfK*#Ox$lx1Y67N;(O%%*@gY1U&rL~(M!(sEa~VG!5deHF*yAs+ygnPekBCqC zZaA@wb+X#V5HM~9c7IaUv_8iCnQjVDUCnd$^5n>P+-4mdiymn2*52vc=!)>9#Qhl) znBE{hdn3t!Mu@0KXiKA45<&hO?Ko~m*+{zjVe_~IO6o`tflrHz_t9IrW)ET&p=9r_ zROqXYI_tbY+;~Rf>@sgC5`Mh%x@&m#Wc9iq$#r--6ST0gLuJY5rsn+R9`vqAPgD3i=8PIoEUuu<1Z?2}2CNht z18IV7khmLz`aMZ@tP~Yv=O`gpFaFo~nczP;osy-91KMIKv{%#b=qN*Snb4(4F9) z6XRkpP^*+m-_AUyckLodyt+LCuS2e_?9EV(RHBFGwM0fuWh1F{MVFZ z{V3y)F_cpNYil>OdSChF+*k9lgWJc`cH%<}mS}$b#&UV=Lk}fbrIeE0F z&*Z8N629wn&+z=8!kkj zhgk4l&a320#~X##NlBssyv;b39vA>!LauCd=htqDmjQ~4;*ld7L0&ep1ZrU889;`| zul4`Xbd>>7HNX}G7J(%scj@k2K)Sm_y1QFiQcAi@y1QHHmF|}A7F<_A+K1nJ@9+M+ zd+*GgGiT0uaV^{H+=qSrS5zFJhGmr1od1@nFn|Z$DMx8&R!yvR~xoJ<{K$<>UI+e2zZv%5_K8vY-MLVILyH_4=SM& z{{3xkw(f-oI$nkf6>Kf$cmLkKEyO2fiG@f`McI4xiuH()>6{4-He#id=H;UO4EE5E zk(?S&_ei<;tg~pg(Jl05OT>rj%BxLAhKpNTeQmE$Z2Ir92BruUJkG_{QQTsG8EzWn zF94*t#5|8pEmE5(__F>LnzA;jbjB0ld1upECrm=TKKNMNPS?pza#WghF^^!@)xjuP>POFy)(01I#7F)S?W_d5;1yNX@bPf8+Z`SUbh4Ca)@1aV zUFqp;l4XWIU0|1WYCru<4|VXefskH0U~fLvn49}kJ^lzwgen;bE^Jg1AVQdXI97Sy z(g{#y&(VbuV4jU`j=_FK)R-&FCen=DFT zK)tt**|U7J1oX5~TcR8^_uukni>xI?F5=CtZCEGI)lCGSkCHxI#g+&s*1TtAf~)nR zTRC>ykFAqHBwRG*F zjxqV~?wx8^!#c6L?eQhw)?YcLE|-u~V3mSTFfrrZ)m==15Nh=3(bo}h*W}^cT1}0_ zOFQjXw#HnA6y)Ry~Af@S*@|EUFegiScD$HIZvAt=!_#$1$}aT!QSE z8{l{VwGM|_D+9$m6}P^-BC*vfNATT57QPYh9DYDeN<-@Yk1?3UL*W>vZg(3hjGT-xu|ooMB|tJ;%sIo~sO9f` z3Apn(Ac|zOlZlQctq6eme1&{#mmX$^i}(Ix1%kBRF37r>fOfZEY;%qU&+GjfopU+u;8BnZ8~P&nByUP6V}kD` zm?3GIp58V+nWfFp#Y=v~gXZCFW8!-sJI}>IpN@GQejlqWX+yb^M7JnK`s=7x6)`cc zKY8yzb<;&%)H@O% z6STKEUuv}U*oRO!Yzipv5$s$@7eiU zoYVq1Q{55Z%MZuUCMYVjsfgzDuWgDKgh)bipb_=-En3Q4%FxQVo99iC-=%?3 z^v$`cKNl%6>1)e<%iWDTwZX)o8&%NB2^#7mmAxegr_VIv@k`_k;+JDkV?)B^L}!4A z(X7L0X1-9({gZT7iu(yP7D5@ng(;VKB@1S(qTc`T4m3AD`G#!NxI*GlsUiwG7K&8V z(!jT&KJwf=-7V-x3zq(3J()TFwjLr_sI9}GMiwi?ZnQF9m_uWErp_0UaEYbzDv9b~ zpJlftHgoW|sqc$>FFiB?pSd8=o9Yo}D@No}*E;Xi><4~wwHsUD1uv>$+Ig=Q6}frb zR_eH2J68Q#!Z;$ohLt%-zYG zYNL~zFk^8p)A%K0*K&Qyerzr0CCPBoUYyS3DEkegz8E!m?!02_O1=nzD%lUT9{4%X z{7vO*=ob(|p_S|933|aNJ~9!5O@9Mf4*e-k1QReAn`Y-isL=WDGy2d$o~$1Sb`bDg zCzxO_MQ8TuAd@1zA>j0|Go{`5p*!em-~)s-AwpF~P(Gv&fW2Bxr{q54n2$$LYL%6X2c6BC*FrAd~wYq09f(_+NoZd9Cxc+2&Fe8UL zPe_f?*jV9qeE@m*f4D6dY26*c?_+W567pXd_FtUzWJcm-86tM0Pw?nE`B16QF-3Bq z+KkxW04);_8$8JG7e8|o5HWF#EWXvT*wccTj0~fqN?InP{NKBRzXHq}nAqF-)&7&m&(?cHMrDnRkK1V@X;W5toBCa_myB*sVlO@YkU{Vv ztnc}}Pquq!IPk@R(w#&MXq1L}$ZA*{^!H&q@mL}`qdA!Za;x_DO3iW|q2c+3PkkF% zVkT=2#1@bmKj8L!{+GrmToS{d`UeE@1 zyl=1*`T>*%+6TiKf^oM|FOXYxJZ6uk1sWUp%{D=SUjlmK-euYK6i2&_Bv2#|w5tG; zc_NDpZ8pih(s{ltNKbsXUEo&|0xvCjDfKFIHZH)%;?$ThUqU-)XNnVV##tJ^-3MKt zEp@V)^*(3Sa+$n@kYP#*L{i47jdEFGcti+B$3ah2vz)o*MN4_57BD!vajZ#(FZs3u zxNoSEbw{n*F=c`%JCf{oXviR`qAap3B}ia-G2A;Kuz7J>TBe>;08x+=Ut?=V)G`Xo z`K5n^V1pBjCgLWzYg9RjMX`C_UzZep*dfeE*Np}%AV04#&burk!^zBcMDtKtVHVW zdwj&(T`3T&=2kfyOh#%5Kj%wyT<*3ZI{A^@G}h(jY^7O~v<&?jc-;mY#0xV}S;D;} zr2xjpZ@#eNqQC;9uXqV|LagoU2Jc zat-=-YFK!jE-R_1MQ!%&h z;;5(Y@wkxf40y6R`LWWwwx;N*04Z%S<@To2?R_q*fFgoN4e6x$*T(=5n|!tIl5mAm z8V6eP5?_khxaQ-0L4w}LT$>ns8C_T1_jWM=GUeVIeuv%c`=hFs&)uBF9hqd= zxtORtze2U!T4E=P)YkjRmvsW!*y5X%lQMMX9n=|YD1V_zdNtR!TbQ&Q9JP&CRp}r9 zsqB_Rbki+l6~28p?Ni)+zueJF5cJ0< zn2(v|@8!>D_IkLqh65z#A?X0u4dkc(xmbEg+|rFvLPNZ`6NRrPniJHNf^kSUuAP=S z`n4hO!qNR2$2|D&pJ0kZGFfIT%4VF$+Uon*zT4Q!?kTlb;u$W7NfC@{eZS&e!yAIG zYvvICtOP%;Xgmj;8bDl8W;OFCDa$Sx>+Va4G*C?22*t!ZX@7~54 zG5Tx={@LVzgWo$(*uP+#??=y^qv88owKEl9w8J)H|C7V!L~J_rX%NvX{;D9T^3q># z`MZ^}We$q7alOEb#MctJium}eO$IS4OcwGwLv4db?jHUxoVJ>i4QLZ;Jk4d(p zZZE|;jgh-Kte1Y6UT4$-RxAvvN*b!gX%S^VL}7rSt^Pp`hM{WMG!@4{UY^ObEo(&? zA|D=hQsBX+xC|Aa0)Wb{I5#TUidle>#QC`!-)@r|`orxdt z2{iUPP7wFysc+zIQrJY7xYWPPJ5$xx`!B?gEb)-Vl81vUSIj!wdL=h zk*HlQK~!=?tjZwUVk)dxNv3#f_jq0IdbVhoc0ykT!J(YA?=u!ctmX|!)y-N{-b9Aw zd5RSha#Tft&#s;^qw$Nf;{4K%0>bcb5C$6T?5 zI&Q)T2xSL?z!%BCRs5-HhpCqgY)EVIIAx1yqP`>bFt~L2NUihc^Uo2~JMJJ}HBJYf zo!X^QlUJu$4oa~0y0}U131VG-54t&+3x&1nh#4w^d6%sMw>vWfH0IA|6S+ z(?q%nlaj!W81G}!?-@ukbkfHECR226z((%+a;g9H@b6fEd|v!Ndn?q zMZhH^dq`U&aG)b<^CJYgODR^ey`usur~7<)ZLd?N^NKm>kWK*}q1mb%ct5GURUnaRNXV zMky{h<<}5P7719h41VK5RB?)%6=j0{<7^nK^c%$>Cy5~kZJ;r|AsfY4lE53Fn0)MB zrsqNQJb_WT1om)n+E-;#@i)qTOf2I@dz`P$VUq2yqF5u@b%dH;Ar7%{UKyfU@&eEe z?2suua^V_S@FCxk7+!b?eVh?}N72ewQFibO``i(xKM)U z5uZ_z57rM`ENT043R<9U*voFJjxB}6Ude4Zr&^r2hBZP+&?5}Z=UV}P754|;s^n^k zCxewvj9J0>cj$t2IKx2C8B(v;`_W_RieB8(_EeW^R%$Zni^s z!~O?U=A(!@#O}YGYCd;{Vfe*JWr!0!iO=IEl2VcDn>CIy!zD7PQRCmbsnc6+B^``g zgJ+Xos0ufCIn`!#;C-_G=v#QRFnpK+)`UXIxg#^3vTTLh*^do0AARRLP_1>}Ijdw! z0`fHz<`eAtk2bEJd7+K93o1U4SQaI7W4|Qu@$IuFc=6)boqc-01)xA>Mo|&Zgr`D{ z%YH2VB+m12Mp-Ha_c%M8aAGy7gK0EdY#J@4_xkVYn1b8L6<_tRGuyA1R?7U5pT_*? zyk{OLGcH7Cx4uRhrV~Y6nE&D-dZX(S?|6;J{YiI_s?JTYlDo*$Byjn*#9JAAXYVoF zH*=e`(r}6EWbw!2;2H8Y4!u|8SOrnr%!M;1`{Elr`z0WbezUq(!?{tmu&#RbGE1#0 zkH-;E(QviWVwL}AxkgPLp@tR90_NS)O8n2;v>OP@=ljpIxPMG%J zs>$j>$Z$h7yG!_6G)SHkw=WOrctH46qVpt@S(+E)@h{dYN5_yM~v&!$^>=%QrBYN081AK`B}0 z)~qKL^3cn>Yww)O|7blrhuB2CQMiYK<EOXyo@N70X0+0=!0dhpG=qkyySa9p^Fl=@xE#0_FOh3$ z$>~-vs;wQND{?h50i2-orIxkoYZuT0?xqr7`Cwi$Q(Y3-3+NCa6pT!)bn>(;Wnmuo*RA z)}a|Acl6C*SHJbJgB6z>KqABo{N9XqJSo8&&C|JLg|(=ssfjY8{07%3lXB&( zns@5bIHei8jW*snuQi5Ip(F+mnwS=VY0!X-!kBa(j%}&FIqYCJ7k6zk#Vk;y`fIZ) z+ijN_2~anv$?#Oz9w|6m_8TOv#G{=~DDgcjRFl;j!lNKjJ6tN^_pKYbjoxuVCC~Qv zve5CK@&S=o=YBRf)O|wIW^zV3fsnJvla9lNwc*Slb@(k@a~E@u;8==O#DlT>W}HZ} zBCUr}UE>vpBZ_43Z(06X4MBB{oB!Hi)F>kDE0(G?>!bn3-pa$|n&!dEds(T8y_mSS zknV~0d>t}MDLs+0KEN23GdfW`hUfM`1auMq@KuoZFLGx@{z`3OU8}TCUoW0G)$0AN z?}UJd575xd_N+$j!A3cgkK8Pk|>~*{g>p~R!e+HmmL2*%QKVFM=+uYC`1`4i=YDc`~U{TG`tg?h_bh?Lr-Y=0|SGGJ5h+H-Go zz)jAu)`Tn%{UX!G%Ey5mAWPZ+>WDiMqUqQfCHEXT9j#x_0;tIsm@*Cl`7d+R`{RZPil-~KywEbF zMK$awQ6}$lt54lj`?@8fv@v5cUn2(`w1=w?59xO0V|;WzVtOt|aP)b+6~6X--7!MQ z`)kkpwxDA>etqgKn_5(bl~&2q_pQ(u9ANeV%S_$6Fi;QR3ivVQG@(D>Z04*=;Zj?( ze2kPBBTBp z9c`z%SEBF2r4jzRzZ95Uq(5VbX+@(9HnZ=`(OBY=c#7`F&40>j*mUD2AuBm=uoa&}UI|7tE+Wl^zaK zeVB09&tftuA}iy%lS1t-+<=8(95NriB9~#Usd(K%0ATb?KL56mK{?W;7d_;_7^lh@ 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 z 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

    EIc(ni9BV2B%g6m` z3knp_*v(i|Ntb#yO4-ch!VV+M%{7|5859^009b_nu%C%zlXI6F@f!?@-=F{$Sz3u_ zE==VnToA`qgLI_pEqA)_GXAc`SV zM?g(c-}x-)&Io_F$aE0I`o&0kV2%(_I%*YfhQmS|(pVhpF#O(Xa3C{HR9n(!l+OXK z2Zt0t_kS(1^Ck3h$xk9*wD2n2cUd-v>n}yz$#aRdNcb5cr z4esu)jRtoJ1ShyO?(XguG`Izq#=UXZualW`XU@6bU1xsv+P!-Bu2-tw+Eq_I<-}QN zMq6D?LWz;lUT=|Ua zX|kUb;U%=TMKD=}7+>6)IHecb?3(JqbGN{%2jL`qXCj)|FQ^BGkuRf*=2hy1&Q*cK zP9da4%;h@+wgeu>}IRJ*Xh(-5&4=bl4REVRgSM}3vrPTpRG~$YoiWx zop(?f-J~a2qBgh~WsSESPLt$IeMc`ZrE+AD;&#HixP_g-pytQI2n`WMQe-;XU@U_xdOZ zfymv*K99jsn|92d&LOFO{8HCbIsoZ=qq=3Hu-|u@7Wu~SvAKLdWj@JarY>TwvRukz zrTnLL8P;LCN>J`Msdw|Gc)+2s5FRJQAlHxtxuIbTG2-#^rE)K;Hl7qiNv+vJ*T|Ln zj5?R|=s&g6Pi>BvFjjPmbTf=`z976fZ(6`OS0JYWR#pZ$Tqb5G7G;8XUi%~HfJbv&ce0^e^bej zQaylEpPcs@DA|P@NyL^D+`Ws{EZ^0B3h*0W*1`C=#NJ4)tBT)TIqR+0Qy?*%C10R~ zxo@Y`E>{M@Z)8q!>o4I|>0`c^s@5V2cl|rMwGkV6|oFJe@+M4 zdKDY}fqS-`#^Mr(tL1Apm~f>`z-n=~Z>zMi3L8nAMyZPMwUxl6+(7Gkur2-S#!Ww| z4XM)9G`G2u<91^-?%^G6TcGuKhJa<&ko$hK!5ozcxYi(QSM}d!+Rvbst3YO1!_8@B z8_~}>btv3N)>8CP8!d7^xJVeSss;?-JvhHI-}J&jDFnU2G#N(`QiAx24^=9;BSk-)l9CugMHznMoml)#*^L)ITWW*6WdSPD>&EDm(aCU?N$GEj zMib5d;v#m%mXvcY!|<^!xP(ZKZ;mM1m^KhOU(B+=&Y4>DTS?xaJEdZoWOy zwV{4ivu(bMhwp-AGr#B^m6lWyY1-vAHhkw%dt{&+`KqiII~JN85P1BW9Y8N<_neJ1 z^lt;htubn=EzW`=h$GWP$6|HDNntG&@2^&>I$%QQwe<L}WKxtqUMv)dCIh~-K*4CqyIOu&bPxOveO+X|!Yj&5~cVCg`WPzZa= zg9Y~Ns{s2u^?RnU^#R=eM8L?=eGBG^R0JP4@>LzZtwo;QTuMoCeQ(Pn{I;CZDo zlD`@TFadPoNI?4D-~+t}J-jWmTxXS-neZ9T^!~xE>%JfXjJGcO14<2zlWBjG<@L@< z_r_`B+>B`C{v1enFkG3AD!8Y;!SS1@O@(Ab(}_O@K+{A*l7{Kzk;cT|so5ag%)#ze$m_Mene6$ey{+_w=&uO27vsJ+?|0C8ery1>&v zkkPq~2r*3Oa3)y=O5QJ;-+$>IbzsV`$Z z$jol`n!)ZQa#0hv=}dbQ6DxmY@U?DrTytz?0jCGI=X3o)K8>!w;_gHaRB` z<2PPbBqNwui&XHz+uo6>MV^$h3QqMb&o?kslU(KDmb;JA(P&~~CTDR@6i^Rqs~LT7q7?#X zUqgYun{&pQWui;#igZj%tUCvrYJ@REIpN1`HLXb*05BWHlQL7BDdNH`?u_X9%L5*~ zT4iCi8}kPY#eVZKhRqhv{_25`$T0t0tD!T`F100Igklh;ubiI{zBDD1!pm)GM!>r2 z4Wd;*1UgEQSV~s;mDttWH?wQWM@CQV%l10iO*u#|*StJDZ#62+>B%}TnY!?lS8HiC zwDw4QC~8+sb>?-)^`Hc)0U3U_He4Iz4I8Ct-Z`&@BW}R4&Yurut-;04;!&eu*Y_8w zKB$?1eOI}`49_aY@J=fEKvA;Hh!NuOtS|m>7zN&9sw+_b^F;o94ioXWe3jl{dK_%X zcJ#*$=$_*sZ=z(*Kcj&FFd*Mp_RcF4(SnIBf=0)|Kf^~U=mv|Y&h6_UwCZlD<1Y5-9aY1s(agvMWR<&u*@XPZp z2p1f1XBWmtmT{Swyv#8he}NRs;@39RmBwb4y3B&-583}`!z5@p>Q$p%$*e$tW?;|u*nLiLHis_B*$r8@Mm7E| zh9DNZFVp1eW2uKfkg`Yj2 zI9e^YBQ0U=Fbqz+HhHhL*!P9hLS*5&7K^ND`akf)1c+%D1=2S!R=014$V;Zz%%kQz<6@lFw z7LZipt2lzFznbfg^Uj&XqmQGiwDKoyM332y76=wM<8IZqHRD3U9pdL76ZtD@f{DsF z1Qdc1Im1guZInk#)c;gE7p!Tek7dyO!mu7#HE<41;rTMC; zzoDqvQl*+-wAxS7&6;#UDT2lbSEx(_C=<;-=m9w<1U4)R!y?g-PxbUb(ZAD}{5+|o z*^!_=c9FoiwXhOf*G$NSoit*kD6zAg_kDypiO{Ct$05DN1qKlDKY;M^hemA--Ydwul$Q^A!-`njuId zLo3EEJu{#lj9nl&6yYpbT1S?=?(w+We;%KpOOr4i9{@l5otl)NFc_{-=N?$wSb@$5 z#Ne@=_f(TPZ@;2_$P&4ZkYL)8>zWl{>hHJz8zK9nK^){UkNpg9ywhqzTf08O_kpg` z&WWIkOkFt#Em<5+{ z)jzE4rioA?q|ZLnr{e0@q0(n=4>rrIx>>rGm8!l`|3F45LOJW_$yNn1H*c-Nf5G(eL#z`~*c;-x z5$9sVr>$!PEN(Wfmyb?BxWpS*-MHXJ5;*~7#2$_^9oJGFDifeW4dzWH@#R%9F%wxg{X~G+rQB)slZI4(LVpm~ zfaFj85RAd_@~`Q+aVP5cXab&sRlbRp>=95Zd(3K4JT84XovmURiV9U~*HRx!6Q6ko zOU09<`n>efW%StI@(J+=9ryKKA{31(x9AV`$zycyrWUGJOIfLjd7H4uTsmn`K&g7v zaKPjKc^n*+noRCy+x2O?<$Kkjavs{w3)K>`rQWBu36M8CNT$NaymyiAT-@ER=;8}4 zh_zRGODo=rJ`ZU$}hS0JlwUA}Q^bhTGZ0N;5ebq8! z7Tk&1)VeN%cj0Fz1N|w0J6j^jR#@sXf8MUbUz>scUe$Iue4Z&TC{-iYT8dbnx&?DT zENiDiv0`>a3mS+Cr-`P|3cr#aZ=AC~ax$aZ_gL_aVXaPx=BQI#*c;L;08i8njskD7 z1#{C)vi46@hg~$Z0u!l26ux}Iu#XV(Em{^AH~cRR{^zDTBSSxX>zCTr>|M&&K(lE$ zScLF!PU7qBq8BUFG|U!MA}d`1<5^spxz^9OeNYpT{zvW$G{`)R^a@D(B0?kH=j}Or zm=+4}Ww!d9UeY6MOKqHNkcv52WGj9o*+>7G+v9^48`lBV6-H{Y>{rV0le$L_G`aBo zc}SF-GB(;B_+abLF4unp4<|_DPVIub>M?L+7j9j&u|?hv zf+=tgfh>CE?xDVMUBmdDaxUM8$oRod@>+nI4CU(|<+5#fRZn!(dn0bY%;A{F6;NnS zmV<1iYJ2k>?S|X+N_b6u{D0DT6LEU1%BAA|a>V-UoBW%0wYS25f{Te6Hj}+zN!lf@ zdy9jyt0f$Xk}q=d>pbrl>|~)GQTaxZ_jbS$2qh> zq+)ntLmYqHBIfmqJhAL@q9bF*)_s;;Y$|r323_=4tn|6AOhYLdx0O{bT4@SiyU8t# zIogT-jhblKj3CS5um?ZwrataH9TIxM(=skv&YyWNC5`Diz%U?EyDoG%nCm9qqiDwxmkAnfEqKK%pI3|ujZ@)UM<^FIaVkQUP zCEPl;qyUR3uK8-Y#V5XhoqYdy6#p_bYueCp2~>sa1EXKj8fAhQ$X02!;n)0xLZ%pb4AA(=R1NRmvX3m2kxYml8VwRR zdi%XLwx?tCLQBFSS`M1BdR)@*cUj7(A-)vpX@RitXePRxWeoDUk&&R2WL*SDyrTTT zoxS6UROTX4!_G!V0VqgF(hw8Mo0-=)FilxtBIJo%!+q#&zeQHUNy-HH_a}uxJ*M3Q zNBg0~u%G4|6T&*mo_s@e5eSa6jT9>hpo2m*UwQ{_dz49jkNdIMu&?r)3eg9G%25zF z&cBSsKh-1qhtTK2v$P~^mXfJgEbSLLj|(O^hV)7%krg&p+EDAv5br^1DQ~& z^Vt>M1ndx#(`is2^m2TTaD? z;^O>vS$>a`>0XZujt3j4|F_`li=^u;>{JxmXoG^kmGLp!E+(9bu$}M?=!?QoYKVl^ z)g@FpY81wBmm&(1?6 zsn+w_HE=~gFZJ75J~s$SX&A;NPQ9RT1w&&3EBhxL@%(tX@4q{oXwyYqqzF=RAm1>r0}55 zgSxEjDgIIO_Rp31$43*P|1gS#vPh2o#SHzVW+K(slhxdOx-E5SZ4{J$C)V|BMi3uSx@TGs%F@R#~x$D7_e zE#T{di?#ooxc{%a;g7!wX<1Z@#sM)1aMYP$ZfMy4rGx*Q2;`7=n2%wcXHiL55v2_c z4b|nI??CpdwExLJEHFatzlShP8Z7E9LYTFdIq&fbM5PiF)h;hD2ZE-<1^fO{q5a>+ z`hTx7WM{aNDr#t0jE#-WO-~y`xGO6~-DewN-v`a&-*IZakXu_?o(XnywH+dRPbn4r zKj-1!o@0m$Z#Wsy`Q}-8jvOK*1<(9KjGQ~^y0S+Q`T&2H1 zZRh_p8DNijrJ4UlJa>P13bo(k!=)J}`Xup6s(;m~3jUAVDyILX8vTD+_bO_rbjmKJ z57G|vdFPtYwxtP!n97!AR<#yRrE&`Ae`mUT`P-ja<7nS0Hu;CPb~pCEj#cw{>MiG) zaH@DZD15!Pa!mTF|n70d=k~17Kh!)##$hhdAltKI#0)~d9_e1A9Q+)^}2akkw; z_rOr}^chHNfC73-5ak3pm2f*3@#)O$TsfdZ>+3)L`3)Y zCB@D?0QuEe<}wZ@n2`l^Q01(imp|1KctQAspj?Bc&3ELspS z2>hRl!VK$wxX+QOLHH~HxVO_PkX1aB$@lvbSxqJ!wcO`Vt`yF7QEQODcu7is20mc|vJr!=k% zol<{a3)Um~rUHTD?sgcfeVTtM1;0v(@^aydnBi0`&}>jAn2;>)a2=|H%!vKjmCvT~ za4-<*;{wxfh{D7mB&@?aMI_N~x=Gs)+;% z&54()>a?n1jhiVn$9?v+r%Wky6{L3#QMt*~1&3@KKA2*mwkV5O9S4M}Gmv0}UiNefl7`+aFxaZhja+YMxRa zSPiR)2Ue+It#4m&AT25!4w{NCHbqAyj|;C5RimZS4+^jDOL)#So3u9?azIuKH@#_t zSXZI@RwcaDWMg(m^{k1Z2+;a!(BWNQ?PD$sT6-=AW4|Nb(8s?E!rbw+ylp=|g{J!5 z<5>17n)tT4D*0f>m5KH~ecN?P0ll$9gc{v5$0q>sQsekNHulhIx>Y1YQFn1 zGKLvT^w?P_^os>d%_a<&fah9@FYP(`zJS#4aWl%oPzAu%`|mJS(R5pjPWQ#rWdDsS z6JoC*hbC{NZ)b^Gi+W`-L?y+ zM8rHX`kURTW|6zZE3P($ZY!;u`(i}OR)PAjS|uE?9sIk~zIV^rJ2>$+`tSp~?tq<%B5LhBy(PuWSmT@rPKXNe+JYiJn>A@r zNF0q9t^97wfjA&RZ`H+ZKtvhVI)TO#=7o)|a^tqQU37|!`Vh;26og=r|Y;+MOEK(=OVh&Hak2vRW)9>G{RY4x83;y@)2)y(S)kc7+!;i z>qRWjbJvU${=i88xi_o$pzyFP#MJc3G(TEIc3nDBoW;&NXB(h;ovU$8t+PR4jGk!Rgy0syN(W85ewdjhr>

    2rdykkjfjD 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Ð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
    ymfyp(RPE5_Ru+Nq;nD00Dg+j*2d znH=7Q^oAv(^J$c;6?hbTi;}&~nQ)lvD*7E(MJPBt4RV8)FAtL5WPt%hJ+ps%TQ)xE z&iiosu1<1@KeB)lhZuz6g1P+-AQWvgJhc5O1db!2N;Lm@90`LANBwy>FVo`A6(NAV zVqb>uIoqh9UEv^wm)~4<&SUN0J+*vMalY=cb&^Q$tZouRFEGIHR(iGgjV~vjxP>7# zoyOPgpZ3KU_e#qPS=B>cjLQ`u)w_SoTK002! zvKIYKk)4q|+Knut&M&|E*rb@p$bC#0KD!h|T_u(!E-c16x{jfrqo1XH8wYNA=d$Yt z>VYtbh%xxRZJt?FZ|J_jj1Xc1->_Q2@ZnYMWx^#5_IR;1#i5$#S99g_hPKgiWB^-; zb<24=hpjH$5Sr84#}pvrr6mMgukRP??CsdsoVv1>EB8B@fJ%GbYpqL2reb*WrxI0z z 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
  • +*3h2G=yudqrfL*DvB4 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 diff --git a/infra/website/public/images/blog/operation.png b/infra/website/public/images/blog/operation.png index 7eacc84b71508f97de8c145794ba399b12b8a9c7..43b6500faeede58d43fb70f27d32d1cc8c55a95c 100644 GIT binary patch literal 175585 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
  • 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 z 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

    teuOj%aMAl@J6|bMp>y&{CWlss#dnrU* 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%0An3k3gu)& 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

    !@EWq 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ⅆ;0&Ghg5`9)0B5_*071+q&bi!09C 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%0AN@e9Vg@H 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 diff --git a/infra/website/public/images/blog/registered_model_with_feature_service.png b/infra/website/public/images/blog/registered_model_with_feature_service.png index 8271f15b88752b25de8649990362d5c2dcf8fa66..1195d4c3cbb99308a3b1e664a582fea088f191db 100644 GIT binary patch literal 88388 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 literal 232672 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 E;-xm-ureO?g_w%9<(gitX#P~ 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 Date: Wed, 3 Jun 2026 12:58:14 +0530 Subject: [PATCH 54/59] feat: Operational metrics for offline store and SOX metrics for both (#6340) * feat: Operational metrics for offline store and SOX metrics for both Signed-off-by: Jitendra Yejare <11752425+jyejare@users.noreply.github.com> * fix: Resolve comments from review Signed-off-by: Jitendra Yejare <11752425+jyejare@users.noreply.github.com> * feat: System metrics API requests to prometheus Signed-off-by: Jitendra Yejare <11752425+jyejare@users.noreply.github.com> * fix: Reviewers comment fixed Signed-off-by: Jitendra Yejare <11752425+jyejare@users.noreply.github.com> * chore: Removed operational metrics GET request from prometheus Signed-off-by: Jitendra Yejare <11752425+jyejare@users.noreply.github.com> --------- Signed-off-by: Jitendra Yejare <11752425+jyejare@users.noreply.github.com> --- .../feature-servers/python-feature-server.md | 72 +- .../samples/v1_featurestore_serving.yaml | 4 +- sdk/python/feast/feature_server.py | 78 +- .../infra/feature_servers/base_config.py | 11 + .../infra/offline_stores/offline_store.py | 67 +- sdk/python/feast/metrics.py | 104 +- sdk/python/feast/repo_operations.py | 1188 ++++++++--------- sdk/python/tests/unit/test_metrics.py | 661 ++++++++- 8 files changed, 1568 insertions(+), 617 deletions(-) diff --git a/docs/reference/feature-servers/python-feature-server.md b/docs/reference/feature-servers/python-feature-server.md index 654c4b9f938..4802599866d 100644 --- a/docs/reference/feature-servers/python-feature-server.md +++ b/docs/reference/feature-servers/python-feature-server.md @@ -352,11 +352,14 @@ feature_server: push: true # push request counters materialization: true # materialization counters & duration freshness: true # feature freshness gauges + offline_features: true # offline store retrieval counters & latency + audit_logging: false # structured JSON audit logs (see below) ``` Any category set to `false` will emit no metrics and start no background threads (e.g., setting `freshness: false` prevents the registry polling -thread from starting). All categories default to `true`. +thread from starting). All categories default to `true` except +`audit_logging`, which defaults to `false`. ### Available metrics @@ -375,6 +378,9 @@ thread from starting). All categories default to `true`. | `feast_materialization_result_total` | Counter | `feature_view`, `status` | `materialization` | Materialization runs (success/failure) | | `feast_materialization_duration_seconds` | Histogram | `feature_view` | `materialization` | Materialization duration per feature view | | `feast_feature_freshness_seconds` | Gauge | `feature_view`, `project` | `freshness` | Seconds since last materialization | +| `feast_offline_store_request_total` | Counter | `method`, `status` | `offline_features` | Total offline store retrieval requests | +| `feast_offline_store_request_latency_seconds` | Histogram | `method` | `offline_features` | Latency of offline store retrieval operations | +| `feast_offline_store_row_count` | Histogram | `method` | `offline_features` | Rows returned by offline store retrieval | ### Per-ODFV transformation metrics @@ -405,6 +411,70 @@ The `odfv_name` label lets you filter or group by individual ODFV, and the `mode` label (`python`, `pandas`, `substrait`) lets you compare transformation engines. +### Audit logging + +Feast can emit structured JSON audit log entries for every online and offline +feature retrieval. These are written via the standard `feast.audit` Python +logger, so you can route them to a dedicated file, SIEM, or log aggregator +independently of application logs. + +Audit logging is **disabled by default**. Enable it in `feature_store.yaml`: + +```yaml +feature_server: + type: local + metrics: + enabled: true + audit_logging: true +``` + +**Online audit log** (emitted per `/get-online-features` call): + +```json +{ + "event": "online_feature_request", + "timestamp": "2026-05-11T08:30:00.123456+00:00", + "requestor_id": "user@example.com", + "entity_keys": ["driver_id"], + "entity_count": 3, + "feature_views": ["driver_hourly_stats"], + "feature_count": 3, + "status": "success", + "latency_ms": 12.34 +} +``` + +**Offline audit log** (emitted per `RetrievalJob.to_arrow()` call): + +```json +{ + "event": "offline_feature_retrieval", + "timestamp": "2026-05-11T08:31:00.456789+00:00", + "method": "to_arrow", + "start_time": "2026-05-11T08:30:59.226789+00:00", + "end_time": "2026-05-11T08:31:00.456789+00:00", + "feature_views": ["driver_hourly_stats"], + "feature_count": 3, + "row_count": 500, + "status": "success", + "duration_ms": 1230.0 +} +``` + +The `requestor_id` field in online audit logs is populated from the +security manager's current user when authentication is configured, and +falls back to `"anonymous"` otherwise. + +To route audit logs to a separate file: + +```python +import logging + +handler = logging.FileHandler("/var/log/feast/audit.log") +handler.setFormatter(logging.Formatter("%(message)s")) +logging.getLogger("feast.audit").addHandler(handler) +``` + ### Scraping with Prometheus ```yaml diff --git a/infra/feast-operator/config/samples/v1_featurestore_serving.yaml b/infra/feast-operator/config/samples/v1_featurestore_serving.yaml index f60640624c9..412499412e6 100644 --- a/infra/feast-operator/config/samples/v1_featurestore_serving.yaml +++ b/infra/feast-operator/config/samples/v1_featurestore_serving.yaml @@ -26,8 +26,8 @@ spec: push: true # push/write request counters materialization: true # materialization counters and duration histograms freshness: false # feature freshness gauges (can be expensive at scale) - # Example: when a future SDK adds "registry_sync", enable it here - # registry_sync: false + offline_features: true # offline store retrieval counters, latency, row count + audit_logging: false # structured JSON audit logs via the feast.audit logger offlinePushBatching: enabled: true batchSize: 1000 # max rows per offline write batch diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index 81359222797..bba91130db3 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -152,28 +152,71 @@ class ChatRequest(BaseModel): messages: List[ChatMessage] -def _resolve_feature_counts( +def _parse_feature_info( features: Union[List[str], "feast.FeatureService"], ) -> tuple: - """Return (feature_count, feature_view_count) from the resolved features. + """Return ``(feature_view_names, feature_count)`` from resolved features. ``features`` is either a list of ``"feature_view:feature"`` strings or a ``FeatureService`` with ``feature_view_projections``. + + Returns: + (fv_names, feat_count) where fv_names is a list of unique feature + view name strings and feat_count is the total number of features. """ from feast.feature_service import FeatureService + from feast.utils import _parse_feature_ref if isinstance(features, FeatureService): projections = features.feature_view_projections - fv_count = len(projections) + fv_names = [p.name for p in projections] feat_count = sum(len(p.features) for p in projections) elif isinstance(features, list): feat_count = len(features) - fv_names = {ref.split(":")[0].split("@")[0] for ref in features if ":" in ref} - fv_count = len(fv_names) + fv_names = list({_parse_feature_ref(ref)[0] for ref in features if ":" in ref}) else: + fv_names = [] feat_count = 0 - fv_count = 0 - return str(feat_count), str(fv_count) + return fv_names, feat_count + + +def _resolve_feature_counts( + features: Union[List[str], "feast.FeatureService"], +) -> tuple: + """Return ``(feature_count_str, feature_view_count_str)`` for Prometheus labels.""" + fv_names, feat_count = _parse_feature_info(features) + return str(feat_count), str(len(fv_names)) + + +def _emit_online_audit( + request: GetOnlineFeaturesRequest, + features: Union[List[str], "feast.FeatureService"], + entity_count: int, + status: str, + latency_ms: float, +): + """Best-effort audit log emission for online feature requests.""" + try: + from feast.permissions.security_manager import get_security_manager + + requestor_id = "anonymous" + sm = get_security_manager() + if sm and sm.current_user: + requestor_id = sm.current_user.username or "anonymous" + + fv_names, feat_count = _parse_feature_info(features) + + feast_metrics.emit_online_audit_log( + requestor_id=requestor_id, + entity_keys=list(request.entities.keys()), + entity_count=entity_count, + feature_views=fv_names, + feature_count=feat_count, + status=status, + latency_ms=latency_ms, + ) + except Exception: + logger.warning("Failed to emit online audit log", exc_info=True) async def _get_features( @@ -390,11 +433,22 @@ async def get_online_features(request: GetOnlineFeaturesRequest) -> Any: include_feature_view_version_metadata=request.include_feature_view_version_metadata, ) - if store._get_provider().async_supported.online.read: - response = await store.get_online_features_async(**read_params) # type: ignore - else: - response = await run_in_threadpool( - lambda: store.get_online_features(**read_params) # type: ignore + audit_start_ms = time.monotonic() * 1000 + audit_status = "success" + try: + if store._get_provider().async_supported.online.read: + response = await store.get_online_features_async(**read_params) # type: ignore + else: + response = await run_in_threadpool( + lambda: store.get_online_features(**read_params) # type: ignore + ) + except Exception: + audit_status = "error" + raise + finally: + audit_latency_ms = time.monotonic() * 1000 - audit_start_ms + _emit_online_audit( + request, features, entity_count, audit_status, audit_latency_ms ) response_dict = await run_in_threadpool( diff --git a/sdk/python/feast/infra/feature_servers/base_config.py b/sdk/python/feast/infra/feature_servers/base_config.py index df324dc57d3..14ad2fe505e 100644 --- a/sdk/python/feast/infra/feature_servers/base_config.py +++ b/sdk/python/feast/infra/feature_servers/base_config.py @@ -82,6 +82,17 @@ class MetricsConfig(FeastConfigBaseModel): """Emit per-feature-view freshness gauges (feast_feature_freshness_seconds).""" + offline_features: StrictBool = True + """Emit offline store retrieval metrics + (feast_offline_store_request_total, + feast_offline_store_request_latency_seconds, + feast_offline_store_row_count).""" + + audit_logging: StrictBool = False + """Emit structured JSON audit log entries for online and offline + feature requests via the ``feast.audit`` logger. Captures requestor + identity, entity keys, feature views, row counts, and latency.""" + class BaseFeatureServerConfig(FeastConfigBaseModel): """Base Feature Server config that should be extended""" diff --git a/sdk/python/feast/infra/offline_stores/offline_store.py b/sdk/python/feast/infra/offline_stores/offline_store.py index 4ae0c680c3b..24e1e743953 100644 --- a/sdk/python/feast/infra/offline_stores/offline_store.py +++ b/sdk/python/feast/infra/offline_stores/offline_store.py @@ -11,9 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import logging +import time import warnings from abc import ABC -from datetime import datetime +from datetime import datetime, timedelta, timezone from pathlib import Path from typing import ( TYPE_CHECKING, @@ -70,6 +72,23 @@ def __init__( self.max_event_timestamp = max_event_timestamp +def _extract_retrieval_metadata(job: "RetrievalJob") -> tuple: + """Return ``(feature_view_names, feature_count)`` from a RetrievalJob's metadata.""" + from feast.utils import _parse_feature_ref + + try: + meta = job.metadata + if meta: + feature_count = len(meta.features) + feature_views = list( + {_parse_feature_ref(ref)[0] for ref in meta.features if ":" in ref} + ) + return feature_views, feature_count + except (NotImplementedError, AttributeError): + pass + return [], 0 + + class RetrievalJob(ABC): """A RetrievalJob manages the execution of a query to retrieve data from the offline store.""" @@ -152,7 +171,51 @@ def to_arrow( validation_reference (optional): The validation to apply against the retrieved dataframe. timeout (optional): The query timeout if applicable. """ - features_table = self._to_arrow_internal(timeout=timeout) + start_wall = time.monotonic() + status_label = "success" + row_count = 0 + try: + features_table = self._to_arrow_internal(timeout=timeout) + row_count = features_table.num_rows + except Exception: + status_label = "error" + raise + finally: + try: + from feast import metrics as feast_metrics + + elapsed = time.monotonic() - start_wall + + if feast_metrics._config.offline_features: + feast_metrics.offline_store_request_total.labels( + method="to_arrow", status=status_label + ).inc() + feast_metrics.offline_store_request_latency_seconds.labels( + method="to_arrow" + ).observe(elapsed) + feast_metrics.offline_store_row_count.labels( + method="to_arrow" + ).observe(row_count) + + if feast_metrics._config.audit_logging: + feature_views, feature_count = _extract_retrieval_metadata(self) + end_dt = datetime.now(tz=timezone.utc) + start_dt = end_dt - timedelta(seconds=elapsed) + feast_metrics.emit_offline_audit_log( + method="to_arrow", + feature_views=feature_views, + feature_count=feature_count, + row_count=row_count, + status=status_label, + start_time=start_dt.isoformat(), + end_time=end_dt.isoformat(), + duration_ms=elapsed * 1000, + ) + except Exception: + logging.getLogger(__name__).debug( + "Failed to record offline store metrics", exc_info=True + ) + if self.on_demand_feature_views: # Build a mapping of ODFV name to requested feature names # This ensures we only return the features that were explicitly requested diff --git a/sdk/python/feast/metrics.py b/sdk/python/feast/metrics.py index 694f25a687e..13a855d587b 100644 --- a/sdk/python/feast/metrics.py +++ b/sdk/python/feast/metrics.py @@ -42,6 +42,7 @@ """ import atexit +import json import logging import os import shutil @@ -51,7 +52,7 @@ from contextlib import contextmanager from dataclasses import dataclass from datetime import datetime, timezone -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, List, Optional import psutil @@ -123,6 +124,8 @@ class _MetricsFlags: push: bool = False materialization: bool = False freshness: bool = False + offline_features: bool = False + audit_logging: bool = False _config = _MetricsFlags() @@ -144,6 +147,8 @@ def build_metrics_flags(metrics_config: Optional[object] = None) -> _MetricsFlag push=True, materialization=True, freshness=True, + offline_features=True, + audit_logging=False, ) return _MetricsFlags( enabled=True, @@ -153,6 +158,8 @@ def build_metrics_flags(metrics_config: Optional[object] = None) -> _MetricsFlag push=getattr(metrics_config, "push", True), materialization=getattr(metrics_config, "materialization", True), freshness=getattr(metrics_config, "freshness", True), + offline_features=getattr(metrics_config, "offline_features", True), + audit_logging=getattr(metrics_config, "audit_logging", False), ) @@ -260,6 +267,33 @@ def build_metrics_flags(metrics_config: Optional[object] = None) -> _MetricsFlag multiprocess_mode="max", ) +# --------------------------------------------------------------------------- +# Offline store retrieval metrics +# --------------------------------------------------------------------------- +offline_store_request_total = Counter( + "feast_offline_store_request_total", + "Total offline store retrieval requests", + ["method", "status"], +) +offline_store_request_latency_seconds = Histogram( + "feast_offline_store_request_latency_seconds", + "Latency of offline store retrieval operations in seconds", + ["method"], + buckets=(0.1, 0.5, 1.0, 5.0, 10.0, 30.0, 60.0, 120.0, 300.0, 600.0), +) +offline_store_row_count = Histogram( + "feast_offline_store_row_count", + "Number of rows returned by offline store retrieval", + ["method"], + buckets=(100, 1000, 10000, 100000, 500000, 1000000, 5000000), +) + +# --------------------------------------------------------------------------- +# Audit logger — separate from the main feast logger so operators can +# route SOX-style audit entries to a dedicated sink. +# --------------------------------------------------------------------------- +audit_logger = logging.getLogger("feast.audit") + # --------------------------------------------------------------------------- # Helpers # --------------------------------------------------------------------------- @@ -388,6 +422,72 @@ def track_materialization( ) +def emit_online_audit_log( + *, + requestor_id: str, + entity_keys: List[str], + entity_count: int, + feature_views: List[str], + feature_count: int, + status: str, + latency_ms: float, +): + """Emit a structured JSON audit log entry for an online feature request.""" + if not _config.audit_logging: + return + audit_logger.info( + _json_dumps( + { + "event": "online_feature_request", + "timestamp": datetime.now(tz=timezone.utc).isoformat(), + "requestor_id": requestor_id, + "entity_keys": entity_keys, + "entity_count": entity_count, + "feature_views": feature_views, + "feature_count": feature_count, + "status": status, + "latency_ms": round(latency_ms, 2), + } + ) + ) + + +def emit_offline_audit_log( + *, + method: str, + feature_views: List[str], + feature_count: int, + row_count: int, + status: str, + start_time: str, + end_time: str, + duration_ms: float, +): + """Emit a structured JSON audit log entry for an offline feature retrieval.""" + if not _config.audit_logging: + return + audit_logger.info( + _json_dumps( + { + "event": "offline_feature_retrieval", + "timestamp": datetime.now(tz=timezone.utc).isoformat(), + "method": method, + "start_time": start_time, + "end_time": end_time, + "feature_views": feature_views, + "feature_count": feature_count, + "row_count": row_count, + "status": status, + "duration_ms": round(duration_ms, 2), + } + ) + ) + + +def _json_dumps(obj: dict) -> str: + return json.dumps(obj, separators=(",", ":")) + + def update_feature_freshness( store: "FeatureStore", ) -> None: @@ -507,6 +607,8 @@ def start_metrics_server( push=True, materialization=True, freshness=True, + offline_features=True, + audit_logging=False, ) from prometheus_client import CollectorRegistry, make_wsgi_app diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index 28fe86602ad..0ba74a23d37 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -1,594 +1,594 @@ -import base64 -import importlib -import json -import logging -import os -import random -import re -import sys -import tempfile -from importlib.abc import Loader -from importlib.machinery import ModuleSpec -from pathlib import Path -from typing import List, Optional, Set, Union - -import click -from click.exceptions import BadParameter - -from feast import PushSource -from feast.batch_feature_view import BatchFeatureView -from feast.constants import FEATURE_STORE_YAML_ENV_NAME -from feast.data_source import DataSource, KafkaSource, KinesisSource -from feast.diff.registry_diff import extract_objects_for_keep_delete_update_add -from feast.entity import Entity -from feast.feature_service import FeatureService -from feast.feature_store import FeatureStore -from feast.feature_view import DUMMY_ENTITY, FeatureView -from feast.file_utils import replace_str_in_file -from feast.infra.registry.base_registry import BaseRegistry -from feast.infra.registry.registry import FEAST_OBJECT_TYPES, FeastObjectType, Registry -from feast.names import adjectives, animals -from feast.on_demand_feature_view import OnDemandFeatureView -from feast.permissions.permission import Permission -from feast.project import Project -from feast.repo_config import RepoConfig -from feast.repo_contents import RepoContents -from feast.stream_feature_view import StreamFeatureView - -logger = logging.getLogger(__name__) - - -def py_path_to_module(path: Path) -> str: - return ( - str(path.relative_to(os.getcwd()))[: -len(".py")] - .replace("./", "") - .replace("/", ".") - .replace("\\", ".") - ) - - -def read_feastignore(repo_root: Path) -> List[str]: - """Read .feastignore in the repo root directory (if exists) and return the list of user-defined ignore paths""" - feast_ignore = repo_root / ".feastignore" - if not feast_ignore.is_file(): - return [] - lines = feast_ignore.read_text().strip().split("\n") - ignore_paths = [] - for line in lines: - # Remove everything after the first occurance of "#" symbol (comments) - if line.find("#") >= 0: - line = line[: line.find("#")] - # Strip leading or ending whitespaces - line = line.strip() - # Add this processed line to ignore_paths if it's not empty - if len(line) > 0: - ignore_paths.append(line) - return ignore_paths - - -def get_ignore_files(repo_root: Path, ignore_paths: List[str]) -> Set[Path]: - """Get all ignore files that match any of the user-defined ignore paths""" - ignore_files = set() - for ignore_path in set(ignore_paths): - # ignore_path may contains matchers (* or **). Use glob() to match user-defined path to actual paths - for matched_path in repo_root.glob(ignore_path): - if matched_path.is_file(): - # If the matched path is a file, add that to ignore_files set - ignore_files.add(matched_path.resolve()) - else: - # Otherwise, list all Python files in that directory and add all of them to ignore_files set - ignore_files |= { - sub_path.resolve() - for sub_path in matched_path.glob("**/*.py") - if sub_path.is_file() - } - return ignore_files - - -def get_repo_files(repo_root: Path) -> List[Path]: - """Get the list of all repo files, ignoring undesired files & directories specified in .feastignore""" - # Read ignore paths from .feastignore and create a set of all files that match any of these paths - ignore_paths = read_feastignore(repo_root) + [ - ".git", - ".feastignore", - ".venv", - "**/.ipynb_checkpoints", - "**/.pytest_cache", - "**/__pycache__", - ] - ignore_files = get_ignore_files(repo_root, ignore_paths) - - # List all Python files in the root directory (recursively) - repo_files = { - p.resolve() - for p in repo_root.glob("**/*.py") - if p.is_file() and "__init__.py" != p.name - } - # Ignore all files that match any of the ignore paths in .feastignore - repo_files -= ignore_files - - # Sort repo_files to read them in the same order every time - return sorted(repo_files) - - -def parse_repo(repo_root: Path) -> RepoContents: - """ - Collects unique Feast object definitions from the given feature repo. - - Specifically, if an object foo has already been added, bar will still be added if - (bar == foo), but not if (bar is foo). This ensures that import statements will - not result in duplicates, but defining two equal objects will. - """ - res = RepoContents( - projects=[], - data_sources=[], - entities=[], - feature_views=[], - feature_services=[], - on_demand_feature_views=[], - stream_feature_views=[], - permissions=[], - ) - - for repo_file in get_repo_files(repo_root): - module_path = py_path_to_module(repo_file) - module = importlib.import_module(module_path) - - for attr_name in dir(module): - obj = getattr(module, attr_name) - - if isinstance(obj, DataSource) and not any( - (obj is ds) for ds in res.data_sources - ): - res.data_sources.append(obj) - - # Handle batch sources defined within stream sources. - if ( - isinstance(obj, PushSource) - or isinstance(obj, KafkaSource) - or isinstance(obj, KinesisSource) - ): - batch_source = obj.batch_source - - if batch_source and not any( - (batch_source is ds) for ds in res.data_sources - ): - res.data_sources.append(batch_source) - if ( - isinstance(obj, FeatureView) - and not any((obj is fv) for fv in res.feature_views) - and not isinstance(obj, StreamFeatureView) - and not isinstance(obj, BatchFeatureView) - ): - res.feature_views.append(obj) - - # Handle batch sources defined with feature views. - batch_source = obj.batch_source - if batch_source is not None and not any( - (batch_source is ds) for ds in res.data_sources - ): - res.data_sources.append(batch_source) - - # Handle stream sources defined with feature views. - if obj.stream_source: - stream_source = obj.stream_source - if not any((stream_source is ds) for ds in res.data_sources): - res.data_sources.append(stream_source) - elif isinstance(obj, StreamFeatureView) and not any( - (obj is sfv) for sfv in res.stream_feature_views - ): - res.stream_feature_views.append(obj) - - # Handle batch sources defined with feature views. - batch_source = obj.batch_source - if batch_source is not None and not any( - (batch_source is ds) for ds in res.data_sources - ): - res.data_sources.append(batch_source) - assert obj.stream_source - stream_source = obj.stream_source - if not any((stream_source is ds) for ds in res.data_sources): - res.data_sources.append(stream_source) - elif isinstance(obj, BatchFeatureView) and not any( - (obj is bfv) for bfv in res.feature_views - ): - res.feature_views.append(obj) - - # Handle batch sources defined with feature views. - batch_source = obj.batch_source - if batch_source is not None and not any( - (batch_source is ds) for ds in res.data_sources - ): - res.data_sources.append(batch_source) - elif isinstance(obj, Entity) and not any( - (obj is entity) for entity in res.entities - ): - res.entities.append(obj) - elif isinstance(obj, FeatureService) and not any( - (obj is fs) for fs in res.feature_services - ): - res.feature_services.append(obj) - elif isinstance(obj, OnDemandFeatureView) and not any( - (obj is odfv) for odfv in res.on_demand_feature_views - ): - res.on_demand_feature_views.append(obj) - elif isinstance(obj, Permission) and not any( - (obj is p) for p in res.permissions - ): - res.permissions.append(obj) - elif isinstance(obj, Project) and not any((obj is p) for p in res.projects): - res.projects.append(obj) - - res.entities.append(DUMMY_ENTITY) - return res - - -def plan( - repo_config: RepoConfig, - repo_path: Path, - skip_source_validation: bool, - skip_feature_view_validation: bool = False, -): - os.chdir(repo_path) - repo = _get_repo_contents(repo_path, repo_config.project, repo_config) - for project in repo.projects: - repo_config.project = project.name - store, registry = _get_store_and_registry(repo_config) - # TODO: When we support multiple projects in a single repo, we should filter repo contents by project - if not skip_source_validation: - provider = store._get_provider() - data_sources = [ - t.batch_source for t in repo.feature_views if t.batch_source is not None - ] - # Make sure the data source used by this feature view is supported by Feast - for data_source in data_sources: - provider.validate_data_source(store.config, data_source) - - registry_diff, infra_diff, _ = store.plan( - repo, skip_feature_view_validation=skip_feature_view_validation - ) - click.echo(registry_diff.to_string()) - click.echo(infra_diff.to_string()) - - -def _get_repo_contents( - repo_path, - project_name: Optional[str] = None, - repo_config: Optional[RepoConfig] = None, -): - sys.dont_write_bytecode = True - repo = parse_repo(repo_path) - - if len(repo.projects) < 1: - if project_name: - print( - f"No project found in the repository. Using project name {project_name} defined in feature_store.yaml" - ) - project_description = ( - repo_config.project_description if repo_config else None - ) - repo.projects.append( - Project(name=project_name, description=project_description or "") - ) - else: - print( - "No project found in the repository. Either define Project in repository or define a project in feature_store.yaml" - ) - sys.exit(1) - elif len(repo.projects) == 1: - if repo.projects[0].name != project_name: - print( - "Project object name should match with the project name defined in feature_store.yaml" - ) - sys.exit(1) - else: - print( - "Multiple projects found in the repository. Currently no support for multiple projects" - ) - sys.exit(1) - - return repo - - -def _get_store_and_registry(repo_config): - store = FeatureStore(config=repo_config) - registry = store.registry - return store, registry - - -def extract_objects_for_apply_delete(project, registry, repo): - # TODO(achals): This code path should be refactored to handle added & kept entities separately. - ( - _, - objs_to_delete, - objs_to_update, - objs_to_add, - ) = extract_objects_for_keep_delete_update_add(registry, project, repo) - - all_to_apply: List[ - Union[ - Entity, - FeatureView, - OnDemandFeatureView, - StreamFeatureView, - FeatureService, - ] - ] = [] - for object_type in FEAST_OBJECT_TYPES: - to_apply = set(objs_to_add[object_type]).union(objs_to_update[object_type]) - all_to_apply.extend(to_apply) - - all_to_delete: List[ - Union[ - Entity, - FeatureView, - OnDemandFeatureView, - StreamFeatureView, - FeatureService, - ] - ] = [] - for object_type in FEAST_OBJECT_TYPES: - all_to_delete.extend(objs_to_delete[object_type]) - - return ( - all_to_apply, - all_to_delete, - set(objs_to_add[FeastObjectType.FEATURE_VIEW]).union( - set(objs_to_update[FeastObjectType.FEATURE_VIEW]) - ), - objs_to_delete[FeastObjectType.FEATURE_VIEW], - ) - - -def apply_total_with_repo_instance( - store: FeatureStore, - project_name: str, - registry: BaseRegistry, - repo: RepoContents, - skip_source_validation: bool, - skip_feature_view_validation: bool = False, - no_promote: bool = False, -): - if not skip_source_validation: - provider = store._get_provider() - data_sources = [ - t.batch_source for t in repo.feature_views if t.batch_source is not None - ] - # Make sure the data source used by this feature view is supported by Feast - for data_source in data_sources: - provider.validate_data_source(store.config, data_source) - - # For each object in the registry, determine whether it should be kept or deleted. - ( - all_to_apply, - all_to_delete, - views_to_keep, - views_to_delete, - ) = extract_objects_for_apply_delete(project_name, registry, repo) - - try: - if store._should_use_plan(): - # Planning phase - compute diffs first without progress bars - registry_diff, infra_diff, new_infra = store.plan( - repo, - skip_feature_view_validation=skip_feature_view_validation, - ) - click.echo(registry_diff.to_string()) - - # Only show progress bars if there are actual infrastructure changes - progress_ctx = None - if len(infra_diff.infra_object_diffs) > 0: - from feast.diff.apply_progress import ApplyProgressContext - - progress_ctx = ApplyProgressContext() - progress_ctx.start_overall_progress() - - # Apply phase - store._apply_diffs( - registry_diff, - infra_diff, - new_infra, - progress_ctx=progress_ctx, - no_promote=no_promote, - ) - click.echo(infra_diff.to_string()) - else: - # Legacy apply path - no progress bars for legacy path - store.apply( - all_to_apply, - objects_to_delete=all_to_delete, - partial=False, - skip_feature_view_validation=skip_feature_view_validation, - no_promote=no_promote, - ) - log_infra_changes(views_to_keep, views_to_delete) - finally: - # Cleanup is handled in the new _apply_diffs method - pass - - -def log_infra_changes( - views_to_keep: Set[FeatureView], views_to_delete: Set[FeatureView] -): - from colorama import Fore, Style - - for view in views_to_keep: - click.echo( - f"Deploying infrastructure for {Style.BRIGHT + Fore.GREEN}{view.name}{Style.RESET_ALL}" - ) - for view in views_to_delete: - click.echo( - f"Removing infrastructure for {Style.BRIGHT + Fore.RED}{view.name}{Style.RESET_ALL}" - ) - - -def create_feature_store( - ctx: click.Context, -) -> FeatureStore: - repo = ctx.obj["CHDIR"] - # If we received a base64 encoded version of feature_store.yaml, use that - config_base64 = os.getenv(FEATURE_STORE_YAML_ENV_NAME) - if config_base64: - print("Received base64 encoded feature_store.yaml") - config_bytes = base64.b64decode(config_base64) - # Create a new unique directory for writing feature_store.yaml - repo_path = Path(tempfile.mkdtemp()) - with open(repo_path / "feature_store.yaml", "wb") as f: - f.write(config_bytes) - return FeatureStore(repo_path=str(repo_path.resolve())) - else: - fs_yaml_file = ctx.obj["FS_YAML_FILE"] - cli_check_repo(repo, fs_yaml_file) - return FeatureStore(repo_path=str(repo), fs_yaml_file=fs_yaml_file) - - -def apply_total( - repo_config: RepoConfig, - repo_path: Path, - skip_source_validation: bool, - skip_feature_view_validation: bool = False, - no_promote: bool = False, -): - os.chdir(repo_path) - repo = _get_repo_contents(repo_path, repo_config.project, repo_config) - for project in repo.projects: - repo_config.project = project.name - store, registry = _get_store_and_registry(repo_config) - if not is_valid_name(project.name): - print( - f"{project.name} is not valid. Project name should only have " - f"alphanumerical values, underscores, and hyphens but not start with an underscore or hyphen." - ) - sys.exit(1) - # TODO: When we support multiple projects in a single repo, we should filter repo contents by project. Currently there is no way to associate Feast objects to project. - print(f"Applying changes for project {project.name}") - apply_total_with_repo_instance( - store, - project.name, - registry, - repo, - skip_source_validation, - skip_feature_view_validation, - no_promote=no_promote, - ) - - -def teardown(repo_config: RepoConfig, repo_path: Optional[str]): - # Cannot pass in both repo_path and repo_config to FeatureStore. - feature_store = FeatureStore(repo_path=repo_path, config=repo_config) - feature_store.teardown() - - -def registry_dump(repo_config: RepoConfig, repo_path: Path) -> str: - """For debugging only: output contents of the metadata registry""" - registry_config = repo_config.registry - project = repo_config.project - registry = Registry( - project, - registry_config=registry_config, - repo_path=repo_path, - auth_config=repo_config.auth_config, - ) - registry_dict = registry.to_dict(project=project) - return json.dumps(registry_dict, indent=2, sort_keys=True) - - -def cli_check_repo(repo_path: Path, fs_yaml_file: Path): - sys.path.append(str(repo_path)) - if not fs_yaml_file.exists(): - print( - f"Can't find feature repo configuration file at {fs_yaml_file}. " - "Make sure you're running feast from an initialized feast repository." - ) - sys.exit(1) - - -def init_repo(repo_name: str, template: str, repo_path: Optional[str] = None): - import os - from pathlib import Path - from shutil import copytree - - from colorama import Fore, Style - - # Validate project name - if not is_valid_name(repo_name): - raise BadParameter( - message="Name should be alphanumeric values, underscores, and hyphens but not start with an underscore or hyphen", - param_hint="PROJECT_DIRECTORY", - ) - - # Determine where to create the repository - if repo_path: - # User specified a custom path - target_path = Path(repo_path).resolve() - target_path.mkdir(parents=True, exist_ok=True) - display_path = repo_path - else: - # Default behavior: create subdirectory with project name - target_path = Path(os.path.join(Path.cwd(), repo_name)) - target_path.mkdir(exist_ok=True) - display_path = repo_name - - repo_config_path = target_path / "feature_store.yaml" - - if repo_config_path.exists(): - print( - f"The directory {Style.BRIGHT + Fore.GREEN}{display_path}{Style.RESET_ALL} contains an existing feature " - f"store repository that may cause a conflict" - ) - print() - sys.exit(1) - - # Copy template directory - template_path = str(Path(Path(__file__).parent / "templates" / template).absolute()) - if not os.path.exists(template_path): - raise IOError(f"Could not find template {template}") - copytree(template_path, str(target_path), dirs_exist_ok=True) - - # Rename gitignore files back to .gitignore - for gitignore_path in target_path.rglob("gitignore"): - gitignore_path.rename(gitignore_path.with_name(".gitignore")) - - # Seed the repository - bootstrap_path = target_path / "bootstrap.py" - if os.path.exists(bootstrap_path): - import importlib.util - - spec = importlib.util.spec_from_file_location("bootstrap", str(bootstrap_path)) - assert isinstance(spec, ModuleSpec) - bootstrap = importlib.util.module_from_spec(spec) - assert isinstance(spec.loader, Loader) - spec.loader.exec_module(bootstrap) - bootstrap.bootstrap() # type: ignore - os.remove(bootstrap_path) - - # Template the feature_store.yaml file - feature_store_yaml_path = target_path / "feature_repo" / "feature_store.yaml" - replace_str_in_file( - feature_store_yaml_path, "project: my_project", f"project: {repo_name}" - ) - - # Remove the __pycache__ folder if it exists - import shutil - - shutil.rmtree(target_path / "__pycache__", ignore_errors=True) - - import click - - click.echo() - click.echo( - f"Creating a new Feast repository in {Style.BRIGHT + Fore.GREEN}{target_path}{Style.RESET_ALL}." - ) - click.echo() - - -def is_valid_name(name: str) -> bool: - """A name should be alphanumeric values, underscores, and hyphens but not start with an underscore""" - return ( - not name.startswith(("_", "-")) and re.compile(r"[^\w-]+").search(name) is None - ) - - -def generate_project_name() -> str: - """Generates a unique project name""" - return f"{random.choice(adjectives)}_{random.choice(animals)}" +import base64 +import importlib +import json +import logging +import os +import random +import re +import sys +import tempfile +from importlib.abc import Loader +from importlib.machinery import ModuleSpec +from pathlib import Path +from typing import List, Optional, Set, Union + +import click +from click.exceptions import BadParameter + +from feast import PushSource +from feast.batch_feature_view import BatchFeatureView +from feast.constants import FEATURE_STORE_YAML_ENV_NAME +from feast.data_source import DataSource, KafkaSource, KinesisSource +from feast.diff.registry_diff import extract_objects_for_keep_delete_update_add +from feast.entity import Entity +from feast.feature_service import FeatureService +from feast.feature_store import FeatureStore +from feast.feature_view import DUMMY_ENTITY, FeatureView +from feast.file_utils import replace_str_in_file +from feast.infra.registry.base_registry import BaseRegistry +from feast.infra.registry.registry import FEAST_OBJECT_TYPES, FeastObjectType, Registry +from feast.names import adjectives, animals +from feast.on_demand_feature_view import OnDemandFeatureView +from feast.permissions.permission import Permission +from feast.project import Project +from feast.repo_config import RepoConfig +from feast.repo_contents import RepoContents +from feast.stream_feature_view import StreamFeatureView + +logger = logging.getLogger(__name__) + + +def py_path_to_module(path: Path) -> str: + return ( + str(path.relative_to(os.getcwd()))[: -len(".py")] + .replace("./", "") + .replace("/", ".") + .replace("\\", ".") + ) + + +def read_feastignore(repo_root: Path) -> List[str]: + """Read .feastignore in the repo root directory (if exists) and return the list of user-defined ignore paths""" + feast_ignore = repo_root / ".feastignore" + if not feast_ignore.is_file(): + return [] + lines = feast_ignore.read_text().strip().split("\n") + ignore_paths = [] + for line in lines: + # Remove everything after the first occurance of "#" symbol (comments) + if line.find("#") >= 0: + line = line[: line.find("#")] + # Strip leading or ending whitespaces + line = line.strip() + # Add this processed line to ignore_paths if it's not empty + if len(line) > 0: + ignore_paths.append(line) + return ignore_paths + + +def get_ignore_files(repo_root: Path, ignore_paths: List[str]) -> Set[Path]: + """Get all ignore files that match any of the user-defined ignore paths""" + ignore_files = set() + for ignore_path in set(ignore_paths): + # ignore_path may contains matchers (* or **). Use glob() to match user-defined path to actual paths + for matched_path in repo_root.glob(ignore_path): + if matched_path.is_file(): + # If the matched path is a file, add that to ignore_files set + ignore_files.add(matched_path.resolve()) + else: + # Otherwise, list all Python files in that directory and add all of them to ignore_files set + ignore_files |= { + sub_path.resolve() + for sub_path in matched_path.glob("**/*.py") + if sub_path.is_file() + } + return ignore_files + + +def get_repo_files(repo_root: Path) -> List[Path]: + """Get the list of all repo files, ignoring undesired files & directories specified in .feastignore""" + # Read ignore paths from .feastignore and create a set of all files that match any of these paths + ignore_paths = read_feastignore(repo_root) + [ + ".git", + ".feastignore", + ".venv", + "**/.ipynb_checkpoints", + "**/.pytest_cache", + "**/__pycache__", + ] + ignore_files = get_ignore_files(repo_root, ignore_paths) + + # List all Python files in the root directory (recursively) + repo_files = { + p.resolve() + for p in repo_root.glob("**/*.py") + if p.is_file() and "__init__.py" != p.name + } + # Ignore all files that match any of the ignore paths in .feastignore + repo_files -= ignore_files + + # Sort repo_files to read them in the same order every time + return sorted(repo_files) + + +def parse_repo(repo_root: Path) -> RepoContents: + """ + Collects unique Feast object definitions from the given feature repo. + + Specifically, if an object foo has already been added, bar will still be added if + (bar == foo), but not if (bar is foo). This ensures that import statements will + not result in duplicates, but defining two equal objects will. + """ + res = RepoContents( + projects=[], + data_sources=[], + entities=[], + feature_views=[], + feature_services=[], + on_demand_feature_views=[], + stream_feature_views=[], + permissions=[], + ) + + for repo_file in get_repo_files(repo_root): + module_path = py_path_to_module(repo_file) + module = importlib.import_module(module_path) + + for attr_name in dir(module): + obj = getattr(module, attr_name) + + if isinstance(obj, DataSource) and not any( + (obj is ds) for ds in res.data_sources + ): + res.data_sources.append(obj) + + # Handle batch sources defined within stream sources. + if ( + isinstance(obj, PushSource) + or isinstance(obj, KafkaSource) + or isinstance(obj, KinesisSource) + ): + batch_source = obj.batch_source + + if batch_source and not any( + (batch_source is ds) for ds in res.data_sources + ): + res.data_sources.append(batch_source) + if ( + isinstance(obj, FeatureView) + and not any((obj is fv) for fv in res.feature_views) + and not isinstance(obj, StreamFeatureView) + and not isinstance(obj, BatchFeatureView) + ): + res.feature_views.append(obj) + + # Handle batch sources defined with feature views. + batch_source = obj.batch_source + if batch_source is not None and not any( + (batch_source is ds) for ds in res.data_sources + ): + res.data_sources.append(batch_source) + + # Handle stream sources defined with feature views. + if obj.stream_source: + stream_source = obj.stream_source + if not any((stream_source is ds) for ds in res.data_sources): + res.data_sources.append(stream_source) + elif isinstance(obj, StreamFeatureView) and not any( + (obj is sfv) for sfv in res.stream_feature_views + ): + res.stream_feature_views.append(obj) + + # Handle batch sources defined with feature views. + batch_source = obj.batch_source + if batch_source is not None and not any( + (batch_source is ds) for ds in res.data_sources + ): + res.data_sources.append(batch_source) + assert obj.stream_source + stream_source = obj.stream_source + if not any((stream_source is ds) for ds in res.data_sources): + res.data_sources.append(stream_source) + elif isinstance(obj, BatchFeatureView) and not any( + (obj is bfv) for bfv in res.feature_views + ): + res.feature_views.append(obj) + + # Handle batch sources defined with feature views. + batch_source = obj.batch_source + if batch_source is not None and not any( + (batch_source is ds) for ds in res.data_sources + ): + res.data_sources.append(batch_source) + elif isinstance(obj, Entity) and not any( + (obj is entity) for entity in res.entities + ): + res.entities.append(obj) + elif isinstance(obj, FeatureService) and not any( + (obj is fs) for fs in res.feature_services + ): + res.feature_services.append(obj) + elif isinstance(obj, OnDemandFeatureView) and not any( + (obj is odfv) for odfv in res.on_demand_feature_views + ): + res.on_demand_feature_views.append(obj) + elif isinstance(obj, Permission) and not any( + (obj is p) for p in res.permissions + ): + res.permissions.append(obj) + elif isinstance(obj, Project) and not any((obj is p) for p in res.projects): + res.projects.append(obj) + + res.entities.append(DUMMY_ENTITY) + return res + + +def plan( + repo_config: RepoConfig, + repo_path: Path, + skip_source_validation: bool, + skip_feature_view_validation: bool = False, +): + os.chdir(repo_path) + repo = _get_repo_contents(repo_path, repo_config.project, repo_config) + for project in repo.projects: + repo_config.project = project.name + store, registry = _get_store_and_registry(repo_config) + # TODO: When we support multiple projects in a single repo, we should filter repo contents by project + if not skip_source_validation: + provider = store._get_provider() + data_sources = [ + t.batch_source for t in repo.feature_views if t.batch_source is not None + ] + # Make sure the data source used by this feature view is supported by Feast + for data_source in data_sources: + provider.validate_data_source(store.config, data_source) + + registry_diff, infra_diff, _ = store.plan( + repo, skip_feature_view_validation=skip_feature_view_validation + ) + click.echo(registry_diff.to_string()) + click.echo(infra_diff.to_string()) + + +def _get_repo_contents( + repo_path, + project_name: Optional[str] = None, + repo_config: Optional[RepoConfig] = None, +): + sys.dont_write_bytecode = True + repo = parse_repo(repo_path) + + if len(repo.projects) < 1: + if project_name: + print( + f"No project found in the repository. Using project name {project_name} defined in feature_store.yaml" + ) + project_description = ( + repo_config.project_description if repo_config else None + ) + repo.projects.append( + Project(name=project_name, description=project_description or "") + ) + else: + print( + "No project found in the repository. Either define Project in repository or define a project in feature_store.yaml" + ) + sys.exit(1) + elif len(repo.projects) == 1: + if repo.projects[0].name != project_name: + print( + "Project object name should match with the project name defined in feature_store.yaml" + ) + sys.exit(1) + else: + print( + "Multiple projects found in the repository. Currently no support for multiple projects" + ) + sys.exit(1) + + return repo + + +def _get_store_and_registry(repo_config): + store = FeatureStore(config=repo_config) + registry = store.registry + return store, registry + + +def extract_objects_for_apply_delete(project, registry, repo): + # TODO(achals): This code path should be refactored to handle added & kept entities separately. + ( + _, + objs_to_delete, + objs_to_update, + objs_to_add, + ) = extract_objects_for_keep_delete_update_add(registry, project, repo) + + all_to_apply: List[ + Union[ + Entity, + FeatureView, + OnDemandFeatureView, + StreamFeatureView, + FeatureService, + ] + ] = [] + for object_type in FEAST_OBJECT_TYPES: + to_apply = set(objs_to_add[object_type]).union(objs_to_update[object_type]) + all_to_apply.extend(to_apply) + + all_to_delete: List[ + Union[ + Entity, + FeatureView, + OnDemandFeatureView, + StreamFeatureView, + FeatureService, + ] + ] = [] + for object_type in FEAST_OBJECT_TYPES: + all_to_delete.extend(objs_to_delete[object_type]) + + return ( + all_to_apply, + all_to_delete, + set(objs_to_add[FeastObjectType.FEATURE_VIEW]).union( + set(objs_to_update[FeastObjectType.FEATURE_VIEW]) + ), + objs_to_delete[FeastObjectType.FEATURE_VIEW], + ) + + +def apply_total_with_repo_instance( + store: FeatureStore, + project_name: str, + registry: BaseRegistry, + repo: RepoContents, + skip_source_validation: bool, + skip_feature_view_validation: bool = False, + no_promote: bool = False, +): + if not skip_source_validation: + provider = store._get_provider() + data_sources = [ + t.batch_source for t in repo.feature_views if t.batch_source is not None + ] + # Make sure the data source used by this feature view is supported by Feast + for data_source in data_sources: + provider.validate_data_source(store.config, data_source) + + # For each object in the registry, determine whether it should be kept or deleted. + ( + all_to_apply, + all_to_delete, + views_to_keep, + views_to_delete, + ) = extract_objects_for_apply_delete(project_name, registry, repo) + + try: + if store._should_use_plan(): + # Planning phase - compute diffs first without progress bars + registry_diff, infra_diff, new_infra = store.plan( + repo, + skip_feature_view_validation=skip_feature_view_validation, + ) + click.echo(registry_diff.to_string()) + + # Only show progress bars if there are actual infrastructure changes + progress_ctx = None + if len(infra_diff.infra_object_diffs) > 0: + from feast.diff.apply_progress import ApplyProgressContext + + progress_ctx = ApplyProgressContext() + progress_ctx.start_overall_progress() + + # Apply phase + store._apply_diffs( + registry_diff, + infra_diff, + new_infra, + progress_ctx=progress_ctx, + no_promote=no_promote, + ) + click.echo(infra_diff.to_string()) + else: + # Legacy apply path - no progress bars for legacy path + store.apply( + all_to_apply, + objects_to_delete=all_to_delete, + partial=False, + skip_feature_view_validation=skip_feature_view_validation, + no_promote=no_promote, + ) + log_infra_changes(views_to_keep, views_to_delete) + finally: + # Cleanup is handled in the new _apply_diffs method + pass + + +def log_infra_changes( + views_to_keep: Set[FeatureView], views_to_delete: Set[FeatureView] +): + from colorama import Fore, Style + + for view in views_to_keep: + click.echo( + f"Deploying infrastructure for {Style.BRIGHT + Fore.GREEN}{view.name}{Style.RESET_ALL}" + ) + for view in views_to_delete: + click.echo( + f"Removing infrastructure for {Style.BRIGHT + Fore.RED}{view.name}{Style.RESET_ALL}" + ) + + +def create_feature_store( + ctx: click.Context, +) -> FeatureStore: + repo = ctx.obj["CHDIR"] + # If we received a base64 encoded version of feature_store.yaml, use that + config_base64 = os.getenv(FEATURE_STORE_YAML_ENV_NAME) + if config_base64: + print("Received base64 encoded feature_store.yaml") + config_bytes = base64.b64decode(config_base64) + # Create a new unique directory for writing feature_store.yaml + repo_path = Path(tempfile.mkdtemp()) + with open(repo_path / "feature_store.yaml", "wb") as f: + f.write(config_bytes) + return FeatureStore(repo_path=str(repo_path.resolve())) + else: + fs_yaml_file = ctx.obj["FS_YAML_FILE"] + cli_check_repo(repo, fs_yaml_file) + return FeatureStore(repo_path=str(repo), fs_yaml_file=fs_yaml_file) + + +def apply_total( + repo_config: RepoConfig, + repo_path: Path, + skip_source_validation: bool, + skip_feature_view_validation: bool = False, + no_promote: bool = False, +): + os.chdir(repo_path) + repo = _get_repo_contents(repo_path, repo_config.project, repo_config) + for project in repo.projects: + repo_config.project = project.name + store, registry = _get_store_and_registry(repo_config) + if not is_valid_name(project.name): + print( + f"{project.name} is not valid. Project name should only have " + f"alphanumerical values, underscores, and hyphens but not start with an underscore or hyphen." + ) + sys.exit(1) + # TODO: When we support multiple projects in a single repo, we should filter repo contents by project. Currently there is no way to associate Feast objects to project. + print(f"Applying changes for project {project.name}") + apply_total_with_repo_instance( + store, + project.name, + registry, + repo, + skip_source_validation, + skip_feature_view_validation, + no_promote=no_promote, + ) + + +def teardown(repo_config: RepoConfig, repo_path: Optional[str]): + # Cannot pass in both repo_path and repo_config to FeatureStore. + feature_store = FeatureStore(repo_path=repo_path, config=repo_config) + feature_store.teardown() + + +def registry_dump(repo_config: RepoConfig, repo_path: Path) -> str: + """For debugging only: output contents of the metadata registry""" + registry_config = repo_config.registry + project = repo_config.project + registry = Registry( + project, + registry_config=registry_config, + repo_path=repo_path, + auth_config=repo_config.auth_config, + ) + registry_dict = registry.to_dict(project=project) + return json.dumps(registry_dict, indent=2, sort_keys=True) + + +def cli_check_repo(repo_path: Path, fs_yaml_file: Path): + sys.path.append(str(repo_path)) + if not fs_yaml_file.exists(): + print( + f"Can't find feature repo configuration file at {fs_yaml_file}. " + "Make sure you're running feast from an initialized feast repository." + ) + sys.exit(1) + + +def init_repo(repo_name: str, template: str, repo_path: Optional[str] = None): + import os + from pathlib import Path + from shutil import copytree + + from colorama import Fore, Style + + # Validate project name + if not is_valid_name(repo_name): + raise BadParameter( + message="Name should be alphanumeric values, underscores, and hyphens but not start with an underscore or hyphen", + param_hint="PROJECT_DIRECTORY", + ) + + # Determine where to create the repository + if repo_path: + # User specified a custom path + target_path = Path(repo_path).resolve() + target_path.mkdir(parents=True, exist_ok=True) + display_path = repo_path + else: + # Default behavior: create subdirectory with project name + target_path = Path(os.path.join(Path.cwd(), repo_name)) + target_path.mkdir(exist_ok=True) + display_path = repo_name + + repo_config_path = target_path / "feature_store.yaml" + + if repo_config_path.exists(): + print( + f"The directory {Style.BRIGHT + Fore.GREEN}{display_path}{Style.RESET_ALL} contains an existing feature " + f"store repository that may cause a conflict" + ) + print() + sys.exit(1) + + # Copy template directory + template_path = str(Path(Path(__file__).parent / "templates" / template).absolute()) + if not os.path.exists(template_path): + raise IOError(f"Could not find template {template}") + copytree(template_path, str(target_path), dirs_exist_ok=True) + + # Rename gitignore files back to .gitignore + for gitignore_path in target_path.rglob("gitignore"): + gitignore_path.rename(gitignore_path.with_name(".gitignore")) + + # Seed the repository + bootstrap_path = target_path / "bootstrap.py" + if os.path.exists(bootstrap_path): + import importlib.util + + spec = importlib.util.spec_from_file_location("bootstrap", str(bootstrap_path)) + assert isinstance(spec, ModuleSpec) + bootstrap = importlib.util.module_from_spec(spec) + assert isinstance(spec.loader, Loader) + spec.loader.exec_module(bootstrap) + bootstrap.bootstrap() # type: ignore + os.remove(bootstrap_path) + + # Template the feature_store.yaml file + feature_store_yaml_path = target_path / "feature_repo" / "feature_store.yaml" + replace_str_in_file( + feature_store_yaml_path, "project: my_project", f"project: {repo_name}" + ) + + # Remove the __pycache__ folder if it exists + import shutil + + shutil.rmtree(target_path / "__pycache__", ignore_errors=True) + + import click + + click.echo() + click.echo( + f"Creating a new Feast repository in {Style.BRIGHT + Fore.GREEN}{target_path}{Style.RESET_ALL}." + ) + click.echo() + + +def is_valid_name(name: str) -> bool: + """A name should be alphanumeric values, underscores, and hyphens but not start with an underscore""" + return ( + not name.startswith(("_", "-")) and re.compile(r"[^\w-]+").search(name) is None + ) + + +def generate_project_name() -> str: + """Generates a unique project name""" + return f"{random.choice(adjectives)}_{random.choice(animals)}" diff --git a/sdk/python/tests/unit/test_metrics.py b/sdk/python/tests/unit/test_metrics.py index bffde73dd91..abf2a35e389 100644 --- a/sdk/python/tests/unit/test_metrics.py +++ b/sdk/python/tests/unit/test_metrics.py @@ -18,9 +18,14 @@ import pytest from feast.metrics import ( + emit_offline_audit_log, + emit_online_audit_log, feature_freshness_seconds, materialization_duration_seconds, materialization_result_total, + offline_store_request_latency_seconds, + offline_store_request_total, + offline_store_row_count, online_features_entity_count, online_features_request_count, online_features_status_total, @@ -42,13 +47,11 @@ ) -@pytest.fixture(autouse=True) -def _enable_metrics(): - """Enable all metric categories for each test, then restore.""" +def _all_enabled_flags(): + """Return a _MetricsFlags with every category enabled.""" import feast.metrics as m - original = m._config - m._config = m._MetricsFlags( + return m._MetricsFlags( enabled=True, resource=True, request=True, @@ -56,7 +59,18 @@ def _enable_metrics(): push=True, materialization=True, freshness=True, + offline_features=True, + audit_logging=True, ) + + +@pytest.fixture(autouse=True) +def _enable_metrics(): + """Enable all metric categories for each test, then restore.""" + import feast.metrics as m + + original = m._config + m._config = _all_enabled_flags() yield m._config = original @@ -1081,3 +1095,640 @@ def test_separate_from_read_transform_metric(self): assert abs(read_delta - 0.01) < 0.001 assert abs(write_delta - 0.05) < 0.001 + + +class TestOfflineStoreMetrics: + """Tests for the offline store Prometheus metrics (RED pattern).""" + + def test_request_total_increments_on_success(self): + before = offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + + offline_store_request_total.labels(method="to_arrow", status="success").inc() + + assert ( + offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + == before + 1 + ) + + def test_request_total_increments_on_error(self): + before = offline_store_request_total.labels( + method="to_arrow", status="error" + )._value.get() + + offline_store_request_total.labels(method="to_arrow", status="error").inc() + + assert ( + offline_store_request_total.labels( + method="to_arrow", status="error" + )._value.get() + == before + 1 + ) + + def test_latency_histogram_records(self): + before_sum = offline_store_request_latency_seconds.labels( + method="to_arrow" + )._sum.get() + + offline_store_request_latency_seconds.labels(method="to_arrow").observe(2.5) + + after_sum = offline_store_request_latency_seconds.labels( + method="to_arrow" + )._sum.get() + assert pytest.approx(after_sum - before_sum, abs=0.01) == 2.5 + + def test_row_count_histogram_records(self): + before_sum = offline_store_row_count.labels(method="to_arrow")._sum.get() + + offline_store_row_count.labels(method="to_arrow").observe(1000) + + after_sum = offline_store_row_count.labels(method="to_arrow")._sum.get() + assert pytest.approx(after_sum - before_sum, abs=1) == 1000 + + def test_different_methods_tracked_independently(self): + before_a = offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + before_b = offline_store_request_total.labels( + method="other", status="success" + )._value.get() + + offline_store_request_total.labels(method="to_arrow", status="success").inc() + + assert ( + offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + == before_a + 1 + ) + assert ( + offline_store_request_total.labels( + method="other", status="success" + )._value.get() + == before_b + ) + + +class TestEmitAuditLogs: + """Tests for structured JSON audit log emission.""" + + def test_emit_online_audit_log_writes_json(self): + import json + import logging + + _audit_logger = logging.getLogger("feast.audit") + with patch.object(_audit_logger, "info") as mock_info: + emit_online_audit_log( + requestor_id="user@example.com", + entity_keys=["driver_id", "customer_id"], + entity_count=10, + feature_views=["driver_fv", "order_fv"], + feature_count=5, + status="success", + latency_ms=42.0, + ) + + mock_info.assert_called_once() + logged_json = mock_info.call_args[0][0] + record = json.loads(logged_json) + + assert record["event"] == "online_feature_request" + assert record["requestor_id"] == "user@example.com" + assert record["entity_keys"] == ["driver_id", "customer_id"] + assert record["entity_count"] == 10 + assert record["feature_views"] == ["driver_fv", "order_fv"] + assert record["feature_count"] == 5 + assert record["status"] == "success" + assert record["latency_ms"] == pytest.approx(42.0) + assert "timestamp" in record + + def test_emit_online_audit_log_noop_when_disabled(self): + import logging + + import feast.metrics as m + + m._config = m._MetricsFlags(enabled=True, audit_logging=False) + _audit_logger = logging.getLogger("feast.audit") + with patch.object(_audit_logger, "info") as mock_info: + emit_online_audit_log( + requestor_id="user@example.com", + entity_keys=["driver_id"], + entity_count=1, + feature_views=["driver_fv"], + feature_count=1, + status="success", + latency_ms=10.0, + ) + mock_info.assert_not_called() + + def test_emit_offline_audit_log_writes_json(self): + import json + import logging + + _audit_logger = logging.getLogger("feast.audit") + with patch.object(_audit_logger, "info") as mock_info: + emit_offline_audit_log( + method="to_arrow", + feature_views=["driver_fv"], + feature_count=3, + row_count=500, + status="success", + start_time="2026-04-27T12:00:00+00:00", + end_time="2026-04-27T12:00:01+00:00", + duration_ms=1230.0, + ) + + mock_info.assert_called_once() + logged_json = mock_info.call_args[0][0] + record = json.loads(logged_json) + + assert record["event"] == "offline_feature_retrieval" + assert "timestamp" in record + assert record["method"] == "to_arrow" + assert record["feature_views"] == ["driver_fv"] + assert record["feature_count"] == 3 + assert record["row_count"] == 500 + assert record["status"] == "success" + assert record["duration_ms"] == pytest.approx(1230.0) + assert record["start_time"] == "2026-04-27T12:00:00+00:00" + assert record["end_time"] == "2026-04-27T12:00:01+00:00" + + def test_emit_offline_audit_log_noop_when_disabled(self): + import logging + + import feast.metrics as m + + m._config = m._MetricsFlags(enabled=True, audit_logging=False) + _audit_logger = logging.getLogger("feast.audit") + with patch.object(_audit_logger, "info") as mock_info: + emit_offline_audit_log( + method="to_arrow", + feature_views=["fv"], + feature_count=1, + row_count=10, + status="success", + start_time="t0", + end_time="t1", + duration_ms=500.0, + ) + mock_info.assert_not_called() + + def test_emit_online_audit_log_with_error_status(self): + import json + import logging + + _audit_logger = logging.getLogger("feast.audit") + with patch.object(_audit_logger, "info") as mock_info: + emit_online_audit_log( + requestor_id="unknown", + entity_keys=[], + entity_count=0, + feature_views=[], + feature_count=0, + status="error", + latency_ms=1.0, + ) + + record = json.loads(mock_info.call_args[0][0]) + assert record["status"] == "error" + + +class TestBuildMetricsFlagsOfflineAndAudit: + """Tests for the new offline_features and audit_logging flags.""" + + def test_no_config_defaults_for_new_flags(self): + from feast.metrics import build_metrics_flags + + flags = build_metrics_flags(None) + assert flags.offline_features is True + assert flags.audit_logging is False + + def test_explicit_enable(self): + from types import SimpleNamespace + + from feast.metrics import build_metrics_flags + + mc = SimpleNamespace( + enabled=True, + resource=True, + request=True, + online_features=True, + push=True, + materialization=True, + freshness=True, + offline_features=True, + audit_logging=True, + ) + flags = build_metrics_flags(mc) + assert flags.offline_features is True + assert flags.audit_logging is True + + def test_explicit_disable(self): + from types import SimpleNamespace + + from feast.metrics import build_metrics_flags + + mc = SimpleNamespace( + enabled=True, + resource=True, + request=True, + online_features=True, + push=True, + materialization=True, + freshness=True, + offline_features=False, + audit_logging=False, + ) + flags = build_metrics_flags(mc) + assert flags.offline_features is False + assert flags.audit_logging is False + + def test_missing_new_attrs_fall_back_to_defaults(self): + from types import SimpleNamespace + + from feast.metrics import build_metrics_flags + + mc = SimpleNamespace( + enabled=True, + resource=True, + request=True, + online_features=True, + push=True, + materialization=True, + freshness=True, + ) + flags = build_metrics_flags(mc) + assert flags.offline_features is True + assert flags.audit_logging is False + + +class TestExtractRetrievalMetadata: + """Tests for _extract_retrieval_metadata helper.""" + + def test_extracts_feature_views_and_count(self): + from feast.infra.offline_stores.offline_store import ( + RetrievalMetadata, + _extract_retrieval_metadata, + ) + + job = MagicMock() + job.metadata = RetrievalMetadata( + features=[ + "driver_fv:conv_rate", + "driver_fv:acc_rate", + "vehicle_fv:mileage", + ], + keys=["driver_id"], + ) + + fv_names, feat_count = _extract_retrieval_metadata(job) + assert feat_count == 3 + assert set(fv_names) == {"driver_fv", "vehicle_fv"} + + def test_returns_empty_when_no_metadata(self): + from feast.infra.offline_stores.offline_store import ( + _extract_retrieval_metadata, + ) + + job = MagicMock() + job.metadata = None + + fv_names, feat_count = _extract_retrieval_metadata(job) + assert fv_names == [] + assert feat_count == 0 + + def test_handles_not_implemented_metadata(self): + from feast.infra.offline_stores.offline_store import ( + _extract_retrieval_metadata, + ) + + job = MagicMock() + type(job).metadata = property( + lambda self: (_ for _ in ()).throw(NotImplementedError()) + ) + + fv_names, feat_count = _extract_retrieval_metadata(job) + assert fv_names == [] + assert feat_count == 0 + + +class TestRetrievalJobToArrowInstrumentation: + """Tests for the metrics/audit instrumentation in RetrievalJob.to_arrow().""" + + def _make_job( + self, table, on_demand_fvs=None, metadata=None, raise_on_internal=None + ): + """Create a concrete RetrievalJob subclass for testing.""" + from feast.infra.offline_stores.offline_store import RetrievalJob + + class _TestJob(RetrievalJob): + def __init__(self): + self._table = table + self._odfvs = on_demand_fvs or [] + self._metadata = metadata + self._raise = raise_on_internal + + def _to_arrow_internal(self, timeout=None): + if self._raise: + raise self._raise + return self._table + + @property + def full_feature_names(self): + return False + + @property + def on_demand_feature_views(self): + return self._odfvs + + @property + def metadata(self): + return self._metadata + + return _TestJob() + + def test_success_increments_counter_and_records_latency(self): + import pyarrow as pa + + table = pa.table({"col": [1, 2, 3]}) + job = self._make_job(table) + + before_count = offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + before_latency = offline_store_request_latency_seconds.labels( + method="to_arrow" + )._sum.get() + + result = job.to_arrow() + + assert result.num_rows == 3 + assert ( + offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + == before_count + 1 + ) + assert ( + offline_store_request_latency_seconds.labels(method="to_arrow")._sum.get() + > before_latency + ) + + def test_error_increments_error_counter(self): + job = self._make_job(None, raise_on_internal=RuntimeError("query failed")) + + before_error = offline_store_request_total.labels( + method="to_arrow", status="error" + )._value.get() + + with pytest.raises(RuntimeError, match="query failed"): + job.to_arrow() + + assert ( + offline_store_request_total.labels( + method="to_arrow", status="error" + )._value.get() + == before_error + 1 + ) + + def test_row_count_recorded_on_success(self): + import pyarrow as pa + + table = pa.table({"a": list(range(500))}) + job = self._make_job(table) + + before_sum = offline_store_row_count.labels(method="to_arrow")._sum.get() + + job.to_arrow() + + assert ( + offline_store_row_count.labels(method="to_arrow")._sum.get() + >= before_sum + 500 + ) + + def test_row_count_recorded_when_zero(self): + import pyarrow as pa + + table = pa.table({"a": pa.array([], type=pa.int64())}) + job = self._make_job(table) + + hist = offline_store_row_count.labels(method="to_arrow") + before_bucket = hist._buckets[0].get() + + job.to_arrow() + + assert hist._buckets[0].get() == before_bucket + 1 + + def test_metrics_skipped_when_offline_features_disabled(self): + import pyarrow as pa + + import feast.metrics as m + + m._config = m._MetricsFlags( + enabled=True, offline_features=False, audit_logging=False + ) + + table = pa.table({"col": [1, 2]}) + job = self._make_job(table) + + before_count = offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + + job.to_arrow() + + assert ( + offline_store_request_total.labels( + method="to_arrow", status="success" + )._value.get() + == before_count + ) + + def test_audit_log_emitted_on_success(self): + import pyarrow as pa + + from feast.infra.offline_stores.offline_store import RetrievalMetadata + + meta = RetrievalMetadata( + features=["driver_fv:conv_rate", "driver_fv:acc_rate"], + keys=["driver_id"], + ) + table = pa.table({"col": [1, 2, 3]}) + job = self._make_job(table, metadata=meta) + + with patch("feast.metrics.emit_offline_audit_log") as mock_audit: + job.to_arrow() + + mock_audit.assert_called_once() + call_kwargs = mock_audit.call_args[1] + assert call_kwargs["method"] == "to_arrow" + assert call_kwargs["status"] == "success" + assert call_kwargs["row_count"] == 3 + assert call_kwargs["feature_count"] == 2 + assert set(call_kwargs["feature_views"]) == {"driver_fv"} + + def test_audit_log_skipped_when_disabled(self): + import pyarrow as pa + + import feast.metrics as m + + m._config = m._MetricsFlags( + enabled=True, offline_features=True, audit_logging=False + ) + + table = pa.table({"col": [1]}) + job = self._make_job(table) + + with patch("feast.metrics.emit_offline_audit_log") as mock_audit: + job.to_arrow() + mock_audit.assert_not_called() + + def test_instrumentation_failure_does_not_mask_query_error(self): + """If metrics code itself throws, the original query error still propagates.""" + import pyarrow as pa + + table = pa.table({"col": [1]}) + job = self._make_job(table) + + with patch( + "feast.metrics._config", + new_callable=lambda: property( + lambda self: (_ for _ in ()).throw(RuntimeError("metrics broken")) + ), + ): + result = job.to_arrow() + assert result.num_rows == 1 + + +class TestParseFeatureInfo: + """Tests for _parse_feature_info in feature_server.""" + + def test_feature_ref_list(self): + from feast.feature_server import _parse_feature_info + + refs = ["driver_fv:conv_rate", "driver_fv:acc_rate", "vehicle_fv:mileage"] + fv_names, feat_count = _parse_feature_info(refs) + assert feat_count == 3 + assert set(fv_names) == {"driver_fv", "vehicle_fv"} + + def test_empty_list(self): + from feast.feature_server import _parse_feature_info + + fv_names, feat_count = _parse_feature_info([]) + assert fv_names == [] + assert feat_count == 0 + + def test_feature_service(self): + from feast.feature_server import _parse_feature_info + + proj1 = MagicMock() + proj1.name = "driver_fv" + proj1.features = [MagicMock(), MagicMock()] + proj2 = MagicMock() + proj2.name = "order_fv" + proj2.features = [MagicMock()] + + fs_svc = MagicMock() + fs_svc.feature_view_projections = [proj1, proj2] + + from feast.feature_service import FeatureService + + fs_svc.__class__ = FeatureService + + fv_names, feat_count = _parse_feature_info(fs_svc) + assert feat_count == 3 + assert fv_names == ["driver_fv", "order_fv"] + + def test_strips_version_suffix(self): + from feast.feature_server import _parse_feature_info + + refs = ["driver_fv@v2:conv_rate"] + fv_names, feat_count = _parse_feature_info(refs) + assert feat_count == 1 + assert fv_names == ["driver_fv"] + + +class TestEmitOnlineAudit: + """Tests for the _emit_online_audit helper in feature_server.""" + + def test_emits_audit_log_with_anonymous_user(self): + from feast.feature_server import GetOnlineFeaturesRequest, _emit_online_audit + + request = GetOnlineFeaturesRequest( + entities={"driver_id": [1, 2]}, + features=["driver_fv:conv_rate"], + ) + + with ( + patch("feast.feature_server.feast_metrics") as mock_metrics, + patch( + "feast.permissions.security_manager.get_security_manager", + return_value=None, + ), + ): + _emit_online_audit( + request=request, + features=request.features, + entity_count=2, + status="success", + latency_ms=15.0, + ) + + mock_metrics.emit_online_audit_log.assert_called_once() + kwargs = mock_metrics.emit_online_audit_log.call_args[1] + assert kwargs["requestor_id"] == "anonymous" + assert kwargs["entity_keys"] == ["driver_id"] + assert kwargs["entity_count"] == 2 + assert kwargs["status"] == "success" + + def test_emits_audit_log_with_authenticated_user(self): + from feast.feature_server import GetOnlineFeaturesRequest, _emit_online_audit + + request = GetOnlineFeaturesRequest( + entities={"driver_id": [1]}, + features=["driver_fv:conv_rate"], + ) + + mock_sm = MagicMock() + mock_sm.current_user.username = "jdoe" + + with ( + patch("feast.feature_server.feast_metrics") as mock_metrics, + patch( + "feast.permissions.security_manager.get_security_manager", + return_value=mock_sm, + ), + ): + _emit_online_audit( + request=request, + features=request.features, + entity_count=1, + status="success", + latency_ms=10.0, + ) + + kwargs = mock_metrics.emit_online_audit_log.call_args[1] + assert kwargs["requestor_id"] == "jdoe" + + def test_does_not_raise_on_failure(self): + from feast.feature_server import GetOnlineFeaturesRequest, _emit_online_audit + + request = GetOnlineFeaturesRequest( + entities={"driver_id": [1]}, + features=["driver_fv:conv_rate"], + ) + + with patch( + "feast.permissions.security_manager.get_security_manager", + side_effect=RuntimeError("auth broken"), + ): + _emit_online_audit( + request=request, + features=request.features, + entity_count=1, + status="error", + latency_ms=5.0, + ) From ae50414d258086f7968cb4ea911b4a9b49924665 Mon Sep 17 00:00:00 2001 From: Abhijeet Dhumal <84722973+abhijeet-dhumal@users.noreply.github.com> Date: Wed, 3 Jun 2026 13:58:28 +0530 Subject: [PATCH 55/59] fix(spark): S3/GCS PyArrow filesystem resolution for staging paths (#6442) * fix(spark): S3/GCS PyArrow filesystem for staging paths Signed-off-by: abhijeet-dhumal * style: ruff format spark.py Signed-off-by: abhijeet-dhumal * fix(spark): address review feedback on staging filesystem PR Signed-off-by: abhijeet-dhumal --------- Signed-off-by: abhijeet-dhumal --- .../contrib/spark_offline_store/spark.py | 51 +++++-- .../test_spark_staging_filesystem.py | 134 ++++++++++++++++++ 2 files changed, 174 insertions(+), 11 deletions(-) create mode 100644 sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_staging_filesystem.py diff --git a/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py b/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py index 3fc675ea402..532437f68a7 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py +++ b/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py @@ -482,21 +482,50 @@ def _to_arrow_via_staging(self) -> pyarrow.Table: if not parquet_paths: return pyarrow.table({}) - normalized_paths = self._normalize_staging_paths(parquet_paths) - dataset = ds.dataset(normalized_paths, format="parquet") + pa_fs, stripped_paths = self._resolve_staging_filesystem(parquet_paths) + dataset = ds.dataset(stripped_paths, format="parquet", filesystem=pa_fs) return dataset.to_table() - def _normalize_staging_paths(self, paths: List[str]) -> List[str]: - """Normalize staging paths for PyArrow datasets.""" + def _resolve_staging_filesystem( + self, paths: List[str] + ) -> Tuple[Optional[pyarrow.fs.FileSystem], List[str]]: + """Return (pyarrow filesystem, prefix-stripped paths) for staging URIs.""" + sample = paths[0] + + import pyarrow.fs as pafs + + if sample.startswith("s3://") or sample.startswith("s3a://"): + endpoint = os.environ.get("AWS_ENDPOINT_URL_S3") or os.environ.get( + "AWS_S3_ENDPOINT", "" + ) + region = getattr( + self._config.offline_store, "region", None + ) or os.environ.get("AWS_DEFAULT_REGION", "us-east-1") + kwargs: Dict[str, Any] = {"region": region} + if endpoint: + kwargs["endpoint_override"] = ( + endpoint.rstrip("/") + .removeprefix("https://") + .removeprefix("http://") + ) + kwargs["scheme"] = "https" if endpoint.startswith("https") else "http" + fs = pafs.S3FileSystem(**kwargs) + stripped = [p.removeprefix("s3a://").removeprefix("s3://") for p in paths] + return fs, stripped + + if sample.startswith("gs://"): + fs = pafs.GcsFileSystem() + stripped = [p[len("gs://") :] for p in paths] + return fs, stripped + + # Local paths normalized = [] - for path in paths: - if path.startswith("file://"): - normalized.append(path[len("file://") :]) - elif "://" in path: - normalized.append(path) + for p in paths: + if p.startswith("file://"): + normalized.append(p[len("file://") :]) else: - normalized.append(path) - return normalized + normalized.append(p) + return None, normalized def to_feast_df( self, diff --git a/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_staging_filesystem.py b/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_staging_filesystem.py new file mode 100644 index 00000000000..5b91646ef7c --- /dev/null +++ b/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark_staging_filesystem.py @@ -0,0 +1,134 @@ +""" +Unit tests for SparkRetrievalJob._resolve_staging_filesystem. + +Verifies that the correct PyArrow filesystem and prefix-stripped paths +are returned for S3, S3A, GCS, file://, and plain local paths. +""" + +from unittest.mock import MagicMock, patch + +import pytest + +from feast.infra.offline_stores.contrib.spark_offline_store.spark import ( + SparkRetrievalJob, +) + + +@pytest.fixture() +def retrieval_job(): + """Minimal SparkRetrievalJob with a mock config that has no offline_store region.""" + job = object.__new__(SparkRetrievalJob) + config = MagicMock() + config.offline_store.region = None + job._config = config + return job + + +class TestResolveS3Filesystem: + def test_s3_scheme_returns_s3_filesystem(self, retrieval_job): + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + fs, paths = retrieval_job._resolve_staging_filesystem( + ["s3://my-bucket/path/a.parquet", "s3://my-bucket/path/b.parquet"] + ) + mock_s3.assert_called_once() + assert fs is mock_s3.return_value + assert paths == ["my-bucket/path/a.parquet", "my-bucket/path/b.parquet"] + + def test_s3a_scheme_strips_prefix(self, retrieval_job): + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + fs, paths = retrieval_job._resolve_staging_filesystem( + ["s3a://bucket/dir/file.parquet"] + ) + assert paths == ["bucket/dir/file.parquet"] + + def test_s3_with_minio_endpoint(self, retrieval_job, monkeypatch): + monkeypatch.setenv("AWS_ENDPOINT_URL_S3", "http://minio.local:9000") + monkeypatch.setenv("AWS_DEFAULT_REGION", "us-east-1") + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + retrieval_job._resolve_staging_filesystem(["s3://bucket/file.parquet"]) + call_kwargs = mock_s3.call_args[1] + assert call_kwargs["endpoint_override"] == "minio.local:9000" + assert call_kwargs["scheme"] == "http" + + def test_s3_with_https_endpoint(self, retrieval_job, monkeypatch): + monkeypatch.setenv("AWS_ENDPOINT_URL_S3", "https://s3.custom.corp") + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + retrieval_job._resolve_staging_filesystem(["s3://bucket/file.parquet"]) + call_kwargs = mock_s3.call_args[1] + assert call_kwargs["endpoint_override"] == "s3.custom.corp" + assert call_kwargs["scheme"] == "https" + + def test_s3_falls_back_to_aws_s3_endpoint_env(self, retrieval_job, monkeypatch): + monkeypatch.delenv("AWS_ENDPOINT_URL_S3", raising=False) + monkeypatch.setenv("AWS_S3_ENDPOINT", "http://legacy-minio:9000") + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + retrieval_job._resolve_staging_filesystem(["s3://bucket/file.parquet"]) + call_kwargs = mock_s3.call_args[1] + assert "endpoint_override" in call_kwargs + + def test_s3_no_endpoint_no_override(self, retrieval_job, monkeypatch): + monkeypatch.delenv("AWS_ENDPOINT_URL_S3", raising=False) + monkeypatch.delenv("AWS_S3_ENDPOINT", raising=False) + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + retrieval_job._resolve_staging_filesystem(["s3://bucket/file.parquet"]) + call_kwargs = mock_s3.call_args[1] + assert "endpoint_override" not in call_kwargs + assert "scheme" not in call_kwargs + + def test_s3_region_from_offline_store_config(self, retrieval_job): + retrieval_job._config.offline_store.region = "eu-west-1" + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + retrieval_job._resolve_staging_filesystem(["s3://bucket/file.parquet"]) + call_kwargs = mock_s3.call_args[1] + assert call_kwargs["region"] == "eu-west-1" + + def test_s3_region_fallback_to_env(self, retrieval_job, monkeypatch): + retrieval_job._config.offline_store.region = None + monkeypatch.setenv("AWS_DEFAULT_REGION", "ap-southeast-1") + with patch("pyarrow.fs.S3FileSystem") as mock_s3: + mock_s3.return_value = MagicMock(name="s3fs") + retrieval_job._resolve_staging_filesystem(["s3://bucket/file.parquet"]) + call_kwargs = mock_s3.call_args[1] + assert call_kwargs["region"] == "ap-southeast-1" + + +class TestResolveGCSFilesystem: + def test_gs_scheme_returns_gcs_filesystem(self, retrieval_job): + with patch("pyarrow.fs.GcsFileSystem") as mock_gcs: + mock_gcs.return_value = MagicMock(name="gcsfs") + fs, paths = retrieval_job._resolve_staging_filesystem( + ["gs://my-bucket/path/a.parquet", "gs://my-bucket/path/b.parquet"] + ) + mock_gcs.assert_called_once() + assert fs is mock_gcs.return_value + assert paths == ["my-bucket/path/a.parquet", "my-bucket/path/b.parquet"] + + +class TestResolveLocalFilesystem: + def test_file_scheme_stripped(self, retrieval_job): + fs, paths = retrieval_job._resolve_staging_filesystem( + ["file:///tmp/staging/a.parquet"] + ) + assert fs is None + assert paths == ["/tmp/staging/a.parquet"] + + def test_plain_local_path_unchanged(self, retrieval_job): + fs, paths = retrieval_job._resolve_staging_filesystem( + ["/tmp/staging/a.parquet", "/tmp/staging/b.parquet"] + ) + assert fs is None + assert paths == ["/tmp/staging/a.parquet", "/tmp/staging/b.parquet"] + + def test_mixed_file_and_plain_paths(self, retrieval_job): + fs, paths = retrieval_job._resolve_staging_filesystem( + ["file:///tmp/a.parquet", "/tmp/b.parquet"] + ) + assert fs is None + assert paths == ["/tmp/a.parquet", "/tmp/b.parquet"] From 4ed027807c87aad31b9062bb7ee1ddf4008d61ad Mon Sep 17 00:00:00 2001 From: Alan Gauthier <106987123+alan-gauthier-jt@users.noreply.github.com> Date: Wed, 3 Jun 2026 11:01:51 +0200 Subject: [PATCH 56/59] fix: Handle array of strings columns in Athena materialization (#6324) * fix: handle string arrays in materialization Signed-off-by: Alan Gauthier * pr feedback: none default values per type Signed-off-by: Alan Gauthier * fix integration tests Signed-off-by: Alan Gauthier --------- Signed-off-by: Alan Gauthier --- sdk/python/feast/type_map.py | 44 ++++- .../offline_store/test_offline_write.py | 2 + sdk/python/tests/unit/test_type_map.py | 164 ++++++++++++++++++ 3 files changed, 209 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/type_map.py b/sdk/python/feast/type_map.py index e9ccee08f25..91bb56f6386 100644 --- a/sdk/python/feast/type_map.py +++ b/sdk/python/feast/type_map.py @@ -739,7 +739,7 @@ def _validate_collection_item_types( """ if sample is None: return - if all(type(item) in valid_types for item in sample): + if all(type(item) in valid_types for item in sample if item is not None): return # to_numpy() upcasts INT32/INT64 with NULL to Float64 automatically @@ -750,6 +750,8 @@ def _validate_collection_item_types( ValueType.INT64_SET, ] for item in sample: + if item is None: + continue # None elements in STRING_LIST are replaced with ""; for other types they are dropped if type(item) not in valid_types: if feast_value_type in int_collection_types: # Check if the float values are due to NULL upcast @@ -868,6 +870,39 @@ def convert_set_to_list(value: Any) -> Any: ] +# Per-type default values substituted for None elements inside list columns. +# Protobuf repeated fields do not accept None, so we replace with a +# type-appropriate zero/empty value. +_LIST_NONE_DEFAULTS: Dict[ValueType, Any] = { + ValueType.STRING_LIST: "", + ValueType.BYTES_LIST: b"", + ValueType.INT32_LIST: 0, + ValueType.INT64_LIST: 0, + ValueType.FLOAT_LIST: 0.0, + ValueType.DOUBLE_LIST: 0.0, + ValueType.BOOL_LIST: False, + ValueType.UNIX_TIMESTAMP_LIST: NULL_TIMESTAMP_INT_VALUE, + ValueType.UUID_LIST: "", + ValueType.TIME_UUID_LIST: "", + ValueType.DECIMAL_LIST: "", +} + + +def _sanitize_list_value(value: Any, feast_value_type: ValueType) -> Any: + """Convert ndarray to list and replace None elements with a type-appropriate default. + + Arrow/Athena may deserialize array columns as numpy.ndarray with object dtype + instead of plain Python lists. Protobuf repeated fields do not accept ndarrays + or None elements, so we normalise here before building proto messages. + """ + if isinstance(value, np.ndarray): + value = value.tolist() + none_default = _LIST_NONE_DEFAULTS.get(feast_value_type) + if none_default is not None and isinstance(value, list): + value = [none_default if v is None else v for v in value] + return value + + def _convert_list_values_to_proto( feast_value_type: ValueType, values: List[Any], @@ -890,6 +925,13 @@ def _convert_list_values_to_proto( feast_value_type ] + values = [ + _sanitize_list_value(v, feast_value_type) if v is not None else v + for v in values + ] + if sample is not None: + sample = _sanitize_list_value(sample, feast_value_type) + # Bytes to array type conversion if isinstance(sample, (bytes, bytearray)): if feast_value_type == ValueType.BYTES_LIST: diff --git a/sdk/python/tests/integration/offline_store/test_offline_write.py b/sdk/python/tests/integration/offline_store/test_offline_write.py index df60e40ed56..6ae8b68147a 100644 --- a/sdk/python/tests/integration/offline_store/test_offline_write.py +++ b/sdk/python/tests/integration/offline_store/test_offline_write.py @@ -135,6 +135,8 @@ def test_writing_consecutively_to_offline_store(environment, universal_data_sour ) store.apply([driver_entity, driver_stats]) + # Refresh registry after apply to ensure subsequent reads see the new feature view + store.refresh_registry() df = store.get_historical_features( entity_df=entity_df, features=[ diff --git a/sdk/python/tests/unit/test_type_map.py b/sdk/python/tests/unit/test_type_map.py index bdaea63a607..8a865c72fb1 100644 --- a/sdk/python/tests/unit/test_type_map.py +++ b/sdk/python/tests/unit/test_type_map.py @@ -87,6 +87,9 @@ def test_python_values_to_proto_values_bool(values): (np.array([None]), ValueType.BYTES_LIST, None), (np.array([None]), ValueType.STRING_LIST, None), (np.array([None]), ValueType.UNIX_TIMESTAMP_LIST, None), + ([np.array([], dtype=np.int32)], ValueType.INT32_LIST, []), + ([np.array([], dtype=np.float32)], ValueType.FLOAT_LIST, []), + ([np.array([], dtype=np.bool_)], ValueType.BOOL_LIST, []), ([b"[1,2,3]"], ValueType.INT64_LIST, [1, 2, 3]), ([b"[1,2,3]"], ValueType.INT32_LIST, [1, 2, 3]), ([b"[1.5,2.5,3.5]"], ValueType.FLOAT_LIST, [1.5, 2.5, 3.5]), @@ -2065,3 +2068,164 @@ def test_proto_field_name_in_map(self): from feast.type_map import PROTO_VALUE_TO_VALUE_TYPE_MAP assert PROTO_VALUE_TO_VALUE_TYPE_MAP["scalar_map_val"] == ValueType.SCALAR_MAP + + +class TestArrowArrayStringListMaterialization: + """Regression tests for Array(String) columns from Arrow/Athena materialization. + + Arrow/Athena deserializes Array(String) feature columns as numpy.ndarray with + object dtype. Two bugs were triggered: + + 1. ValueError: "The truth value of an empty array is ambiguous" + — when an empty ndarray reached the scalar null-check `elif not pd.isnull(value)`. + + 2. TypeError: "bad argument type for built-in operation" + — when proto_type(val=) was called; protobuf rejects ndarrays. + + Both are fixed by _sanitize_list_value, which converts ndarrays to plain Python + lists and replaces None elements with a type-appropriate zero/empty default + (see _LIST_NONE_DEFAULTS). + """ + + def test_sanitize_list_value_ndarray(self): + """ndarray is converted to a plain Python list.""" + from feast.type_map import _sanitize_list_value + + arr = np.array(["foo", "bar"], dtype=object) + result = _sanitize_list_value(arr, ValueType.STRING_LIST) + assert result == ["foo", "bar"] + assert isinstance(result, list) + + def test_sanitize_list_value_empty_ndarray(self): + """Empty ndarray is converted to an empty Python list.""" + from feast.type_map import _sanitize_list_value + + arr = np.array([], dtype=object) + result = _sanitize_list_value(arr, ValueType.STRING_LIST) + assert result == [] + + def test_sanitize_list_value_ndarray_with_none(self): + """None elements inside a STRING_LIST ndarray are replaced with empty string.""" + from feast.type_map import _sanitize_list_value + + arr = np.array(["foo", None, "baz"], dtype=object) + result = _sanitize_list_value(arr, ValueType.STRING_LIST) + assert result == ["foo", "", "baz"] + + def test_sanitize_list_value_plain_list(self): + """Plain Python lists without None pass through unchanged.""" + from feast.type_map import _sanitize_list_value + + lst = ["foo", "bar"] + result = _sanitize_list_value(lst, ValueType.STRING_LIST) + assert result == ["foo", "bar"] + + def test_sanitize_list_value_plain_list_with_none(self): + """None elements in a STRING_LIST plain list are replaced with empty string.""" + from feast.type_map import _sanitize_list_value + + lst = ["foo", None] + result = _sanitize_list_value(lst, ValueType.STRING_LIST) + assert result == ["foo", ""] + + def test_sanitize_list_value_numeric_none_replaced(self): + """None elements in numeric lists are replaced with a type-appropriate default.""" + from feast.type_map import _sanitize_list_value + + assert _sanitize_list_value([1, None, 2], ValueType.INT32_LIST) == [1, 0, 2] + assert _sanitize_list_value([1, None, 2], ValueType.INT64_LIST) == [1, 0, 2] + assert _sanitize_list_value([1.0, None, 2.0], ValueType.FLOAT_LIST) == [ + 1.0, + 0.0, + 2.0, + ] + assert _sanitize_list_value([1.0, None, 2.0], ValueType.DOUBLE_LIST) == [ + 1.0, + 0.0, + 2.0, + ] + assert _sanitize_list_value([True, None, False], ValueType.BOOL_LIST) == [ + True, + False, + False, + ] + + def test_sanitize_list_value_bytes_none_replaced(self): + """None elements in BYTES_LIST are replaced with b''.""" + from feast.type_map import _sanitize_list_value + + result = _sanitize_list_value([b"x", None], ValueType.BYTES_LIST) + assert result == [b"x", b""] + + def test_sanitize_list_value_scalar_passthrough(self): + """Non-list, non-ndarray values are returned unchanged.""" + from feast.type_map import _sanitize_list_value + + assert _sanitize_list_value("hello", ValueType.STRING_LIST) == "hello" + assert _sanitize_list_value(42, ValueType.INT32_LIST) == 42 + + def test_string_list_from_ndarray(self): + """STRING_LIST column with ndarray values materializes without TypeError.""" + values = [ + np.array(["foo", "bar"], dtype=object), + np.array(["baz"], dtype=object), + ] + protos = python_values_to_proto_values(values, ValueType.STRING_LIST) + assert len(protos) == 2 + assert list(protos[0].string_list_val.val) == ["foo", "bar"] + assert list(protos[1].string_list_val.val) == ["baz"] + + def test_string_list_from_empty_ndarray(self): + """Empty ndarray in a STRING_LIST column must not raise ValueError.""" + values = [ + np.array([], dtype=object), + np.array(["foo"], dtype=object), + ] + protos = python_values_to_proto_values(values, ValueType.STRING_LIST) + assert list(protos[0].string_list_val.val) == [] + assert list(protos[1].string_list_val.val) == ["foo"] + + def test_string_list_from_ndarray_with_none_elements(self): + """None elements inside an ndarray must not cause TypeError in protobuf.""" + values = [ + np.array(["foo", None, "baz"], dtype=object), + ] + protos = python_values_to_proto_values(values, ValueType.STRING_LIST) + # None is replaced with empty string + assert list(protos[0].string_list_val.val) == ["foo", "", "baz"] + + def test_string_list_null_row_produces_empty_proto(self): + """A None row (missing user) produces an empty ProtoValue.""" + from feast.protos.feast.types.Value_pb2 import Value as ProtoValue + + values = [ + None, + np.array(["foo"], dtype=object), + ] + protos = python_values_to_proto_values(values, ValueType.STRING_LIST) + assert protos[0] == ProtoValue() + assert list(protos[1].string_list_val.val) == ["foo"] + + def test_mixed_batch_simulating_athena_chunk(self): + """Simulate a real Athena chunk: mix of ndarray, empty ndarray, and None rows. + + This is the exact scenario that triggered the TypeError during + string_list_features materialization. + """ + from feast.protos.feast.types.Value_pb2 import Value as ProtoValue + + # tags / labels column from Athena + values = [ + np.array(["foo", "bar"], dtype=object), # normal entity + np.array([], dtype=object), # entity with no values set + None, # missing entity (NULL row) + np.array(["baz"], dtype=object), # normal entity + np.array(["qux", None], dtype=object), # entity with partial null + ] + protos = python_values_to_proto_values(values, ValueType.STRING_LIST) + + assert list(protos[0].string_list_val.val) == ["foo", "bar"] + assert list(protos[1].string_list_val.val) == [] + assert protos[2] == ProtoValue() + assert list(protos[3].string_list_val.val) == ["baz"] + assert list(protos[4].string_list_val.val) == ["qux", ""] From a7f7a0229d814802c1491a5fa559f3602c2a0dfe Mon Sep 17 00:00:00 2001 From: ntkathole Date: Thu, 28 May 2026 13:38:04 +0530 Subject: [PATCH 57/59] docs: Blog post about Feature Server Sub-2ms Performance Signed-off-by: ntkathole --- docs/SUMMARY.md | 1 + .../feast-online-server-performance-tuning.md | 338 ++++++++++++++++++ 2 files changed, 339 insertions(+) create mode 100644 infra/website/docs/blog/feast-online-server-performance-tuning.md diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 1b0b0961d79..590005d8fbd 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -192,6 +192,7 @@ * [\[Alpha\] Streaming feature computation with Denormalized](reference/denormalized.md) * [\[Alpha\] Feature View Versioning](reference/alpha-feature-view-versioning.md) * [OpenLineage Integration](reference/openlineage.md) +* [MLflow Integration](reference/mlflow.md) * [Feast CLI reference](reference/feast-cli-commands.md) * [Python API reference](http://rtd.feast.dev) * [Usage](reference/usage.md) diff --git a/infra/website/docs/blog/feast-online-server-performance-tuning.md b/infra/website/docs/blog/feast-online-server-performance-tuning.md new file mode 100644 index 00000000000..ffe29910b9e --- /dev/null +++ b/infra/website/docs/blog/feast-online-server-performance-tuning.md @@ -0,0 +1,338 @@ +--- +title: "Tuning the Feast Feature Server for Sub-2ms Online Serving" +description: "A practical guide to achieving low-latency, high-throughput feature serving with Feast on Kubernetes — from default configuration to production-grade performance with pre-computed feature vectors and benchmarks at every step." +date: 2026-06-02 +authors: ["Nikhil Kathole"] +--- + +**Feast supports production-grade worker configuration, connection pooling, async reads, batched pipelines, serialization optimizations, and pre-computed feature vectors for the Python feature server.** This post walks through a real-world performance tuning exercise in two stages: first, server and client tuning that brings p99 latency down to **sub-5ms** for single-row requests; then, **pre-computed feature vectors** that push it further to **sub-2ms p99** — regardless of how many feature views your FeatureService spans. We share the benchmarking methodology, the exact configuration changes, and the measured impact of each step so you can apply the same approach to your own deployments. + +--- + +## The Problem + +When you deploy Feast on Kubernetes using the [Feast Operator](https://docs.feast.dev/how-to-guides/production-deployment-topologies), the default configuration is designed for simplicity — a single Gunicorn worker, short keep-alive timeouts, and frequent registry refreshes. This is fine for development but leaves significant performance on the table for production workloads where every millisecond matters. + +We set out to answer a practical question: **how low can we push the Feast online server's p99 latency, and what does it take to get there?** + +--- + +## Test Environment + +| Component | Configuration | +|-----------|--------------| +| **Online Store** | Redis 7.0.12 (standalone, in-cluster) | +| **Registry** | PostgreSQL 16 (SQL registry) | +| **Platform** | Kubernetes | +| **Deployment** | Feast Operator with `FeatureStore` CR | + +We used a banking feature store project with multiple feature views spanning customer demographics, transactions, and behavioral profiles. + +All benchmarks run 200 iterations (after 30–50 warmup) for each scenario, measuring p50, p95, p99, and mean latency. Throughput is measured with 10 concurrent workers over 15 seconds. + +--- + +## Three Access Modes + +Feast supports three ways to retrieve online features. Understanding how each one works is key to knowing where latency comes from — and where to optimize. + +### REST API + +``` +Client → HTTP POST (JSON) → Gunicorn/FastAPI Server → Redis mget() → JSON response +``` + +The simplest and most common pattern. Your application sends a JSON request to the feature server's `/get-online-features` endpoint. The server holds persistent Redis connections and a pre-loaded registry, so each request is just a Redis read plus JSON serialization. HTTP keep-alive reuses TCP/TLS connections across requests. + +### Direct SDK + +``` +Client (Python) → FeatureStore SDK → Redis mget() directly +``` + +The Python SDK connects to Redis directly — no HTTP hop, no JSON overhead. However, it pays for in-process registry lookups and entity key serialization on every call, and reads each FeatureView sequentially. + +### Remote SDK + +``` +Client (Python SDK) → HTTP POST → Feature Server → Redis → JSON → Client +``` + +The SDK delegates feature retrieval to a remote feature server over HTTP. This combines the worst of both worlds: SDK-side overhead *plus* an HTTP round-trip. Without connection pooling, each call creates a new TCP connection and TLS handshake. + +--- + +## Baseline: Default Configuration + +With no tuning applied — a single Gunicorn worker, default timeouts, and no connection pooling: + +| Mode | p99 (1 row) | p99 (5 rows) | Throughput | +|------|----------------|-------------------|------------| +| **REST API** | 6.92 ms | 4.94 ms | 480 RPS | +| **Direct SDK** | 5.83 ms | 5.59 ms | — | +| **Remote SDK** | 11.71 ms | **74.31 ms** | ~2 RPS | + +The REST API and Direct SDK are already in the 5–7ms range out of the box, but the Remote SDK fails badly — p99 spiking to **74ms** at just 5 rows due to per-request TCP/TLS setup overhead. This is our starting point. + +--- + +## Server-Side Configuration + +These are changes you apply to the **feature server deployment** — no code changes needed, just configuration via the `FeatureStore` CR and Redis runtime settings. + +### Worker Tuning via the Feast Operator + +The Feast Operator exposes `workerConfigs` in the `FeatureStore` CR, letting you tune the Gunicorn server without rebuilding images: + +```yaml +apiVersion: feast.dev/v1alpha1 +kind: FeatureStore +spec: + services: + onlineStore: + server: + workerConfigs: + workers: -1 # Auto: 2 × CPU cores + 1 + keepAliveTimeout: 120 # Reuse connections longer + maxRequests: 5000 # Recycle workers to prevent memory leaks + maxRequestsJitter: 200 # Stagger recycling + registryTTLSeconds: 300 # Reduce registry refresh overhead + workerConnections: 2000 # High-concurrency support +``` + +Setting `workers: -1` on a 4-core pod gives 9 Gunicorn workers, each with its own event loop and Redis connection. This is the **single most impactful change** — it transforms the server from single-threaded to multi-process, dropping 5-row p99 from ~10ms to ~8ms and putting us on the path to sub-5ms. + +### Redis Runtime Tuning + +Three Redis settings made a measurable difference: + +- **`hz 100`** (default 10) — Redis processes expired keys and timeouts 10x faster, reducing tail latency spikes. +- **`tcp-keepalive 60`** (default 300) — Detects dead connections 5x faster, freeing resources sooner. +- **`save ""`** (disable RDB persistence) — Eliminates periodic snapshot I/O that causes 10–50ms p99 spikes. Since features are materialized from the offline store and reconstructible at any time, persistence is unnecessary. + +### High Availability and Auto-Scaling + +For production, we added horizontal scaling and availability guarantees using the Feast Operator's [built-in HA support](https://docs.feast.dev/how-to-guides/feast-snowflake-gcp-aws/scaling-feast): + +```yaml +spec: + replicas: 2 + services: + onlineStore: + server: + resources: + requests: + cpu: 500m + memory: 512Mi + limits: + cpu: "2" + memory: 2Gi + scaling: + autoscaling: + minReplicas: 2 + maxReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 70 + pdb: + minAvailable: 1 +``` + +When scaling is enabled, the operator auto-injects pod anti-affinity and zone topology spread constraints, ensuring replicas land on different nodes for resilience. With HPA, the cluster auto-scales based on CPU utilization — we observed it scaling from 2 to 3 pods in response to load during benchmarks. At 10 pods with 9 workers each, theoretical throughput reaches ~7,180 RPS (~25.8M RPH). + +### Server-side quick wins summary + +1. **Set `workers: -1`** — single most impactful change +2. **Disable Redis persistence** — `CONFIG SET save ""` +3. **Set `registryTTLSeconds: 300`** — reduce registry refresh overhead +4. **Use `replicas: 2`** minimum with HPA for burst capacity +5. **Set resource limits** — defaults are far too low for production + +--- + +## Client-Side Configuration + +These are changes you apply on the **client** — how the SDK connects to the feature server and which access mode you choose. + +### Connection Pooling for the Remote SDK + +The biggest problem with the Remote SDK was that every call created a brand-new `requests.Session`, established a fresh TCP connection, negotiated TLS, and then threw it all away — adding 2–4ms per call for HTTPS endpoints. + +Feast now includes `HttpSessionManager` — a thread-safe, singleton session manager that reuses HTTP connections across requests with configurable pooling and retry: + +```yaml +online_store: + type: remote + path: https://feast-server:443 + connection_pool_size: 50 + connection_idle_timeout: 300 + connection_retries: 3 +``` + +This dropped Remote SDK 5-row p99 from **74ms to 21ms** — a 72% reduction — by eliminating the per-request TLS handshake. + +### Choosing the right access mode + +| Use Case | Recommended Mode | Why | +|----------|-----------------|-----| +| **Application serving** | REST API | Sub-5ms single-row p99, simplest integration, 718 RPS per pod | +| **Python ML pipeline** | Direct SDK | No HTTP hop, sub-5ms p99, native protobuf | +| **Async Python applications** | Async Direct SDK | Non-blocking, batched pipeline, sub-5ms p99 | +| **Cross-cluster serving** | Remote SDK + pooling | When the client can't reach Redis directly; 760 RPS with pooling | + +--- + +## Code Enhancements in Feast + +Beyond configuration, several code-level improvements in Feast itself contributed to reaching sub-5ms p99. These require no user configuration — just upgrading to the latest Feast version. + +### Serialization Optimization + +The feature server used `google.protobuf.json_format.MessageToDict` to convert protobuf responses to JSON — a generic, reflection-based serializer that was a meaningful fraction of server-side latency. Replacing it with an optimized custom dict builder delivered a **66% throughput increase** (432 to 718 RPS) and **72% reduction in tail latency under load** (132ms to 37ms p99). + +### Async Redis Reads with Batched Pipeline + +The `RedisOnlineStore` had async support (`online_read_async` with `redis_asyncio`), but the `async_supported` property was not overridden, so the feature server never used it. Enabling it unlocks non-blocking I/O on the server side — the FastAPI handler calls `get_online_features_async` directly instead of wrapping the sync path in `run_in_threadpool`. + +Additionally, the base class async path issued O(N_feature_views) separate round trips to Redis via `asyncio.gather`. We added a `get_online_features_async` override to `RedisOnlineStore` that batches all HMGET commands across all feature views into a **single async pipeline execution** (O(1) round trips), matching the existing sync batched pipeline. This cut async 5-row p99 from ~11ms to **5.6ms** — a 49% improvement. + +### Cached Per-Request Checks + +`_check_versioned_read_support()` performed up to 7 lazy module imports on **every request** to determine if the current online store supports versioned reads. We cache the result per store instance, resolving imports once and eliminating ~0.5–1ms of overhead per request. + +### Skip Duplicate Feature Resolution + +When auth is `no_auth` (the common case), the feature server was resolving feature views solely to check permissions (which are no-ops), then resolving them again inside `get_online_features`. We skip the first resolution entirely, avoiding a redundant registry lookup. + +### Session Wrapping Fix + +The `rest_error_handling_decorator` re-wrapped cached `requests.Session` HTTP methods on every call. After ~1000 requests, this caused progressive performance degradation and eventually a `RecursionError`. We now wrap each method exactly once per session lifetime, fixing Remote SDK stability and enabling it to sustain **760 RPS**. + +--- + +## Final Results + +After applying all server-side configuration, client-side configuration, and code enhancements: + +### Stage 1: Tuning only (sub-5ms target) + +| Mode | p50 (1 row) | p99 (1 row) | p50 (5 rows) | p99 (5 rows) | Throughput | +|------|----------|----------|----------|----------|------------| +| **REST API** | 3.34 ms | **4.61 ms** | 7.88 ms | 11.32 ms | 718 RPS | +| **REST API (FeatureService)** | 4.21 ms | **6.15 ms** | 9.15 ms | 17.43 ms | — | +| **Direct SDK** | 3.12 ms | **4.21 ms** | 3.29 ms | **4.60 ms** | 402 RPS | +| **Direct SDK (FeatureService)** | 3.48 ms | **5.70 ms** | 3.44 ms | **5.10 ms** | — | +| **Async Direct SDK** | 3.25 ms | **6.25 ms** | 3.47 ms | **8.72 ms** | — | +| **Async Direct SDK (FeatureService)** | 3.60 ms | **4.84 ms** | 3.76 ms | **5.13 ms** | — | +| **Remote SDK** | 3.34 ms | **5.30 ms** | 8.15 ms | 11.63 ms | 760 RPS | +| **Remote SDK (FeatureService)** | 3.78 ms | **5.17 ms** | 9.86 ms | 16.06 ms | — | + +### Stage 2: Pre-computed vectors (sub-2ms target) + +| Batch Size | p50 Regular | p99 Regular | p50 Precomputed | p99 Precomputed | Speedup (p50) | +|---|---|---|---|---|---| +| 1 | 5.95 ms | 10.74 ms | **0.98 ms** | **1.70 ms** | 6.1x | +| 5 | 9.66 ms | 44.91 ms | **1.37 ms** | **3.00 ms** | 7.1x | +| 10 | 16.60 ms | 60.37 ms | **1.81 ms** | **2.07 ms** | 9.2x | +| 50 | 60.07 ms | 120.12 ms | **5.27 ms** | **7.49 ms** | 11.4x | +| 100 | 85.58 ms | 208.18 ms | **9.48 ms** | **114.38 ms** | 9.0x | +| 500 | 218.79 ms | 424.91 ms | **40.25 ms** | **198.13 ms** | 5.4x | + +**Key takeaways:** + +- **Stage 1 (tuning)** gets all SDK modes to **sub-5ms p99** for single-row requests — REST API at 4.61ms, Direct SDK at 4.21ms, Async SDK at 4.84ms. +- **Stage 2 (pre-computed vectors)** pushes latency to **sub-2ms p99** for single-row requests — a 6x improvement over the tuned regular path. +- **REST API** delivers the best throughput at **718 RPS** (2.6M RPH); **Remote SDK** sustains **760 RPS** after the session wrapping fix. +- For FeatureServices spanning multiple feature views, **`precompute_online=True` is the single most impactful optimization** — it changes the read complexity from O(N feature views) to O(1). +- At large batch sizes, the bottleneck shifts from store I/O to Python CPU overhead (protobuf deserialization). For these workloads, split large requests into smaller batches on the client side. + +--- + +## A Note on Online Store Selection + +All benchmarks in this post used a **standalone Redis pod** running in the same Kubernetes cluster as the feature server. Production deployments often use managed services — here's how that changes the picture. + +**Managed Redis** (ElastiCache, Memorystore, Azure Cache for Redis) provides dedicated compute, optimized networking, cluster mode for sharding, and automatic failover. In our benchmarks, Redis RTT was ~0.5ms (in-cluster). A managed instance in the **same availability zone** would deliver comparable latency with more consistent tail behavior. Cross-AZ hops add 1–2ms per request. + +**DynamoDB** offers zero operational overhead and automatic scaling. When the feature server runs in the **same AWS region and VPC**, single-digit millisecond reads are typical (1–5ms for eventually consistent reads). With [DAX](https://aws.amazon.com/dynamodb/dax/), read latency drops to microseconds for cached items. A same-region setup could deliver comparable sub-5ms p99 for single-row reads. + +Feast also supports PostgreSQL, SQLite, Snowflake, Bigtable, and more. The general rule is: **the online store is the single largest factor in `get_online_features()` latency** — choose based on your latency budget, throughput needs, and operational requirements. The tuning steps in this post (worker configuration, registry caching, connection pooling, serialization optimization) apply equally to all stores — they optimize the layers above. + +--- + +## Pre-computed Feature Vectors + +The tuning steps above achieve our first target: **sub-5ms p99** for single-row requests. But for FeatureServices spanning multiple feature views, per-FV read fan-out becomes the dominant bottleneck — each request issues N separate store reads, N protobuf deserializations, and N response assemblies. To reach our final target of **sub-2ms**, we need to eliminate this fan-out entirely. + +**Pre-computed feature vectors** do exactly that: at materialize time, all features for a FeatureService are assembled into a single serialized blob per entity. At read time, one key lookup replaces N feature-view reads — reducing the operation from O(N feature views) to O(1) and delivering **sub-2ms p99 latency**. + +### How it works + +1. **Define** a FeatureService with `precompute_online=True`: + +```python +scoring_service = FeatureService( + name="realtime_scoring", + features=[user_profile_fv, transaction_fv, risk_fv], + precompute_online=True, +) +``` + +2. **Apply** and **materialize** as usual — vectors are built automatically: + +```bash +feast apply +feast materialize-incremental $(date -u +"%Y-%m-%dT%H:%M:%S") +``` + +Feast detects which FeatureServices have `precompute_online=True` and rebuilds their pre-computed vectors after the per-feature-view writes complete. Vectors are also refreshed automatically on `feast push`. + +3. **Read** features as usual — the server automatically uses the pre-computed path: + +```python +features = store.get_online_features( + features=store.get_feature_service("realtime_scoring"), + entity_rows=[{"user_id": "U12345"}], + full_feature_names=True, +) +``` + +### Design decisions + +- **Store-agnostic**: The pre-computed logic lives in the base `OnlineStore` class and works with all backends (Redis, DynamoDB, PostgreSQL, etc.). No store-specific code is needed. +- **Opt-in**: `precompute_online` defaults to `False`. Existing deployments are completely unaffected. +- **Strict error handling**: When `precompute_online=True`, there is no silent fallback to per-FV reads. If vectors are missing or stale, the server raises a `RuntimeError`, making problems visible immediately. +- **Schema-aware**: A fingerprint of feature names detects schema changes and rejects stale vectors, with column-order-independent comparison. +- **Per-FV TTL enforcement**: Individual feature view TTLs are checked within the pre-computed blob. +- **Materialized view pattern**: Conceptually similar to a database materialized view — trades storage for read speed with explicit refresh. + +### Benchmark: precomputed vs regular path + +We benchmarked a FeatureService spanning multiple feature views against the same features read via the regular per-feature-view path. All numbers from the same pod, same run, 200 iterations with 30 warmup. + +| Batch Size (rows/request) | p50 Regular | p50 Precomputed | p99 Regular | p99 Precomputed | Speedup (p50) | +|---|---|---|---|---|---| +| 1 | 5.95 ms | **0.98 ms** | 10.74 ms | **1.70 ms** | 6.1x | +| 5 | 9.66 ms | **1.37 ms** | 44.91 ms | **3.00 ms** | 7.1x | +| 10 | 16.60 ms | **1.81 ms** | 60.37 ms | **2.07 ms** | 9.2x | +| 50 | 60.07 ms | **5.27 ms** | 120.12 ms | **7.49 ms** | 11.4x | + +For the typical production use case of 1–10 rows per inference request, pre-computed vectors deliver **sub-2ms p99** — well under any reasonable SLA target. The speedup ranges from **6x to 9x** depending on batch size, with p50 consistently under 2ms for up to 10 rows. + +--- + +## Try It Yourself + +To deploy the same setup: + +1. Deploy Feast with the Feast Operator using a `FeatureStore` CR with `workerConfigs` +2. Use Redis as the online store and PostgreSQL for the registry +3. Apply the [production tuning guide](https://docs.feast.dev/how-to-guides/online-server-performance-tuning) for worker configuration, registry caching, and scaling +4. For FeatureServices spanning multiple feature views, enable `precompute_online=True` and materialize — see the [feature service docs](https://docs.feast.dev/getting-started/concepts/feature-retrieval#pre-computed-feature-vectors-precompute_online) +5. Monitor with [built-in Prometheus metrics](https://docs.feast.dev/reference/feature-servers/python-feature-server) — `feast_feature_server_request_latency_seconds` is your primary SLI + +We'd love to hear about your production performance results. Join the conversation on [Feast Slack](https://slack.feast.dev) or open an issue on [GitHub](https://github.com/feast-dev/feast). From 32928f7a1831c1914652a757056e2647dbbbf2b0 Mon Sep 17 00:00:00 2001 From: Vanshika Vanshika Date: Wed, 3 Jun 2026 15:18:09 +0530 Subject: [PATCH 58/59] Add continue-on-error Signed-off-by: Vanshika Vanshika rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED --- .github/workflows/security.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 5981add8edb..b0b4a43c996 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -104,6 +104,7 @@ jobs: run: make compile-protos-go - name: Run govulncheck + continue-on-error: true uses: golang/govulncheck-action@v1 with: work-dir: ${{ matrix.working-directory }} From 276b6df562e16fefba7efb493736ff32046d4a76 Mon Sep 17 00:00:00 2001 From: Jacob Bush <10622363+jacob-bush-shopify@users.noreply.github.com> Date: Wed, 3 Jun 2026 10:32:17 -0400 Subject: [PATCH 59/59] feat: Allow default openlineage configuration (#6467) fix: Update transport_type default and align docs/config - config.py: get_transport_config() returns None when transport_type is None, allowing OpenLineage SDK to use its own defaults - config.py: update docstrings to reflect None default - repo_config.py: change transport_type from StrictStr='console' to Optional[StrictStr]=None - docs/reference/openlineage.md: update config table default - 07-openlineage-and-materialization.md: update field reference table - skills/references/configuration.md: update comment Signed-off-by: Jacob Bush Co-authored-by: AI (Pi/Claude Opus 4.6 [250k]) Co-authored-by: Francisco Javier Arceo --- .../07-openlineage-and-materialization.md | 2 +- docs/reference/openlineage.md | 2 +- sdk/python/feast/openlineage/client.py | 7 +- sdk/python/feast/openlineage/config.py | 19 ++- sdk/python/feast/repo_config.py | 4 +- .../tests/unit/test_openlineage_client.py | 151 ++++++++++++++++++ skills/references/configuration.md | 2 +- 7 files changed, 173 insertions(+), 14 deletions(-) create mode 100644 sdk/python/tests/unit/test_openlineage_client.py diff --git a/docs/how-to-guides/feast-operator/07-openlineage-and-materialization.md b/docs/how-to-guides/feast-operator/07-openlineage-and-materialization.md index 72b2fe92a7e..8d46ed03ef8 100644 --- a/docs/how-to-guides/feast-operator/07-openlineage-and-materialization.md +++ b/docs/how-to-guides/feast-operator/07-openlineage-and-materialization.md @@ -103,7 +103,7 @@ openlineage: | Field | Type | Description | |-------|------|-------------| | `enabled` | bool | Activates OpenLineage. Must be `true` | -| `transportType` | string | `http` / `console` / `file` / `kafka` | +| `transportType` | string | `http` / `console` / `file` / `kafka` (omit to use OpenLineage SDK defaults) | | `transportUrl` | string | Base URL for HTTP transport | | `transportEndpoint` | string | API path appended to `transportUrl` | | `apiKeySecretRef.name` | string | Name of a Secret containing key `api_key` | diff --git a/docs/reference/openlineage.md b/docs/reference/openlineage.md index 01837c9936a..78438082d44 100644 --- a/docs/reference/openlineage.md +++ b/docs/reference/openlineage.md @@ -88,7 +88,7 @@ fs.materialize( | Option | Default | Description | |--------|---------|-------------| | `enabled` | `false` | Enable/disable OpenLineage integration | -| `transport_type` | `http` | Transport type: `http`, `file`, `kafka` | +| `transport_type` | `None` | Transport type: `http`, `console`, `file`, `kafka`. When unset, defers to OpenLineage SDK defaults. | | `transport_url` | - | URL for HTTP transport (required) | | `transport_endpoint` | `api/v1/lineage` | API endpoint for HTTP transport | | `api_key` | - | Optional API key for authentication | diff --git a/sdk/python/feast/openlineage/client.py b/sdk/python/feast/openlineage/client.py index 45d021f2f07..445231aae89 100644 --- a/sdk/python/feast/openlineage/client.py +++ b/sdk/python/feast/openlineage/client.py @@ -106,9 +106,12 @@ def __init__( # Initialize the OpenLineage client try: transport_config = self._config.get_transport_config() - self._client = OpenLineageClient(config={"transport": transport_config}) + if transport_config is None: + self._client = OpenLineageClient() + else: + self._client = OpenLineageClient(config={"transport": transport_config}) logger.info( - f"OpenLineage client initialized with {self._config.transport_type} transport" + f"OpenLineage client initialized with {self._config.transport_type or 'default'} transport" ) except Exception as e: logger.error(f"Failed to initialize OpenLineage client: {e}") diff --git a/sdk/python/feast/openlineage/config.py b/sdk/python/feast/openlineage/config.py index 4d8b7684179..7c3b1fd9814 100644 --- a/sdk/python/feast/openlineage/config.py +++ b/sdk/python/feast/openlineage/config.py @@ -28,7 +28,8 @@ class OpenLineageConfig: Attributes: enabled: Whether OpenLineage integration is enabled - transport_type: Type of transport (http, console, file, kafka) + transport_type: Type of transport (http, console, file, kafka), or None to use + OpenLineage SDK defaults transport_url: URL for HTTP transport transport_endpoint: API endpoint for HTTP transport api_key: Optional API key for authentication @@ -40,7 +41,7 @@ class OpenLineageConfig: """ enabled: bool = True - transport_type: str = "console" + transport_type: Optional[str] = None transport_url: Optional[str] = None transport_endpoint: str = "api/v1/lineage" api_key: Optional[str] = None @@ -63,7 +64,7 @@ def from_dict(cls, config_dict: Dict[str, Any]) -> "OpenLineageConfig": """ return cls( enabled=config_dict.get("enabled", True), - transport_type=config_dict.get("transport_type", "console"), + transport_type=config_dict.get("transport_type"), transport_url=config_dict.get("transport_url"), transport_endpoint=config_dict.get("transport_endpoint", "api/v1/lineage"), api_key=config_dict.get("api_key"), @@ -81,7 +82,7 @@ def from_env(cls) -> "OpenLineageConfig": Environment variables: FEAST_OPENLINEAGE_ENABLED: Enable/disable OpenLineage (default: true) - FEAST_OPENLINEAGE_TRANSPORT_TYPE: Transport type (default: console) + FEAST_OPENLINEAGE_TRANSPORT_TYPE: Transport type (default: None, uses OL SDK defaults) FEAST_OPENLINEAGE_URL: HTTP transport URL FEAST_OPENLINEAGE_ENDPOINT: API endpoint (default: api/v1/lineage) FEAST_OPENLINEAGE_API_KEY: API key for authentication @@ -93,7 +94,7 @@ def from_env(cls) -> "OpenLineageConfig": """ return cls( enabled=os.getenv("FEAST_OPENLINEAGE_ENABLED", "true").lower() == "true", - transport_type=os.getenv("FEAST_OPENLINEAGE_TRANSPORT_TYPE", "console"), + transport_type=os.getenv("FEAST_OPENLINEAGE_TRANSPORT_TYPE"), transport_url=os.getenv("FEAST_OPENLINEAGE_URL"), transport_endpoint=os.getenv( "FEAST_OPENLINEAGE_ENDPOINT", "api/v1/lineage" @@ -129,13 +130,17 @@ def to_dict(self) -> Dict[str, Any]: "additional_config": self.additional_config, } - def get_transport_config(self) -> Dict[str, Any]: + def get_transport_config(self) -> Optional[Dict[str, Any]]: """ Get transport-specific configuration for OpenLineage client. Returns: - Dictionary with transport configuration + Dictionary with transport configuration, or None if transport_type + is not set (allowing the OpenLineage SDK to use its own defaults). """ + if not self.transport_type: + return None + config: Dict[str, Any] = {"type": self.transport_type} if self.transport_type == "http": diff --git a/sdk/python/feast/repo_config.py b/sdk/python/feast/repo_config.py index b8bc794aaf5..7518f613788 100644 --- a/sdk/python/feast/repo_config.py +++ b/sdk/python/feast/repo_config.py @@ -249,8 +249,8 @@ class OpenLineageConfig(FeastBaseModel): enabled: StrictBool = False """ bool: Whether OpenLineage integration is enabled. Defaults to False. """ - transport_type: StrictStr = "console" - """ str: Type of transport (http, console, file, kafka). Defaults to console. """ + transport_type: Optional[StrictStr] = None + """ str: Type of transport (http, console, file, kafka). Defaults to None (uses OpenLineage SDK defaults). """ transport_url: Optional[StrictStr] = None """ str: URL for HTTP transport. Required when transport_type is 'http'. """ diff --git a/sdk/python/tests/unit/test_openlineage_client.py b/sdk/python/tests/unit/test_openlineage_client.py new file mode 100644 index 00000000000..9be050ce473 --- /dev/null +++ b/sdk/python/tests/unit/test_openlineage_client.py @@ -0,0 +1,151 @@ +# Copyright 2026 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from pathlib import Path + +import pytest + +# --------------------------------------------------------------------------- +# Guard: skip entire module if openlineage-python is not installed +# --------------------------------------------------------------------------- +ol = pytest.importorskip( + "openlineage.client", reason="openlineage-python not installed" +) + +from openlineage.client.transport.console import ConsoleTransport # noqa: E402 +from openlineage.client.transport.transform import TransformTransport # noqa: E402 + +from feast.openlineage.client import FeastOpenLineageClient # noqa: E402 +from feast.openlineage.config import OpenLineageConfig # noqa: E402 + +_TRANSFORM_YML = """\ +transport: + type: transform + transformer_class: openlineage.client.transport.transform.JobNamespaceReplaceTransformer + transformer_properties: + new_job_namespace: new_value + transport: + type: console +""" + + +def _write_openlineage_yml(tmp_path: Path, content: str = _TRANSFORM_YML) -> str: + """Write an openlineage.yml file and return its path.""" + yml = tmp_path / "openlineage.yml" + yml.write_text(content) + return str(yml) + + +class TestDefaultConsoleTransport: + """When transport_type is None and there is no openlineage.yml, + the OpenLineage SDK should fall back to ConsoleTransport.""" + + def test_default_config_uses_console_transport( + self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch + ) -> None: + # Ensure no openlineage.yml is found by changing cwd to an empty dir + monkeypatch.chdir(tmp_path) + monkeypatch.delenv("OPENLINEAGE_CONFIG", raising=False) + monkeypatch.delenv("OPENLINEAGE_URL", raising=False) + monkeypatch.delenv("OPENLINEAGE_DISABLED", raising=False) + + config = OpenLineageConfig(enabled=True) # transport_type defaults to None + client = FeastOpenLineageClient(config=config) + + assert client.is_enabled + assert isinstance(client._client.transport, ConsoleTransport) + + def test_default_from_dict_uses_console_transport( + self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch + ) -> None: + monkeypatch.chdir(tmp_path) + monkeypatch.delenv("OPENLINEAGE_CONFIG", raising=False) + monkeypatch.delenv("OPENLINEAGE_URL", raising=False) + monkeypatch.delenv("OPENLINEAGE_DISABLED", raising=False) + + config = OpenLineageConfig.from_dict({"enabled": True}) + client = FeastOpenLineageClient(config=config) + + assert client.is_enabled + assert isinstance(client._client.transport, ConsoleTransport) + + +class TestTransformTransportFromYml: + def test_transform_yml_is_respected( + self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch + ) -> None: + yml_path = _write_openlineage_yml(tmp_path) + monkeypatch.setenv("OPENLINEAGE_CONFIG", yml_path) + monkeypatch.delenv("OPENLINEAGE_URL", raising=False) + monkeypatch.delenv("OPENLINEAGE_DISABLED", raising=False) + + config = OpenLineageConfig(enabled=True) # transport_type=None + client = FeastOpenLineageClient(config=config) + + assert client.is_enabled + assert isinstance(client._client.transport, TransformTransport) + # The inner transport should be console + assert isinstance(client._client.transport.transport, ConsoleTransport) + + def test_transform_yml_in_cwd_is_respected( + self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch + ) -> None: + monkeypatch.delenv("OPENLINEAGE_CONFIG", raising=False) + monkeypatch.delenv("OPENLINEAGE_URL", raising=False) + monkeypatch.delenv("OPENLINEAGE_DISABLED", raising=False) + + # Write openlineage.yml in the dir we'll chdir to + _write_openlineage_yml(tmp_path) + monkeypatch.chdir(tmp_path) + + config = OpenLineageConfig(enabled=True) # transport_type=None + client = FeastOpenLineageClient(config=config) + + assert client.is_enabled + assert isinstance(client._client.transport, TransformTransport) + + +class TestExplicitConfigOverridesYml: + def test_explicit_console_ignores_yml_env( + self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch + ) -> None: + yml_path = _write_openlineage_yml(tmp_path) + monkeypatch.setenv("OPENLINEAGE_CONFIG", yml_path) + monkeypatch.delenv("OPENLINEAGE_URL", raising=False) + monkeypatch.delenv("OPENLINEAGE_DISABLED", raising=False) + + config = OpenLineageConfig(enabled=True, transport_type="console") + client = FeastOpenLineageClient(config=config) + + assert client.is_enabled + # Must be plain ConsoleTransport, NOT TransformTransport + assert isinstance(client._client.transport, ConsoleTransport) + assert not isinstance(client._client.transport, TransformTransport) + + def test_explicit_console_ignores_yml_in_cwd( + self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch + ) -> None: + monkeypatch.delenv("OPENLINEAGE_CONFIG", raising=False) + monkeypatch.delenv("OPENLINEAGE_URL", raising=False) + monkeypatch.delenv("OPENLINEAGE_DISABLED", raising=False) + + _write_openlineage_yml(tmp_path) + monkeypatch.chdir(tmp_path) + + config = OpenLineageConfig(enabled=True, transport_type="console") + client = FeastOpenLineageClient(config=config) + + assert client.is_enabled + assert isinstance(client._client.transport, ConsoleTransport) + assert not isinstance(client._client.transport, TransformTransport) diff --git a/skills/references/configuration.md b/skills/references/configuration.md index 9a1720984b1..7a63b8429bd 100644 --- a/skills/references/configuration.md +++ b/skills/references/configuration.md @@ -258,7 +258,7 @@ materialization: ```yaml openlineage: enabled: true - transport_type: http # http, console, file, kafka + transport_type: http # http, console, file, kafka (omit to use OpenLineage SDK defaults) transport_url: http://marquez:5000 transport_endpoint: api/v1/lineage namespace: feast
  • 70gKnLv}dW2f?(a%4_$@vTl^YA)#8CcW34+m9^G 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 z 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

    (8B~jU;iUjSr-y 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 LRPVixW7K~EvlT=6 diff --git a/infra/website/public/images/blog/model_metadata.png b/infra/website/public/images/blog/model_metadata.png index 161723e7e0c5f3e35092a927aa7b02fb3ab4584b..7ef300d9b2b2b25006fecf4686a27eec03141c63 100644 GIT binary patch literal 201749 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�?bt2%%T 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

    $ElFLHZwN^gy& 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

    nMLcy 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∓r;?7a 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≷&_IJ{*q5ln(faxdg8?_ zmEi#rda8&zdTZ;iVdH+0tZ-tGLQe_hgCR@(knu`_icAAl^1|eV7q4|2f4x}oMA&K) zAv+DPPm9`*hL=S2YJC=EZFjoGe=!+s)f}p!zw`wZmr6;krPbbGJm)3Ipi2x7pl@hd z3=3B`PaQtEAWyv?-K#Z}18Hvz;j*=#l!!}i z3jJ_~epgbG^<`>_)-!v57KEt18Kj>wjv=p_U47Qa}XaKA36D1dO5_YTRua| zdbTFCm%p||^;z}ERX;|OXAfT?*u>85cYu}*1mF?Q*@*p@X z)_KPZXUrGn#x%z$<_d_8S&_Y*_08uKh-{aK@TN_Em!_vBR0I62Y6)%g;pDL6r^EOfu+fBEzbO=AWEir=2Bq$!Rd2UKbp%^dH+x+Zt{1 zI=2qARrfSMqP?FcuTt;zNx%}+Bibs^-ZWI$>qWoL1J`>yr()vWoKkUbnt@{a3BoO_ zR#VzP_V+Z@L}jeYN4u-z_cQq`4DcG7EU_s@ZMY5C~k@_ zZDE91wrmBn?haXz2rWsAVaRc!7ThD-QQq%ptd$nN6)oDJ3Bj{}n%+Xn?D&B2i4BjZ zek4XG?4jhhVx0n(O^*GND@1O%ool3sm!NW%SAPN$$1890^)$82&dyqH9TuO|?nPna8Ra822$ z)TvHPs7|$LL*ntO9p+R1eOuXE`kVB6Y6!aFFsIsE*h_`zc>LrcP%@~0bOv-lq|h-l zUiy-N7k7;JCe6TXHXrJk`ag*DuaX94xf`Q2RHJ5FdbcK9dW|t$){6IBCgQc$-*rw*V>{26)ylICa(gt*PITz;4Y`VhS^EMbchQAab;?%c6DgY~uV8M4GmBb+nE?XM;?#_k{%in(!_MNW`2rUQt|!g>ElL`G;Hjogc&c^I6Y#wlgQ>?l$sm~JN`(Fc0X$T{y+zc zA7#}XBEKU3slz)Mwz>eRi4T1{6b5VX1JXk!5g5D$LqcR`_=_awmlwucQ2SGtehy9j zXiBUgiOfPk&Cd>!u1!gaSicnUA*m>#srwO!&W#wapbuok4Ph1&iAjO&oKD97n_d)pEfi@lgEVvuRXAe=SW;s>XxF}-#3_nBhz5eLk=*KJ*6cwdSZVxtN z#pwe;vX*gY5EiGINfXJ<^pd0XnjbM|sE#MkM|dX;y<(USyX;Z=$u?6WlXdK2)z)jD z@zR?CNn7X%BL&Y*!Rh3!dKX5G)jM!s$>m2Z?Figh1CDCiVpaZ}av>&oq%8voJg~&xn73 z#(9Z*pNr79T*G;*MJAVSt@ZPdo$c{Ij-?2!Z&}C`>x0Zjo-U5$XebHoCAJ!W3{#kH zG4zMqQQKxvz&B|({7Wg=jQc=aVKZWeJJQV*_WjJOg<&xNLCZKFjim_&>)@-~G8+-L zN^Dh=MxvDPA)Cm^7u{_IQ6 zI3mfk&Dh(E2%kEn9A9J`zZ^zk{gR`;F-3BOf_k{=#X27xXv^PFFcHi_YNXxvdCSUE zABKxew7toC)b7^C)EkW7NG|Mns*ofqNoujBKk5U)V|5V3#&=Dy4Axllk}0T|lP08A zz<>QKVs(O6qDOSDk$=3amaU1EEizE%@>o|E$yKEHt81y+4?#1TO`Y&d;`VSV%7?#UknpK-wWQg=ve>qm~IK`_CO!Umx<_40cYhdt{g?fos_IsqXEa#$F- zeA3amtE;ohcsEwm&g{`XKRZ1{@0`yMh~G*n0ToCBNl^6(rN*k69YeBQd>RpRRoPPG@-2 zBnmSwgiqzOmt3|E8^1|vpOj(@5M^y#mqSC^?juQ@?X(S{&76C9*zLV^jR1SsjRT?K zHeT|hn8Glc&b=tjY#sWBdB6}CGBd#PoYz3;7PTo^bpKaSKx-~nK!|B^QHOVt0S*MQ zV+asWuweHnY6;>%2O2~lmp7sOXHzyU6lFZ8IZd?Sv8aGG88^slJ019Z741)=jsiX0 z^%?_QRBiYiXo*~)vy^VNi22?I=J9Y_5G>b%(He@|Zz6}tl%S5C3q(A;GYG8pE!2pK zW>#~n$Qe9b&D1{R?LauXs6zq$Re)+7A0`>AV-^`vAFNr+JRo5C$}ud!pYj;Pu+0kE zNj9=Lda7}azbW}l7QA93S$2r(fB?y?WMTGL!iVAV`kovCGBgKm3eD+R{>HId)KN9j z9x(L!r*0Ttyou%Whj||gP!I3WSHxv|*QhA(0*f;OOI89IeA`n#F8MSbGF5YjTy0yq z+U0GATBi)c_H!+i*yy*LMUE`u#KhK;KGPl-LXP@G{IlV`Y;v^{&W&(4v(HXqVNVO2 zYFctdR!dY;EiewlU!ym@nc@v#W9I%rS1CNK?8mWG(?h544x9=?QEsK>kMs+s4OG+mec)M374k%)n-mq*oq zim+7KZ%ij0*5iE0D6yL3eUw)y1Y zR1MN@ItnX&OeQ07RX8z&ME^}d%a!w4Oq`^tBSbNUp~N=ZC)Gr@3oT3z(pLV&-h0lX zd1Fxe07e9brM<$>iPIa-r+Wk4>F3&7xX3~huW>TLlu4=)(#@@izb=8ivqDCtnf@Al z6A7~$&Ao{Mk@nb<=odQo)7y;zHw-@2pg`=E)*IG*sEsah}}^f`+25B)k@;zxgW`Rq?#FP{xh3)r;tHwX`Zzq@iC;3ZJH|e zI!`C7j{LC&*rW8~YLN;z%pcT%7s#OYDA5cE;nN?OPAOBz`(XWg0H1nnT0N5OpowRt zDb0VW!)>-+Tkq-kB##e~*}A!ag*gB@u9qp{Uj*qrb#9=|Ff!b?FMr1pJlKaCnu14r zL$Y5FvN{q`&niZj^xKX1B3+yzy`lR}K>PVQJO1I;t!$l)+s*}WPfHEXa9OdUPYND( zATRnI^=&sHR=25(-A7sCFWbnkthGe?5&SxI5z*bAyK0nlvnWjZF^B)dKe(XTeOWLWJWGHy> z#4=wle%RF{7e+H=CATSK&9n9}thX;8y)zW;+Jo&1xo#H4|XTu7eu!}3* z@KW_(S3{&}l(#S)>Q(N1FtFYTMDKTV`a=@SRn1u7(AraJdz*7z;Oj6>fB#P|Ivmlu z?|d|TCTc0!`_2i<-=|&Lvf9Yj4P%7y*xKuABk9P62-O?cG;N~84St9cM#mrLp=0_fz3xo(< zQ_3J`RW8{A;~Xbb-{wpB9oY$Obnt-y6o)+$JuuJO>OtsxgN}D;U-$MTp=nd~!ggjt(;xT@M97YyQUy&` zv;y?|J!ep?z1;f!nRX_-96sfiW}$hviKsX{j<3Zqtwv$q(P!XoK*SD4Hf(kHIB%Gi z?XdiDbm@aCUB5B5;qT!G55`C0dbg$vyI6Tp4FPID_u139aR>S4M0Fqbk&gM$$NEy{ zNvT$2k%6^cS9rwMzdh{Rlh}W=RTW*o!DsIlO_Cn;Sg!quldw6=tv0JfKW6KL%x_#B z9@wrbUTzQQmf4STD+d-FEkU7&cwi*#j!QJDgn3>N=hp8yBbDh@j&mErNo?m_U=#aZ z0`ZhFkkT&?cN=KK#iLBI|e`o-v?}RBYNKJ=t*@> z!Fve32;c^7!rt^;nx{f>HEdXFy=CrY?|DcBST#uzsz|O#SlBKRYhji%k3QH$22wJ< zrbES_)w}2)^yMGrF@+JjY_WEl0%C8RJLRZs}*%%?7M4>9>(I& zW?zCYfZ^&y6~syr{-hBH<;7Yo(izGQuJ6$7)YqqE5Drt#^zY*-v`AEt)@@`(upzk6 zG2THR9&{@ssj}tAdgvfX4~ta!r7g&9WL#skB-b#xX8RMU3W4GRR+_8qX|;<5j%LnS z`NHH=vDUB*S<6?_bC7>(?kA@jAx9bGLD!Z#&IB${sndjYdD>0<}66 zwoY{qIDGDtqaiG}P;!#i7;_F_9^ zmh?CWXLfJs6^P*Wfw}cuusNZndTZLeiWcuegWbN`==yAqEh*vk(a*Tu2#Emv=RyNO zVqzh?Lvz)|Y=@>FKUA<)q2-4}dvaT6(=mHvLi1?o7wQX8<D3*9wZ&9M+v1k>VbJDO z&D&zlL-jt9eVp$MiW^3|nN2g;O#+ublG78g|2|*H>`}scc}b7y=z0eVT^_aH2j84d zhaxt!wbNSA@6ry2MF!u4`ZC-G@@NNht7s9+74a?umxsUk+(RkMJ#GM|H^%!cRcntH zr;Zky3`W!{WsFYeP;{T_y^rXl6`pU!OwG>BVwrOtd%Bc4;I~LNnjFYe38~736J6lg zpl~#NL6}cfCivWH(&qwpv7n<*IUHR&eSw6C0CFn&05#KWT`b8$BL8CtQ|iYJ)t)Xa zXwnb)K$jU3&ZGp+qUpOtR5slNBNr&xu+pS3Xg$|6sApsNK2}(4hZqsf_t(*m({Y9U zmmYq7;oIATfro>tB}yw;BqH*nNE%(pMr^|=@Y4n6aTbKVv~Qj_x~{W3@mClB3oK~P z2}h*)?sVX|U48hVXe%Yail?*YkaNmw)avqZ+j`qVj!eb^g`b{4Pu+gwgMloC20k7a zNPw=ulIk9`XVkxVRqYsP5K?FCV_NAmYHxBt?_vEp{`xX1J+#LISarXY6&?B}pJTIT zk9n_qzi#dE!F%(*!19QLYIOWJ+oiSxMh9tBjpMAI;m=9g;f{mhH=KadtS(=vXbLMaHR@PY+O0(yb7#86w|y{4cl3E5Rf37~hIemPt#>ea6m`(`@@`fY zWC{v2B(BHmq^o-zPr_{OS=XeFIy&&cddi)KUmav~&gMQqe@Z*Rloc}Xxs2PR(CHlk zrc#~Uu$8uC*9_*ZKHfPi4d=o;A*1;mfb-fNK=_o*GtAV&yn%9fSKoeXXg;M(HWcD9 z_Oh5&!mU%yUsyR_!;^nhg&YfVs(i40CW0bjLh)zS+n+q#NEYypw_yAr75)_4Km;?n z3Hv}E4ISgq6ld&{n4Ut+7bUY%*v{p76^1GDL1MTLE3!ExLvlliVwX?=nTIt#5@leZb+ z`FOJS)_Cf6>aJLRTZYEK^hlT5z{3Qo^&GP_<|V(<3QOy}9_FtI2c}C5Hq&VY<)oA9%fj1 zr+(;A8ICgPA#(0|q&oU|?CHNv-AUQCe49KT;V`i7Nz3N(^W(B%L-F97+VR>2YcW5) zx8^mN!h(%H3RV6wI>nSJrMLN9Y8#C?G@wd!BVN2U+1KNl|7MjM7#qTIONgEu>5%Bl zB{;A>E!$IG6wpFTMt!-{>LJWt?Rb*e!>+|RoXOIhj)m@ea|Rbyb%3iGqo9J_SJbjh zzVaQ-BTk+=z!hrRGt?&4qsKJM*Mj)pjKsf5Yp+X2lC1tRj=~>MyE8w^Vcuz5xoSAp zwU!staM$`(rg@wu0xoQ5%XQFwB(ig8Wqs#!1A5rN_Nv69?S-Z+qfxWHi1!hjX7g<; zJC6oGzg-;|?DidbJM->R$Z8vDT{8axC)&ame00shd?CQ?p369))Tbf-D8S7l1r zg3s(^AL*M%m*_>%b1`09wMyO3Wicwp)e7SLhM~n4?>IG0d%hY7n`{GfUF!x^2@@7> zuF7w*$ng4b{ttU|sr@-P_+8060^H<3<5B0wr#RVwpp-;|*6Vop53g+-`Eswu?t1(8 zm3KZ3w;;an*IzW;I!N?Aq@L70_B30>n_~lo7W=J^gbnN2#|^*kxRT0Nm*|YUd(99z zcZ(5S4&ykSkRE{jcWnoLSfvoFh*(s4w>}|@bpbeV74}VMm$(qe5=Yc(+)};< zcTQKMgO)t?IDN!QAr(t*LlN?8D#)VM!P(KxRG&VtessUoTFo{}E?ar1U}mBTv&EMC zuH$204yudZ1epmwbU8lUW$wdtkI*R?S6rdrNv#Krj%wZh$Q!ij+WUVTP>Ig&=*aHq zX>|;mX}|7WQe8e`U|#CyT}|N1*!8vP+V3Qec!b!P(vSXV@_nun{mfTN{^Q%zKm+G> zps|JUH|tk#mnF?KEfnamyJ@|rGSANCYEZA@m1I`4ukNy4Z~CkNPuL*92zf=v!HsJE z4^e~fM<3i7c$l#)*)6{2_hPqf{552IiBy#@TrAU3&t7W&>7*6d9?j1mY~(>049$1z z76P$E4MDv3b2fwVa9~@O@96UX0Lx0cP1yDYLMY zL}*He#RPp+x<=7;Ckvkax)jM2E1dNe#`sOSK&*H;XtwMx2cN5dSa~_~Ni!<5m#D1z zl-gm?{qY;hQ={z$2T!Y-_~&B@dRF;pDj1Nfzb2HI;wur6s(R@_eh^$w8`N6cRKOE9v#E| zazjk;IopsnCF}dD)6rE0@=N6Tg0I$7J+eRlgR_6#)=P7;mP5nx4Dx+GurkVEWTCQd z`yYDZB#8;URZ`^ie7xk^JFl5}hK+a5a2$Gl;z28_q5O5FV34d84?Nz*ti1H%e}9-) z6!lW3V4#*c9^k^DP)b36VPr>H5O@QYA7n9r{gpNUXNN=1kJMqgLztzU#oF2#9`{Qdj?jWotNCR-GMr`bx*b*zTD)4&-`e}x=HsK|~os(Cr%v~O6nQ3?~@HXFU}zbMWgmvD0n z-FrRUyCIgcb-uY*=~!nJi#xh=$L%5|ankhcM^CO_h$|efSV`69=%XoK9ogCEwY6)o zg=RIqP`-F~`>`%2a$Zc(Z#cFwl)fs)t2DEBK6I$=i`c;GKK@Pd`g`*4)Ir|6dn;|% zt=Tx&T1Am&@8mZJsl#TYRVJ-JkURV*cU57@MZV|GsIr%tYATYk#Xn)FVIwp-eX-oC z9}Mh}8b20vnsd^W3Z0-72pY!+L%FY1~{DY9^lwM|z7hx7`zeobt zX(_su{OFCT$w~6Xp#?8N^f8S$z|J__Y5i?j#OdaNlaKn#$^XqVz^A6swkVaEZ|ju0 z1n0JpjwCKje}c`<-nlUfudaCZyT@Xvq}S&jm*`Om@2tTL>k~e_8PGR94^hbQJuExb zP`}>Snpf-_Bxe54P5*rtKxc7AxbG9kD>u6jIJ>{=V9O9?v+A95@Z$IOT@HR=vqPEMcL*v2thbAIbl}vE+#ekp(5`*uMT; zG`QQv(a?+n1#_7>7vng;&A+4AbDoRx{gr?IKNbInw#F#(Buxk>r$}&EbH{mwp}QrN zS<^u0(4udTx`l4ez~UdVQGa`<^+%%gQHjpOWo1(;?0@L%4!EsEba%j7d$2f8_b0N~ zuiwsAXz%DioUKDiy!)fRp2ir3r(eI3(<~;m;K#y^k>^-t#2nJ{_t5^^%3>$~t;a>(l||J=ks-uC_4X&(4FqBr-A`%n0<^Zn_+ zjT6ZYA87+hz+iP!>H2g|g)-NF01 z_tHnh4N;z^h%KaaTqrl9 zp}vukk?}c9iW_!c*1xo|=GEQ!4=wrc*D^-{XL#~a;&N{YFo{C>loENk#(^~KyMxXT z5UfjF2-Ck^Fc^Z?nsd$XArRbUw%!g)ISk(tCOk4p&TP2gx5b(`)TZA)>|mF;PppZ0 zSU3Nz_jUc+b;q&TPoF+r17sX7zi!>H9g~3Q(U38!HFNp9^Rynkh7i z8?YZTTJ*;20p z;%D#E5<{ISaSMJ2=9DVaLVJ}{ZZT}n6%WU@l9e`~E~8qbn<*Z(|G+-}W?6I@M5l7{ zOO*%3`hGglOLZC+KJNZ4&z*>;BqN}yBnPHFOMWM;CkGGOzNt8A9e^-L3H%}%|4Yh$ z?_fw5_~M3mmzvk#t~6H&{hkl$hhoS_rmbH<{H~(ie{Na77%i3i!+*y#Rs$kf+KDqL z%{jw1efEAEwZHQ2&LFk*NWh^_BX{9cc!PkaUR zlFLK+0*`4MEa&nAMOx(V_z@u8cSe9EuWw6>j3k2@r8_)~O?sZ|kFJD{3O?Rpp6zyf z$BCv}6_b!Kh@K_>Sn2Zn!vTkq0CG&z2dr_?Uuz4Qb1v-Ydt){e`lk9S03GCL!&3Fe zdVL-}y21hXm*$Xh8QKd&gP_*D(SEvufin{7HisGSXl5mz-no0=TA;f?&U~=gViV@@v&i7 zH`UbCZfqOA+Ai`t47`Mt7lcPxE->M9bxfn{ zN$e0d_T(q`dGJ}6g)dozCJIRWWAaEdDkY37c{o@WOH!Pfm`DKXs_#f;H5ZtKL$ye@SX%HW${k<5C_08lOKr*jZg9;-_bUsk(ms7me=eA!Bk-xCFk+ zG4JUp_oacNa*yTj?)^8V@&XQaUern3=^RP)${VzTcjgoc-Uq9dT|Vn$byR*eo~u{L zD4Wl7e|q({{;ogYU$gtmZ*}~3Rx}tG7*r``0`}cyyx3m({83q;sRaEAnvY&A0ps15P6h9hIclWo>CMGn*pY+o8JJzi5AtHokCstGdc>}w`6$y zq0vygFB$vDH~xEF<|3LNT#ragMh!O*M|fO+s#E=){XBNd`BAU&tIZdzo@x9+u6coJ z)#o8yd{tztDx?KI|JE@UEFI8V+>lOqt$Mkb8wx%h3@vk;?{Nj=@ta++f|DLReCKBp zOdK^RFCrtMYS4IH=2YQ#ssrbO&!xT|_g#LICt{-m-@8wT@LUBqZGQ2Wx~mC zs+ab*uOL0aHm>vOUJ2D$A)qHXh@Os@lJ{VD9X3T(&nf5mdY}!`?(l1X`44YJI1Jz; z*9Ftu3M?(sr^NkY*KN8x_%AA;i>LoJ!+U?HvLPJ}l<4HitySf$ybEen3TZnjIY_Lo z@md$@V-92F$sa*@0OJ|mt46N4t2&aG1N0!=GH4B1_PFq^G#zl=eJP;P_m7~vvcsckBM&oAHU z0QID~VM!n4GSL{seFGduW+~$Hzuu^OEGoGvB2X)D_F>RZrPIVGNYAarPgy(XS2^+0iMUKuv=(Jkhk*j z%4(1?=3^6@7a0h?9=!e^h1S0cXMze~^kfJk`X=OL*>K~OXNT9oG(%lyltO4a8#Y2= zxeh-oF46_x?EaycCf<5pk_+Xom<#=i2~pTAQR1-Yxo?rUKTwBnXN%BndVZIZ8OvI( zVqwYSG2Edfx1W1eQYJ2pgA|3H92K*`aVKcL{;l;k>MTE;Tt*!LI`808XcC)<8yuSd`jyC6rA{2b0IL3*S^VS+Pv@^xIv#nth%v zxj!0-=3RO^5i}J17Ry6yalM1YL5rPxuj^f=ygESbXW8{fyvL&G#IL(ye{qS27s^>8 z&)9X#1p@47icC|jG?y`(OjDgMT!}T9oGp$=7#gkHZUzw!+y1Hvd$Et@9kS_nOQ=-- ztmqAO#qgD2FHNT8l?bXdLYpxdUjjxwNC)XTAut%bfpZ<^>VY;wbH6Zax|n*6dZ_A7 zrq~qQz1^TA{L!rZTf3hxSG@)$3+DUlUo~vZX5L(M;X#dx183>jc1OL;>13r5+XDtb z>!roaXN5t~AZaDuvo2$qAY2Akg)H{Az{q zGa=-qVJlo|>OVyHSNqV#1vonFzCvF-JEA#k!Y?CFx1Mf2OMV&&LXx-Agq&Sc04fDk zYZc=aH=uNuF3WE!^MU5TfoK_F@~F4y?N^I{)eugN;_)siB`&{hFhkO3BfytSYMjRF zfi~lTGKWCYQdrZVZu`3lpD#u|=46z*y;}4arCcg*DrJf;hc@xsGw%pY$`r9YM3ot; zdi}7QU+G*nP9x|nz#3TPtT%sFo$M#7GfQfs0?P&{7HtrMu`>u`$q0!q=hDk^%``_P;}ij+ z=SWz-@^g`fZok((yd_G2EATptf}@$D@8XF`p*syG<4y@KyiiQXtxm~;yjc>4lCY!} zBh#CFVPvLp45TRym&O8iNAncA?$qrsz2bXLu1BU6x^Tgsp-71lg=HNo-rZJ=;nF{Y zSe6~gxtgs`)Z(N%m|>`ERzh^krlW)yzIV9QI2Q}%5 z`b1|%8NG{02dHF8>$eD4y>Uo1pp}bfc;un(@`Nuce6G`FT_Qr<=cdlDE>i2AIUUO5 zk3~fdOtX!vQ_!*t9(YQyqc&EdXEz=}JA>{4ys5H;jaYT*g_BY?8kqprI~ozkTyt9pM= z?-ZU}@_L7vuw0u5@4o#`KLJzSEeqt(EB8Howq)C@W4a%(t^XlfP$a7ZxQD>~u6a+` z%EQqpa%-K5;q)Vyta`K0vv*e(zD1KB9D9sD_@NxIV^TTpOTBILBTw@sxLYrF-!WK4%wq58EQ6W zq07$qgg1ADejA!uOapPh@vN-^Om1fO^|Q35@N10Bv-$VAd_T{;Vrt_naGR?hdFRwV z;t_AnN4xp-axd$a6DM$DcU`u_I_{ zDRxI(?rQ30G8X59a#f8Z7vVll4pPNM5Kpb#{mpxqV*sz`io$@;n=GU+)N&yFYu{^3 z`B$xa`Q&5oEep8-XM(q^tk|7a(3CV7@l>X_qRXR$Uk`HUd@{!;$@Uv>zUvCXV!vry zzcYB4dp)@VN0aBbGalcrhB7#6s76JN{fTXjjR39{8J_+;)sc27nCWZhaNB(*(XnH1 zZiRz=JYkC&m#ZS6T`+B6aEGY4gKfP?GoAL_j*jRvDwcGK<#U&w0o8-KP)_V5tz}VhH=hgRYp5s{I(Z+;fvsFC#Ap|~vRN1|isPqWsC_b8-X;H_D6f}TsX%#|@)!*q#% z9xhjU`RRk+%A4P@J~XKQByxy)?>^j2LG(oial42x;8)OJ zBO#|RM9s1qn_N3jq1^6#>5^sEs}cU=COFiFjPs1!0dM@Hy^0kJ?Yu09#nvzPA653` z<`fis)iINa@mw8FaID>VR_^A1&B-%kc}IPy_$+q68Wm?_n~1+JG|Jy(q~eT)Gi~ym zyK}&@on!xDUg@VvF{0x4po{ZmAd)q1EBN*!gMBf0R2JI<_2qH8p8*QNNx|h`@W8e6 z2BYUFW3C$I?+|`mlXH_a%G7ANlgHA{=Kgt(X*D_dTFOuDd7F}98SeXb(uoek@pmOY zgiV%SyH+jpzF_zv|N366>qy7S7w_Q@4!m^%o8G?DU-0h4g>d(+7m4%Yx1O&RWegRZ z+XYGxZtl4XEHCf4nC{Z~5Z*s8dg0S^zdjd_$M1<%ZmDgxB)d7Y#3Qy@tnbZy+gV(6c^J*{pTi zv#)ufR(47}Wm=`Z{qDoTgwku0;u+J5F$NF%k&?a(t?p($SDfs}I=S13(Ia-e?>EIH zxokfX5 z9>>U;*+%sdw+T%w=cEde8IC&A@3n0BL3=Qg;(`q_{4ZbJ- zmGg$l)2IDAv02w%B!0NWnex%9ZLya2dr|pSCtdX6_wGe%Df1Vceir7{0qb++4*j~9 z3M^^sr4!CZnb*lBqc@wg2szAfEy&F@4cqXYkE7+TK9A4Q1rcK=2e@-^tszIiOuesw zGipvt9-Xvc%UTFP4S5QFJB*eVGI7UT_Rwq2bv|2j^d58oEMP&H+$?(ql~0rR5f1>S zrY(Mqz+Su_VD=M(mheJ;Mb7T*>nv?c91DwDCZQY~rf(Pp!V$nZzhp^3LrQaY_V zoX6O5SI&yZt3K;=bzoK>m;OacDB_Liv^UooDeZ}Nw2=FMKju|J(V*l%cex;30(5#IsP z0oHa3Z#9no@-At8h=1wqWLP~<_JdN-gg+o`PyGB}Z_4R*v9Hnx=nX`?wkS#8NxtWQ z1!C`>F<GP~mzT6o_1EWY-2xw>yGEr##mC2@F-#IAjq&v2i8p)M>F z%sbDp+N7^V_r{s9(C5DI9-M_spj2zeBa>Xqho*H?eU=g7O#Q8*MC z{`FwiS{{-(@3R|V6qQS{KKueM?JFMOFS*X_LdG?FFGPcooGOx%q-!glNg4UmsiBVY zya&$;x2!*LGK}v^2$eto932aGM3L75ccB$CXy$hn0EVlur)I>O8obuW#G86En2;t= zCTRXW0PM}<*gNsqv#I0uh?p-=t`2jjiT=PD2f^59CM7%`9smd*v)HLDAm!9h{9!Id z-wekW5^3ELod=+1GNUKp6?|Idn&pK^8oD#3ldF~EBFa?oxL$o@Vn|^Sgb;DH6AWW< z!d@F_VfI%Y@Sc5PbVII{w-q$Z<@yCQMKg^#s|=o{gvc|r(ik@%MoEncde~u1+o@0) zp}&tM8`Vw%;b%I&X3ihurV5!xI)c2#(gl_Z+|CWAZyHv+&gZ)i-jwTCIPl6hy+i&f z!m#`OQhDB$Iag8CbfNST)z6Wi3c<*&*Gh~6 zp`XojNa>UCLu@v*^UUNF!0$qmNgoTG>;sMu#&vM;eLFhQs$-x7g%N-hawy+wG|yHC zUj)m7)yDu@mU(p;HSB-WQC0bZ;66)6)qF--#oj)eve}pw0vC@K$n-CZWTlOyFb^NF zkRRFuLiRhYP~>@9`$-1B{4bm?!SyWbI_S-~=JQSGOoU-fdJ@tO5`F1-!E716 zOGVsIp`FNb@>Ln^67;XoBQ$9ml8B{Qg66LLOq7c6wL$7YpFzc)AMCyD4LsUXW!wXB zQ`2GSiYO;JeJgD%c;9-YBzPX+1cPDm1Z;xON@+*ub2Cc8(%g#y&=GK7(3f|C$46fW z{{^mJT;f`Qrh)TJNoPXTrj&&3|PG^Nl$C`RhDpW?qaz32L-_I64-pF z`&>0f%o72ls<}fF45o6`JPuc<;2+`{#!wMHS|{`Gv_YQ*6`l#9T0#SO3SU`pxZfuB z#!Hc|J6zA9%3q#hDfG2E87?>RD(Ep%g0WXA*@tG>=~&Z}Tjv$AlNmPI(%4*S*BNy@ zwPg@rnY8u#D!Ywx16G`pkCH96L^Zz67QU7I90v_L9#S zwgvsI1NM(_T*fnkVV-a>{KoZGoIUjY06qRKdcDayWm@Gq(@QUO{TYU)r zi9G!tm#gRpbAio=44Noa6H+4_MTj`n;w{*MPOmC}By?GY3zCD#*+~zQMM5~p&+mMP zl3}XLl@?y=AgO>U##&7RAsm~)rA#cFa7`!(iH2%HUxJI2aw(^2CeMslJr!C7hm>e= zAi*n>6v7yu!FYqGLrunZml8m7Ev=%))|@p)oPMyp147#xb9k^@03eq2@%_<9U^;2;K8igo7+C=oo)F@u&{Vfv4rMkI z1b%5)Cf5FRta%gP&lwaZpRJ}&Y}OMX2ZexFc>Zb(5~I@yR&Tmaae);@$xq2H_Mklq zw=tRG0$qR>mb5Y*8nj*2Pc=YZCFqR?1#0kXp%wBtS67T+~?1dRx!pSj!=q@WJ z7Kc$Wo_a<_l-`FpYmG>-LKx;^!!GgDi=@l^ zwMWD+-qCjnpp-zQv!CX4u$#79K~MKcrp(*)&HJ8@O=O+j`GFC2QvGAyQh9Hz$eI@e}K{sD4OXkTB3`-tLIe?+qNT@Qo+_8HoYXXuz=^+YQ=J@75C0T{YKk#(w%oC_nqRvLO!@}j_Bih(U9gQr(--x*gY$ST0lj=z+%OSPaTFPDA2JB2!EARzB@l` zHSer~wCpgja+O*o-XI}3orkha*L?-z1V)w6h>}#ZeG8UU2n3Rv&nQ)ng|pgZss^UF ze+O;>6_UQZqMN{+sO3QOXJ@9(izQ;&kAu^xtoc)ujq76u?86+6+5)tYyVeZm#KA+l zPmSc)S2gBqJ3CdPzb*)Z)72vlclO+Se5SVFEq(*J#rtXSwkfEgg#{bxsn@8+-)UmIt!=^(e&bz4{iG`f%Xn^1!Xd_(|Q!5 zC*cn_Yn58k6WbC?<;*fb*c18k7BCnp-(j8vXc|-;$_o{a!HPD4$YW1Z)V>6rpF{ls z&4HWpF3@s|M9T9>is62v^pc>f!=Z2Sv=#>^rhj#VqQTpi1!O%J&}6=(N;nrlAJwGb zu#kyCFNTSUF@F#3dnfu+!G1^MbNSF(+Hai?!Q7^VoP)yhM-r@29_v2s-Na_ zqao2{UcYCV#$G}hDATch$=QhccjhJNG#&PX)|~vZOw(+VZM}=&acL{dlUes4fhPQp zJT9a1&KVjOJ-qx?XSB;rIzMC>=fU_%cMPd&v|QsJWmb<$EPh7HFbogmaWIVBW1hrt zy{MDfkb!l@Cl++p808k#a_mi}Z3P}Sg!Lb9&BXpczTPq_&aK%N#x+3#L4rF3m*DO$ zf#B{M+}+)RyL)hVg1a>CE{(g(ZT9=!bM8Lp+k31r`bYoiXY?~x)vTIxR$cGqD7p@n zo`@7#}Eg}Q_RiX>TPS=z0-Od{vR_i%h^jHunT)#Knrx9$!1}_1Jl4=hw zR+fP&kOP2&xw0!J)mDIE6oiBcuk3aYsHo&>D0;hMtB`pc=y9KR`MFNp$IiiAh(e8p z7zc37MS`U#qo*PU`+&lkd`!_vXW~kEEFuhfOIh^s7KnUHdWuRy8BEpS+7CxXG#K#W zf>|Yo^XbHeuiN-q07^K1e&5Y6!%5hcko6pikRhP*Vtk6ttM@8u5MkKNzw;jDjJ%;~ z0LgQcc|M{sK>Ubkoy(f+%*MKu)sfD)P#+bAHYP1!|xBkq&+VQr8+g?>G z>@&K9xqWa^3*3l}1HOQIsLry5EX*~`a>M(wc2B>v^V`goQ}qPfGe{sV{rTpv+7Pwq zlau!eXX&++qPVpM$;(4$Hd2QkDYtQV+qx9+S*c7evzW!;Fg3;Shy5&x!Xl)3;_a=k9&oS)N zte_CI$AKXVnjPUJWF{GI*+xRu8DF%!FKUob8P`LDav#FOJ*K4Vz@MVD~v>Paml*TdyHli zJU53eAU_^rf>jA!4{Y?LE+0pISXx>zl0Dq7Kv}Oru{>HObJN{dQMOY9x?6T#q?|7v{x?d|Aoan6#{mFBFSF&1;^%h(hShnub&F+FnNB;zmW z=qcPaM(H$VZ8ZyW0!1~UA!3QB*M)W~l_k%`hKJA_L~JkVem06#`rf&M72{?IA-;5F%zlj|z!Pt9Oo1eAaRfX~?HOx)gtvNT=Gfs&<`_<$-2TS_ zIb7L!oo2F=^;%l3Ruh#d!|c8^hS$nzraiX$a9f0+>MP0$bn2sNI9 ziq&5#$lmM;+OBV=oHo~%oE&4?1Q|-#2))rB%jAueSZabPTxeWOicxJT&Pec!DM=km zwMHf_puX63pnHXkvsNd`$>HzxZzfZ5|I`Zl3o^b-YgNllQUXJxT>fNb*o2Q~!4cG& z(VXowrn512G9sd@9IvF`>LdZm-5U#q2ILB+nO&Wu<$1q)4;{jN-PaeB>=j!(%1ekI zb1f;uBdG<3(UJg{R+j-XDpq4S#nFW_8Bx?y+W)HNoPz}sakFkwY6X-6*v*|$L8y|V z``p~i!w_&9Df@4`R-CLSlE750qzs`~zZlBR!1cu4FjW{bA7r;jO|46(VSk z8MPu{$Hlyzu)VBzV*Ek1odx;d4^=`U?8Bx_A6@d z#MU|u62}Iv#tCS=zi}zTV`P*zyU>Yn{p3nH#$*auiS0uZjvmKD)K_S%Z4@7Fh>3LcSrM&HN^YaMxA$t5O77KfUTB%5Q3q0GB|~oznJ4>{;?5Y zh`~j^L@_;jEIiJmbALb+De?@H3k$yq+G@0&VH!)5LYNk@!^ie9vPh;UZMYxU!+~H} zTpOay`|tXZqv&@^lyCaeWbAC1(_&ZNO2XJ+a8L}t@nzvoxkHU7dHXk8LOiZ3TTUKZ zVws6_T5Ts{j!UBosjZ3e*udz;3*6;c=%{qYbP|!E+Vbi)^0}z$aDPiwSVG~1JVnlQ}>=Tda@i&Wt(C2+&PLEr8x0{0_AkcrJ z067XzJS+W$G$VzBr^vA?{s)C#K?brVp<}#w)MB+qAB4K1$o;~~7a0u`wj!-Gr-HP~ zW}a2oX-~8DQw>1oMOn@HpS&|#&(Xw>^Y)PodY%>Qk4i}*FD)Ka^NvqTr{67qD``EK zyp%naT+OGh*Ju4pPF$dT&xsEb&iOFJEUI$|7Y3~1_=EUpz=P{xU_l;8;M#FDeI1UR zDNT^hnarEYn=0E_v=@N9R4tA%ApVp4m&U$*2Q{%ID$^yCijZQnC8w2zm8?eL0O0oa zw(c#CZ8~=Df@LvPcH6ywdhepl{$#CNOjl38GYkGDu-CWBu_OZ%$DP(q)7)TM=bsf5 zNAG@zK9`!`azBJ&^;s8649H~)Yk}p8)&)h#JSkpo8=$A1uFQW2jX;^^x?5 zZqeX=z+Nn^*_HfSKKB`raml#sa?`=dkT}DXKq@ZIMA71_%D5l=h^a047el7ACtLlk zI0x=K+so0=Om}6as6;99OH_6gPH|fTv}ZUl=|@G1VUA!Fc_z#UNR63jl1FpaaJR8% zft6|J2zYlQOW~}s%VHefY4Sr+Y}bDiKdWlJzl@RA1FV9P=4|8uWT%7VF)8hg6yA&| z(7*t+X%0b>q+0MtaSL{9A>PD>NGlnYpY2RqyiOuZ93E;*fVD)?ngd48w7_Uw3?@c9 zazp|OKsAjQZU#pxlALEc`BmXT`CfSOlrCq;*80!44+gbw_U##STSz{ z!!|7d9a>M*c=Ic<6^k8gC%DZtR_0bisDuU&{P$RriXUo;!ip zk7D#iig5%c9}5y#_c_yQ+BZ|$EI)S-69dFTP|(m^r*A<1X@zhII7pCwT9V88R9gD^ zPEwDe*FW$uu&V2q`c#FQHzU{Bqf|4W`>o{`p_c1z!v43uEHnz)d>|0Gg+n|9k`^Y> zfi&aqGH*s@;{RbG9Oc(egQqkKd8WtZ z(7Q0*VLOto5Jb0ew_lBO0aGn1sJg|hin1*FC#6<$JZ&_KW%*uI|4DfC4)IAqck@sV zSC1qfwt`D+O^}=3DS?f}gv%~W>ND#B*3i@!4Zv9IPnmh^b}B87jv_dGk_S2A=$vOh zn!4#dk4#yOT0*8cHqrG)d+W#9!VEJ*7aDqn1b|Xz6TuiPPHJtfcxUKtdWeH=&D*=U z5*0~$*m|k1MA+ka5JD<{Xs9htT>DeFT`s@=dbF{tu#@Ft4OwJ#bkY`xL;E}huDAIv z3}0@vmWwwCe>5;KxKjAM5~pA5cp565!yAirFW?z~c!~`fiyQLIF^h;!7tz-j4&zzi zSYW0JSeO<@u)yy1>=Jq&VoT!D1(~)<;&hPKp^AXWIy1m}x3J0Cw1EjBs}G7U^SQ1amj!7M%W{p*V_>US71jcNwxEJlYE!8XN*mS|Gb0 zzmE)3Z-`JZQUTk#2eaq%#X#TMN46FDT;8g?A&RW{L4;nEPkw)VAz>x)w_x;#G_2cy zKtTyZ0?HfL)P*6B+d;fnAAMqhK784`+#ohj>Gx~4$KB~_pZBpsH19={QTYMvAAin> zW(+bxTq5&;>aM*o>I%y39;9tPmvdcI!w_SE<1Tu3T{NV7ubshI;+ho@&nL3*r@bX> zSd0Fj+vwuih#;6lC$CIF9gc6LM%^17<)V=vummY7^#eKkR4G$Gz2=_`SU=;~Q>ImQ^eXGYRc* zL4+_IVF=P$$J5VHDA#wztSWyz>=fo-{sLE;Z#Pq71O-{oI~08w9mFhEXE09MAl~hI z$)fTzAC*vD_Hj-yekvx0AG887sCDm96@j@eT-OETX^>``sPpzX4}2#+V;Ml?vlS{W z%1>=jMElD|^NPZT@3P@rLyEOE^v;4U0oWiubP#zFx-lR@;XR5F5~cS3bLX8OLW%-( zpB;=L&8JYgIr{}W26M$?nZ_M`yL{zsv;{{7v3KnDCVunnM2u_g04i9@(iL_(5MzTB&^n({A;G~FApSt;1&BwVdA~gYLG~URS7D*&V-r59&gWhFaKgVt-XXBU zwkwYFT4bO6SpV`e$otsv^KQZWb%8YA8p5dQh>QVb#RuVxsARsyzF^&U--QEFj0ECg z_4{65o}>)>6yErS#g3Ls)oJcM&WD1>keQXrW7QE0O3_GVs3 zNBCne^6(;Z0H<)aJS=0#i$I8r>sBa5Se5Vk-MY7TD6TJ=fgrlTvoEA890?rzPW8&? zmH#;60?%$`z=?8<o|3{ zSP4J<%~aLYc47!D`IZ460{LyIhpv8BK{}<$W#-_A0F=aVK{$SSLN{;)$SFVZ@Tx#l z0VudBJcX>6Z>Ii)K30jHpmK~~mme#e$8%mES`h9b1ok@mUckKtKm*;ScpaC>Z1_d-t=98C5XLZEqT<8;Q96xcI>A;D1X*jAQrBJ@W z0zY>SJ+WbNxDIJDQKCGBa3wo+2)gj=KU>+eDL~gQ)09qBK=C^H%J(?R5A_c&*$T-- zxC+xydU33rCZmE^$2U8Y+4htu-e!b~H~3Zg83aHRw1*EMy-}o_ zM3u7To&~!?l)@1g1Z@NY1U7Unt@k}8&f{!rKVY0R4;WW%rd|*sZF1=&x<%7FAJXkH|EO*^LA9@N9b_(~AJ~olFFx{fwJ!+Zen#c0=3%$T z)xP}vt(;RZf55=~hP*0J$&17JKe>j$?gXC;a6ussUqse~eE36=%ZfrM*p_`N!?wz@ z9`qPn6{^~^Mhb^&85O0~`|H5}=^&gL{!JXUy89bQ4z7R~f|Fi7piRi&3(1Y5x^U)i z8uQ-3=RS-xUzZH}H~U+cA1E7P^w!n{hFdqrCjA*6(TR-sunT`Z#qH|#)9-b93C0L- z%D{or`e)`*bVQXVK)2rquGwi-`v1-X_(SRqhh!VM@#mKc9E|iu?u=YxpNGLUY|LRyc|}J(}ytCPDO%yVZ=`eji>%2{z+E3QJuZsKm#5tkkOw?#W;O zzn!EmNsyOVRiY)UX3Sx^nW}F5$JzkVfN8H|Cczo$_yfVqepB#_`9A!MGR2l&#dVt^ z3()Wr4pSU-pvPp?7$96108E3w@gkp18KoeCAmnA>ki&;PvGCOcQS6}~M^h%nl(IjL z@SK3uRlEQ{P8zlw(0r`~H@MFrXA+sPNDPYnLX!W-K~(q!pLFiys%lQw(BhDG2K`X# zL%T6lV#piQH;`L2US_Tu$BRT(I4dHUH6M%F=vrb2)~RX&WE)}rc}zGAh1MUQEJSdB z`#uQTXa$Z@IE~Oa#?)VCT-bR7c3X&BubBY~BXPQ0+lKDrix9*oQT~M_qMu@b~d^k7xkC|BInnIsfWPK#spXOr!E7 zyG+DFnbqO;fozTj=B#pIav9PT##&QNhKfU(u?4Q26mAKwr?G=dFPTI{!0Skd4QV%div7Ekrr@1|eISKK( z&$}Q+BKT>tE1ynVD?{Ky2uO*UZ_n0sJdCy-kAvhwXs_jnqtQ`mSL_LIHwbP}zJg{K z6M3K{2=t0Z#9qD|Cn6GfxCIxwkYK%fz`+AA2vJZ!`<+yYV1Fn^)OkdF3yXV?v4#*H zM|}=6pE^eE%D!`@VkFknGPy0}sYmCUI%cXd$ymgIAzy6ql>E8t7z|(Bg^z!8YI1>V zaWPa@fk5mYciUJYaAj5c zC#wd1$`8(?7uZ;2VX_z$M)43RVdmamZg(|82zg8eNL#Q!KB1n6@<|7Xpmcbx%ap~c zNutE?Ag9lVA`B*se2My@IC%08KoRb1J_-d29;KLr3kaNs!wI#9B=YBn>P5jf1 zp^vmBDC}ZWn9hy#$rTQpX7%&ycZ_aW){g4}`UIw4g2QQKDQ%*ft`OTz0$uRx25?GR=&0KA`Bi=xef^koHYJ@oXQ?TUgV64<1qWs(-x@vmgD=ET;U6qwUxhumZ3F%*Dm=g<}q66&m26>$9v^nWYO^KZT6&E!OWeg zQaOy{vp#L{N06;ksCoBKO^b1(Dbl(3Y?-LS75T#GFVXb@@v0 zLQ1}b`iWhf5p}{d1V46S$D0OP1mE*}7PF&-^!>mNkI~Jy8x$!NUKEyG&wKgC0?^cE zo9Hgo2au(pORg6UDx{?n&~yRYp-8c0Cwc&1P4OJbo5%gQBkg@3)g;K_I27$qhfMsjJ&&_EdfNy_q)xair{4qfSxgB#!tCIG@+uJP+V8W_%{*Ls4v*&$VF3|GOiE#p}3(j6gy&% z?#DOzUOdCegVA=wO~zZi0lvnbrv|y5AWwevRGDn$v#HLVMmUtC*G%~cNp#0hG^1_Q zQ8C*7;M?1xJ2JV%ukG=9DW@M6jOr7|<6ps`1U8VMqN_{-c-E4hhYsS|i-Eb$&UyQAcW$&$i6j)X(6fFXc!${xMjOB>dyn~t%YXe!jobgA z-6=j^$FWsNd)Gov7tTiBpx^9Rqwn)i6kRM6p9Pn6tN?a3d>FkOFn5-nuaIuS&jwZY z2Ijy_%5%t^F2p71=KQf8zd&V2RiWY7zHLL)yvE$f2dIrqQT)AEc~q!7kHI!?H(7M? z|8>}Tp`!-C`FPvVFDVgve?-i2cC7eUo@*(v!pYy*n1PgEpz1sAjAgEB zZQ#4EzPlu+Dg&jq=cr%)$-yV5M?niyWWAkxK;W?B%fXI3AfDepy-$gZhvsA@dVa^uWwb9*`Q?QuK zqOsOL-x&>5qoxC-a=W;M!BZpHsNX`ZC@oCaoJ^I4R!c0y@C;5yfG%h^V0GoOSUuID ztguLVr~H(80)XX|>@Gcs-AR=*`bB162SH*5!oQs^su(B&>pbF}y+JtIu$P)T#!@GX zi$c%Ni-nHnw}SG9M5_^2%gQ?1k4R=7RfHp0_(Vt{wWgo^g}S3{v^l;IGes9%(Q*Rr zDep>^PiL%hzvY1*m@%m3yl|ykH#yz zaM1*OL8nAPWG08!xFWoJMEE4`|0vWxjQi>}M6HjSVji%Cpda29goirp!r#|Fon;U~ zcnwwocm``S>kXYJ$2a3pLltme> z@!Glke>+|5(7!ee(uu8)c{DyoPDC2zB9I4vP*{Ap+UFUszMZWbo zOK}|5qD@exsW#k_(~l_zZl0wEaNTF7wU~cy<=oCQKx=Q2xh=BPbNcghY^|>IbtCC^ zJDjfun2QAAZSWxNg9iNxbhI-d9x9la{2&M5$b}A&A-5538IxGHf;5Y8A=Iq*M@VJkK0^ZRvoDiR$FyRM%4DMZ?>W=QJ46M5|o@01nZB5Zc$~MnUjHNr7EXO3Z|h zU*oiWcx(11yO|TUIs)tkWY4h(W4*+qoXySK2KH4`iaT>|1BG#0KScU%NAUZrYJr1? z=^wba-Rmc}D|z*(aOaN1OkyHqwmVMz8hpqfs1*QbaScjlIFmY^rP}C*t@rP0yHy~8 z@lP(;LaDvHP#v`1{&*)J0uBz4Hvq9c!M2YBnNhP zf9ghP(bc=$&-ujtD?bK|97#QM29-3fR7|-z2(>n7L_Z#WarMj|9@nb6c zC&R~|Tiq`zv=SQz0$%lhD~@Jtw(}A9 z80dr%CZ>cw=wX_(qj4j!`@}&fHuF!LNhzBKV_81Ua#`xT%}*jeQM~Czzc65T|6;vE zS%NIcYLo)6q!zizrPN4>L>R^Xj*g21udj7^7h>+Q`C9rDE)R#J;Bwf!WIj=^-1b`2 zomroMuq!e0CQJrpIGmMr2hTnv`z&D6pT26lI0v?s{q^aNKhYnOe7%t$e0}K?08c6F zSfG*p&K)u2MfcZ-6XMBu6Yt=L#oDJpet+%(8?TALNbvKblc`G|G&~O*g2Wp3YK2ea zpn0XN{e!FEsVgaYK1q&2KhQlsBG}7^kK-=E=luQO=hHwS{WDO4!85(PA}Puhn(>eu zYFDCDJtQb%+3@SfSF$u-KC?#5vjcwnK>BKwD7p~NZh9|0Ak;GCpWrCL`3@6!zH7}n z9U1RgFPXHQCsv)*1j77NGhtIu(v1Nfn?x#LBy#;g$0TDAQxh6HK)4E0EZ z2%d)hQGy3Vk(|`PE$pZ`#H__?i7x>^ys3#Ca@cdU>kfISp3b$>QCpU2K0Z()M3{}M zzwnUeWNU?7^0^!SYYDmABO})9=KHsQB!P&?i3FBeaXJC zA4=BYOpc3jRTKg8lcNfKkk1Txa5AASX)B94KE}@15{GF`VWliav)j3dmOu-opl8xM z0D8zb-nI4}_uo8Oo8-UZxO`)uE`pC$+fBD%`~4HK$JB}2~q2RvUGD~XfF>>f+W+@-jp z8LbZOBcLmK@3pN9c9nzFUjWDjlak-0e^(ay zc!OU2U`m^D*~Reop4#F!PnE0%1QDXdKw_gB$-*=f+dTCp_z$eS&nEQC+TMT$4ZR6ZB;C{4#h7)xjmL zcSR@oRjMh6Co8OPd_Nl+;`gs)_wn;VF-Z_`d_N|M5WdvAOK8t7Sp(5@?8k^xfvEecpbFp&WXOr_6qgJ?Xvul4mm9LLn16cbeGYSkB69B4VcE z=6Pv{BNmxl9Wl^}cf%V22^D~?q+-i&WzcFBon^J$h^&0F=0DI-KOJ)}X!-qwPArBf z0libVf|Xj%k*C_pwXda*M@xor!C`*(^rSjPv+7CtB*Cisn?YyGi;k78-Vk{qxn(J@ z5jnPQYxzf%NrCZtSQcbm65(c5CmFw_kt}~HKG40&frYp4kS!uP$&RwJ{Hf|)YJF46 z;#5!{zcQjoSQmtnnu6zTfp z=ocOuc)TA-%O{0a$E=oRz738)bS5DzONxL8R?~^bZch7`Z7w%2_e^4Pgz@ z{NKk%)U93!i3|@!{9yFDZi8RBj@c$eWv{-GMJsgKW9Hmk{g{oTg6H3B*SyLB*#8Z< z@aJ|d=J2ZvWT>k#s2LNF@yMP#I!9^nL%_i6j@{R9iE;V!uoh3>r;@tG@ldRcrsy>sPw%2;; z55{)meRP|)X=s808fS{ggMm9mn+Sp-JZbP@8fv!w`U<2))9}rO#IX_{#$Qqi@MU4H zYBpn%!D_#OZguNpd7}MHR&)so3&yA?rk<;~O#wbqu-ftt1 zEYh#No##PUxyVqlAndW+|8UPj00{dLs#IjSZ=a{W*@W8t_902`WUc43M%-a=JdYu3 z1*t%wG2qj$MzU*u_U8H1#i*s3%*WWm@kO;H<=JVFWxR$A@96vLvb(^xqFO4!&052% zIzw8L(_((W{uT4*v|k&LXevB?cc12>lj_&SBqp4Zy(ZP_3j@cAJseQq9xbM5WP_QdFNee?`5bb@GKYjR2i8gO z06ZWhwPB@5c%3Ljb5MQIy0BNlE0c=1O0llK-MX&!1U$2BX|mW|E5!Pvszq?Nnky<= z)q!LC-RVqtcZfL14&)7{iq?XVH)LNN2 zAKzpx${LN_N={hGbw?*c5s1iOeFdDSTgsS)P1YsMl{)s?l!vJ;TRD=-$DS5JISYBz zV#66%B-`}Tt9A5PB{yC;N5^<+<3J@)H>E1=@ZAdsbml5gDmK%%&LZml{pXi2@AuD@ygqO4eR zmgqiS6C9q)#^B6jB()HBG5C#8-;Es}IvY6hA*F7>#w;jjzobNBd1;}ld`u=qOrzfI zBzOEdyHkelZ?z}rE&qNm;@1R2t9<@E4y?md+ReVE1WR7| zvM)FxOK+pf#&@K{V@lYQ$8cDP%ZJ$6v{spH7vNocqextr(A!iq34jSiJH;+wuXy?f zulq(*eKn^y8Dc3Ys9WBW24j?Vp9Y-EFYs=k2gpx5!9K{%8yl&c40m`pSd0a2QEID< z)@23|mVckV9p(avnv0(k*>i@ieZKY^_fJkuo{6%@8>aEa>qbWEMe_5k?8Q#pD0DX6 zblpoh1K)q9NA2d48)}zD5VnfyIT(4MR&Y6jk^CY0`Gj)a>QudKwyt43fgkMGiUcKC zeaVqfFtVqI7(_(*YSe*-5>DTTTsn9m>UuNB7dPc)E@!>|xw+Ja=0>u|BT}Avm9hL6 z-K&ZvjT~};!n)rc@gQ^Fl2wj;VpZ|b^|Ng8Le#ew#ml-T} z$w>Q{j2&0uB{jzom`km6=Lc3RwR?GT<9fH*o&=PTBSt-*S zaE!O=6nVFS3OY59+eY{Znd{#bq{W-m7|I-O`nv3xf(UzDp6tYZz?dUe8M_Ge_XIq* zkZ&m&^V@UatO^zr3PlC>?a&h{XkImBT6>Gi0Dlg|Cj}hmT)|&>`V8U()#_0-p*tvY zMCER9xgjm_>ZB1oXv#W%!4`-dQJPHD!J716QuE>JAz)t;QJiLY$%aD2Yo)*8#*+%p zxiq;_(hBAf<=c}Mm(48i$V!8&3z{P5DVWLO@pTGyi%ntJ>uY{CTUMg5sA!*x2`w{j zB~f&p%u*0AfJ9E8r_gJjsD~b`?{CYP!jNEGk%%S7tW@}bQCw)J|r`+t51WfpK@; z#A8HCGq+>j+S6goIj?*AhNqi1^eZ9OBaYvg84r+JKK)8<8^I~z7P%sr6duO<3xziqJyk-gaGYZO_yktYEptg0Re%>WF#rt|FMS7mNbVKD#Iw~pk}k12q~wV$d* zWFJY*9Iwe{jvku7C2t6X2x<)kD)2F=kg>#`2UHUjrq8SK#E}7RojZ}eA;P2XQ1tJ2 zud~wKU}G6_F*-k9+I!$42lBx9Q7xEp*l>R3=;%?tX`TY3V#?Bj?7X)5j<8euORNCb z1AVH=H+He&%f}aQ1r;%MMYzwc-;oyFgj?5z{he>mrR>R7j_L2yL-ylaY zXz>Ai#ACl(;k%XFx9^?eNwn>(gCR)j?gT#+NW7I1^^Q1@jxGx@7o`5zEBnujvw;IO ztF}?P+py0p&3|)T>BeqrCojkN7+mEz61N4!C=sAhoKgpJ3W`&iCIGYq}HaztlpEjpP4u# zZ+h_hzja4c)N!+y_Ba^BT3KkI?PbbxoHb}PbTk;Wy5p&3{b=$MK~OHprYUq=&XX=K zN_B>u0Job+_g7+v4%7DM;>9=FxUxfbuzo0IJUET-dR5Y)i*%-)^MMiMmP?yYisoOG z_u_tQ{{DEQz#{PXa?eE(UED94O=Qv2rq6Py!IeWOATTU=6Z6kN!(#uuvgV8b?3eW= z=^yTFi&LYnxZ^Vmu#?~)EGLeb(L7yvXbQprpQZrPjA@);^+xvUGgg(}Mkgkizg;h) z0tnd9`I0->!D{Hg8+h(f995~c{Vz;_V-;x>hkWHT}N_a>R{%|JV1O&Vr3rXKKG!$wN*!}8vI zBzl9D?2*#D4GCdB*h3=YGwd^-a!>f|f}PXupvqk)60GxN16=UNbJ#n2u0=PDfj$xnPO zB>HLKCo=1n3kTw7D;!zRG%z>Cu9^cds`PZBs?xv6{(h05PVNeUi*pe~je3JiX%fL( zQJ+DOJN}H_4)~LN@{RhqTwM&7MOhUKFZS*^mk~y2!u8SJuBp5o) zlKk}bd;AqIsEoHroVP3jz-_m%l3HGWZD`Pl)6KK;v~rmQCtUhKC==6N^GzB8StFrh zAV~j=N|yW{WwNV@i*5~-`cyZ*Z-i%0=)U$)vMZx%6W-g~ZPlQLf@rWbiRbVu@B?68 zDyYJn{d58=3ev^Z8}-77p8zv(9utYCNBT_b&;8Br%YDqj^n!Q~uD!MO#4?5bY)MIp zWhTdOjZw~$k$Z=GD&-m8Z+x@OT(l|8>Wi~&xB_`g`j!4o3f`kd-zq^XUo2fMCX~~x z%q-1<=-#}9_RL2(H7dJ__KENWJg;OW6dDa$iT*4U2}MuJeRx^p7JO0+VZX;jU44qF z)|Edde5=-__lPtTabdYz*wL{l`4EH0-Gl4@-!9q2_mqh@z$3~ zWe#H4IW)99M{%rtUh|@C!^F)LyojNA>dw&Gt4c(Mk^8HQ39|=g%%FW$)jS2J2c-Zq zwWwru*{Vg&=bu_9EGM{5#&G<|PBi4U7n#VPG1XiZWSSaIK`)il{L_lB-Iw}*6q$_KY;REEsnkcrj@!K9-+{zM`I zo|R~=AvK+nyW^|Ylp!<&nGWPuuzuB~si1k!sHq>a!WO2_>e|{3V#uA&0)XyrKSaLC zfB=avIfT~-pHt@&F$T0Bs>@Ycm#DPQV+qClVCF+}oh%U4tFc!poNsybt7}858 zYBBH;e$skXghyr<1>X`n4i;s;2kxR#f5Bk23=0qdL+qyypmcMd{*t<5zh9PC3#b5O zS_YvZQLGzq%{=2Q4fUULV8kng{PA>iTOy~RC|56!>KZ{L(06fKtwxM?P8MWe)B93h zQLz+>!{(uP_<;n2%1)stU>`1c-#?k=fdxKJ6ZEiM$dM4&nt4fgfocq>swj1hLGs~@( zuC&@!D9ZnE5b#3Iw`ta%|AHbk+FK~K*9x>ce2#9HU0m`Uv-q5N@ z(Yg2M4vOB^Z8ctLTwEYOuLToh2_SpI@p!IeRlT!qdm^B{Tf0 zfkA?&cSjWt_6kK!7ZeqD1M(Iu@`3gVEY0h9pZFmM;KEU`vay|1zCBi+?DM@fuXcF4 zLn&#V|IytL)b&Hz28}Cp{usTusK({}+J>kE8v4cc1RCkDbpUP&MQdSUfppd#h!{jJ z?yx-?d60GbUefY8AWT9Ur=#B(aNjZaGbdV{ZUoJza9nyTStDJxY32`HMSbGJBj5}sXFFj zm}2O^c6m`v$=_;IT}uL)1s}86s|3Ix@-nKhUuw=S2RS;>(inei*Gp>=bp=m7o^J|S zp)AbOU0Jo-?S{=7lYg5t4=bSj0(~?8>)c>~v*3rtEk1B1s&M?w^a&fhUVHZNrBp^7 zj47ul&O$li51yIHVWs)!KH4LBBSzIeA4l>``^cUqB>eajlr!9x%JT)sWN@(NexvgK zeH4*MAf1x@?x8S|2%OWiPG7-Kfbiz`U(uPDXx#qT(tBvO$H+cZ1P>RvgBR}U&g>Ox z>2yZog&MauMc?y+mw-{~;=Xs6+ zmqafi6!*KfAM7_aFuPHmX8O*zU-NRhHQ>^2cE4UFB9U3M+_mvIbtXuBHS^YNaTrQO zk)A73a_qLmwy*krhC=0-DAsDxy4rDqVSY$G%VtjUOLjvc%~Gv-rallTp^=)=xcHdQ zqrP5Ckw$CgFK%x-GC>UM+(NGLw!`dt5|Q9J$$~S^5n*V^FS1 z8_6#0e^t+P-`_KF^-Q;ecN5_UDHgAkc>B=U>^?L^raAo%!VL=d{vxenjXZ}T(4xP& z&KqWGx{SuP+n}3<7EXc}>XhoG_-tW6bjH?hV*f!&MK-XYJ}FhG!TrFWCME-{tgIe? zTuzq0og}ASurs*3h=rhj@AKyMp7NMvxc5}7`buPS}Q{YB0yYmAv2(lp?X-KE$OLd zKsIZT3^QBw-bECn(%Z|~tLB-V0zQb>MCAAzskHXZ>bRm}+&KGLxWf7`avd?hyA|KZ++>Uioyw)|kOu62mZ*(nMCc| z+=jO!IA;;_0aLZzB;)+1-%AfPePl;6&66H}3I)eljJ9}em&#ZKyH=Be2Nr?bqkm!h z#(RWvwU!uw&l$|muvA{7mDOVIZF?gGk_%PLa+Q`D!IysZGz&dmsvReJx&~UG)b8>v z#bua$QR+LN2(pFJ*c`>M@#3M2%7A0V(rIjH)NEoV0>|DbLuXO8wzhuSgFawn=3>sx zamB*0wRAEstx#A^Pj#b|m^QFC8M*!9?(`Fwel{6(gUY>7A59HKSHhP>rs_A;F>mo< z4{SqLg3)?mdDpVG!TSHu^;S`B23)%>PH-oiAouZEPe2> z9!lyR_@;^qJTpeh3Hg`PFJbu5rlXY$yT28x^IKRz@GRsoyo?SzJ*ZE50afUj(sSLHu<=5R<1Kl~#0`IwL%00zfjI>s@v4$u( z3XbHQ*ON~9yTtp+AMAHm)v@IJ#hfC*O%XRPf(TGje)#kik1IjOo$9qvKsVjU& z3?&!@4Iz9o#)m5_E2;)shV#Np;4iz$62_c6Fcet zcmMFxA7K6cFIk0O?CkBmR>R2>)!lx{%_361AG`fKckB1*B%rhY|2CWd`)&o07;(YP z*u$=oXlXR@b(x`^03enoH5@IuY}}fUV5Kqinp(U+66r60cqn0qCx#Xqqkk77lFH(k5Zps@cI)I zCRk*>D5z*NUT-h0rEwRbV6Uy==~g+T|13)(-0%mjL(hzly{EUQTi8BHbX5l3=C7gc zrnM(&b{mUWQs7j#oS#o3r;Eve&xi{t^N16M^?l=bOq@LP(>@mK+0XXLpL^?E>$-Rs z&2sFXNMa2}u!9_|X^9$i!z|a~ZI%sMdp&C^>8h>$()FnY zo7?S=Z9K!6;iSZN%Al?6jRW9$KP$EJTYB9DiE>PN+WFJlrCE)1OfOi4@P2hgwVNdn za2->ASl;^}FUSz4Qov%OD{YmMJfg5i#lZ!kj`~F0R~NX=SHenLl$k)sbd7LC;ZNJ> zRmx?tw>$bmx2I!~vUOTT&<9|=FvRCb<{Q?q*>oK|h>e--I*=sU3}!76z1^;7b(GeF z+5)%`gAN=G`v^w40O^=>qQuk2R(dXE+~N9UwsRD}k`o|ys$Q^hy!1}cJk#0@-y*#f zi9iqe{i9dNYub8diqe?jF8t=*9pSp8=To6Al(sJrt(R-ca4u7V)N?k!JmWC=Fk(ts zrXDmdssT#<7HieF?L$gtBt9w-Xb58~7)<*l9YOhJV4%)D7e9zr}?(=>( ze+vwoFAIE;#^@d9kuRrn2+Q#4yC&F9J?-^B&tgB z9C6Xz^Uj8NJy_T@xwgYkp5HB`+{+h*PZjD*K?P*#HA?!ny&ppKJBr@o-9s5!f#}G} zDv|+WE!qn`S3Z}bO7*t0XFeS&9`c#GItI-tE0nK8D=T5m)GGoob5Y|g35ZYCVd#-Y z8%wxZK|8uX!w@Y0jILb3k#_nX6aPUaiTLSZ5Kr*A-^IvReV9!6>2FhWQ#Q9-6$VJZ z!`MZaiQ;KS(rZ<<5iPSADcr1KlmVcn!%gOU3 zLXW|NM%j-4+F}*iu{pGjhydqN%}``a*(V+ePXiO}{}Aqf0ZXF;NAYh{Kc4*cK>9A# z|1q_CBCu)r!^xJ76gU+;xGYWX`_JV4VOV5k<7HxlH+btKx(k}xJc-+Qf4c`w^;q&> z_`e<-t$yTL_76?bkDI$+tNI_8C;j%eOf`Le;u`($ZI`q}^rU|7XK&S|@5FXRS?=fO zDiPmhx&hI0JU1v;t@i!Q`G1d6$LJvUqTmpHjYZgFN9%Gexq~$!qvtRNU%*f0a-; zu~-~ks^b^;iqd^Nlsk}6fdOhXuURXu>C~_~;abLoJxXi;KF-$JIFobu9HWsImxk4k zJ0F#HzdG}xt)ur_K9zO3@ff?!M(esLEjD#;a&`V%tLnYTVRekSiQZ%_iQpYb4?G$D z$Jfs9WGFDc-_dq&{ia5n;8^y$+7vuZJy{ ztS|Ti!%vvqThD;Nl0j0Oz}fOeS+<=etE}5PJkPhEWb1P0yjX1J0*$~rDjre6l?%^Z z{DGo_;v9h5*4N77B6ga>?Qmk-)^pU`k60awoYVa@xKTzL!M2*98PK;tD;mOm-}Ss8 z{JyPxxAA`denwQQ*vLdMdaZuVtx7G_D-yUFjGafq5VgKn?eOGz_3wM;PcQ@E`y4`k zC&AM=W;P?sLwpxSEWgD`arL!n9*Y0mq)c-e+pK!FR@3@V|F=BS3?2{#HpLM;5G1+) zdwB3kj$p7Mfn9^$IlnqkfK%!@$l*q!hv7g$Ko?yo<{J#=XaB6uyst&xO31<}cO9wo zIi|ivzBA_xP(KBQ{%wFE5^wN2CV3nR4k4cb0v-HJsE-a6T@AY%Umn@Iea<_ZR(9Po z8I+f@;1U;^+%gR-mW$xXnf$%K5(@;;_YTjTG`u$Fb~|*xOlM{1mdhmBb61f^u2i}I z9ObpS=eA!-%`{p*qq9ihL;lD()rbxrTwi${iMF#;u_fcIFwaRI+&d>pW$FBbuI0_;zGft?Yn|Jn$f6#b2H1>+Fn*?El3Foc!-N zWUKw~kJYI6cU1pj{{sk&AGwqtMoZ0|gszg+q~taoRiA2ixEEK&?kgD$V!LaAV*UFP znXDz;47s~snHWz%rO#u=hYyV26}nK`Hjc{gg{}{Z6d?jK*J)$s!v{6NZwSA?xV*o8 zI0XnwD#-*rjdOkP(!*cdyPpL<1Ok5f@KYQ{Qxus0v2Gt)f3(^8JKA9xZ?w6M5z>}* z)c?Bq5Lo=koE5K!6~Sk>jvt?#eCD{Y|J!lM`&nJP=YPJ{X1FNyit|agaq8BbQD3Nv z|I$=s-7y;5+uXWFqg}JGmtnYsgO1p%k+MLs$8D#oVcqE3cgsb8%O+2)=>c0EZ{zjw zce;@ocg$-?PmmgdQSEdW$}5N8c~r1r43Q~S6!h&b&}a!3DKl5t_tV~C6x`JQ>07hW zD!Jc#Ifv4rJeJ|CRUb`>L#a`zh<_#N8~E4aZg*>=4UherD>Sz+==CCD+wW?J9HZe5 z!XE1LnIdjdD@*qEW*PQZw2O}C(^Ag4t+p2GXL2KhwfrXg$RuUq1^(0ZEw zo(u{abaM--Ja%rr^XYMerpt#PAHGyWz27fbG&CE|@U<~jijZB>Tq_yZvTHusKJn7C ztBI0rE)Jfcg*!OPipwFWd2QnqF4CYBHmnJ-;r?0%A*6_bJeJ+4z+;g)s^7-J)=Yu= zo-h6IPDY6OT9y zXEee2`|$eI`T$6!l` z5y^eZeh|i;96NNmLr*mRTCBPb$o_|s{5Ll9-8>kvf%5OOM+2jTf^G;8STgYa?YoE2 znv9nyXO^{pngnm}TD1H3^EaVhA4`ww4c9=(&{^13mxTa!B{Zy5ZOaR{h>%${$2Dj` zf88)Saz+t|PpK`+Fo1x+r{rQ9MV;pPB)A#r*vIp`jD()P)Yi{ksjrIAMv}|tOxlpw zn#{I0di^?jrPt_}!cxl7S;Z4zH1tXNH6KGqS8)FxZQ9GrZu!ul0@s|og2Ke?&(SB? zQ8dLoJGSC(Bb}61cESti-slGGBnaOY8!L{_cyw-=k}VRxFP0t6Siuu z&icS6)i)?g9{XJX2>UsRJ*KG0w8$XIH^hg9_|Z!y75}MQZ{xPOeUGQ``;PIc+#len zHWOoPIO92NwQjVa`ZwCeZFT8utIC-?lHk-=Z;GmK5PVbh>G#Kdf6d&kvuo?|sjU=A zvxc(${rx%1?}j4QsZ$~D5E7#6#-4YP_ZK~&=gY^FP+j|Z_qi*E%eVAobuS^$i>a=s zr*A+874-4P?!}gi&t{4eH^Ue#7>*LF@tiwtCX#L$&QFm;7$Nk^xk4J>m)#Um$JGP( zQ#iTGTw*xp1_^CwgmHa_%D!o_EnOm&_E+@op1PWW)^7ws?`+jaeltDlL%;I zq#W&jJML~ZZe%=V#6gL?E@ZjK%eqiwKTpAEOdnB>Pg*Ted+o{)m4XEgI>AOVvrL;SfKma(Sf?V znT8ce*XA(RO^aOH!9gSXF{}V9HQK=1)Y0ZU*&dbBw)V;AEkp%Ye0*l8CHNt#C`tTt z<_uomtA#2(KSw@YQm~9MYHds4A1Uq4-w#r?y*z*WV|%+;$C3KC!ydqzo^&KA?D&Mt zUyVodg~YWR#AF1{ykS%S{Rcw#1K{S>M7<{8#~h8hdgO-?G#ttJ&erkDXC1HHXOHqj z>G~RInY3Xe1JAJJOaEUNK&d&z{4fP?uO{+Od3KJv=_bqH+5`f;>~;F6hEoAg>PA64 ze(T!~h_*0WG>tg_Ydc5DKuGT#wnCYesra%VAf$BS%H=y8~hj)Y;QH@rCNdBn>9Qz zQGL}?C3s(CGNnpp=P}k+po8n9az;B(`oU)JSj0P7qs|emutwQ@Dlycv)B#U4fE%st zNNrErv&vHnV3Pt21?%No>FEgDQ*%XFm)GFgNS2d9-34C_IzPFvn!=d*=O%uVTgf;2 zva&L1Yat||m@S3%7q5UOUs@J1H<-Bm^S)xAktyE*D{C9d2J0o6E3HID-KaM$>5@+P<9U(hbKqkub?+aZ`z|-i;pDMYJgd=3s7Fn|o~!J? zaU*XG2e<%vjM;In6 z8ptY_rgBMo3BXKqm_o?kVnLKc`!7g6Qt@ZF0t*AC*F zT%+FbZEibaKEJ#7cgbZtKoL&(5`>8TUZzbAAUGYjT% zitAa#FgN6}{S+9pqe8F%fz~eHf-Zd?%Ma*IO_C)H`eGT`O8Ca0iA*$Yy)<04-aoe$ z1=1-=0%5Q}9bPBzo8BD1@HEVILMCeMzEIMKxpr+G-L}S_9;iEKg3QsZle=GLkNm5k_$7 ziY}({__KY2&UP=HJu#U}@_UAzgD(nt!&bK2uH;Fd4+=3lW54izld*`Migw`ypMLf& z&Z2~Y5%?%$pds7hRY%dLLsI6b||c#z(-lsRuNdJs%$vgKo@~ z-n9EZSaQh6W@@t`Pl?64TDh~0nZq%T=CiGACNhc5uLhhaDMwLo5I(*yA&l}6*#}$| z0$eMdLs*(~JsSU&cx6i58p;m8t!bF8B=@vi8`kOR zEXvE$JO(xX+VVX5bp`X5v<_X7H_^AL=R+Go$=Ts|*Zb+2Q1S{rY;V^_c@nzJOzn!4 zLC@r6aQf8pZ1ql1n%x(|1gMcHkzV=vmd*5c9zl1x zmL#%*=Yp1YlGdJ~^$dey4aIWdp@_id(aSOyDQd)OIkBJj_)}>Ei$?St4;x*^OcSHa zk*cB{0Ug(EbgPCA8rG15*oJXgDy_cp-_JUpBuMT@rVNQz3KCmiv4zLWY^?`EuA3AI zY@Da)9jiw}a`+quKcxGStwxKKmv~6LH=pS0#!)LsFJ^!wY1<7bEo1Q8iD9Fa>uR0x zM#*&$i%5}vg3s8=^f@KF&lLFA{yj!<8IX}+@oKsya+W}CNp`_AYMC%#^hCwTi zGZZMopcj4c85S1vt39-Xt?su`i;63N9YnYN0?48$6Y3Ur5Z;q9C*m}^7+7Lm@>{ff za2WC{++G`InbRIdP=Y-B7FY3G=2Nxl-3?a3++6p}-ZE;aap-ODOhU*^AC4j;X9DCG zt2Tf0KVQv}!9V_gSYw~|`}lS-5bgSMyGwHaFU(5jKk*2&&_1fbP3(iJ3 zC+^a^XftiH&%^Q~}F4k=ZE4rjtf~h6t1X{0eK| zn}L>IhHKddVeO^bfWX6m)=&6&07C7PAbN!W23OR^Mfutc-S8N#a)$sEcru^1+4@iT;@<~z~(WpZkWY}-v6a9 zDrX47mEI^`#%Yk*#I#?%bl1jdlR>(gK>m2|0w0j~H5${#{lnhsqu;RV;jmnPTB^Ag zzv-`5(pbSiq8Ai25ys6h;-^$vw*Ep?$o5F%UgAC^Pf^T13;2|q(!_E=VQ^aOz=Q>- zr?j0)=O%?)s_>9MaN&kPW+$2qU_lzPgM$W3OuJJg0*3ZzKLYv^Ic;H@1BKEUv@uJr z9Mb3IT^H!rKfQW~KMIj$Ez8T|Xuiyf?btQy%>?6}T7fAXRkDMSL}DOD9hzBJ&!e;iUd#}XG&e>GXN|T}zYgRkPID}9i1i&0h znyl=b7Jl_XooMCF4XrCfMgSPJJFjEq<)}iYkj3DERZ!{{IM~_-Do<>v9;1l)aJ(QH zPtlgzVkyaA=Kv$Q8D?nzBY%T^DSez--SU={kZ&ajXX$!G_F+Erx z%y>sOj4rR!lGI=vc4}f5l_yqYZz-=TMRSX4cf@`YDSj&f3T?Pll|^1^ak`yRu6FO! zu%}=YY+*UQLT>tXn{1@{M6d4bY8D61k6_Mq(>SfYY{}z=&MHV*M!Vck6j>D;UG5>j z$f6O#tve&L1$NC{K>x_wNI@eOld|6L@8gm93f{(E<(+*9I0wBreEkhF003lhV*7Fk z@UUU5DkgA=_o({rb_rU=hNim+a@Qi!Aocu3bZUa zG@ULV0I|#(kWFnk#};Bm()Gsr!KWCKvqeijQs9tWAj3B-Hu8)cDor@CFLkz55@)zQ=f zsiq36jClQfuNQ!S0Wso8xg=kse*PB@ezC_0&YJIfY*0fU&VvefsWUzpmGYHE2@Aqc zB_Uc`2>EWRg!l-uhAt1a)IkX@AYeB!`V_5rS~t5)J}>W4)$x>n+jwzi11xH?XPmeF zQ+xr&dK9QOa~ecv!bjF;E^FBqP{0J?(|ZLXpwPV(?hwPE5l}*2MueflC9#09lDNRj zN2w=fcH_#=iWm*T;9rA%KL)Wtpvs6~SSjcK472C>@KVcI9py%OjK8{rBMX!QPsf+= zf43=>fMn{cI-h==x@%Rf=}s$|vl-BES~j1Bqy?P-+(7dg%@cr9Hj`bRC( zKYe?WBS-@)EH}m~x+}ye*rcA(rZ+wrzfyk`An;Tp1?>UG_s>Y$Bil{yzFBof?1fY0 ziitlmATF})8@J^D1T3Z#t=}qgu#2AX(!c zOZrKl_w1kf8mk|DjDFb-GJapL=f4xQ5DWloSLgkYbL?)v9~_-~`YQOt&Q}xF_5?qy zy?Sm2LZ(Ae_LJ}RKr}rAxP1{Qe%h@^@!aMO#Xq7_5Vp$0vxv81Jl5G94z2%e5VjD# z*BqU|K>qf?0au{OeII^iR(oGu<$WrashRbhQ$i>ogB?}Nk<7g zmTB}`V5n7Z3B|UuS~-4LUAl`MpleZH%up79kW98j_qTB-4j{OI8$OU? zg(z_*KCN;zq`c3uH`ZPz+Q#mCzq^H$V>S1;`iz>pVhu4}!+Ca3V+EW+4=EzxJaQXO zkrK*31%Agnte!?TQz9K#M!U_z2V`|d4N|SE7>YdVs^S99eA1kY&(ZLwfcUJG_<#NF z*aO+!CoW?{O#@M{73z#*puK3sYYGyY+r^Au06n7PliL=HNr)A2Xg*p8hg5G12o~$_X z8WZ>6JnqAhA5Ph`wF{o2QimCWLS!ruC!>4SMXl$Z8HC9Um3Iw6Q;2Zn9{%XrJW_y# z1OCK8yK5DV{BDcH-JD~(rbH($tXjP&krsZ^gR|trts|!{+zh<%e>rdoFQ4$%5y%Rai z93pGf?|)Vb5q`ZPvKt=o{b`bPZ_~rMOI4Z8{mXDc(CVq#-GE;vn{}|{E|m6TMll@Z z?w^6m_m$J(1vKjBhOuvdximOIy-U&&>hn5)ta;T1%3X-|Gwaau%Ju5;z7x=DXVv$ng};uc z=tH|wtrp4|%BS~n@BO;3u?A&X9%Ns;X{zLqgfPQiR%iX2!`tI3^;Dm%^8gaV8i)Ni z7&^3*<0#^PVe9#)dRAkfnMPXF9j)hR9gt%wHmPlFPHe`*4@VvZS$m-sWQN?2fM%~D z1aV+36KlVR-tZ5Ny*L1Iim1iyIwfxRQXkbCMrca3?S8!(JL(|bFBH9oCzOXW*P<42gHd%s z<2VRy1 zAx5G-Fk?01uepTHKS+qGzM%tL} z{Os9de)8tylEbHBVEJH9g^~}etK)(Vp7nTn>VB2uEz8CHo0y3A{44jhcwJSm__g2^ zZoI{CWPhJ`Qpd^rw_1ph7X?A+g6~I@OLn=-c94)#AEUy5v-lsPfOvsd-5y$s;e03@ ztCSQ(zBGq2MGX9EK!%SFm8C6_5muxVb>_^~+_pBEE=g#J zHeh>VoAsnf;EaY;3=sz1*2|@Z*Mmd>0Uyj>b#SS&E{Ae$4rnExIam>>sd$Y)04!@=|)C^zs9$uYi*!3iAW&#fP&T^eKEa z`n|6ok=ws1_^{*dX>Kt#)-=xc$m4uNavwh=8%p0-Q#^83cSzH9W*ygA!eG-f+3jvC zugCq~Z#?cCck&x#2a<5D+KrM*%zvBwdUbp5qNFPdp%#K8{}iC261-Yzw``MSNxWF?4FL4MmwX`pzNc5xKY;?5L2SPunS5tp{XIwo!Dd+;Tpxgf!gtM99c<=s4?xzG{;#s2v^|{lgx*0S8|uH z*;C1D3RTX==-^PF?a?Wo=P}>j_hpNIlt-6tuFw(8>m{Y~`R$Khmj8th32=v^R${D( z0*fF3+%M$-kJf=65Rmm=VehgZv>Z#^5G>ZRImrsV9n5vzi5wZ2^r@#8Mm4AeN|0}d z@FTHkxn5i+DSU0*qveW+HIz|MhQbH=HVVWgZ)p_thQ4F|^%trw;I&+4?Gd!}BnTNZ zY=xEwD)>5;zt*~q`x~@+4pz(ZA{KU)TMnqIu&~W77T;dFcA88!^OxZ076lf+iHXyX zI_lZIW+sQ(y`BB`eRG_I$U|vqw4NWt$DQZcEiX=T(++%D$IQ=0h($O&HsG0LN-NA4 z@47@;zKkD!QuU0J{vtGM5lnoW%V7=P3G>&m!q^fi^aDV{yT$U0^K#id=C5-eien$~ zh-2*?b%HGSM~}LTrqzB~+mkA+uyg0ZA1Hak#_|79A!+IOP84O32@t1S;d0GQQVDJ- zDGjz+3w^8Hks?;*Z1>w~GnTbx(&e!LsqoFTd^RF!aP}PPAf+qDJeZ=V%oB@{^bgrX zA~F-4wRBi-+dWKZ5?8^BrE`6*BF`V-@HeosDE^6xVmAsH zE7WGj2-F&nL$jW}42Wd3iUSheoiczljplXzdE=Iz1`;)y~EonK=Ppk41 z5@%E!vZ=78trXL}Ii#eRLvV$EK;O0}h#<>*y4syh9=B;l%jdTK3@*`63fdWXe%Ve& zinKmiH#TK4l{ROu{bb`_#9yj_N@shX3f>Cpz8YJCDIC9+T9dK%r9TJ2VP=)}yIVSl zDdYqZ7+J3YYQqVogujJQas*NUgam7@0+C9{ttk4%!*mF>|6skVOijoAPV|PRPOpc} zIkZL3u{tt6Iz}-g#>nyr_=D&E^87&C_DE=e{av&?_U!vgOYO35^E#vi4vAldNG9qp zuDY+{Zo_X{JDOJ@E#6Nt2GTs{>-f-;MkaRKFB;ZIOdW12=4Qbpaa*={wUIz0Psm!p zGpW$F))gole?F8b0||LilQ>_=5g%bMCMZHC2o8b-YxLG}26q$)ZROgN#!P8EMk0=w zR#Ei%6RxPv1+UrmXmUYjP+wd_hXU?QD0NV9Yo@oVIG@NDLreP`t-T_gMiU53&l;M* z!`O@uH0N!)b6Wf#>c~e|vZxSOIg~^Z3!AH{y=jWTKcf)$v>Lp|(6R}b(OYlDLwOZS zBHq8F)VM`qd3=4X0MMK&KY+SI4y7ChH@!k}+1_O_JX9gJz4<}fQK z;q9)SV>294 zJm0kUaC6H~ibD%C7Ea31<3Jp|KH8BmE5NDND?GT3r9H&w?`^1b^2rXha^Fe{|>Nbq33`TPv+v@0hE_QG~ z*~q-|v%??qD+8q0oqi=CFC8NTY2g`1zaHy1gnA3570(y;qd%zB0n9#OTdRD7@hb}6 z+*xattimbrolQjfGS}=ZJ%$R+&{B(j!B5@N6NcXY9b4gBAweIx!|W60HSX;FKs02=>gF=*r3z0Is3iHGn~wW%5Nq$n7V@2t7RHK zO(09CF)n;Avq#G<$9M_rz>jin0{$HcA*rq>Ca?Uj*<8-n6nLr&ab9G-lUU1YbHnOQ7g1au1K9>3~KzP^~ zp^)4k0jt|i^bf#$HBRE?s^okVJh0PJ&ewG!x*tdmC%*FdNj5Icdj*gA{4NK5K;!Q^ zSw~urf&0)CRnofc9hH zSPY)Iu334eOAuqZf|ErSbMm7wc$Ab2K?+3qY--PAXW^n~e!M*KtNG<5^ijtKH2U{V z+5bwty=eWimU<^`V~n3c2le#rzzb5pX$uSyX_0E*s`VXiGwwwVi+wWy zQ?Uqw!LM89BA^G%#}SDE#!Z06ZEv6&`3uV$rH8`!vuc+*+}!R%Z)cr0R?68FR7=Pr z7tu;5#tWr>1khW%re2(C!FQ8tX{0?s`C=>De=%4B0JS@oI_*h0^kzi664nR4C) zdvXS!uXS0>&fGZBc>=f}Bn$1t`)V1}{W8?Ns4b7d-S~n}=u&7$Qp(~S`qCC_nz>7} zmel1Y(NdDD>ob%apWa0`rtr)6dv6VTQn(E1D}eGZm7*171-|$`Ct)6-gAsX5s65J8 z3W*j*n-AHkbQ*MJ2q`wUGs4d#nvN_pb`sd_h0T9~C(w^*5V)AAgxJnWnIxyenxcx{kZ%KCFgOTTr`F7Wq>!mPLgDiq_7Xa_16trI`X zK#+mogF3TZEf5l9>A!*%{(3*cYpm*@Bp~x_st?A(r!iIU2^r;^iHHTabWnsCq%%KF zgH5o$e_&6*f`M8#`~SI`zXUL1@(WwUBWh0{O@0J74g4Sgw92n()U}mSkWKqToh`3e z@Bw0^xZulNcTbOV39|lAjxCbki{VJ9RP50R5%#npK=y8!Yuy| zSdYl+=QD;!laV>LP!GD!opgCtiSTnL&?c5pET=kcQjb5l+UiiEyM&W>1Yz=Lj-vwwoJmIp%Xx`4`- zGI$d*W`7du!U7r21@nafuvJWSN3Qcm)~*>z;8=4Fdo*0fzYoF1we)jJk2uL&k>r#1 z_$1aFn7&3GI+HhuCKpe-NeVi;dQ%TvIp0j1Q9N8oj2iSv@*Sv=9#PW7dLlcPsZr8) zOe;lfT%w6r3UcL5Qbgp0LGl4I%vuLniQ)&E2|7H=%Bn5Hhn$o8yife$tQd?D=93b< z=<(njZG2^u`LE)eP(%Jm*!{a5h+B0uh`A&*#y6PVgI2@JZ)6B9ZGxyG-cIT+urgO9 zJ|v##WK^iev1*!Pf`2#hjS!ubpEe&Sdt)qI)OZ4M_*QhuFly0F^ZakQ~!$W793qK*`V>N6_074Lcpiq5544f3$ zc$8}+{rjrO!)MJ|mgvclS9&-pc091b(H80j9gq8kmpaLL{||-}S`J|j%#k9E{Nhf0 z`Z(WF)VV8^d}$~w>H~w_A`%>yTyy>^`s(pH$? z7GseRI`t;|8S&<|;tF4%oi0)PA}^DqE*1cxGn-HJl_d1J%YjgnjHk#s%cvnpE`!7Q z;YN7hLLB`Iw~lv`8i{~-@sTK3Y_&N9^ zf7r0lgJN*g?m<**kKrHHRhqO(z%_V<0p07JItS6w#b$8x4DWSE$j@g`VAGIeL~DRS zQu+Thz~YXmf8>v^<~;i+sd0RZxw06((NdX6yS+s%x87SwnNH|_jBb%k3f_osNn}uY zOhaQf&fh45Cyq}tSpkYGKLb*#)iN z^y`zkzj+Dz81_iCygYx@N&m;-e1Xrnxt37rU$7AkA?yQ79-f|Q`V3TjV zU~kwMJqaGI^6f&vP^#AhPT>q5YDOW&(HNa_6F%F8Duf=aTBK}<8%w=qjfdF!Qvnr* zAxHNl$KVjX45;od>kJ4Z{Np+IeP7*qbV%0&RvZ!<>JNHe-g+wVwes_6% z_KB;=179rOYLdrm;wVll#AjlY?|V4N``^$(v@krPac<%r<*<(n{=Ask&!Dzw6_ac1 zZW^UB^0t_}V$kB{h?hUuuSH36F>F0|8q-RPM&#<+%aFhY`UP!~>!6E^-gM>e&) zCj@(^vkL@Ka%ATYIdUQuatObl^p^0IVtVX8Udww|!R-urr1RXE*mX(p%SX9gmui2x z!8Z68`hlNe1>|w0i04wRk8h;Cx z=m5h=iH{V_5UB6%b3i!qUi}r(RM1#=o+OPp`?G%>7LC-$YHH^|oC-<-KaI*javlN>x| z$-oX1DZYaB_XFd;0`%*gR?GQJgUoUzot-VTRnM2I(=&VB39IE++1pJv9B*D6749Y9 zExK7&?6f3T2Af}C+F2bG&9n~V+d*P(uU&~>Mo*thBUxj{*RB-;Q}u3g(6O#P6Sj4R zZe1A?)MRlVOw@V^X>VK{Nw%{q`$CCs{7>So04RuzE@9#ABgF(ED1TpKKga#e(e|W7 z78vTUzC3|_tuYGWgR+izvVVO_gBcyAULFu5nI!j$$?@UsA;j`Ka0eZ7DspIvM%H+P*9y+d*X(4D(MGiS%x4cTM*|cZ z``*|j4(F#U!KHDoYVM05*6ij##pRS`J_uo5rB86k)*T^tgc+LF`Z46ct1g6u5zhmj zrdV-2P)$9LN&m$?VB1rnUPkxN-2P-rjq1Kg93&P8HoS~cY`!6qQ$bfLlkLWPO7{vJ zt-j%6-0>j~skZzWCiWNMZ7lSS3u5cpwZ;st2_a`B_xks1h{D+WzpHL|>;L1PQ)kWC zs-Q7bw-y`7|Cgwl)?&Qt!o{Qr(ze(uaI-wuvGN%E#GHlhdZK_{nLu$9UuDw#ttNQl znPu?Tq4BT{lQL-KUn{Yufd8=EY-*7)JCn6=HhEx%)k=&HFEwjT2UvvqQO5c|Y8jG5 z7)OEw_MP>@^7EiA{j8~USgy-O^P!rM9$@Tex|a*bsDpL=0~cRJL9rXOp$Pvg$ERr& zwpXy;(@xz{PuK{z+nP-)ndmXq;k;~gpP3T zGXVci$r9v0Zed=KYTj1*X*N3TXJwK(gr0|+oYM~`)LZ9gK(%JZ6kQn7uRA*10xd0r z#B%0r)!_0^S)~ju0G%+9F<5jK7Ctbne*xq9@R{_{4PN>kOY5jwVuq9j5AN;` z19v#*z4v?1`R=c&qKcW?&$IVht5Y=BCrxL$uG-m^Gi4(egH;jYdIXsHk$h^k-up1M!@ zk6!0BIKkI4$&nnR>lj0Z^TF(`(ZHDK9EuU-SaV;2CYzbXH0{>Am?KNG{7=ZrOF>j9 zHACbpT(x0sS-e|on;Jn-TNHM%SN-nCAn5S@3O!f_8{eD{~V*DJ_ z1pKzn`!Iwb08g!q%hRsC(_uwwR(iZPYEBLqEu22NTBZ7o7wS|<3q0OM6w`SjAMvob zHLHu2p~p}jKp))^%|MBY*x)_vSks#@4y}nKPQ~=npA7Fmu8l!xz_FE7E3!f<*hZZmHX*3i!SH9#N2z~8ZaQ^rHRg&L*8StoG*hSy_^l{2to^*MO}(CU9w-+$YEU-=9jtREEgpr)cA^r0~b|)vxiYB zU%p=(x4C+)`?it7vtP{&zE@guBt0!H#Vwj?cBVusYx7Y??7w8Tv3k@THI91BVOmxk zU@k`#V-v%n!0_395)S#zrfx_f6x0=Z7M5|u+xg<(WqT9Qywo&(0 zKo&(CqQvyBgKp>L;Hi`_W~{0pk8`}d>WiR?S$EOlxIan6Bxb>opJXqY>n`5-ZP2Y3 zsp!g+$vbvgmG_qyDg%~sc$Vjv&8vZ)a|$;an^$Kv>(#RWc0BR>G`5-iRgTrz<}c!9 zfj%-AyL<#F@G#JR|M@r;BnXb8>CCwA_&uJ%d3%n&(O4homh#Q~d$|u0hlLte zref+~b@T3%Da@WZm~v6i=t#l9(BOF5?$AnP?LkBGSez28v2FJot_>o{ciR}kDBut1 zaturx?vLgp9(=WAKw=|1t{d1~Y}rd28P04tc~UQTPb6?l7LiGEBD0_t2<_+tPj-T(Y6_ z6A0~b&7V>$CAXrR{HZok;cE>v`}XRPnOlzW{j~yZRPEHMLmlDBm#gpB+SVa=YDv0P z!ulF9SJg!2NMK4nHTQZg(pKkLBwb~fvF0D!p>2=r9ulk7)o^{H`bx`gW1GjhU@EX=)zVc4XzW1#r72nhwt_-f&?$^S)pY8m;9KW&T3o}=Jo1B`w^%?7R#4DeP!76vm5OH z+h}|QRmt$(V%Cfktui{0?jA#%ic6?_zqAq6`)bH_&&uS2Bx&|F2G_&M?+Txq1fu>ncD8=SiA z7M}g(rKNmyv?l>iF_d+%4trbPC$Ur~vB3NQ9<&YO82s*2vG?295<@UC$~T~mah_E5 zI5{^BA&K1*XOdw@(M0#!bXD$<4pcH@zq&^w3Z)>W&j|Bpm%Ic$(i}^gUOdo~N0Kx9 zmtKk|pFsjvTI|XfO?A%)>KM|00O7HCh?9pg-yzqaN`xU^m1(Py5@?|nF)9r4^fB&H z5Fd|b&)kyzw*GUPek8{sYR=cJqf_RodO&aPzQpZ3jMuhHpBlfP<2nYk#n8a8&i;nZ zsbfOM(|E2m#m?HfY2>qAG?cQaj3LgtgjeGw_}Fu-Y~|uIYEhm75WljtGdCKgSth6R z{tRFS8z_`ct!{1p?8&s|^DTUntz165__WkIvi~)K?5v&J!`e!TOg`*vTUipAwe79x z(`QQ#-br})`lR(}s99QctF-+{*IFd{P-i*RV$u_dTeh&vW1qNkSkh*H@mt$z$l!oi zD4`~qtMa=p62pM)C|WZmxy}?I3J$h-B+MC9N^2tJaX+lxW|a6V$hv||poX+fK-h1L zEWeP7AvSRk^Jq`lX8QbkXmn_pHPz|Hy;A91`kSF*t$38xvib$c=J2t)klMYc0{Bqy=lC2Pxs$NB=vjBm+D9LxFk1K149?8h z0Mx@jy_&nX2ZTrSb}5l>FDZjP!?vx|cT{C}XyJQ?4*kZ-#QC`r@6caCv163acXZgJ zSjQ*%U>mLI6O;G&fhdp3%sPFk4ww1yLfFC5Z*cT<`F6XUDFz-!cMu%eWLM8DJfo2R zT{D=aAdIYx!9i@u@m4~fkEuq*xn{ubz+q}NH4ODy1$~CMWr`A^c#6iyk;XGtXE~RK z52u}QU$>bY?-8akdIfz@)O!DBm}*_!1(WKD!F&5mb6?|nuGaYjNrx0!Mak?}%<7op zwnZY5oyolNm~o*pwJeS3uS+!Nm{~)taWkv$i}zDbO@DO}@1{D*L`A*1VmoBX+l-v( zy6KORT`=>SUSWUC(AH?olO8qp9*VtkpknwIMukZCf?G(Q=Afc%I0QdwfRk_?z&4^i}~x!Ra2oBrN=!G#f(?^w=g zE;zZv!Is~4Bh){pWxde)uv`(0JgnAs{7{_J zwqD1oM_0P#@-M6AApfJdnXAaiu;8>5oLWLDyb8K0+)ybcs{dw25V{`$PyJO>K@7bC zJdSIyjOTU%fN3$wAjTA(AK@GRu*m{c%-cC$k3U_ogdFtpHy=X6&XB>VBYR(%<)@6T z0VgiM24->HJg{au$X)ie0(&X{`g&_Y0>oH_!bDD*lFjtA)|m!o@{t?yweQtqA|LS- zby-W>YsQDqQcVBQ)g?$;B!w<;|L6%8t*V$xUZlV=(cYEpJUr%dhMh2-X~TqZWu!*;!Q{ zqjSsunx%DpT8o%=E%l9vr=Jl_r4fs$sIa6^F*!KSn=$djtMeq*tv)w4=-4md7Bn*p z7}iSgsim}j(1cfauEn9*&I`);B3)(5HzUH4s}f(Mm`jW#Z~kp&zO2c&pmdcDS_@Ww_b@Rb+n)GtDpvsA>Lk z%~-Na7?%-Hl6yM;!O^AxOT+^HGY1@3s@_^4w zm)7KlE?dXC+BB${+hLOKG24CAs`bm#DGSWI| zzVBd-BX!dz&urHlo>B7LW*6v#M%?h#*Ija$p+HzPmtUQRMWCg3_DA_pHYFd~=9JD` zi5JE@m=A@z4Xg=WX7p~T13=@T8AczDrK=4YIute+;a%GZijIh*TuCkgq75#!ckyl9 zG;R+br*sW;t8CgZ=iDndVimQ3SIP{SD1kT9_uBX<#?m^hmEK&b5zV3f$nYo``X%P_ zy5Q&EQ73*ZnF)W=R&Sp*qWfxs!KgNSD~Cm{2uShZ>$eZ_sYv2-;q{{OJ=lY;j%eiy zZ((O(5M(WtDoqu&Ms%EC_QBdKF9A5BK&nSN(S*Y3nZ&>b-R|hoqjiOX;=y|w*_PHg zht_SvIpE=#E3w;kqR5I2{4Lzk)}uFHg`#So<$jb8!=9mf5}(S(ql8U*a-u@7G4*mc z+yA`_;2-+EV}u_f;8Oz*JG2sISsFLb%mc^-8R|NvEO$a_(zq-OGdxyCfrZjabXqkj zN52cz)$rtYouo3I%3qWbWY5Y&?}|e2#<56}AHSqeeyu*3=E3&3+hn;8ma@X(F1D?bLJscIs4S)CoKCEL_&)73r)_&WO zoHk?9|2cU-1!p-ozF4s{NY?AU>r&|FzPTN?uZfnM%Y!_6y|$v(Bi%8qa6XZi+5-89 zrJkqlm$a52SdDg!mJr@`K4|;U+F_p*t|n5v2Y1f5V$np$T^{UL4oFX&Z)V44tWq{} z%i#^&H+Be863%_k3=^A6tN9L2@kRQv)vQ~2bp3^2l2wM9n)@_e4H%BQyAcAp%Z0a) zh)Y!S-8$cx!iP@Q%8~Zyg8oVx1!ohR#T{Xkl$#0jVDXNv6w8YH(|V-{nl>d5#sPJI zI7XFy$=~kY*7y1wD3Ugm7n3szb~ln(YT%-R-5vX@pjus9yerAi3%yhTtyXQ2T2S2= zui7*6RiS{gIx+c@(&OLuuHFT3baVi0(43Fj~;q-9?Hl$4^#lia% z;(o(|&84H3K;2X1idmbh19%WPHr;*|*Q8UvQu;IAo@iwd800Wqrv+*Kh#eUj0~Oa6 zmXk$nAFKqh&~5~{SJtUmQXYzI-g&f^z2t&h69tq`2jAOnz3(ZO=DwR9Z`WDcUMOE{ zk90E?KpM_V#&6sSagK+Ztt|2M!zrp)&D6dC;6%gK8wS(bc@kay4k5v!ZERAgdZ$%nP>E7Xk*#jSe!nXPY%3moBtvb5cr)s zMa%0YF5UA|y5)y>sc-z;iq~VgJ74N;b5rE=dm5lwZpf* zF}E$IWR!th`;QP|tBDK+^XaX-6vj-`S?42JPk+pX+f+(ul}Bw4NveF)HqwaN_^COs zPO7$6l_Lfn+j+IC1MuN~gL55m>$ASwMf>}5ta*%EmnP*@FsFuvER>-41H4o=)vvnf zEFJ6l*601wy_evWO}Cnjg8rO1^Jb%3w@#J!r^d6A>XB^*-+E{`WHRUT{Vd5{gLIvO3f5rH!)^W%Mg(sAABI8Di2>a`_%lm8au15;90c`xYlD6bLZC ztr>AjXWWnVEyU=R)jU!_6g#6h2!lE=8FqfadqKLg{cO4cfBf7dllUnd_D$ z>AP3;ww|JE*Nfei1+`NR88It*)QJtPNnyW1MfGs zxoUkfxGLjBBNMwWx$o`bPA{D!v0q)9#%mM`A%!_5u3OwW7^@o5-=@cU6LBTICNs2r zv1Cw^(f8c|)D3y->#!kso2M;F_Nms^_ zbHNI5o^EpDzzQhI_~5qS)~k#5Wz$HM(e6(`}yba}eI53ly6GM$@Wcj}Iq!>=z4| zERB3m3J#6ip9cXpYD}t?YAuu!Mo!%)4^N5Z>`i^6>0H+2ncj;BVPS)kO|f!t2aib0 zf?44WAQm4P=+vn~>yu7la)jXe-$UK}>K*eIb!mD<PE zhqgbA8aLTi=q@C3o#B5{iEL1w+h)2S z+h7ImS6;p4-bPT;)tF6WtGl=+iiGeq{Nk3g1TdWGf`Yk16}`K1zhU|^Gz>S;H{)Ye z#5q#kB0aDc3guo_HpSHXn2~&hObmr3TNHiE1X9K#7m&UmuiG+N>sU02u5Fm^NM;${ zZUGn>ww&=N`u-30AV8USf$_ha-w}=8;ZF%PGnh}$sE@o^-;){&|MkVnVud0{u+-I= zI`qkmxrBvxvMLh5eB<+kz(^Fd0bzg(3b|<`K<0zTdo||ITz`Rt~kdv zR9CoKlO)`r5bwtQKnSmj&v>w{hagk=xKQ)HydkUHiK4{YJ0P$ znpzcm3~3_+yWcEaX()EYFLX4s06V1nm`!7TZ=T(%nu0z8;EaWkP7`e$du0SuvF@x$ zwoF%7m$wnouZJzC(rszA$V8A`+g&Pd`|`G}iw6<#6*}DD^H$pS&}T{=XX2{PJ66E6 znEQ*<^MNyiWJvpWidU(s#ULhAshcxoLZ*suQwB}Io!Yqj!gSEnk2B8Og{24PfWtj1(VaHo7Lx zb?M7|Dwduubt##xLkB(;)1)CT&ZAAoj@}oXl}IH+j3G@ z@Zzkt`D3NBW+cc$<$@b}Rb!J9i>z*R^Hiu_esMYvSs^g$9Jn^vH>-cqs2=to}$> zpbPBP5Hx#APk?VrmC0qrL#9%nDSgD{`o)BVL0<|ntah}9$m%pO7*)eKb^w)q`8FeX zcL#Gv^Q_C^Hq7;m;f9X1Xoi)SFsYFq)peoKY_H9;gYb&yidi zj4ouP#+dY{4bsjT)nTQ^BI0}BWut$7yghZLd7V1ZbsB)oQzh$t5qr}#<~3SSP~eVv zjd+33fm}9fh99e{xWZ4tV5DfKw9yi2eqA zzOLkcfm|^-PR4}LXFT#djr_K|4~a;tKbC<_aB{6iMSL{OqvEj(ZaZ;^6u%-wkaK`{ zS5&PL@`&ce;ji2e(v^yho&OyD=DenwpVB=701$3TOY1FIc$jPqyNLQ{#wg}-!9J5n z;;XYVRdGv=Qvno3Z#~enWO=a+|%A~eF`kg zNMH&uD5Ke418lo@Uyq6saQnP)?iDIobWGA2mjj~|HjuO!BK@4Ummot6s}F+v1+*>g z-V>&_Py};6WGsc}KiFiQA(1YtA)yTp23R@dvM6P0vf8_admPpiS>XKxn(R1t9 zCpS2#yjbS+kE1-?tFf_90S>UUt)tAY%{rU<_%@upt!7e!oCjZK)fPk z89$nDajgW2kS`!@pWE`hxY1ztQcDFq00-?#L)V z=zJ~55PkE(8eV&Va-fP zFJ0iyWw{>TytxNHV`F|K6mV$oH)7DLBpZ-r`=)usP-uFYg98GT!pxJ#XX#gz2 zbEha5{1klAa+Lva$nI{@sIDt+h3H6eQ79+^+fBO}jvKIwnt9-Ea-Q{jMP4z411TQS zD7o}Q|ul&0?6k1y#xW4VY z7rP=xz&#k_VmqAJXX)fKoBQRa>?@&T`;qVnHi{w3t~&2LsUHs4=bsZsu);XN^9%c$ zNZn3bn#VHLKK`a?Ko@>J-B$#HbFK<`3mx zNYX1*lSVxc`4xXERoU^{OS#nI;k#LP7{azaVp*jPhm* z(G69Ar%AX^J9A}}P%qmFk-Dv04rwG`K|cZ*F`+4;P<=b_{h^@ObE9}1&;q{0JfRQ( z?|SIcl6=>E)f!LRAJYJ9A7TU+rQY+wWa;~1QuV`hK7>S-(L)vUwVrzJa>@uSL9R*v z#ZEiAp!G$AaE#}%tnYCH18CLtI;W@f3or3{XtIq;CGZI&HFGB zrNwu@FYB`iE~e8UU4Vu99TWVT2`qz!dT<>camqtbD=(&t3F#J!3_FWPad0Nw(~xLv z+dPAn&eW}7v!h0*u=`w(QK?fCrV8*$IOA?T4VGpiznY2vXdIb=wmiQ2Ox;TRw2!Qo z@c7NIn7));H$io2$s4}x;&J|}H`Hk+?E92P6{9NcLQ!vV&@Ii~Y1B`SR^lg;p}qoD zeQZV;bD!-y#b3+Zi5}L5%(;92e3N{7bA%B1{^-7CC823sH7A@xa@=;=hGNZ;;!C%vMM*as z`vTTtBp;rl9Q@&OT&PJU{5JddnQlMcluugtoCOZX8zIs|;sNjAh2Ct5u^`1u^YJ_I z{ff?TQcop`#XTbSA1Lt_U5Lhy;(cyRyxd8(eP}1Na>%HonZJBH2`!D*pS0N*^$0~T zz)c_|lfkvXm@mvpAJSuCejtd;)))l;C(82RgE|y@K=QXmVeVo?EIa@bH9W7~nr|$g z)rY8A1R><-HF59+G$AiQu%=hkM{|?sFCe=n;M1)mi2YUmGl8alCX=$-_5OfW-8sDu zW-fNuCIr+~!WZG8QrmE?`itneM5Q*9%cHmCx?Wj5(HDRcL)A1u-61*V`hRshV}Wmvefv9p-b=-svhlAj+7+&%AE$J-2KAsI5&@2I^Q#L>jl#OQo$ z;vVb)7;c5T3#*fj$gdJz4-7w@7c)Myj)gDm@bYmFc^9R-Je+c#gc}*$Bb0O^?8A9Z z-%w<`I1C7mk|2tob|p_7>nYE~Ij`w!u2j^XO&>=8P%;s*{izt*@0zfKE>n60(>8}L zUp~%r^0DKT;e{o3?BQZ%znb-8^yI2u82sPn%BzCWM1@3DE{lp(FqBdmqwUxA(l1-& zD(M^+qAzDrWrVeI3XEss#8j?clS!tL5~>Zq6vX9-YmC;98;*u~eO65}eJYY{zU858 z%EQChWa3g zQ`OgN>+`4?71Tr_20LjCoueiBw7~inF2-*bCJ#aA-J_je{Xw#6hW&4711QmqXlk}a zXm%*`m=NqqQ)r@wM32GFbvXIA>wlQ_+0z)^c0Cq@cSJ{nIHGy)wj9PI^<_~H{D!{9 zkZJve+lL~2+CgFab*od|c{exXDxacCf8#qdLpXlPA9L8-f1H zRHM0~{wKb;WD;$NBSHraqLdEn8EeKQlJ6JsdRQp$b84Wu67y&&YaUXMM~<%Dsi>CL zV`(+}XDs5t)+iLWONQW-(OW5d(?R&oy&gPmy%DvXh#*rde}L&r_t zBUaVAeX6Dfcu#|!SRjC=MxQN}gIQA)t*5_e<+5l}SG`5`vgtFQkN?swvg*A`_W2}F zl(uU~YjyfV4FTdd>SXSpH-Dha|A_3OKv%Y2gr4sIX~$f>>t$`tKtcIyq|cfxhZvNY zzZ6B*vL9v1sn@ATFCI=(OsCdN2s-)E(L!w-L)%~ve*b$WaUJ)4(zy)+B%}BDD~@B_ zGWBw-2T22P@Lz8*{IdK!^-fU_e0$-y-kVM;@;(u&6k)@_dh5wxvU`(poOS7+yhjUY zjAq%2B72_)H_zAVd0nc@Tt!HCL563~(1h;azX8?vnsl9wc;kiZMZC0+YF-_oBx>E7 z{Y)BL-1MS4hwn9Vz5aQm(zc9m6BIfn3If(P+tP(Xqt0TAj@~~e5%sO|>A4cV`6I8W z%gDlI;JR$D)@nJ^E7U4+8xBh8MQ{H*@ppalT>;qWqWx`Ho)zZY)2T z%7})T!PyvNbn&VbST$$0qET0|T<*nrgTq-s>fBXB8qHF3EVif6M>HL;p6Yh&%n9B+ z1@#nW)He_FFvr8?1({@|I5OPled%cnj%7mav8@uMKt}Z?zz;&f7l1N=W>`-;=qy-4 zA%?$2eG)XPs)U8s2(GgoBPr0oQ4jy4l)^RVLEsH6 z7GAfXlkb_Y)LMqSzI*7C`nePyUF(^DEaqKIBvahHHKEs+>6vCJ&8%qTb~;%pVL{e-Au9=&BTLcCO(`|8)cGN?b;_& zw*eq!gf_{&#cPnzRuqlFCnF56Yhig@#CAD>b5slmS?{kE)QYr4ar-wG6KQ}Tw{5BYR(xzzAq7e#S`F;rv}WrHKiX85%ZbX}%nq(?HnAIu>#?bcm` zIB%WL<0r=!ScKxOC}?3Cr?ZIs69vOZLJcUPv{$N7hS{657q6J70dPX1?vnK~cuCs_#$pGsi@!}n?xm)VR|3lndWv9KF%2yX%{Kzq?DwL`pK<&`7k zp3r{F{=Svv6Qv!G1i3}C(_fLKk&h(`8ExT7;7%nVRoyh>LY)8m%%q}1&P*zPhr)RZ z$`_n>4wRA2Fv?|=<*wh*_8N|#YI$pKnImwDnU7A+5iE}|r^re}K^j%FO{Fd;neDcP zFV8J5*CVP{M)k&mhRz69^GWdtW^-zfh%pMN^1p@j;%Xj*KI!xNdol44aG?wmKk>R8 zB_W;=ViKU)p}?ZNGgBv+5Bl_%^!?B={OK7-mg_t)mY|!I1`FBe49-VyjQ6G0R!-&_ znfIwG78QjI9LbSoeLim()g;pU>RQ0SyDdYWwGJy2Wg|IlH=GcH5hBb-2)s?PT=;q3 zO(wQ)xn*zjV@WCS=kaMpf8n+BZS|ud#0`Asmd)PDt%0it6LZ;59QEVtIlK4EtMwE-ZVoe+*dX2k=n6;wgv$XT< z&af(MpLpBu8{b`Lb0guWIQanw8^10=O4dLk{PPL8`~&s-viRGwz3mdj}bN2-Q@!eYHM!+O+E`x3>RzhHNE3pD70yPe+;LHDKz&qwEd3OA06JTb9I7`P)1EV31aaA z`7LlbU4~CuFJ;L2F4_sY>2w9jJl7F*&yLP^vp(G1`AYHSz6E-w57A_zvY_tXop0*k z*;57qrfKHFexM*X>9ET_Ii#i0SqGB*iGec@iQVK^*{Vk&f1I*m5+P7@z`7`;z315! zyJx2{j@JGA8L))D@rt-5pL}kij)+#s3 z8@PWdC(tj5qY8S{7AE%IP2wkMBdzWP2b+{>xU{<0RoP6Q@_0-^pMd0_$?zg-C#(LD z7)+-Cs45YJ1*#9Cv!yfzYB1p!wS(Nmus1Tpw`qVCj-voZ=jeRFcI8@n>UXyi1fbakwTo0%i+D3Xm z=4}~~IHI`i1UBst=Z}0+m6W`bVEff!g_5(5@hU(3eJve}I17P(Un};DrpHy~Y*)oQ z-JC_&XG47r^KEPSy3EG5hg6TsZk9`!EnEt3=*{}m*1u(r)g_>vL;Hc=LZRYV)0`yD zCDmo0`~vUR{8D$~Z0IA7RQb2%+<^6(x?4w=G$?HKR=W6YRfiXyw}`wiFN)ODKnUVc78UJ_qdA(TkeJ z=~@WUZpItAC6=9enOTggIM_#bZCRkZF@_(37+^pOCpV*E;b@wRbX42s;-xqi^T%E5 z55i0|C~An%E2Vp+=B|q@l|R|9I79B_EZTSjgAo6{R0ukkzJg;Iil~|Ye8`J>!N%f? z6nwR4kM}269KZ>#Xxa5n3lVF9uri4vmI}X7euQPbsA9-r7y}^zQgqnZlavOb_Mup= zp+KtF2k{}|eTO0x^Ds3;>9^*3AC#@D)oayZBTpA>1wC#!=4zB;BmAncVQ*8HcSc5S z4P}`WAe*y;#?QAM?qJ_zHEyM@oyu&YdZFsMMewSh^j6=EOkd$yvjYHQ@{t<)&ZaiS zOT~kCWbcuS$}#rXKACnpG?4bu#5l{bnGFuQ<-H#uIG_zQk6*51iVw&$KRW%D>b$J% zD`fb;IRTCU5;rGs!-&hGuzlXPKN)$8DkCn&d|fPh{M2#^+BVg#%C=FyiK$cl31A|z zk=HPb1@OY~EM|9>gm!UEr%aAfnPsE+6BZT+Ll#V6K6EtWKmYr(OK_IMp}QCFNB<2z z=gD@AY~!&g0gMUge1uVS%BggL?dWLTvKHtkk<^z+NXU|#vL>d0hvv{h zy+%KHEo990)^tam>X{!nSf5f8c>mtAK1WCD5Qz;z5)pr?(FPFG3TL-n@k(O#D)nCfK2$1xH>g~3n zJwwFMjxX1lMER3Q#*Bz02dEfKf133Q{i0wTt1V~K2JqdSRu9Pfbbj=D7U#UUA5*tp z^%jmD?@dlT4Dn2uVX^rS%(#4oUJ098HN=wN1wZC5m=d$_aFH6c7SIKB-@tr$f9>43A{SK;s+%B2Q^MoUB&{5o6+`BpbH28cLBgx!}MZ*qqubm53*vJHTb)9QY+i$^^TvBt6kox1!aPr1%{%qZ&?EayY#b-TjLywjZ`b!MH z6m7LZJPwH{$2XZDTMMM`Dgh6wvGOeS)~gm(bTs=fp^}^Lr;E+LC;_Y&$}JyEyTPUz1xXlQN=Zj9E#vr^o0- z&gbL+w;$th?nuT2DNhbVk(!QnaHn zE(W&b%1SsZdGHP_#akkNBk=OO<0A2RYOs-PsMu+r=UY9hZ%-yBhM2e6oMkgM3sn{L z#{ol)HrnMmd3<`i1Zy5~pXvCOz2w@69PKomrluR~$!MbULPP?8D7uU)hNb))c3R%P z68#ms~z94_tKpAm0~$P4n438BL7-^E1Z|HNi;4ZQO0_dO%P z@e7Z|=Wr~KFFEG;{e5;771kl}3B}j`<10ZxJWjhIqO3@q>|FEw>wU(;@)iQ^KY|J* zTpYzK8On1_xrLi!a}8FO4XqoVGJSnydFS*etLNE^(W$72)D2JaLVlbmP^Ze%eZ#{e zi=w--8j70}g0YWQFWq>ShW@f7!N}sSdds#!-zI>zv)=aL`{-Mf9Usm$T8K2RvMCej$3RL5xbm5yE7C==(BmM0`O#G7 zGXNK&aDU}lubeXY;eoYy8SMXAt5Btg+Hbf8Ii7n6P1HZ#@G8bX5g@@Zqc6Y?k+ zFEVG>r#@}ysAl=o!il=4k^Es2&9Inl>j)JvHf$<-W8e9o9McjW{GF))E~kIRz<@Y* zNu(KX=tM><{q4P^1K85b2ARZ0g$m%VG0&1}PDfkO_4;2T9f?bKX0;Wrx$@`;ho@pE zrVg!atJE+ATnrP-vN}dDO-<~OoO&F%@Z~D==yCO>z3p<8vjVrq^;G9^?&U!j1evR9 z9RRcMDuoqrwI@n?@=xBkfqku6DJjfr(oOk7rr@ufqY{IOhKuqE1&=|9fq1v!A zV`gh>>2qqbE#jlWlcwv%`~Y*uih z7B0scw8mBM63Ka_ye|$a<9{Q)r;|-_(8<%4^rnh;WPBQOZo#}4eXUMGfw$s;HoF%e zlhwTrctqAPwCEQ}-F$er2kQK$_jzxtAMLXGUb%6`Q41zOz+y@~k^Gvnei7H#KLruuMdz05J$Pr|4eSKFDGKie_Ufkon2SXcs>*@ZIg_(KV zsK4!Y<#6t>T(SEv!}q_UwfeuB7(Rdn#5ROPtD!$`2s*)a_qBE_O#ROBWCPVFj*cxN zuW;Dnr?pwA?lv>1&ZuQ4R8dYIjhk0|OKp?!R4QL6Ua-@oQf#>-;@hz*nXMPS8J%AO zKOV&pqq{ieWLI5>StZG>55n}m|J+jHI!aY3&|>3H6S~$(UFXQS*eI+VY48`6*eL|i zNi;0la~=z(quLW7A?%Yzf7*;`=jdq&s%UNeu=gHD1x!*v=PdkaLr5JcyaAdC7{|=# zV?dc-hW~DZg@;um_=r3Ju;>vvly=YC_8L3+wO3Gw$B@7i(#AdC^44Gz;^J1buKef< ziGmFIoo;{HrUMlL-uOIBWiCSgV6^(Q!+K2jyg|1V#m%epV;%MpG6mD@)z~^}Sp`>c z-!3`2JY1Q-X0~G~bRQSzmT8rIsSeu%>ep#W?_f*5T04wEk?RwnkNzbtZDSeR@^npxI+KX-yj!nKAl2uMLA zK7T@ej%9|hAX9{wYgJblD-eGW3fTE=**yOg0x?26(On5hM`#9>OmZX;WT4UoOj(&Q z>m-EF?xbVt3jSF8ZhQ@?ty%N|SH8@6KVN1(_HHNbKKA)MiIUUdxox463yO7R;JuDu z-t(y8i*CJL@u;}=gLt>_hHD`q2p-$qAXL$iwN8a(Satd~$E z-ouw@lKkHPiXif1a^pdNg@b79X#J1!CJAj58KV^m*@qs)M5~vO0^DU*3&qFOMHpAT ziXpBAf*6FEv$Hb>hFq?J0fY;ZV8-=(o}k1rs-N3VaYOHtrCL=&HAijR=HTJ%;}Q`* zo=}Dn2PJmFBmX5~I%I@=dBUE{m{;pvSG@W(9C10_&umhg6|wDx+;|VV`>;5k)8{*m zOJcuYp85~2LfW6C2aga9mgHk3m}w;TT&5a~T1qgs-$8RiLD4i-+q4)b7SMq}_-&@> zBZLvmr&R$SH|+Kl6>@KBb;w31;H-NYbAe;Dr~CFNOYDz9K6h{)_uGlb)qQx52Af4v zQQ+N|r_6MCeMZNJ+Wmd=)i>OQCXN!6?l*R*oo1;mYVev^m2y( z^fW0+hiOu4heG1%`mhVfJ_d=+{zl zskLSApUcb38_1aOSv*KZAfyzHXUEX^#dB@e+sE>_1>b6!l?VltE?U(*)@Mzu% zsgb4>da1#gGCB@x)hPwR;_d%=52ISe`$M8Te+>d^+A=s02zXV;|xd$Gq@?yJ9;Haz2jHL2FVfgJ8?nMm+kcTmX&QgLLxeQU3b`U z`u+vXk>|A7$%eDoIv-3^&OIfir(b`+dC?QRYE>Ix4CejkCiUz1DDc|H z?(sD^Yy4a+hk}WlfIG=SFFA2vq_m*iER~prUa6X@9DpIFp`AiTJf{>do;Rd}lw0KsaATqthD=o|VwslX&Q)SwV_bRsey zspc9t>dquj`#5bfRI#9DZgh%^p@WMpPKKNaw|LsVZO>d<+4qikX|?LUT>FMUvFEzC zvv8YE0#pFoTtm*C$caOgLH6mFC%3wk-af5=r)k&R;l~l(bn|FqE0M^|E((dRSY6`uDT{LQthe z)CLQCGD|eCv=sjx##a%)Szl%zU2I)?^3n)mFAHeSqd< zFrMnBHWU1R*m|pgIJ7QXHxPmZ55c9dAi>?;9YSz-2=4Cg?wa6EaCZuKcXuz`Z?Siu zKBxb_yzu}pt7@$|$Na{aBjmjA5RrAzz+M=*oj7y8TXm)zW|gZQz`c2z*YRFulM*f` zK=))-dj=1s&P!)fS}l8btCffRCGg`r*I#cN-g^sccr<>CrfH0$v66;FO$@>ck&DD_ zo3TUXA-3m#zNxBwkRJH=;x_F`8{#jrUuMJrwE@t zA1m04*i@V7!D736YdZHk@ImOx?&CGJtNIYi!01}lcsR9^@8vUZ~z>>yA^WKsA{pt*ktw@(Aur;*6>lvIx_8>QU30$9TZ*q9@#%FOV0LFHFhwpcu?4G?k z@G$<(w6OXL@tBCTj=*pPgG^8zCQTL<8GTs#0ex)ks}${H&Npfhx^TZ;a(mtDUko=# zJ=OR{aZm2gr@;J|O33lufxgu)79#s+k~~0jnYkIcfkf@NNg$6Zf4v=&zWxngbH<2AiOTw7+Zx6{;T`z{oKGhAFEM zue%)#us&gBMowjWzq*3gj~;tJkR4Hf8FJsh`AnfD%%=uPLi<18g?fbdHy7b3->=%` z6Ae-=FUqvN!xAw~UesjVMTwTcd~P`$d~kOQ4esGj%bz&-LXpj<*?4uu3X5yyQX3V_ zn8wFWqTP=*OXNFYhC2AD03Ly4M&0hshoO^MH@u_Mvc1O*e`Jr`o|d!bVWkaw0#j3d zoL0~fRYjeE2btLZSf>4~%ZTa?S9eX)r{1BLyY=%tG3`+3!_Kf;?xyXu`!enxWMcnN z7Q>J63?cAj_Nf~=(zWs_KK3zL+;C$40ioEm`*NN|Fi?n4FlbyLe%xK~|F~nWO}7h? z$|?)^s5nG!eI&RR5T7(_lQ7I9JhHQ6Sb382eDg-U_09;fM)`ywlk1E=Rk;bylz>{Gl2+@p` zdVM^H`w9HHNmUyc!-f98jv>(?sk-BdCJsab<|M-mc!(~@Z@@pUOm@HlQwt_1S~NhD zu?H7BR!;RZbyP7ICfpwu5;%X-QLkoWsIpnO-E}Lpx<)r{5d3PKDd< z=H`fsN8yZTB~|4GYOSNyti!g9srWgVNXmpS(Jbj89`*MqRpP6lJDEZZ9tuhs&M*#= zbl3uQESwVASLIQ8-(uO% z_xYXI_^}ke>9ObC>b`4LT9lLgyg`2y$EF_{d@qbGk<>u&tbN|^vz2|gt(?%~&Y?iC zk`3-k<^>32o75dw@mMFfrpU_N*LVEfJZBv4z=x2&)IC#4H_mv+ zmVwQ-&%VNh5qzNQ5e5`J%f=e6S%)DjtsZ_r3HGl=0Yvn}8MKbwXE3Gb^WAUw|HGjV zIs#V~zfwEuTBK`@v90(2>xllpdhP=4yYj%e!;q&SE}{8M+AS2%pIm83BvnbP&XPYm zM5SfsF5dYgK68i2%n^^PYW|Fq*(~yJT4wuFJrgGF(#dlMY)mtL61|t9OD~e_?8#9g z2P$+mUxh?Oi^q2|);9e)o35QtQy>38#6fCwypxiVFl0Z=@NzRON=h=mnWe(+!pT=4 z_d@RoWu^Sa_JtN9;~~@#4-SGM?PeP1-rj+63LgxYz%m>Lyj=pg{$8xPpFcoFyZrzg zCw9nX6X?6rQ&Ma?051n(w|#V8lM>-}_`~xtWUlsN&&A|ob1Oa@ITmDYy8K!c$XA+q z`P>6U(*6Q&^a6$;SdOb>owudq;a}oQSqzlPfcbyk`W1FaMi&1Ki8Oyq+AKC^UNX@F z3p)$Bp}5zM``Z;4>=vqg@3foDil;R-Ej^B3&H!HhS>shQQq?ju2FMe!>;0BvXVmgG z42U&!pi4@9nnp$qYO3iCgOpLt|v_bNLib;h89Ik3#t7tz23Se893wj>jqqm=yV+1;x`D?!!Cl+HM zOLR6$dQdt(DYe}j^ry}9utY0WXM$Amk~E=-oypw!S2YtSDJXZYc38z&#EW_WL3vq2 z^}CT4+7~iu>9Qz%uD!idlxra;!cMUoNG3T8$T4Arj%r-y%dY4_Y~%bWJdQ0h0=EOA z@sA+?K|D0(Er!ExLyTSssu6J^4ix+t_!xTW`syPu?Ny*KVz;mR)Q^4(r0{zxj#~^p zMwnOu4(X$!esbPRIGs;07^XQWN#suVv3y<|y*#eEwBZggNO(3GgwjRGH>wibhWT!R z-v53jh4`z<%*Y22;&}lmRjVR5k1)SjS=#9aaVnDq0+5A$tW6%hBq`Wgf1f9}+Y@t( zrZGAfd2bNVg1^sk#XK0Et@a>KTmVjet~>IQZ*iNflPSfwhHKVO+U8<8-qfS)seftG zCQknPN+<&p-@yq0^%p_^hdxZ5YX;`LPX;>Th`_wXSnIKL2AZh9Otx6T+gQ_#1;!py z?J;-(3>d&{x17Iu>R8wAlR(=G+9TP_^QrJyxXCoP$DDL9#$-ol&pJ%B7s8P_L z;#sHcvag7&ExyK&lSFfGT^1q7)7J8*IK;vn7Nd3ZlC1_PlEcD1r&cKt7$pp*YBqR` zEm5V+ZFLH0SJ_2z+bWsPS=}})sMQ!(5D39+vB;r@8JfjS{&3SV{hW9XkxlhVBz>skW7*`{G~>bYYQza}hn*=`|>y^#lIW8Zo?%LP>hJ z|A!h4R!cD<=cC*jO34%|NIH4(@Xc&Zp^3JH{v-y9Xk=t2N7}B2@0!+;j(mBLpUums z+TKP1WKb>bwC?r_XryO5YhkS$9nuM=A`Td(oaBVY20oNQ_wds9en`WVc1S^BSk!|| zkofS-1m?(0L({hf@M4horZyUZ+2}^SxfZZUWX=i5p}v5_B0zvB8Ar;7?Km(zPb}Qu zQ#|G5?^Yz|?lWbnW`7xvpc|P(0*tM1+jd42b5oY)e!Wd32>}^om8Z1UF#7~ql+C}l z9s-n|O7tF#EKl)c(SiM3c-{Frgx4dfqeD%R7EdiyXNCB}-R495?dwCdh5DYy(xWo? z93XuIKJ364WN~{L{6_Ga{cc|7cexO;4rd?>toOci_BMF~>okCVoIf8CqXEwwFt<9d z!``;jB@sf{Elgy*o{zQB$=Krrd|oU4qY;^|%C6kQOeEI8`4dMmbzqmNvQP;fSS9N2=ir!f3$qxK8$n&x&x{^VIS}wJ zPpkMdVC$n}M}>ZMBM0eXB#TU?)n31KEM_ct}6`eydFzAKm`z!qJ4`& zkRBrxu`$i5VvKyGMqi&e=+%dsulRX1tWvS`M9y1_EbC#&RKrA|OetQF2>Sd6W;+REFe>TE zjLLpm&v+6I{8$ceux4}Ol_Ipb|11*@?lJr8xCj~BUrw!;J6;;z=3ZYq-tKP8tv!b^ zNnh^XUe`UjN3{VFd<->1sef6$xBXhXtl-9C5RBU_|CN%R1sVWNnAit`fraSVh?~EX|xn#&% z99Oiu>(@s`l`mD!nDO$ZM4Q747cne`+Wb#xQuh_TF$B_#Z1fO%e*XN~a7Z`^F`uP9 zye`9a?nQ%Rh}e|_HVMBn5_R>4L?WkRF~D_a52D_sj12`qKPV#6#zQZV0y8j5$5W~l zwAZ#jGJcE;kO0K950S1((Y5WM)w~ys+H&Hb$(-{Fvu5~`<0UYreqfk%iwogSV!3Wd zvUw;imsYm_+DRQ%`a4Nd@-mb7!cVA?azDwt6v}6`H4yLKZEA9R*ZEJ>*1U*r@w_xJ z5JjhOP5;#Ij|NN!k|``2eyRt`fDyJUJmZeS?}=IlzHIj74cY$y7k26xw$O@KS?_rW+{N45dLR=CV{O-5 zgw!UWy+4@$@B6h7`mSdi$pymcVB~9RP!MUQ&RitsFH{QJce6bd4UGgzTZUXWGOtet z6q<=4%Pcw6l_HMrTgY}_HLY6tg^>=y`w}6Q#-vi2kvr#kG zzercVC-r0Z78r4pg{^uFcPA5x!8X<5$K(G_kJ{5a^X{Fb3cXH=^$Xa@kdfPru8JJ| zNv3i^!Z*~JfZ@sjXCR1}+7*CEg9PGFheSk%MLmj_KpH?1M*xkav&3apGhPbpQiKl@ z#!DQH2SndnG)Dnp;<=dFDUjnKQXc&fh>(v2)tPlDg8d~(jN*}_xZw&b@|suzinMRQ zhiyRx`J#n>w^n|*0N`zul=hQOE_d9u;jVWZ>N^*(}?2l+t%kdWl z+uWnyCfQiW17Om#YbHWoGi^^go|E6E`ltJ&0q2o{36ae7ib${CAaZa0?6>Fr z(~HfXwmJQyuulrTec84S|7$)({_fID;z?xQz8c*0Vbn_b)5h7%h&GYPvt!jjsSwTz zTNz(riCNdsud%;>N+9zc`6QX9bQ6xt{;)c|@z*b62N%h1Cz{4)`ssRm%(}m>8i%S$ zN7y8_LN+9dKa@r!%2&Iw(EzMW+-}!JayBVD+^_fBw7va+A5b#T${wiDlbyYoAc*B| zR|8=v5$TAOS^?gi2Onq{lYua4SeutYIj^a~fYwUb0Ei`UJGt|bvMXpC1u2h&fb>%o zDD?wlS1uC!P#}26R#&YWSA2^mImo~f?~;hGI+vg}8r`}!cGfCE%qwO54>dDiRj@QZ zkvF4uZKRt5lB?JAHsJ2QH+N-Ot}{geoYPpv0efv|=oK3{vT`j5-h*;??0C`LrcG}m zLpC(rGV&uRtL@crE9YzNOS1MIX~Z3`2x6&H9%92?4kB9~wkrOgd6o1q_D@c_qI>}w zVB6QA_Y-d098QsEaVRAOak|_}42?PRlwUwzm&$y%UqQPy3ehXR7UiZ- zYc~~2V;ib?feQBaisMh5D#p67z0^CV2a%RGh=sVh-9XWIPa$2W9_rY;W3?A*dyDVh zpRei-e9 zqN3?}uvxuW!_dI}7v=I__kc~yzi`)JK1+kt6xI$IUWigqe~^X89|IE%(h~Iv$)>T^ z^yV)zy5Z_PcSreDw`bQ8%9lusAD!{54aEAt1z^|6mJ*i-hh;X>Tkls;A2eICnAJ73 zIHvae(rB2iPdcHAW)ZV=5ylNb4rfxig2Nv05(Bj&WXKOyg%dG| zXl`|NAlOUSe zN^ea-5uKj|^WE`c?~5XJZ`o%*Wz74x+G80BddSnJ;pKfqhQ)-%9op*5X1eithM=n$ zEY0A%!|VNLSVl$SQ^YG#?y7QF4&w0?Y#y#eC2CdZ9Y*rKsiv)P*|noZ0l2twe?h+- z^jCVV#-QlV8A!fh;jETOEobNo%Dq&IMZ=QEh20bTPNHmH+`)RDNIr zHu~7nvLh*I0Gv1RLvWSL@^2f3e!4YeQ^ky3HyDcmQ%}zr%)exo+3Lnira(o*j@wZihH4%Z>LW;E81{jdPA4dKVV%+dM?Os}WuQ9Bhijn>Y{!owet^mT?W`89n z6)4%Gg)3_`!0GlcsughqR4 zqozPYyq{Lnm}yyL+B@A+D*bn^X8z*l5WeJmq9v#)&{ZR*sZ3e#c)rv&lP~5AUL&`! z9%FAT{wwUWEr%@YQ^Ga^XYybO-dZ->>n`Vx%R`1ln1C(xZuWHIxHOdg%kXPz5ycbY zca!{!h(5`O2_y|fi)^y764RssQ8i}n9BL_R z=);(*Ov65d2_9mo*64}j`YLwo{Yvd?hSLO$#fXTnWHCeMi?rRl#w<7B$F{-};h_sW z^S(9l-dmcW{_yxX-(e-k_fl(4W)OvbrIHdhy1iRB7s_Dq#*P)QmNM6kK)vl)o36$! zymGVGG3O@S`hR7oe<}uDlJ`OZ^?EK|Ili6R?-EX*0ZzD4S*0`PjQpE1wmJ9_Pmi6E z`MzrdpVBr3xB1!RR?)Jd<@PmDjq6*DGNKtu?JfsjDWZxNWGERuPY>O z5QmxMZ?9oxS6N|OtvYhauk&pWH9xaS9ezA1?MK0$4eyUF%u=b8lZ^(np&2~l!DbV; z7@;e+EJU~rO1ON27QQ8h6}ro{5y4U#^3*6X9$I-T7*6nUY0HzKPnzDPp7&IK)fUQ% z)@-8Xp!448v)3s>f^#j%lQQGsMb`{V_^!D!%}R@pT$lGY=mbE~n9v_7`J)tRe5EMIvuj*AAujraeO20V z=iagJ?xXuTypQd8@>;e05e1NvX%vmj{HNyjF6ilI_H$&_f1csT_cMgJup*@lmyXZK zM=3mj_A(G|a2`UKT_s_8vMe{c$}IgOP-_+(z-;OnQ$)pb6GfI(CTP?I0*5$g^?ldI z+%b)g34@IeV-|^T3o^S=I*K$N zpETR9-^cJc*^JO?rPipJU|5P$rC`=o*Pa>%Z819kgbc9Ay9$NJY?kWA1_ho>sF_ib z(V)cZRxufX6&LU}WIU`M2o)@PbF84;k+wa;x!k&aE7Bpc{zs6-Wgj5|dj88xh({o8O zP6H5cPW)K%;B>@BCuD26U-9ctVuhHBn4zD=CBnGvv^iVkY_kJ(GG3bRG{YVXAg%8! z>NVs9 z;FK7^IL}>%x$Dl$?SlLE`b&$qiT90)_w4jY&VsbZiZ1%|6Xf4MXXxolqnZYAs%_qX z&PuJwz@Cv6X$L7+mCx>5v}l6&1@yhtF<%$pg6|u>tM!?JgDkDwMoxM~xR{o!hpTrO z_m`)Wn4}cNp%`4h52kU3>IfHzi<6+yB91iv+#|I~YlvO)TP>HF&ThT(@qDb{sW(ym zb_=DR@3GDJPX&nY^WjDPi19^|C*4gN>WOo|?YqTZ1WlIPtTCTQAI4al_01wYv4@C< z%XpeQa3zHp;Mj~`%;@m#xw166Ed1W**)$xnIOISz!D&@c<_Ud}dw4-BTGjrXXU;6@ zv7m~hFme1S`Y9YA%T*>8x}bHg#xxlPbPjiF&RXU=ukglNHLg%YDOgC`)%G3cF6N?% zweTBYT%v*U{M(yHV$XD&cc7b$dN(2bVMtxQo&D=E2VJEUM?RYp-=DmfBArO(96H*O z#r&&%3x~g!LI&H)H*FD+WVk4Xb$G- z#8#Bb-;=YkKk;c-ll1|~t~XE@Of|tGoh?%BWIC@g+#(TKkC^|Xwf(<$uM^`xUZCkg z#SZR1ep5f2Xc^aFM_bi!`Q@j&=0+x~?Wr+#N3%)V@j(ZEv3TS@5`37_#Ob#E4H_Rw z-}@p;08$7t6l=;i?D>HG-!DD43$Y)a-d^F-dygb4dNJzx!al!u^}6M-)Q$>)u6*C} zvP)A25K-|?r2tFa!F0>dTzoa)>!-ZhrmG|~5Mt52lJc$ou3^ntA0%WbHqXK`IfAk>J-EmKU_WmQ2TA>MTq@n_&D+L+#{@Cj24mob3!H=RDS;Un*it9pEf8 zV`<^hea6YCheo+#KuQiNV4zD8@;tCMkW-N2#VLw~julx#kOBnk?_( z@6+eS=dBb1%Oa_EpsZNc;mq^_Ne)+?lG!&zbU!D&B^R32c}|rCFKI}E*nw3_E$~;a zn6I2olgfJb^@m`A(U|p3;kdh62I4w9&X5t@Z$y*D;SbZygmrNwt?Rpw*H7ys?jN)v zcC;OT;EhyA{2dRzZEki`b2lB88jn+&mhVsxI1>l#$2=AVu$avqg9zkNsPpy-WTM}Jm>N!(iyVA* zo6erObm#xg34ea?H$IzX-{-@@_QEtQq@9b~b@!q$`pxFbJeE?1LOQ6Qq>eoDcRsTr_GT^Y0^o5t3B66!)} zHFd9x)9vXrurqP5d&8)aDO5o{gr*ds9%x)41-`IEd@r0-~7I6${_DDZl|o}`>r`%h?ihGx}vX3<^Xb%EJ9*m3Yj73ISi zyLo=;(9OxADNN(H_54zZNvkMKrGD2*b85aq2}&t%37w&y?Zh)4<2O%P+BX^#NaYf# z3dKX}KahG^J1(3FvdA+mw8KxRE>8DoSuvgAxfR||WOr(Jw5SGCoH*D764|FT*7n6R zw%D*Igix9TvSP*UsSOm4-yDeXTIC-smjn{qMM~q~5Mg0zc^7u@6jk1Ho?fo_-fCVR zvfrB0n{j4ZGo0kHysqOP5H4d^52p)HSDn`#%cI`|{6;l@BgT#D?K*IH{crBl=Y5*^ z{59-Qhk@wlCJOopOn4K~bfh{e+-9~MUl`Lop0p65xQ(kV?V)|+I9oV3JL>w?B!KU@ z65eTm@ZVt_7ZLMfA(PB~ZD5egmz~&UA^om-bUrl- zIutDn?Az3jSY~U*3 z^L(PrFP5hm*684StVDHVrBfNoq-0!Yu=7~R=kAm5<4Jc$X1m8&&^7P`kY3GW5Pz2K z7I*F3pa*94(+A-PphwgNJf14%1Xl<&k^!;nI%M9TE^X=d`3@J7q(4;u6W_J<> z&KFN@2YGUQ{f62psZ`c2r=>mQPv0@Lsyn$MTxrvz)GXAKrx9x-?k;E=kBmw!Ve^yp zFw>5MCz_^B{8Um0YJpHwXFG16^DVC5c&BDepN-?OdOeD*@E(7H^976EeiqeNL1eqf zn<7tMxchp1;eO4tHnd7wR3D+dcwMlL_KM+AWuApSzwt5k>-zljPu3=mSS`Y;TvQ*d zyyeWSta>oDsHhGEGyP{z7TE*QQELpL<4WEl7tWV+=Q>VPJw6%t?^$O%{n6gf22W?s z9p>*qqUZWQIB`dCuWwGL1-g4>*&d_9kEoi)#)I@UzPIPAcD+Y%E|%@OYG&h3Q`>sC zoy_)shFhpcb=HBdb~kMsBw!oqh3$DlU|GrcJLL+$ZTVNb5DzG_r;xh^OsORw+mez? z1$a>kEtaYP(UpA|q-IgkFslC1ExF(zn#(+>wa|I5wXBxpxUfU-Co15H`8oSipXvcD zr%wtb(i}u773eUYe>Av$z))5?l(S2yX1R|Z=lar90_LOJ78#1jVaD7a9GZT2>~bfY z^g4Iz>72D0oM-fY$VO18EI4FKSW`r4n}J|-`Irh!6;f@}HmaZ}Cm#C>mslFM-~ z0G!V4HWGF_vc-n-K2J$P5kH4I7iq-CCc5i^)WD z*POoscw?r)JMDDYl`2$QU}p^Y!&@`HL{-_k1vUJRvblT2kh_N_$mna)b-?~F!^{_7 zK@nZ5@RfWcvonNK?Ya2Gqa66k5D(QsNTe{=gW5A?t+~wP|=Y=@zDtYo5z~yp{Q@ zXtTK}pNwmZE8$MEE0V^a1Aqt^#lKN7n@4nG9)NGAP9-a;%I^2$oN?tNU>NPrm5ulCq=dgE9Jjt&+deFH)Zj&ymwFcq zW>VaZ3O->lR22bsIIhacrk>B(BX=P8n!@@~LEiWsV{ErL`JoCLVkaG=?^L_#7YS7e zTK*G`KbXqZhWzuN4s+%BrZ7(|X|}i%3;GMfo^*jJaj5SVHx}gTSblrLb{hdl1n-n6 zIJA$o9#h+e$Pm=W!*daKYj*;Xu9)p*>cffzws{hLM8x+JSLD51SRIRs(Kh4$p=Si{`l5j@sz+uV{gJ;fUiU+Z`3nj5(Ya~_v`XJsxPrg16PMGq9K;2lNE znYByWGzAxf^cH1&KftGwGvCok%=ZNS9lUACpbREDo7Z!xmG||K@1^kYy(>>nxee>< zPhC37Pu7;4o}Ol9b?3O%uFu%BEdVyV-&s9^=TLF4J94k2t1ZrSp4+(V;@)@Xud5EX zCyU%;nA;`EpW>8>z`UNskDHWf2zNLQ$!RtEvec5fmSU!BLv?^qKI}tk^ z<$G!0o1Ng^I(1|9IB?%T;+$!VN%Rcd?9rxB_@aMLSeUe=G^$7YNzX{1$J3@h7UP^Z zA?u>j$ z21nO?=QIrV-NdG!&0x!wS&Sd=janJo<_9L%qOEvRZ)pmkucdLDFw9{rX9X{6Q@5?M z*$^ldCooc6+9OFMORGXW1dh!_V$a4vB0}x6aGqV2QV!y%@uN6VAB3d^Pd|+CFN;>M z6eK($2frJ)}PCOG|0koT}5? z?=W+w*M&bIZ~Y;2UE;l3@MNmEkRD{Ew&-)m^340s5Ywknek|TwwAC-x?t|0tfM$%f zr|K_qw%;1Z&h}vLrnszMINPYKqnC2saN?`2xLK|tDWj2J7PpGk;*&XYp{Nt2!YF0J z$kRs&qLD}K=sxLaOn28_L)JK%aJ-z*d1c|)N$`2TI&i*$KDko{qPEKDDY>~4uj&-I zgc7x@5k@DkmYcFtait(dGiGmtAXzAChDZNI_a5J@%yO?DddfBLBkEVr+BUULBZ7Q` z=1Q88^bAkJtxZ4{}L#GEulcp}I|E9E`i#hUX|loR(96m#@b z%v+8trjGjZ>kjjhCIpPIz)OtHRed(pGGbB1;zPt@OxxC~ zL4_v&D~*&faEBX?XZqQ)*1nuoJtjm=k1dbkW1K)NTWi>LFr&&{^Dmh@gVQcfK|-4; z)T&GWaVuu0k%7{UrPqz;rkq+TXX_QI2HwVa zf>m|t$T=6B_&-L{&@E84vR*U`b&s}m6T`;KS;Wj zH^n8*B~ANlAW!wUUmdPIK71+Ep3%v2qin-+B?#fNlrsw=jmFe8J9l)&kM6(OkZO4@ zAQciQ;9nL8%oTJwu>E8wSgz|lwr}pT+vP}sxoVBLy6{+c_d5CL>o4dN8#Eb^72hur z#cd=#89GxYU1)r2p>C}yk-6kjQhy$%dhBKTgE+y0hO&5`*{$A?w<0Q2<&7(TsXTwi zVqFqVsT|D@mH(}v2$N^NMe7PnS^gC;--$)Ch)4s(vs87OQ&z6^O1PN3ygsq`CDl|% zi*RvJWXAc`n(x|@CMtX~sc(ZJtJYyeb+5>wAKHbAUM6YZ7C{GBZa{_Lw+1i@>Aqih zB6_D-oFRlL&B-KTDDG}pMAo`AFBB-u$>Jy(`dFKj#3z10hbrdVIVj@8J2oR(C^wo9 zhn+!gj)<85xZ$@iulpN*X)H>XR{m+hZVbYJMNwfhlYy5v>vbCpN*pG4JR3E8KGnNg zwSo(OB;2+>V;Mw0hX3b?AQDb7I z@6OH(@9F>lvE`;(RpCouT*4sWmK;V-R`k^JA~;UrzBVdu<#jQ_yY=%efm4L(bIlwH zif%O_a=5=T*C{yKUR5s5OiDKVpr%>58Q8mT|4In|?;zNkmaI5Z4O1Hyv5+t|j{|Jg!G%Kea zuM0KVjiis|qyn9rn!kLCbz&Y}FKHE27MU;3mSZZ^7M~p~oO+ClAVIF9Z$=<2h+*6Q z8=dn#WHOhY*aUsGoy}GST~})2LLcHV+%#FGiB3biG?l>A>o)Kq_>s6Vi;Q`nD+ux6 zg0zeQD5(am6H$T1RR;O3aX&!+*ikx-cJ=9U(wms5*437o1b<^ad~80$QIsz zgOXvLhlguD_&8CNlgW{6c1*?b#c^t8p|%Q_F;R{dqryca6?cmC5Z`V{eg!DDZXE?jN(M^LX~ z^7m=c{=tETzpSH;%Lse`YdGi7HSbOy|nW60jxztaxj7xh_p668V*h8aac{ zZ0u6DFf&a?#yvlIN>h7r8A@B<)4mUrPQnG{VwT#>;&qF8U`)ra^+fk|DScM=b^rk5fGD6r1d^N0%63ABYYKj@5Su2-m{y2?QacTV+May<>g9;rXDjMzLP*ztI!?8lgl0n9nK}b2u@~k|#5V$G5lZ zXv7ryVr0zyR6adYSC>UI69G@2xPf#XX(jvGlE=ur3hOR0oX(ZFiolHTeHVkZmNO6lZ-zNVq?M+qg=ORXL$QwBBVl>`55$JnT;dI(GnIg1>!k z>6f~;M?z9k@()W7H${nin@;O74-ffib;d_0o=7PRutQ3{Oq(5B^GbJajNq z4I#8%DtXzBcSDh1duW8lgJ>b&UNv#vtfnNcz{^}#fkgEqUu7skC`uN+>VAFdz9y?HY^?1A^l zVU75e<)DTk+%l6H1D97Y1XO+7c0DDmAva;rHK&X2LfsVTu`&nwYp_kE|5S)<;ROesa51(-~Ljn1f=rfXtJ zfy%VDG3isr2NKQp76J#UKkfV*up~LMUHvR~XR9)GNv(g5A|3S3EGCm%t?~69qMJ;) zdl2DQmfv;nf>M>rv^yZUff$7yn^C#jfg8Aw?((k_pbxvUh$e?M+cn__KI)A}^&Cai z{^!e6LC5ee1)>JwA6egCE*gZmkC%hApt* zrT8gndDu=TThbu%Z*2wUNMGQ$!;dT-)nAzn(uR5qic~}-hjb4A6ckHJ0N2Ur#CmcX z9gmeCU++4s=_IhYT~Gy!`?`a(A4W{3z)_JFl9hVUh;q5S5g)uFet4<+K!3xP^ls%D z+8r{|^lInrVF9?x_v+bf^o?E>_Z(k8az{Hv$M4&&Be$=(Hcuz*cE$J zv6POPQAl}WIi_%78=%r9PpjXf;UuGe`=+yfsYD-g3C0vd(+j1KExY(_FDA z0u(Viqn#3unFYcDE}$>ZuTSU8Qq{OtL(HhiP)Lvvh)Ouc%r35-uzHk3gj$jhb;jhQ zOl^rLjf#p)#hhNebp$+;r-8v{npZ=WAgHXod(9)wH`k-G z)yV}{m7YIyg5AeLo&_a`e}5&+8V6wr=e&jCx|_1Xi`J;^5#%L5ai3`76_gxFDXigt_o6@;dzgj??D4XL_g$*}$-qLn z%=)KPE5W56^YiYg#^ST5yYqr{Mvs-2JF~QmEb09Vt9Z>e>*N{>r`1EU5zmwl%^s!T z0(Y-1ywJm%nDSiMdy@i2)ajvk|l+_MgtZ_0mFBb62JIQQnZ`%4cwFXsxB@(Yo~&1oR6{uaGF};PWQ(!?ndywj z38{C_9-uhkd9&TtTgSGPtJ$^TI}am?8A0eccRw*KCIy$NPQ_A6RXnRIQ)5Ct6;7uk zWg?p`K_z8=$kuUBPqU^WdCa;TS8SzA;l;>V^u^u#cLjdCJuNkLNfN^=)#ct+=ohn1~1I_8fiiA>=`9H^y6wi<4qb@^(jjY6Mq+3oTbei$FusfbN zbXb`8z+p1fI234JY`Yg&>!tG2;iwa4{uZ$YEIjWr6i3;1BFEI55(~2rtvUlfeQVq)uG%vS9mRDQ4BPre&^wEWXveUWZ z_jZif-Y$Gy9cGT|W@fHc?u<~hJZf|P-o-`o%=4jUFg7z)Fs?BmVzBcxI0%1oz8J^@JwQa{ql`nR`SA95XKBM;-q2rOB z=WDZ?ALz5+pFV`c;4E~oZQA*Ai3^({4RydM(x6uk;0*evrXFj{7|T(se09>#Gnx(I z`f9jhyv-3ye^1RJtxCs7O*aKreEx?TlN<73yvhRnq0Fl>p!3&eQ%C#6F+FR zI+t1~8S7M@%4zW9R;Iw=@mbpK!JMvO{bldGU>K7wUkn*@TEqJx{(9NDqR<_{CvJ|+ zj4z>xaLr<#r5#XdSssS}W)pki7vKyt45vDq)xGo?4wZ1-q74&>(nBX|z;svmf8Kf9QwzW%bcokT!u++^CP|Lg^# z@6IVRaidPSpMmEqaMnws-P!zv{OY2vJK%#!fPxTTsWAyRI#d$VDBPfub9VYi}X7Hhp#N>t>2;cwgs2{^G8iAUS%L}3q zQi~vPX_z1zLuA(Vb%udg6!Z^AVn`*M+a`qC5Ps4B=yZydtX?kr<+o z3)|P0HI#{06E43Jw~LQY~F62Q62e{o6k3W0Yo!8)xi@p%3PQNb9Z_6zF0vjrX4+FkiS=AQO$57?Cj2BS9 z@eZ-R#Go0BzH{fjZkSl)ujg+s9mY_d6h2$g95D=Qy4Uybp*~EXb<4WIe;ZwmC0n%r z4j>yl==yi~r6-O(RJ*I&+@r@@u2^q^1I$5d0gATk%d>)%>fY#ErxF|7}K=|R{a{&3X8NVc^D zH&4}1muRqf-yvNCPH@R({zfRJ)Y+?>6;!AEI>j}!yi6``bK+7;;+0NJDtL}h25%mt zp9=ZK*-$Wd(@04*==XIQBx=r!f_!ixjYc<}L-jqM9ml4?v-;q7y|?%-GcaQDN0T|8 zs*Vv&{0XXQ|Ijc|F3=4ZizPV;V_N4Icv~GIt{H=BEi*bIwEWx+zrw?beNA92Gw#Qs zAeC0q6@D&lEJHc;tBx8U4g+`=#)4%x;=A)f7tkm(Wm*Za$FUqfj*{J1ja4xY<5KW| zXFb(cd`LBdgu3kiBkQfA+JL&P(c&&G6oOkR?(SBk6nA&m;=vtSoZ{~8?pBI>a41fI z;O>+gzH@&&=P@rC$sT(znQN{&^>Tjk7@z!F>kyuI)r{)MbktmOpccK&Fv|nV$5K;q z0OxGgJ2Yq&0i3@>D9jkXP@R4K@{XEs2j<1pra9Z9*b?losj3RO>lXUSB=Tra$Z3=q z`_f7Bq7f4E-y&)6`9b@HBSdl`ODk;lJk(m3luX{!oAD@ePqX`a`Fh2} z@T+FewQD-RP#%jS2Q^xg!i0RGrD0FpAqE|=@ct<@F%a!8xrl1+Z&$wQN@Y68zV4c0 z-Z6Ps3O(@v$Xz?66_`&lFf$N|FOL#_2PYK_EuM=t4SnaA9#+W7th(8+^9g;T931B z8Y-HCkouK?7R`UX<;)!*D~e^WCXm`VdkyQ4|XP~MLPr01Mh18q5*~{x$Eq1oz%S~%UmrsmQ=(w;NIO)N@ zsOKf5lPvp?5v zUUYcOk1(3qii+|j6;pyapDQjoNpj-l9)iWG-P~(Nmbk z=iE?V0E;H>fCk3(NWbAH?}38vQb4N^%i_PkgF~!MSiR;NmAvF-dj;*~44X1YH`fAx zp;LF!ExFEYUIc(Jzz@)s93xp4bT|M!t5mL43A(xRo@r;R*G)M%A$({68l=W$0!+yI z5wA&sTltLmbYY02oAX<<+IfX82*lor&WU24vBm)`X&0rvz`!6(gW*YBrBi~SUu4~h zuYdQ2EgR>yRK?=MsD5a147m0rbz)p1oEBp71Q_ z!UjnDIKjw+CCGuj@nYm2IfC8RqKzzv^WpT+30pK)r$D)FPVvg2w9cj;sZ)AbDSZ)V zf}naiknpeKk%wQl4wj=;DzV~;jYNNOC)Pq!_0XZbXXLPwNidswDSHJR77RKWFo`?> z%}GruKJL--xp#Pa;gLX2-<;=KJU(_9Aj2w?yW4X)H`{#sRpQ7kZfH&mUB09dn-A@M z116HxuNdI6R@sHK%ILR4Hm{ddC()rObKs9&{C;F}fOO-Mtk>C^;i!=>xBf5Vhs?oW z{HDB!u+fqON~sSs@IW#ntrX()IQpH!(KN5Il@N5@5fl6@S^>Fv^=~C57PDZNl;eV6 zwqnHsdr5)JXfiURtNe1&&FS|>=;qIxp1ZC)uI0AK12R@&yACv02F?fDVehEOdpQ{H zl9B&=pmcgeiliToztSznf2dYXaJFgB9^@+XHI*wtCkm9`QaN6;An($UBqd92Py%Td zZrU6SG<+^nl#hJjHoGsija?in4a6tgQ2K7{(_0$=8|B85nv8+86j@n(ssw~-f)veOPhvxx( z?`m+PaDf(^@_~N=!lR?UHDsnJZhc4u)@b%2NX|2O=y=l|7w|hUL{jKc4 zGcY3#LL;pfoL#kRbB8M-=Ol5qV!Q96?{;Z9l%_hg~t| zU8wt?H!u*!z99Nd60}l(cQUJw>3?Yf^rzgaT0(=K6?wp;)*@Ah%G}&IfFV(R1~&ls zy;8HO*1ahy!kqt0jjg9IllrO$C&`@s4Tc~kXZO;z=ER&?JA*Zt@UpbOK|;SjOpV#U ze7jUUzewlz%zeB}R7X?})asN-KV*g*x3!x%NNZ+F5=U2cvSpe&!-sX^GKVv~ zR9+In)d=bTVec$z`jp=cYGl^yRSCv`j+g>L!CD%xp<;i>_K;k5TI z3#P>8<%O^G|2TyOP{m)w1EUTi39!d0$l=fGKS&()jeO+7kj{OsOgY2vhsZGPr;OPf zP&)sQCMFb$R%71#w3>vx$UMG(-^?XBG}^gv94Eet$7HCwRq1i4sqocfUQhem7*v)0 zE1K%eU`6qqipt7$bA7&D$6kTbkZn*C|M{Hg`>Dqduh2OO)|J%vB7UE9sqZYv&`t&Y zZ$*$$Cu>;lu{2#Qh%^=v9hdfc*s`Fq$Byme+}X?eSy7GeiLFI%Z(Lua0-2Rp@f+_- zKNi!UqCgNP7!56;f$bx%tbY`y@I3Ay3_53b+eJXLNpCKRW{m+?Ke`}Y>>|Qty#|Uk zGnM!EKztwMLeESueH0mfRTcdX_le@c-yC4*NX8=5NZEb&_dyV`9e~ve?YYbTxDU_Z zPZ>UA{Coa;oZLV%w}cocI5^ak-^1d<<|F%ml@+0PNru7*uJ{v()SM&Og0u&)%sE)q zvO5sQqpoNZMKFJ(9___$q?SYha;r*Cq-XqIeId3^40Ki7t%{4?sw#c#Yq$U69X3b0 z-ybt0gWli7$;ZK@JtF|iEBBfHM zRYwNphon54AR0?$*HV$9sv5=;hABbIdNs2zfj#@nC`!uryW5k0cuyaPCYSMwEe|g0@e#u7Y}v;54D7{;2)JQ! zJBks!z{A4_ISTt3lDcJG|1Dy$wlI;Ez?{l={rotxe*H>=J4!WQDd<2-7cZXr|8~Km zMnlLUTc$&CLVkgj-^J>}E~|kk#Fxy&*M##C#U;O-D?p%>q6!t)f;1PmcQ(C#ara?B@Q zg{?;;$btXh4-NmML2U%+oW}%UVxb*=AqC>xMK^aC!}lX0V%~3)i0K0?Q%xdo>!pUV z{O={MKIdgYfyBc|cA%b-+;_j@wTuuU80|P5iGHZFjU`~SPn^(A3<-mX(+=Qse$YD| z!U*&hjon9n7=};&6OTgBi$R6MdH%((*5Z+EWomKL58VQwO$iSx{ShXtL-4@5q?@7# z-afrMf=iI|^d?MI`LI>RF3JNCm12qZt;|PxPU;)8@&r%nn z&@6@Imn|o0GHbe&cwCgyo0)*4G<+2_Oi02Gx3ofhmBU;Zs)#>3E-6paEB&&h;7n1V zub*i7d##Am|17Twb)b!IpmE0*vPOH&DxSMEL>q9K$!h=r`q#2@Bccm_)Iuhv=1292 zB67GFg~SA9Mc;@5>57SoI&*2T`jMZzgh9N6(7Xgog@}j}!`7X9Agvtx9#JBU;js+s zAr46*N|7iO29XNcXAKUHU`<9s-|l<>xo-t9EJGLuJBj3GeBX;KK?1-#Z|r>+$QH(J zB>KGo)f^=etOwLTj)#$eN5qIC8IGKRN4Li3Obq9_p}>;*aEBSV5A|@f6tu#b4TOFJ zc~Iu?JC=Linm3TX6POr)ae|~MzI<+m^42j@!*hnYAqgbDTD)Uz>JIz*l)QvHwG8OZ zE$w?xIH(-$^E`qJixXWWDcs>;WJ3$C$YEEo7};?7o@V6fMwc>{N)jRqoFnCHaoQ z`EqhN{pf_|DqA`@78wtZtSHvenqHj1-Qu(5?Ddk|px85}RJA<lCIkpnb=5j$< zU2d3|(hjzPvU8UzlJR)N|I1GL&!^tLH}Y8Uz-l5LtxP?AHLD~pDjqJ=!TR%hzg z7)WpQQx~t_^HJ>V-_SNrHtsZw?07a9(-4qnn;o|<wS(V#F9sa7=;S7+2jfgBB92Pc&PCKGg$oDq{ffMwmO#*&5H?Ihi(Q=HEPgq zu+d{Hofmu$#~Sqj8gYthhq1x$AfWmm_K(4=1JyQXUC3)JMu5X5qf{ha2`r?xW4@8fwuk@8KjUFM^*-Z$czrWt zy{Yf*4}sLh;rngw5}gF|X!R1+pu;+MNTZ^qP@zd-N72(_l|{0j51jY^-n9d0T5Uj? zm?kGM!EZ|mK+{TNdiE#@07o22@cWxtL@T!4+G1qq_;BJ(!`;2iIH|S7pHL*{BmB5( ze`S~4Nn%Oa?`CDwfCe#j(@g#Ps0z=-3B(T|0;i_p@FZ2IdZF)G{X67v^GW7QVr#ew zBftHsQZe@V5z(D-tG=?u;-lXol7)M{w3Pzz2E+B0@eCq@k`b)N$<>JW=eAS$tE8&z ztApZ()2Gz*5E6nM%cfbmi;hq71?UvK+xE@-5P2QPWH4}|w{or2JFihhZK_5B{>dC! zmUYP!%yJOD$E^$0*=EJ&bwZv#vmu1Di!x!2_+I$_U=2T}F_q%KSmXaET-4e^0jfIN z19wAgbJPv8JGyVzepZn+HVR(F4dR}2sUS{fcAv(Z8)BCDv)Aol*QdR#>q)GQuQk3e zP1kKxh6%rP)-fZY@V>~?C*S*u*x3mz$D$%dGPeDXIqR};$t_{%Xyad0NK)!T8sGQ7 zHA{eiKv-&imant}Y{Ji5WdHI=I<^9CI9cBrnUUvqLfb18V31KKIf)ML8SS<5xbdG} zTQ~&42>-;VIf?bRWi4IPKdA>uJAsQR{=h9a@!Y5sZ>aK%93BumE?981e*^4MfW~7<|!Ub_LL@Qe9H3Jd$xXFh<r!q~$D^^R)}tGIHugFjeJzV1~nQo^-L*?FQy^9?DV~;yD1{1c@lhQzqp( z<+)yfZe8dMq+`G$8FwJ5+72P5gjQ|cK3@GZ4#y2w2t;vhL^)@7EtpiI*ra@Z$j+|s zT~JHp3qdvk%^+e*UahwbJgAp|&ZSqu;UO4S$H|FHm>p>4HDGXXamzV~Uo$mJ>Ug&Q zo|*aN2Ql?}n9+WFO1yFqOP!r;!C=gaEg3O@70m6p2|x+#MG+V63hBDAfcZ`a=X&Xi^inaRu~y| z)@kQ5UZRhFS+#0tY0=B(j6wm6cJw9-Vj1!O;Bg&31oAU^v!G3AoZQs+PnKLs_^oi# zmh2A+zt#Ex{4#lO)zoipEC_xYA|1H2bAVs~!=@CrRVSqc=xENM6u{9 z@_%wDNuI6JdU?~#HxuII4D}a7Hh)tE8AI7jv>pwLA>GDI^eeV^gx?u$5MiDeBG;nt zzVXZ*1Xd1K=Z3bVoUyFiCs7N?^SD{QZ;-d6h24*i@*Q6lbwFu*>FSI|M4$ZS)NK3C zMVqFHOUnIP8HNmNR}XvM(0G_V(_4-T4>=PV9*9{N>p5o(4BOm^NE-yEXQye@SX;Z^ z{u|(>pyb#1@3iALtOfI3px?v|j2b}Q3|>wwNF0+I5b^QfP@!vu?F#+N{GsQJLz-}* z*$nZC%K5V9v(K?$4k!!i_44o-(OpWUn6==glfKB0Yv1j>*QFBnvmBi|R5|p89uZ4^ zBJg){U`YU-3+A5Pv{V$a9Mgd7H`=?ju!vjMs*hn`!g8tgYB2-9pjq4 z<}9IbusphZ4|Aq^hN?n1I}F1EwAYe4PV24z2yLS^54-u>{q z&5qrYSWN9U$st}OlrydLRQJ&{B361n6^;2N^Bw~}8y>#((K9U9Ur*SBPX3V3QO`F7 z3wRHtxoh~he)FkOVC8@2ZfT-GRv+T+2dACzpSgE^Z7wCC-M_&0e|_}^gy#2JGmVl} zc7ICe!Tos?2IP`sXnXaYB6wg5mDz9L`@+P4;%gjDaDRt>e9{+dCf}lnt%8-(qUAPK zcG1kbOQd;ML6p?Nh$br5@3q_rM^14u;Yfza+Yf;sUcX`paM2&bM`lesgr6yZ|Hc?X zSydfky>q5SVQ?zSxm$t7Wy|!cW$Hpn3+0xo(j%rH2~^FWX|bq0qaMx;2pDS?$Z(wYL^x(wc4V6Y zQ67JBB2_pA|Hr9g!o3|j;$b-lgIolUnEMK|pc_S&@1vd9UDh3_04!Y=lqVr8j1EuY z>9W+Q`4}`=EMroIxu=#AHW)?0o>*y%8WUr{Enio1?OsH!E-%o;N#@tkPG2x2$M5oW zFg$W!&Ej=KT>ocGCxGW~23#x_-pQVMo7~QY1V44GzP0=IW+N(g+A$H6cycuO zTdcrtiU>IC0yZg`y5vLEG7cwZE~uUr_@aa}+EAJU-e!ERk=_?EpxTw*GMy(n1;ADq zS7BrKDJHMAjd_aC)2nh=)j@qQ)(ey_V?mqOt#_hCC8jMEJzH?F*&tJ`eTI5}|DH$O z%1Z*{TpO=x_B@wA(spV|Q5bj}3NSdU#XFw&MRe+*7;~7-*7h>Ah#fs-zN~yXY5c6% zp9C&aOTnj}{paLJh^}8SB#L-<%uzCB^_Wf2VNqV75^WBMXG3oSx`jPOAB-qhho z*Kg_dH+#W~szuAP`-)i#`wA06cxSZ#onin@GQB%*l$aqgM4i%5z^jT|_1&SeJfp~<>kR+cqp43)|tQ{uvpyo8b- z1wKX)R!)AtW^$6MMBYh#)=LB@o$KGpln{UP* z@$+Z-0e{L$DNUs<_18(+12~Ud%GiZdG*(8nbbfVh=E-OilaSi+0mpIAWo>Lps5zK< z`vQ-tLtpkKLo3*=jGhg23>0?K`QzA{3+OPJa1l|X*45WEBmS85tm->u1A2_No`Uor z(9tW56WPc}eSJ!07Rry8t&~kCme&A@7U*X0Ko1Vw8D&*ZyVuut>8Y8&@QZe8>&*D5 zH$2r#^g>s*P4AYeB6Td8}%JuX!d{%9V%a+B6cCxmk zZ?dcz7VV@2r$-Tl2K7t>@lEwfNk(c$4+6J>fs*UrL&DI>FdjVB(l1MOQ#@A2J)`>? ztefa^_z2Xz1ieAzdCOVG_FDl+^MN+DmxyK<5qEnIMhnh994qUDTEhNVyv>-gu8-lb>B z-p_&V|EQ(^T9neCWgNZC^QOKtHUAB_a=FfXVT#Kwxsw&{(S#Sp+~I=Z$!^odxRyZ$ z4@*M=E}oWVjy?$~itz*mM*I(BR%jx8>+|43SEI=~QSh^#MWekHni)~y}i7)xHpHnQ~NI-Z-FM#ny?QB7p0 zeNCy>lX1~3o?W``BNCGRpzB)t;eD0%e-#Jq$gPO!@Ugak5-v;0utPz$54J<)+rf+Fxx~bkqq%1}(Y5Ms3B> za`wyez6fJiTCuru5vtsboPUq&)1jegH>D>fyA05_ZUSBY7Ee!0li#1zm%*8xZI2Bw z$&M*5<4S2aCzaT&&nqBiX=vm?QlhSPS8Zu(igoIay!{nsRAU?JzJs8;*u>5yP=Ezv zVIPfIiC?*+aze-)frHXdX(RA7V%sU`!R{v{KG3#r|kcHc%^1VY`HI2p} z*g%}nfXAZ2{c`lWkDj+Wmibtc_hI|+4<*P3w1VLsMC|la8xBSMLFbj(mTq~GB}K0P!z@{?T*&< z@gvT@+}F_y^!^S$ArKT6RmQ9;-*KPB#3(HVA|c}jrx7qJt$wSk0qIQA&MWKKR$)~Y zW`K4fm0BJMjVF>{oY2r?>>Qq_4M@ozQnL_8S6bCJZ#b7{ID^=^O9&%ND-;$^57>jG z-;W-D1@V3(p`1JTZXg+{p?Td)v%7$8KS_vRa_=VVoF6NPi!2^5E#@CX95>Ml$U9xQEA1C`b zaY)%!$?MVXOt|g+_*tHS&Qk;!qvnJS-TCPqMotW`U(YSxCM2_G?rb3}K@$(60o75!IDUrJN{ z>(a?{n}i#L>cjt8I)m1Pt!`u|S2&=ze|7NIdbw7TCaAQ;z<~X7X5dac`EKorcXcsQ zp#l?YfzFNh=8IH|eSy4{5F;yN&O#!5ua8?yEzT3DETK?_*axELF#3bTYr8QNf zqiS1UWuo@rEGTlEUH+#}qm{Psw%_qnRV#4dI4fIdkYmI9VIBXdO?mW=lG0fDJ`7z3 zN9BM$sc_uHS3bPi=heBo4hvoZ6;|&xVJ88S7O7Zr;l(9y8_`AF2_5Kv%Fp^=phoY7 zl+mt$2SnSm5HEHd_{l*G_w6uyW!_HiQ|fKl@Z6`2HR4v3+!XrD23bj@bmo9hx-D>Q zvS4rJkEbM}>Zn~&+2Vep##Dy}2L7FYtPBgPSqT$OYmy+78%L`ZQhbK{Jiud!;w7ov z*vYzWRF2uPg4b%R19yjk7nPQuid0w5e!^%r8FzZTx#793BSNPdbHWAFw(mn?LDUDd z{&&xI7F6F@?)y4eu`LY-9Q*18|6x)cF*H~rm3Nl*P{E|a%YCaWX}Yn{G0>IY(P=Of zUuU>!U!d#js8w8mB|Et!vG5S*8`C57T$1fXgsNemFs^W1?mCA)ud>t4ehjK>Fw+;| zpAkYG=p7;4EK6JJWR($v*`S_Nm@84Fb z3S1|-|C(QZqv8pv7jI*%udokW=d3hJOXvN0?zS%R4HIwWZU^d?I-m5^E|UvV>{}I6{x;1IMBP1ql`|cfCYt zvz3c+5d;}$@J6E{t9qk5X+d)pvYi$Qq4V{fnEUCAVPwOCa7yMqkI7Sc?^%0QVAFoC z6W#G5=7-hjY?)URO{56^Jl=_SVjcc(Z%?7*0#Y{zdSvCm;Rvf}@xb{ErM_m;!Y{1Y zLjHk#${Sa$9mHo(r3nR%Zs~q)1bJn-}Yuo~>r4i#z8>zc=HzgU-i#?=-?OYjM)1ehOL<&O3R+H#N-c zIEDPEhlbqHfbp5E=E3Zu>x*bb6^ZrHo2!)B<3EYfUxC4`s|0J+HL*g%}Yo{*2nmR7cZnYb88}LPWebB^9e)6 zvlYvZbhKJ0UcL+gL=Wc!b-Undf5QH{a!MRZ>+0F&f!)Hcv$TcW{VND{-Crjm5Tv)> z2AQR2X3l|FX)r3fq(yjzQILVL%Km-#D+^YImfAs{fq1h=Ga1~s%`|y0GhzR0K)8t_ zp6j9OA4K?39t9c#6C!#8xOWSGe{Vh6qkb=`+Lf&s&XB415c1xPMO?d$ceo+5C82#3 z9Jgv7F3smiBZxGHdFeykEs$hNa~*uL@pV~j#hEBp^=ZsGWwlY;EA8_(^c9=~k%_-Qu0`L8A*_6JGv1zef?2Pp_Rn6oXZOUGTq zv_|hwj4*8Q{=b87K7yZ!!;Vg$;!}tR-FQh2On?q7ZX7WM$!AUxOMaBK%bqJ!{ED9) ztDn21Rv#p5_|q2E8u_u8h~6-79$sNQeDC*j-|`tsea_^N7Uj;b*N(fY#j=ClPD5H! zz~+lPi7Z1Nziaf8Qx4e4w!u4DmurfTeYYYC`s;%`bAFo1lpRB4NWrv3(EL(BW%Q!J zLc~=i;dFYuJeO`&GFzg!+~`u^GLkqG&VhMbuHI>x$Jiu7eMv2_(-rFyymPH^f%z!9 z`BSV{c)P3!#gm1H5QBpaT80om#$*U!s=66Fw_=*(PJ58srP(_;DlEf9Dt|&vrwV(w z-{Nx`n+hCKAs%WtqAk`?OO$z>d{S-uV`W*PXTtMN*x_Mqj=;QGs(0$Ap{}l~bTvh- zwTBZYPrvnS5D}`Kzi{q(_SqAL9VNwoDl+>w_FpqL33DJr@0|+jKIExuyKC_|4lR2~ zvTV2h^keq=KlYxN-q!I~ryXhi?jd`_L@f9iX4nVGesnU+$&y1mCV8%6dvv#g%A2W^ zbx}wlFiAe+AT$hT={i?ZL&W@b<{T7UM%|b1j~RqBH1rXsUHkz=`mnODR2vQz zF$Jq%TgD&q9k*;Q?~v9}1&h8e3$mMplGEV5p+Lc^J!GT1U7HZY4*n4DzFE(tJM(TZ zFm12&Pi(u7G(t%n74*cKrHptG4Gp$0_A*Fw6r$^-$~6hSER7D+G94m%fS7B9_mrCM z(WeZ_8tWhG+5L>Jv6FYAb!^mZEuea^gD>&q82K~+7!C(3)YhLDBd%bOIf4FAW3+90 zYs}|%lX3=x8?qy{2bvO+BE!WR^4VTqh;}#GFlpY$#A{ISZidsUe45xgbTmxN0^g2^ zdBoB-1)Rz&0d^0#>0N{bS~%DosP+AA;I!G2+7_Gni*r>&VLt`V7b8ri2qN_C4GYu1rdSX`nUsX9cu~`793U8)u&uf z`WG(d1kUp|T)F|ic6N4}SA%D=0kr>Bn4(Da4sD*0pL;xOG$c8!bth@;Y0f4!XoAYD ztF9={Lb{dw8V<&IN07jpmCk|{()Ttm$7K!H;@O-NHx}t>>CJRC&k~^tQF@IpW>mcZ za72_vN7|{7SKPu4vA2cI=V-;L+g`B|Cz*)nZqk!TgjPms^)m@kW^Y??!JM5RL<4P*{oOs zh=?0{dFX@p{FIJA{=x?pmCXh0Yi~-8z2J*hLGKpx# zhyTtrAl`OzvD|OC%Qaw@J_H!nE6PK3Z=1JuS_!CSdv(L;wrOx-=HjBb7%CVbds(_= zD>fxRubN!lA6)}~JdU1MyZ!hv<0*|@ey~%_p^k#ta&-I8*Gp5Z5SD7r^@rA%`3_0) z$s>n&A_Hbc7r64a5_6m%cf1=|$!oie=)YV#QRs-rc6H;EA&Ar$J5{3s^2cOYFd|sO zll(0<@mr?u!gYS~eCo$761^9p)kH%9YQ#oMi|8prSaBx+ukI`WkAs)VY5IZ?+CM?f z-HTjlQ?=wCNonQ;>1P>o?3!=V+nkv|inkJs8O8u`aSh#vN=;3zeK97&V|BnjRJk{L z{>~R4*~sb#5QNel-g=-ss$SbK-aq?Vc;jC zbfOkDI|?dpGhDmI!Dc2v!Up~q-OnsTPY15Gd3Iv8>SU_(^QN-)hu4*g54Y#?&YAHsykpxEo0!SYPo$FRo#=!I?PzZ`XLP*zUW03W}+7eVlF+fi*8nKDy4^l`hrdg8&CM3;bcH7x3YsA)NjsUSF(a#t{^zcIT_sqg-jAE>P+@o^bBd|i%=OqY zaM(Z|SyJ+)KoOb7z5)pG=;{_@XRFaXy=rCe+T36|Wh~{2@@lsvs%QVO z+DIiTmtR-UU zU{0sO%@nfYUZjx1Jndj2aSd_mmJ;(Z-6Tdw6GVHziG&rEY$vJN+(pdWfqJQjL>-1S z)#9f@tQ0!0I>*&%rofca;&+Oo`;pQy?yeNvyyKmCIX~#YF?L~mqDhF&i{5=k6`IE0 zE;yn#JS1tM5U~LRKYDib5KO;SgtqV)?{{CBS00)DRSaEmPy`E{uw~tiUpI5KbeBCZ zq-l2WxnmNe_283*QS%40#|0*W_=1pt94!%fxFKTp=KUH(+?Kv;S}t-k&tGo^=zGBq zFwvyJkD=TknyfMYfv-Y_Y~1!Y`xv^=82PM*i6a;W~6rpZHKleXsjG8mL%14E?$HM4Z8)pj2`Z~M24$7$tyI!JiK z$;B7{d61BMfM}|VcADxK0Tv*5X}*NJdG&Z{Y?@L z5@joM#`_=zVD^xqAEnyeWFT8;(02S7K1BDpUT`~axK1KS*OL8t+V9RMGCG-whcV@B$k?au6y2|-@0eu^se^pH%2)8(u&1emh zcZg$fl#o~$0FNC)KaB4WN)?$|s*48(sKJonH8B>&;AURq=Bt)?pV-1Fv+D=-jk$11 zS6jjIqwPhDM~?|saf7|zHIs#FLt~a|BdZ~STjFzRJKO`5-n#H!mbG#=mUur-h>v70 z(v~5dd|YYe7}eRt&JgF3A4srIkx*dy7Jq}PkEDq6DE$1UhKL#4PD#5ft#%qi*vvsn zfN|}}Lot~h!}ISkYa#iD#*OH=^NgBVulD_<*`NJnEFbr>2W`#0yjE5m#v{mB`tz=+ zqFWvP&_!0*0i%M$a4v?p*`|kKVbPbvUpjtbWvq;YbB}8`os+Ic*@2$7;A=6j5-MK~ z{>xEUKXf5TW2p7C)z0p2VNsGNpFY$G_CNY^j@X+;H6xM1>qyK7ow@jrBb>?^^%t>h zgM)#mI~K|`66GR+r_lgKbo|_l=oCv_w&q3P;;+jhYV*R_pJ7$!&}*4#1`k}W8aZGq zu&jjCU2qDsRVO~9yY041v)x{Z#~7O$mu0O#83}jYZM|F@eI3QqW?xvm$s95uF|=u# zi_dSYQhXB7=`oW((V6{GJDSZVrsFtQeneTVcCELl{cVRmGBd5bWS=ERzJx|iVcle+ zX27X6c5`0-o`7eS!D0kcVC|3rQ82WKRR=KTwG)_XvVIAN6*r-K>pRJm;^5E|P z$I5~z`@$6_D+gCRvjJ~`<+^qjR+U7aiJcSv5@Co;u)8noh`HfnN{}iCBd)4 zFX;(j>6}1r;9xfLlpk_q4s{c({rW)ZDIvl^5DAjZ#A4R_^>@cxP?C}l_lxM*iPnV! zzvmDmuXEH0n0EqTCt_`mZp$4razLTDPq*el=t8UI7X9u=s&Y0h%sOdH$o+CafXFJ| zIfPVsGuln_UGt4(@AHH-WYD{1)=}jCORJ)l?GFXAp>$*M>*gt$eV6j1wxH$suI!wj zX(pMt*=37n*D{dnzpm*5-a1puOb}%a>WrM1)1>OgzJJ|$C~zokEjqD>2JhC}VL-gZ z?*pT9uzX`aFDjg|5T)~VyMj&Hzdwklr>k#_GyggacbAf?WEqAH9Fm4Ie`8~};`e*| zVNk6T4Z%nVxL0-|Wo2dEon1D#aGTrPCXZki|1@U(_Qc6dzFGB4)uGGFdZrN1*MBe9 zP`A?}C~|S9e!@a<9G?~4N+f$qoEDS9gxJ1K z=;~&z3uhFWb^qa)WaGXgB&ywj7&p@&DXZVKL4v*s_a z(P}WwaMRdc`O%MG{pwOH!OYfXKVqe$(q4H=8%uXWZD#THz+_>fG_UC~eayPPKHZ?x zmA~s5ga%nIG5ZtO=W1S;BqX-WHVtW1k%ql4h|gf2{YscY_$|85%ccs#r!b|utn`bG zSi_4arKf->_lA^KoiPaB$8t$g=ah`9d!}&!{-{PmbthEnJbr`Up`qX_qq#_wh8{6 z?1yaHa^ZV}bP09uhks+hD2%NG%L6KcnB<2FbxBc%7`2|LUGjLQfVe}u7>Kr(P7Vv^ z)crUfZl2U@ZQhElnO`jxyAY3SWStlUjgeMitrwPG`o^kiJv7UJhnON2(yQgD`jed zqeiaSythB@r1nnuFQ1ETt$H{Vg@%T@-h@{0Pt9tFf62kk;6;lG<&$7efyI=_Jdf5IT;xZNa86l|Ei7dIB$cch^JgU zmjp1L($WYxc*iFv51|q=G?N{A7ICo*Cqh|Wvp8hq`>BC1G$IdQAEC-Z4pJC`a;%sE zJX*nhmcmyA9QSA4+|~b2p!!@)g>&Z8E}sHW=7$1nc>EL);wcm8exs~c8LS6 zH&AUgHw?zPuWJfJbwfNm1Q00lTk8!E9B!;rF_dAiUUytqbeXjTEvs63OkICT+MN*) z8NMUkzdBMk(BVQEQ!Tr?=I|o0D;fETLMQ2Qf9aNg9yJIZJ=uU%q9Bpe8v0YjD##wk z6$)oU*DO+W{v#(h>?XUd@$MqugFD>LwlP+Bl|c1-pf;zHq;q3;9Z^b#@yglSQZXkfLt!W9-j|fVA4FhSOEjG%G(FcGaR)N*4 zZz|QxMI}S7K)Ye}WDDrVa6^vl-*JKKRZ0ugKlWjMP}c8txSHa#JGalU5(q(iv3?TA zA0W)Tx_qC9_0H_xN`1Zq+@@|lKYN{6ED1u=OJg>~f4RpL_TD!T`Jq{zZYaAS+t1%F zj67JAQ&u#Dh3u-h()^v(b)GZ%k|H&w{vyW3exI*F>sPkbznOm5t4Dc)>>Q3*BYiFY z_xv6PwWUl7W6iZleavqi1#_SP^MJ#8XWGB1*9Q>@e$Ra&!hLh_UwWe zg>6fXwENxx<3K@v%Ia^G?YM36S9x$hF56pi+KYroCs}yj)9_uoVWhI?s-a|dm(G)a zT2WRXVL+O%ufh3IxS(vbl*F816{N%9>*`J6TX~XK+)*AQU#w#)JIj{&bv9v^-Q;|H z2>)NcA&8?m+lf`H@usOfn;3kdERQu{CAmU!o`i^uSNO3kPI^5&j~sO6HFkMi9wRHgPc^1 zxjrtMmtv}aYuuhip^!*jSgi5l`oTpGg}qi`6vaZ1&)~g5|1g<&z_z$XAJiw69`}9yccIRfMX0D7Gfn z!qr@hJ#9i1wXXqQ8|`1!7tfJS%av+I6Di~KnLHnKgy)K48OC=It|5XJeOJ9kWmZ-4vS zrp!m4TeohRfdE4Qh7!uMr_95L4=vB*?C}(N=9yerkR2sV-|9P z3m!JK3H)il=TR4JV%jn2Xe<1Plg>F|nlAW)?X_#y3==oBAOme-<2pnh3@V&g@Fn=3 z{PM9K#7`g)2?ZzeyxvLSTuO@nR+@ekF!1no{c}fSK4w{ z%UF`PF*WDy-7jhvl#wgVR=RoTfjm7}3xG9A^fjn7Y2*3~d_rHHj_Da|Y^;**-<9|B z>b&M5Z>pW5Rl1x#(ux!_YjVkGOF0BTrlW$lMvBz5k6WbZp-JS?EN!+YZHrKlS~@ZYAIEhISntm1KU&jl%Ng`@Em=7Sg_S51nZ39Tity4tXhg_sg%;L;wA{}WBc z1>29FUBdlI8xSCysjlv?tffyDR@1H3_4GjRUQHPhHR+p-6;fUBu%nO-AJ&_TW3Q3> zGu8-d%o|fvt>UqzDdw6oXfnxMQ$?j4mnTR;rrogM?=+lyu z_Vp&(BN`GT7kc(ZGlx+1lC0jXS@wtzI##q})N1`S47Pu;dEREHcbuT3?36xwT-P|g zvcg9yJ;R5~;q=>_3MU`FHzAZ&5{{@R4=;2KQcLaOW@YzprExvCbibUxKcDX0_%tm) zT+v-_ES=IcS5QWhSMC7aX2YBwkWsR!v}A}hW2TaHx3!NAD&{7VbvE=H z?|)r3Wzf5cxo36Ht)=&$4NN00RvtUDG+h=E*%bnOaEEsXXBWiH)59VKJDtQvLu>EU zCuBUkXVaxoCQldarTVKLp4v|nM}fdj5eUP_P7yl-^eC`Unq$mB;f-SZpZt@5VoG^e zuA{jAgFpBKQo)*^LB+xEoJ4-dMJ8EV8g|Ru=v!=b7FK#XZV* z3?6u6xX}Txf@{~V86DGJ{ncOnl_}v-*fCWX-YS3eM}K5Wc)TX?U_mJl56a;kfnnf( z{?Gqd*^ONQ06+jqL_t((?ZvR;>t}rBD_=>kzWQqV;DZlr>M7RQARprheDF4*9*iAK zO~pDRtO0`I0RzU5e)JwD~yo#m6kni%w{KTw~~DyV#quLp;m%5!WX%QlwU;1eGV3>Saxj zioP@*lSkL&q}C|W0C4X?OV4HUHkNltTe7g=I6|YW(Wgf;N~m=%Bl%3%fiXmDf1oI$ zQa)UzjHzM^A!v86?fs2{!~$jQK-d)f+zKbyxTlV8`Hk6|q)6_~gxRFT<0q@a&FTct zoi}1zk&JD>W^CIsg9LUSq+M;u17S=b4lS)L=^Dt_?qg& zjKbQVV=6O9=ky1*A0ohzq@Fm+EQIg2L7BwuxF|cw!fCsFlz_p*dZ7mGbv*;KfO136 zYIxXzX_rU2a5>&(HfqEz47`XYB! z+l<`H*@5xE_$X6~oexeh)6mhSxzX0D@>17&d zihR$rLrQojF4{zy2*VKAAu_^!XbHQfIOq9l!DG^%kqZ1b)C~P&-lI40jD$d-Kp@`O zkKv`j&4{n_@jgJojl%wW-}|0uErP0vsBY;pB6S$Hjm7FaIU|%YXSV&0~Rl z3=><0-py|-s^NK*r4E$pc%@(%KxX3XF&Hovlp8NF*f7=7cfb2xOG6P)8j5}t_~g0Q z1Kt$Zu3a;a1!(Yq!3zR|0etbQpzYi+F&0pc@^~j;(7*u0S{pCF{IVGyFlb;ScHcTUKd~Z!WXP9vDyAF6+H)e{P>PChSDOFo7Sv*Vzs=rO3g% zL-PZqmii_J503qs$WvJ98YwHt3f?_lWf^s~F*ayZ&z9$w?&$POok04f1?^$shdn-a znyrhM(+1;So0a#2K_Wl4{9!d^f-QL{v)t}ME`!Hjsbf5YPw93?BEj zh0HSEc0ze_>y#&=k93UP{^>&x0vdhQU4whWok zmL!q6a|Ad?rITU|dgrJ=)6;!##N{9BOG;p09^1<_5f20&1A(nI-jBgJitaB0D6~-W zqku-ajWU`ki%@Q(l>eRI`5l`wi7)Y?#RGw@PIUlqg!v}43S!n~FMHo8ZfuV%+htY_-zybpa2BTqt zx*`Mufxvzvzzc^SK{edW$e6mW&)mkwHIKDk@U=p2uAHuDPpSJY%W>xKuUfq}fGeqO zEkwMgFStRvBc*19Kp+rs1bX**o+mK2R`q3dPDO3e%P+^hbl#V8oO}n}to*FOa|_4i zH0m(6;>lwP@mwQHRi>+gLY^P8+B{g)dLB)Adg-h12Mfz-d8MUkax@0;yr;Hd2yN-* zyrnc%RWQyRO-Um~ExI43^5E-q6t&c4k3+Oc8@nw7>_o)Ey*c=Pc&Q`zsI|4Y1!lwB zVkgIxXLeFHA=+v3b^?vg4^H{Z;jHMhW2JS^@93;f1SNVbyrMb+2EwPe0d8& zKrEeZ`jL5LX-^y;5J0vel*(<$>q~%8Jc{bzWtW*Eu0jjBRMgU|k44AlQ~=$Q1p+;5EQuu#%0(r2?k7H=ZPxGB%dl z+Z3wWvaNet-Q#e}_q~h_9vIdsU3TrWF*oNsf}A4mr{*E$i338w0-C<;+;Ihs)nxhp z^*{GT#s!nd3gu^Q*k&G?7c4mL-U=Zwuuiop3g8R z(XNo;l*M(@%Y=5+8hWK776@#GKo~x@Lg$F*p>#&sjb{O0<+DeT%}t-FlJG7-36J6% zML3FUl-grx3*kQ^m37E$xAhHXt7c7GxxyICVoy zJs2V|{5UpXLOS(&Ti}J^hqBazob0I!TK3Q&qsu|vY#g&;NWpspV;NpV&|`EWjXK#d ze83A#kd<;^!*z)9%>(HX0)ar_;1Hn8*?6PK-03+jWIl*%f^N^?y z-W)5+>$H_ww9oi&7;~u)6>eet7_B)5C~Bad z;bYW-M}>}O)SfK)u@I$m>D|Kc@6q(d>=cz4^kp9Y0g{>GPG^=g9HAcp5HT+c?RgVw z>H=63Xsh~YU|juWOvhSL$BZC0`;H3u+3um)i-}YLiorC?81aX)T!Y%XHg%BWsO+J0 zfw!%F7$Ir>>2|b9{fq_OplIK5H)DSzD6F@Fe^93GIJ>1-I|6b8CrW3?oKFd-GG-e} zp1cH*>75hBNYK_^ZJW-a!qi~nQVn)N?NMVNsp{FcQKQ$2fWbWjZ$R?iZj(9O(=Lw`4+@wRM|J(SfGo#=o( zUL)bsJ?F%@CPoTzB1VEKh<1cP7(R9c*U=(INza$}7!>#-pMa8@G^R@5) z@S6C;Km5b=Z~o1{FT+sfT0FY3k)wzjf8RG+O=zDl!1=+ zuoej~%isIn_e{a=#sJ!ZVFJSraaY*G*Nqe3`ObF|-WwP$@XGk}KmT)6=KsCF_xB*{ z2I^u%(T`%^1I7jv`vmsL&4!|%IvpqXEP)4UY;I^E52Fifl^_dk#u!0>2i`e&Uof>5 zWyo`bNtqw@^74)c22)mH&|&&1@WBv*aRPdHdT?1t2Os!*8^9LN4)CMh$jKgK3K&oZ z?--^eL!NJa>swZybHoNe>gL>m4fSJCA+X2j1b!a8E#+g6$374U1oi`gJRYelr&;yo zsoGSk%lMJs7E1N;EII0PXQ|jpi<%y@fC|WXSgN#JXk$BeO!=G*_x~#oY>xVsG zptohnT#-T+0|)B~EG_9-5Cx9?OF_#=BY4i$wMKvz>{w78^L&I-JTrFr7ZIw_2w_M0 zBU3RleuV(VZm?YcvC3>1!22nV@==za-y%ri(KF)k?3~m0`?~o5?7dlYV@Y!F86-de zB)D(MWM<`7OV-xvRxg_FJ2ux$rfV9R=1Ha}ebcdd(90c-#_YC6>Q>+GuI{SJtjc}i zz5^gQ|DVTkAOM0SxMpVM2@+?C@bK{P2#<*49*ZY`@ptvP?`>yF;T>Ozt^8HUtnz?Q zI-@)+)%L^l^}R4ZUI~+>!B7d{hIdbt#aWc0Z6@tsf{XT%F9k=zKwQ$hV-MS6=E62qJtP#)rhC)BsH+p(qh&VmD# zqfMdWb0_TK@FRS{*)^WGdUPm5N5s#)dvbtsqC^h69==wn@`vX~7w}H_kD!3JeL^!vvv`Ntpv%{=pw zi{hOhs}MNXgB1v@T0p7qyz*Iqq(|Dn`OR<4uz)cJ#Xh_sJ?OwtKpNmr9q-`b&d+J^ z6%`mg*iMRVrZ^7-BLc<*H)3FrfgV=85QaZ#a!-vIZfGHlEvRsOz{3afiyvX&@_5ke zd?Am}L^yu%9sXf>VMPpi#DD^Cp#ulsSbc)Ag)(ruF^=KCxVYFlql9x#FzP@H#x_=@ zK#%hTd{PXebWIiTln+^erHXUfLXRVzLI~sp& zXl2Kmes!5aw8^M^F^8Z$)6epT@<)adyn z{@HnU+5%{oZ%nf@KB0_C+-+*P$Ddzpgn#+Nx8df@WVnBGHr$yV4>S4%DNEc;a&*z+ zD|0AZZCf1^8t^!-h`C+A{GDhHV<`H%oIXZhXmg-9&Vlaw*(X6q3D+UP?82{#WHs@q z_f5wS$gj4-M}KiIjLeLL zK^Z4$xS7BZ&&W}1@<(0~96PXse*Gw#@CROagd<8h_x5fZdO7SI9rr{)yI#BE0q7CC zg8F#v$=CCt>?76p1>}fwIaHwXNXq+t;ZB~tgRej!Q94W%;oMQ2-@0`x{Qckmy{#fZVU52l&o7+F1R*q`d}rmrZ-4t+TfyPR z48TyVqtM6bfq?);JcbM2IRk?{VAxm3@e)5NMALTvy$H>7p zSSa{e1;N4H7&=h!lO|~a#}8u-@a~`ifAD+y;Kz|RX~193(SUXiDaRm#0Rkffcj$wD zXaYC*+<~7oG5YXKxEmOtkJS|zEZ_k&g9if#^?-Q9!9g2_63;VXpMCb3@s*j7&_-PN z3Edc8$UDXk=w;g~c#2_z?a7D_PFCGu*r9wl(}VINK0jyzAM}8`+c}@Q{qy&n133rI z&jE>`wRPNAR#(D$V|6C9>}dk;V^Pi!?aP?Dv#~@ zURdAR4lCQDf3O*Lh2!8rXZZ}su%UZs)Wj_FzEcok2dQPEh7p z+(>4`lX?6AZw!m!aaJVCp`LlkoGH@uY=#0c!@|&{B`^;A_TDK)>NP*|%M)9g^(tM@ zSQh55Ju=rT_93ui;va&|JW_pZI}Mkxqhg)bzmqW1i83E#U<~2;MlJmMp|&M{p%v)z z*r*SLPiIEMtUB3>#78znGk_R0oMn|`X%I+DQcR_CiHgFaQGdV zD|FrD9FcSci`O(aM}WWg-YvHB(5}#3e2D>EJKznn zgz~s2+=-M`_VnA?(l`cT8q}sD)+U#9V6466K{9!;7sA%7t?=|u&%^6w_1)UMp|)2K zAAEi@OkbC7VYDLNdF;q)+PQu8jSc+{tZzrkv+=Mc%q6yqda!2_CCLLFW**zflv)FN za~F}z#0DJ3R-T-?=-Ylbpm*Wo8Gu&L#8uL5<0UKcSl$_bjRb#AX}n6>^0eMt4&;W9 zcd+Q`1W|~itVThOBAV^4P-df;Mse@TY!uKaz=3x~Jqqey{_>Zm@COG_|J? z)c>r{DEgrnS}_b@d_ZAO+N6boAAgkh7-W2<2g>-nckh~FoxETmL7`86h=<{TGbbV-zBsJi{l_;GGpAq{S9e#DPD|2)uLWj-};Fe)8(8Km3`v&`ca0G{9$g zNgkp1Z~yjhjlUQWSW$w(0wWJAJ=lf}0|9X`%#dH6Nz?NJ95hp&;AC4W=p^6xvuX#P zz(0%=;N%%tXagtp0C;!-eqb z1tSbJLN7SMkKw}&Dqe@6DR(&sat>T32Q>2-g`SjgOKJma8`_d-p%7*!X045~lyfmW zM*$3m;Yu}>OSJnKzT+Mn@B zP4>jl&^COaBEg{sAs$bzBtb>vYMO|ZuoxPjxOzhdh8UYT1&zfpbPQ=V7D|koR-J6t zH*FON;}Q%NgBs6NDkFx0VadJ}t9vz_VYag#bcT7@9&Cgi&0=Nk$Dj-!1rA#`O^7KCh2_0Q7~I+o^_{wmCmMH^Mny<}h7a;{UKe@M=EQmNojZQJNK_`V zRD8QYaK|BF1X3}@cfCg4o=Q*8_`9;tP@J2nOGID=Kz^us)a}kY{;_82$?|3q3_gaX zw0T(c15@h!-T8VrzC)*YI&m0;g0T}sT7i|K5@Uj%@NeUHeDUtzXq~>DZ-yiBiU+?( z519_dAsHD}A@=lbveGPvN6%&WkcDx1Tjzd!SPWmzm%?mS-#~&veF{9LN#t)xzXA$Y zDNI>G#@1O@SIB}@EPX>lfH^Yarl*W5gY)n!zLR!Wc^*jt`O2VUIUNakIRVZ?qxo`@ zxLB;Q9z&}K%IloS``m4;&upf%`pM@^4u$LxfU zZ%$Ju6mK5VD^~RDgmSux*P_^o!czjOX_#8AIUIJD>f!hQ@|C{v*TPTNe;mH}t53uA zJJ(F7z&sz5OQFXISs&0DqWY5wM7&Z@4lcpOHeH-BgGfRx@+%;cwlj8Gyh~sdcG-^9 zoU1YA=o2RZi$3W+ni|U(udJaVg2%XQ>Mj<)*H2r8*e9D){+yc{YoEnC*q5=8n|XuW zUUK+dBFBvtf(Lihe5{;KCHqZF0iq43#P2Ud-txT?=%8WJko-9 zckbM=AmZVm4?_ZqeOK<|4;{qehp_-72gV6jSzwUDK{xn;0Uo0SXRbgmxbP<&BLitb z2gU|y|A&A02ZMuW{3tUF6{H1EIk$zl&L{4y{vn)a3>0krg>eGf?kHcZc)_3oKI#xO z01wR=r*QbW!2>vGB>vz0&EJ?Y$5*~Us~dix0|#vGat`DixMU9a2+~KZ+-Vopo))#u zRdFbG^VUZB$n%m(dNBD`A`~K+LGVX4f|3*XxV0#WFs49C zqp?KIoSt2=#i|aChyjy)>RGThZqrd@K5?Y3vF2XA5w0&RhN8w+Httj^L)w~aN_LC& zeH~;jnEF9YO{kQuN_#-hgU!wG$&LB&>Fw*`=E7{48ms8=^LqI6(^ug)51)sB|87-j z%9wIe6Jpd|)P=<0z}w;?EwO|mZG$MW*#=CCHMU=5tgnKR@i?wDj$_2gH1Eb*XMn)W z81%MeFw&!J(wD|r!BY7($rB{9>cI4V3B6I}h+>dFnUzM41U|V!Ql|+falBO1vPGFH zDZxwpLq3oV#|1qF8Qt3KVr5l?05SfpFg*|xdBMfirX;5o4qyro%Ha<6EyPLYbI<7TBf_ zjKqwx8{gVjVu77-qQ-Z^Bc+ZPnp){9Xh7mLpl|=;pmxLvqoJ@@2v2_ZBGkA4J!~!Q zhX3Wi{vuqvGZlt(?uW5Mamv-9P@UEm>J6o*`r53=O)W7Nfx9`Vo?8FqH ze(Psc88L6jhA1 z7?1HAEU4s_khOd5ns`x3<#=)q9Ls^+@Nq1A-p)W83qByM0a0Uu0-SR?@I&dGDxNWD zxB?wG23Ew!aqa^vFg%_QZcoZ}isK|$YuM;XG6&7jg98s~W2`{A4lLm)-+^&DfpudA z%6C>OpkxOY9Q=6306;t&^vaKh*5kqxl=wK0!#h9Tal|7{zmpc>yhA5p;KX3zXJRel_=)bca)(xo3!V?s!f1kX+Tj=e;KPq_rw=&rP_~{I_yS+q znu?Vp7;sp%0Zpvd03Ue3$uqG20~dLKZeVza*F2MEnl5Sga=_*;=RnSZOXPrL3^_y6 zB$hV&8kyx+D0M1UE|H3N6!qcuiC)rtb%~$C`(b%~H9UU)*pzw0!{eb+s=lN7&B@L= zaIqXfIfJ6Rq_NMa#+q9j>tSbaC+yUA!l>k=AysBwO5%MfKS~8nE>ZF*Xxy+7mBOfK zqS`2i3qsr6sA01<%??NhLJBEbI+M?+iqTaPD-YT}R(sgC6?(TeQSni{KiBHk?VVjs z1X&9=?|c}BnZ%-VkY*>!;r^YuFtI%tzTXI8_tjq5(Ik-r89l0+$MNCy>F|I2Z@0t! zn=@frD?Y~5o^IAl;j<40!=h%YZ#N3z>-A#LB9Q(av>gYne8e`$p)7~yY2!XAg^dFM z$*pR8!{^Um*w~VZE0dE<&=F0VB=hp+ipG_3n^?w|kw;P?tGo(QLWn(z2l3*q{6L9f zpKf^N1r>L?l zh%fjpFRzA28ta00Rug+}-M-cO_K2}hceOFB5+r{(>IY}xt*xynU2=iS5yc)?40f0v zP`2`?9)!4xM`%>R${-+x8_K{!K`X}fXXPoFI;)JbIvz`%ZxdH`k^+WAn4lEIFYr{P ztb;b-rCJI#lN-_lUcMLu6@_xeNK%tgazOWjwrPW|eYTU*3~l0~oQ$-iK-FZfz@)e+ zt>7n|9L8eM1Pi_62;(p2G(N??Gv-WLmGMKk3so6EhD76_R$Iw$c{l9;=fm)HWg`5= zo$2tUl&tcWY-+MuRo^JrroxQOArIDe!_%#r&emy&=b}O74DCaDuBwg>X_7}>{Mg#v z3w6~`(zDfORCqEEgNP6b*TdOeCkozTeht6g%zh;APB^v@s@bjtfBO1QCO6kLQSsj0 zyPBY)`YrmX>&PA7Vog0GzZhgGnY^6c0+ms6O>1Ads7A!Y0;mDR)-%al2ZF#kO#siaq3`U{E zL9T(5BpUXZ0=^jk@r!&%S~Aw_&XZFTamTQjIbz#NMcP^Y;nKE(chYR(QDITODDU|r zjlh0q*@8QecsFS`S+$|ni6do4et~^XDdeH$S+kdMiDM$epxV~VzAZQ{k?E$(c zo}VkfPoF%sE#KJ@WKNShhP0Y>ZyQ_`O6Kel3XXSP2UAF6i}DN4Xfyc1gXn}2fLP&= zN1lh~9JnA3mE<1o9XTIB{Q7l{ zllYFKpSZ+xcs`JD)&L8Se>5G3hqyKfR6~s;4)47juqjT`!Qs!(Y2n%ZohJN%ciIdf zi<>@^c8bgKIE=po2X4~jnLD_7W)KMup4}1daWOjhKodXkIL+Pfj>q#xIL`A$n$!VS zynqvf2kElP1LGH~Z%EJcM7-4K;dDi;@d~W}@aYAU!spL92XYQvJO_}wIBwK6?Jo38 z6KB6HS(8!xIsh-8rXLc<$Xh-%`E->cPiFzFNO@P(#}Wq{n{xGsl;J!tIS0VrW95h~Q?1lZ3w$P9PWT&QC{{kx&b)>k)CCu1HSv_3RxoJ|o?kSwT z#c9+~%IM2K6r{`?DUF!&YF86RYyyTfB`A{k&_@Bv_H!ul!MUgOc6WD78BFWQIE66{ zvdXz-C=$1}wuDz(q+Yu&3-Lf0D{Cd|sBkfgkfr;YV63zQp_!Iln#S97MV z{5U_asIVO~pr8chaQNw&X-gkoqFC9MVi~1BWl@qrg~>>);((5I8NA9;p3La*>Ss@1 zgvU>xtBi)iO|4|!+TK$6?kSuJP-CWqK}or~x^BuBvbn7l(hnXyu&rvZ&BqniD4}+w zG$Y^Of_{{NC~@j)lb=6-sfk9T!l~~WF=j{fudQupJJ#>b*o9)5Gyll@*&PJ{*VPxO zp1pp(6rMhNCIiS;n4g={M1z|6qOwt)=X@9p31&=C-K$nP4+>>#T zd(OpJ6OM)%ReOR(uDVD=-W5<-oD5-{I zq~JS(+1n`WMzrN4^^<&1zYZir@CAh{GC4dvqVqZ`CbJtVpS4{n3Z=++krvd~Xoy;W9Po1$N{(Cs@)G>MV%7o(l~>a`)tXGV;$`V+E+9PLV0Xn!iA zZ(HXGajqoBxNpAw*5nWR@7=p=Rm;X`qElX>A=$!+Ks|HA2kj}iFbvY};m;&Gj2=8s z$ykWua{cwH#wg{mr?ht^Z@6hGM^)G+_oP25nH`nPU=X!*1%o^zzsNBJmCNkP5Whu{ zecv9LZ%E`H{lWOS@ThHhsWU8BSJuKK89m4wbwH$=AqA!E$VkQLX7_qog5$%3kmsH~I@;oI7pF)H7|5wXzL zGm#Pbqn^}jsw;{d&$FT{jeY5W`degqbBmoQM7#1)*c%KRyE@a8wo7JACMFbR5Ur{H ztUcZgzu)}I`k9(!`Gb#dh%QaI9UTe7AE=Dyv^rvRD{Q>j3fpU2%C~r(Q71 z|0X6UOm5*Uee9NGi^-n5qcSq8UZZncTVE5uX>(*Wl#C%e6}3_5R(3VHf-wfNN?*k! zRLX%gF@`Wc!DvZ2Q{O3f479Yh$m67Bb!BLy2)rQ(jCPrXng!UcLNBvq-+w%DFlknv6W5YEy zJ85-@K1Rr51wE}mQhXwsdP!8S$PVq(ind^;-M}bGncL8&gpULt zq~i*ISFqC&<5GIeBk^IsGOg6{s?y_%i+hL zEQbI7U@I(1d2$twmWSc@wv4dfKYFa$oewmwYnYO>B1H%a6_k&R!%$A5Bty~hvi{N( zk*o-L`QoLG*-*rD799qTnc2AIDd)beO8L2uiel&Q{`bGN@_C_jpX>L@#~%ylfZ<>z zGUW-aD0=_zfB9FV4JGl6RzKgkd80+|)bym%sw$6+akV-}3Oml~LkWa(it#OqS?Edo zNXmsWJ8PSb!V#WhY+z>l6U~%;^6ZKDd7zp26H?~vNV&5dHdW7?s>`H<5o1_0g>P%z zU6$cvON#H8D^d_^1~CdYl$y-+g;qPGPkh?m+0wat&t*)I>eTvd)nX}3@7}%}#z)6h zuN&d{%1bGySIuw%6TmY*CLB_H4@=S3P+fSs{KC?MAB+!%gnJSg$=k5X?B(iGSd~0- zE>A@YQxPrvV_N+*9fqpKu&y(2me-bSt6sh#z*CfgWK1+HNTEES=hdCH@OtI7Df!4R zio1$rpRMGsRj-8|8BdQW%QID5fW66kCwuofR+8aG-I} zq-L29%AoU1ir5_~-7)UOEq4R~&;>d89$ofe1lYxl7aNk37cXDiHy?(F7cZk+VRS(0 z4^L5u(q`^U5zMO!rM0ibC~~WS%XNnO#p9^1dR2!bcx| zC>ay|jR90PM%($|%8opCo z@SETK)@Y6sC)u7^^Z(VBBeTf+e<<9~(xh%buNSyn;16SSmQ=!6!8_xX(65! zfnfzjJhUTE{%l1@OtSY{euJEk5#1+cz^EactMOWQfvMRqAWWh?0^qLJIwf zDQoBHUtg^+Yh{#Vs8J3hyVdY~S#qp=(a04Bv?{R4c{}RA2kK!*?bUDp-~TjY=%)I~ z>vtAZZfXzIc2&#OFg`R9zW?1L@qa@!%gCj&zVpSM@Z~Q*54XNt48x0RUu1t<`g$#V z_5XYm{`LR-wRl~#vZsrd9pxg$(pi7RU6n@v7>GAES7bo=-sFKgu(7@=9*vuv{rS&d zOK#W!BO1%$H@X{)fAi`Wzxnzb+tmXeJkx3{(x^>$O8OSQ_D8{p` z%`H1e6$3r-Tf2d%-e3^q9M!MB`jh&x*H(V4SiJYqJ?jHmO+|br2!MZ6&#zv-3a?+i zHhwYz0Dsy93^A-!K@Q0$eGL5(1`jj3h!4m!^?@-0t8w;+qAt$$Mu-^otRF{>#&Jic ziOaYPGvKo7^b;9b=+lQ~sBV2dk(|okfQb(ZOO#9Qat>TP2Xe#5#q;#c7-{?%+|U3q z;GknX%5{fzzaJH^+yA6^d^qsq0}9%BCXP3X-T2P>ei9wM@H#DNnA6*hult=iz5G&K zCxxf5Jd^fu&he#mr+yya{f@(xhV_E)<>zteynU;xUT~>jH%J;?^kBOPEAgk@{Sq!tj5@tLSK4!+Xb&O`|?rUcJ#AqqZOek;qS|UF7Wqv;ONczAqsfo+dD_x1R zVWuw9`5G^tK7FP$`ld~>$ZS%SX5T(|U^B39%fP|P-mky;M(zKAlr!5lmgidoCZE<|w>I={lls7ADbraPwx| zs#QEj!EyJ_Z5wYg?qpUtMhS2~dHO_n;~9V8WfnTy!!kqm^UpptB`dSlQKn8!Pld-) z_@LAwul{KSEhuGC9)TBF${B^#jT_eujtM*DH|_sWy0rSwK1!_(8x_#3Qen#uW(*fq zN6J!M!k9Jj;ra6?Qpz)(3Ib$@i6&^~9t+!YiQ<2Qnr0`r)8cR02 zHqK#E7;Z(jUs(Whrr2gonI=la(G#Y5Qkp z=0%rQo@nOqYppa|k}P3_z&HfVux6)^RVHi}IW#;Gy)XZ%R&wW$Yx4k{U7EV9ujNF-d*@_~VZPZOev?2|xae zA8D1w*S1mv0|rLa&!n7XMGC7on8i&x*R`z9pw@xP_~o|ic)*vr7wq_f~}jF&_}*8jo7dKdKo{e?#T$!e)SVUVrrOT$9zE1{NKZ|^4`g8*R$X7X zwrI2NYpQD)d>+4eYAc~IXdt^Y>I>)92C#l>Z+lne^-`;19+@$i_LsD14`*ex5DUcH zy|5~|d?|w!#%zo(qcS!&C7VsHB-_<$kEPcyt-W*RVBlE1zNl4;lcA{9iw*UI%dcOl z3^rpMZ>vG#nW`1F$+R2mTJiNtD+l(q@MC0WENsXKiV>=y{um>Yc2%-^X+)_w=yRXT zs5Jdl6A`Agb*1=S(@L%Z<#D1gX{!zD>Z5mM04{2~tl8_@7V@69gT0})k&Q)U`*okqHValJL9#{7?09zA+wvV!3nqaXb#`G`6{B!-%KIu}Jb_JLF+R#d@T z8WIkq?;e4PyAV$hM&q+(#hqPSXJ|eTGHyeh&d7|HP z3T(X1xLb4@f9)P;CbFGIK}s9jCP941{z@I82RChV7XxDFs$d(MYRE7$5Z*EQ!w+E|XF;vBIG+ zT$QqDH;ifJhUOxMHO&xzy~w2T8N{n)Aoe-vipQr5sf;89qT0~C=cNNwv5DNUHkit-bK1LHyz z`ryW3GCi$w94<+5EQLrm-bWdSqQ}llk)n}t=!TS~MB;2ZW|hv(&YB_&1q%xKbhR*w zSX6W}RW?bJES*_DCB_q<9YBgz6#+V76*wMm_a#c4kgn zMQJ+`DW@p|XslL8Lq*%FDPv*0Iu>p%-jsnsTdYa>hH@1kX6duN6f0vU1ao^)3NOOM zQNTw*S58Sxh|MV$pXqu`ZI7$h&N-y zqDRWj>vPwoP}O;fl0#O542VZ#nl(Nu97LF?YQ@a88)15E%4ne6>Gwt@+iYV6T@%&G z@PV>2J3SX?$s_+VicO430V{(LMv&|Ci(z1RDjaA`Qr@nFXOiRc>b6#cND@UCZ3l*o zlK4>(9aG}toy9rvay0B|-+fs_g6tw;A4Qz%A+y6ptkTywM@qbkel;nSH>Kp?VGAL( zEzmYLCIgJhg?w|ikO}YUivFak(G?DI{itGc4K)~SQ8PY1CPTn8Gu$B?6FR^h*+gzo zEYdECVB;U{r-pIX?ojtpv{Ij=i<8QzYpfW#p{?XzJbq+y1J9YsjUj@1$_#Pjm}h2u zW56UGjGFKRIht0T13zb?=wEFq2F<9nW#T0=jG~ln>u%k;8UFCcKbk>dbTpp3v$%NO zRuo`peXW`4H^ zO54H=ecA+!s+^rOqV}EbtXR##HdCh2SGp52CQN9x#;^|bE@}nS?VCE2M8;frgyD&@ z8B^Jf3#OtoDaM57+T1mbt+h3j#@MRqx~q+q42?*>ONITgpc((PT@Cd!FqM9X{tTH$ zc1N{>@%pTAK%W>MSCMHuB*Bc!P{?^312PgU&MjKHtUj@}Mf@7qim9@;h!ZK{hGc3+ za!I|xA)6RZM@1vs){RN-?%cRzZ4kIO{WFs@QtGQe-B;b&9trE; zXyrgjt5uq^gor=L(7p^AHBAU;mShyYw-CPk%P+#GU)&F4Q)6N4m9|nu{=~l>Z5LG& z-z1gxqwlP!-VJHHx&dudrvtv!fl|lRM`Mtp!r{1OkM@2A7wQ^YI5uURVLLhag8>4W z+ECw#@ro4?W$~OolD>;_nAGG8>I8;C42$%q)D!ABed;Y4DX8bPXY{8SKQK~YjHdsI z?Wf8Y9_gLc7#InyZxT%yRya#!O{*v|dhDogWwkylUunac$T4K~TU&HWzR3seKIzeq z(qCh+Ko00r*F-1sz!-^151a$?=+R@FJVL(W8Cu#R4`Ybx2KA#@k<64;K09icM59m} zy{9b}WSSqe@P{!4V>BzMkT2@JjmLyoAjdcYuegF7Lros^!{9(}_;`!T(Hb5#J~U$d zXf#qsLvmG)wA1uxJfRPNK1}>0=%VTA&T~Kby@7RlQyl4YKe(;}=53^@JKtxa@how= z(=?rPd)(jm^^>Nt)u1saPA0Z(+qP{@Y}<{^#%S!Mv7N>??tH$#>wW<9&s^ud&)I9O z{o0fNtL_~5(8oU%zRi4`TaUw->7HAtS;QL!#>FZT+qpujL5(7aIJ>hzXLGO5)^96J zl!+%BS%`$;=rqe(<>RH-^&{O_42#RB|VsT*}8~&xxXej+9{~$d+bpE<(UWi%<}THrrwF z+KPvZ#J~ED2$dNr;kA2<4j40&LJ0xZ=x<}Yb-rO3>bFWKbeo;%6eVS;da7eRs>(m? zZSg}&rC0f1Q!w0)rJ5PWR?T#o7v1|iTjFsAM{R$9t3*J4slL4U3V1c$|0$PaQ~%T0 zc7`5s&F%$@;e#Efket6RFnWCMt@6!kd_d+o5SWy))fTo&n4N-i);wvmv!QFtOPUR! zP~60T``LmhqxyP-W!kwq{{uVv@~HqYtkGYkx_hG=kO=(-kY?=8-_D$;wOp0J5C=qQ zj0$jA>ddFIPpFwg!hxb8afCEx!D;Ubw*?)e8Z1q$Io{$vuTLFhnRACrCJ5#?Z|*$z z)3}+{uxh5InO>op8}h+KMzs!2Y!>)v+>16E{4U^mh~h2mvRPb^ioD!T?C zHZBZ25XFgz0f}5!7LIZ1lZftx41ocD{`MDRQrH6Q3lM<@AQs9yAv-0xB2E_zH!8Rz zD5ua((u_@ab{2GPaTgS~pVa6+rsO8H+J;d&0JPA+4i{n8mSLL5A7l<&otC8H0oHht zhMrEX3Se(7tG+KI24m05kb0qvy=obf4PHYlmHDyhBl3Sb$Z2;+hfpdJErtmH;;DT&Q&e=j+8=%^`7O7-X%~OjotnhNdDkBSh5+32mcsAb}@EuOVKoRQj0uceN8% zK?xvPIf30H+Jjva*LV19+(3eGd-eZW00UA;&L*-100z$1qY|~xx=g50Vljjy`2%~6 zb5vJC&%S`bSwqdEZ$!qA{Lg>(QIz5pr~Z|xm=MiXSu_7=d=Up)-AfAmEg)WHTh-nn zMNBRNTo)i~g+mjx7&oM76e4CaPNX|ZR_3WqE?1q8kqu+t!VC+dL%~jwUb*3yFd^~P z-5b&>-f}I3wu|Qpy~?lk(|W6sVlnK8NlhhTSM^dbsWGUJyiUyrU)7_7ngd&h5ov(>1EGCnGxoUr9MDML(Ap@B9PbQ$!ShCxtMYO&#u*l0{* z2&qk4re+1I{=ESfg%hPY1^BgAYr|uBM`nW$aXcAQVnA5FCsytP=XA14t=b=v+JjdP zZwbc=+zZK=`gFbBYH4SZ^unT0wmI|H|MWKy^*i zDXMwRz^nRO)M+DH9Q`xI@fX@XETvTQiOU?q1~!ET)lE{~+p@_wV;Crmn*gUgV1Gc6 z4GDC8-dHruE-$*E#b*Mt3BpP~vdH1`uS7oFU|0~cS`kqkw!C>$4y7*%=!cq$W1J%g zGAvJY+FyBzsemxI7saQj1VcG7PPL{lgGok@!i=%ELSE6gZzR}9Te}<>i1il-{d>p` z!XWzVcQ}qzCJ@$GR(I01z`8%iAF}w4YzXz?{~}PXoqSB>xRSU8TmUopS)yI7;ISHW z_|A~1d4rhzE9bai0w}(EN0|Zopzp)(YC2SLQ<0=`Y0gCdg^S!nA(}iN`tliUW0WVE z1dfCse?L6hp5!lBE5j>coS} z%2>f8K26C8`VPC?O&>{e$7MNh>mGoO@vUVD%o)LnC*l4rRV)Z4giAfXJ0t8A=O#H&#VI+v0B<5BmnLD9g%u6)gc=|$X~r5=AO(b?=> z>2jjM&<0c%Dqxl5^{s^|_uF)BGx-D(Zf>Q64{81#VZ5P%6wTM#rgk;%I$8M2K}A}| z;PmQ%Fs$!&1qOAEnS0= z@l}q0xtX!UX}bvGJ`QT)W52RR%OhulA=0iX>7Nu33gWq7Si}Xaxy(tOew}bQNtND(`oyJqHHtjljJuB9fZ9Tj5P^`?EYptX9s>>+!%!$4h z{xu-TL2NV`!RS@1Ts2v#w!Ddgr4c(+PZmVpALBSSpTc2m#Nty&VrphYtCIvIfPfkj zP!sDVLKe4Hm6(@4^VyDPi`sk%n(FS+#Sh&cCdZ zL?;WOvMcV?-iK7zE;ZzOrG6&lm>{?>erUr;;2LtbFA-@dLSscKHo@^Lqg-7i(jLnt zwh+?Yo(|1%dR7+u0MWs)r)JfNK+Tv{7Bm~DMJ}5Z4Qta0s^?&@`0s|nA0W)=h`Ukj zwpwe^)apY8E^L5Dsa$=-mya{}bEl;x+K2YpNW0=_l^#`-yc_44T>kDi$BV85ap|3Z z6`!FgNu^f&csoLJ6;ica#k7S%9Rn`m4F3s$t+}XTzA$B!8p1`%+@%_~6xt-2FGCXc z>aHUUxmuos^n^!iD$v=Hh}|bU$`|WrhFDS`A_NKUfgVzNrGuRdF&*KZvpLx5rMjSa zuGoK`>wobcyu*Ojfko0|nxHspS@R^JSYGoqp)d16OuAe4+m=fG<&{Sm(;;6MM?gQ- zNAcBP@qh6cBChW{!(r4ulb)+l&cC-_|A4g1v$GDT1*U)EnY9fFw)xEBG93>z-u2oI}MB9{kXnl z#8{PDwTl9e8C~Nr9}PDnM}ba(ZuSz~Z{$l~i|a{12{R63@7wV>VTRGjRJKAU|MRH+ z>LcV9HXz(mU2!?_fs)Xl1oCw9YIniv>0}z&mV##t-|V+j*&~*|PYp9PAGVj1E$_gZvj#;!FhEV-UxU|VW0#f%+qz%P&)(oy{Zdd+~vfEAwY<$z8Q5f@COtBoO zV$~)n<8IVEh*P;YZ0@md*9v6`O78SJTH84#DJ8I6b=>sFh8;M&&aB2Dk}CqkyYJsN z@51$6n3C0VNv3E=?0Q8lauGr=j8GMq5Ba}vqme8&=|V`w$ytfy#~&(GZ<9yt1Euh* zxYjyw;(fN#1)bH^mATf0zxlgoh<5~`zK!mI(`bZ^u3|9zZq`F%;i@1IPYg2!Qx7nTP@zDc@c=)VP06F6IXsW8Gy5V|N!j-h`Yn;ddF z$qx1#^qsvY&h0vw?&A%R+(U6(`Mz#*XK}`oEMb%Kx1LX^J3!rNTe^Rj^ceh0moz|0h4pwn`RXA@7KOt8IQmsPvbZq zO7JQcu-3n$Y`9B$A3wnY6`T*HCT{^lqJQ*@>uJCpe&&(i~Y zCc@R9tC?0gtKGr#wbo`S$5{s@hEnrgHV0K(W(yj~(9_bEl)|TCx9`8rLScr)U#t*V zj^Q*7g|dQVoHt>dViWRGRIzc7&G%ZgxtKLPx>fR|J0Pkdn%i8rn_6VvuH~B&l|b0L zOQtd{FSgBlDiarAEi7n+YLPE)-c_BEt~}r)gw9AhsL=F=$$p~Ap8-krP{N4wSuQg( z=U&gQ1N)c%RmJ_UL1c$eJO$;+VS>hqCu<9SYcmMeyX*cc;;gQsxWiOwegY4^^}nqG zTc=@2-Mxmk-bKj2OIUGISk~@VClJp|@YF54mwd*U^PIO8NQ1n#(uU-&x;S2kLBJ7u_PFwkZan2y3E!yHHc@qCQX zN+Ah9BGJt&QL&lV+D$IELlj)^y>shgAFyr0yo zk0cL)sa50VdweM^n2VQv&u%SYxNFoiroMBb<-v+vthA* z@g<4@eR{bNLfu-BCzW>d)xbp9>Z~{{g4Km5u}uWXw>q}(*pcXf+BLYY9q#3RF?I@Z z6`5Jp7PH7pxO(F+pQ|(%txwi9@*g0Th4-!@s;eRW=mU2P391N`CowE?Xy?ETW>x65L}N5jw|#)=@cz^K z7l6zO#z^Fdv8x|HZXov%DW}cNPp0#VnCe|YY$mgvA)*_g^Y!t=MVZsx59BPU(D$L00bTWj-d;8Uzz77!rpr>58+nR<`M zQ!r0RNsKlff#&b8{#59W*t;?d{|gtlQ?FEJiO`$sJhJ)Zk!-yNl;TM6-)A0M3rE18 zZ>fNL79xF={F;W84(!vB6CJKD7GDwnn1Ap0TZg|I5bxFNTc>{Z|57v&#~W2`;dtE=zl zqYpF0=RH?%QVV{x5dY!!EAeJ1Z?K3%WNDEt>*vnw?J%1`9(K;G8wnSOh7{y$fIqi$ zvT};^HXMh5FiGH!G}niAW{sI(azHq}b=X}{-Yd5a6ox&0@OH}(J#`wFL9cswa3nfzJtLvYqe&JZq>#PMk?t;WR385cP9?CCm8*G-Eu--FDr`=injlnm zt!j>UvI<&HHs{S{C>SFb({|Vdgf<)4fbO-N8eA<0^63DUnENU1voTSW(*yww6j1~d z@0GoVucHg0*a2KCdL{xiVhZ1x_fi|HC@5Jg_2F!9kVr82Y%B-V=&*@B^oZM-~P!&-80GAdg4V1R)YF&k9bXLET!Q~{`g zYW3XpJeGCN+>woN5?{OEmOLIi8o@^i^b(_DdU$93IRWx9ZgK56Yxtah?}+%cycm4l ziirB_nTx*(fD}?0vGoufe#aD4d%va>EKU@T1aaz@>EnL%PQw^1j0IL%SH5-tog}U` z{<7IbHkNwn&QBj=Y7d42sP(J1#0p2<$x^L-=7e{zPN($Hd?rZ$z?U93wo_&DISbVyfH%3@F8HtIUS@M+My}=o&jC_GQ z&z4=oF7v0OqY$>g7kG!F9r2=`;-5RF4YMsf2MTgLyhHOAYngdB8_iwEiSf zHP&ohoFZiD=N#>_!Hcoip@mx2>QV!hb%y~R0%&z5!Qgaqb$kqHuq z^+lmPLa^WN-1L{GSuecPgvw!5IyFW~N_o%!uo557cjuwkCcZiJ=32UsEuWP>JpT1` zi9Pxul%FKsPsShm*Aj&Pj-pQ{K#Gc{^WGBp zHdgj%3dBkO7{?&CMX>EXHrGZhKNogXSmZmKurL!ls8fSp?{Z!;qb-UTFw&$7unLm* zNsgCkT0{j`qJ_iK3Q$|Ca1g9Fl@<1z=+r~q4qoD(n~>To;+;e`Armm1wbNHT?S*d2 zngT1cowuuo!tz{U?u)Q~#z#des~^}4XT!k5r;oBGCkZ8c#;}%=3<54nBqfFnR7FU6 z{3-Vnx!f;TS%ib5vT7=d@u2EKpcEYq~{@fy! z6N!i-AK-_@A^y#j=9#FXU{-J$s8XMTiNu2q90{JK;#nVse?3D-lC8Qhu+B}i_?CAk z1(I)tcZ{FrdtUF8B%CQ+QyKxqNe z2RAtKS4h>eFu0H7ptfaBM|5xt*smrk$+Nv(s9FP`3@Pf|Ypv9rSp&`}Zb6%V7ap~H z4i^#sX7j?|*#7K#n8+0uw?+5dO;0ux5oIweZiu7rmdv!L_>GTf#n@Cyk%pDRwT?Ug zuX^QD#rPK|B08|x3^V;f_9K6xIu?OSKAVP!-a<6m2Q%zRB5^!dK-+O755>$0e;QPO zbtbf~JBo5HNw#r`8o-mRij=K=VH)>#KKdevx4&{wK&4?|1w{Jd(g`pZ=PmG$gO`Lx zse7}0JO6i=h7gk&Z5a*@aM}A>>N86ABmd5Q)g)Y+81DeD6;sswg9rh7ZMs6tIeT=1dBWTH)_+=za&BDb$4WZ=m_Up~e)wXsPQ z%G6~7)dt3gtF5NGlKuqoC3!U$2X<;gCT?Ye*dZONFpLso05t8jIRg$hyK^-{lRjd~ zFp2&PGv{TQvZRP;_)fdFX{@2mrJI1S+It^i5v04Chr!)#3zFtR6}mIfP5VqDq?yza zliWBq93mKQ%VbdfHq0M`Wh+w-UTbEc%FH4K+lU#?$h)IRI@8LF(duKHL7fe1wH zGoWCOWt+#9rlOJn8VMWrw$S(>75ousj5U&;h9WJ3Mz%6hWJ9oW9S$%vU~XJDzyy)- zd=16`WWuRM^DeNBBxtB1AhS#Zwa1DO1Zi5aVP71X=mg#R)~pZB$L0`l+V#f^?PmIs z8M3Lk_lk6L)Y=h_$?4slpZ?*CHgiIZ^kbUQj?Pgg269%B)LnMZPKkcl6+{0i!r9y( zv=}NsvR7|n&7U0&yk!@bU z&EpGw$Z}<=lgnH4+F`Uh-{PQaq(_oW^T;E2io`f^EQGr!Cf|Xp6D|6_05+^Y^deK$T3SE9Oc+2g!=b zLgFsUmLD2@p6LX4cME@D!Z zm{y1mZ6+g=IQuIR3EnH7;G!u5JmEfT#GLfwvMxWezp#hj&}?TVrQTMj=3{|-_E;Ha z+||sy5y^rn8(s33A%ogWu5Pai=^5sy15XA92!Kq5Ln&VV?b_j)A2g?-AehUA%ocdWYAF&^Vi zX!3fMj*Mi6Og}{j>Z8JUQLiXuV=M}rohD)?v>>3D!aknL%PBu3^qdseE>cVrVqVMR zib_gVcjx3>{V%EZz8%0 z921U|uq^zu8{m2(EYzRiF@+va;fu>7hjp+&P4GG6EndK_66cMUFl@Ja#(V7|Suyer zNGUyRVX30MZ;^xvNrayflK#i^M6IZq3Sz(e9j>LncTvOZfYHKCGZ-K1QVbc(M4^>~ zvybGO!h<3}gfnKR7ce5U_x{H^^&eSOWFoO7>3AhN1!A<~+?5(H1Z_;#H%>Td`d^m7 z_$T+^+Y3=?Jvtq%=~nUkj@RHWteV)n28odX?xU9aKWOUV{m46GyBb^sUt_Rm7>^pP zO^I=lkCSK?^CVG_CNEHj?13WyxSb_=*VLAuAR z2vE15e1C<*W{7gBvUdzE)x{!#m+=F>p*9<&uSrMtbh3|x(5+s}A|aJ$|Ic9k zuhQ29K_IOAptxiHJFwK@gZ9~;d>0^mn~))xn=nuIV;cxBV1+p2fa~!I+FbZ*(E9!z z<=A7s|GU*B41u)GC<-RHHyjBJXcHzBI?U2{Lh9_n+urL;J3U{62j1UmZ1k@nLg@Tl zRBta)ICuEGJFMXVIDE&(gux+L9TS-q)k!V`Y>~SBY#db3_%YwlX~JvA-3KC!6wc2+ z5Sp&33h$=Wp;P+N`cuVF(}DXte+l^WkJN7_h6LrJ;&7xg)$0Bd7IuS@JFDdbM9u^Y z!Earp-8?%n&yLW`;GS+hcAxZhEO7a4MQ>iu!`Scoqa?QcP&F4Rz<1-{Iue!LViuJW zQz=9~5F4`>9xyJ`s=6T7tkr9WVUs@I4-HmKZIsOnO}obQlFo`CI!d+5G_|6J%B@w@X=!l>APqg!BY(BboVb*Ob+f*%3q(vcSN z&Hj}Jj5@Q^3i7_=d7>>5pnvLJBjiDI*xX#`K@F4NZ{shGGk}_EVjB(wSq81I84)G& zAO|9Kb{oes8gYuVmZ%{Xn0JTgAhdC%r_V9U^?8R~ZR2U}?zUGeYg|fa5_K9mpj^PQj*kykEg#`z-`km7y0v4q(y$M0B_m62Ie%?t zHL#gfX0Ph;=1DA!FE`NKQSMws95>~fkdAkh*yATt+JS#-Lz9w|_C)%G*cQO6b@bBx z9~NkY^9sZ<Ox5Cd%5IWr28hdEL5c_ z8s(p(8c4z@pE?{wVlb<&LcBHDDd!h{9DVG^NeQ_Bx&*kk^|dI%6dyrENR^!1X|*TE z;np&tY4su7R1U#Pg%^#;$t`I~V%jid+9MWXgM3cE0KqN1x_1;TYIcz6*QA>XQqi=I zwi0*@;A<79DCPPz{{I?-xOAXQjvLJZNAAVa+g^PpeLs@xi?B3gNF@QDJm0sHD9HcL ze=3|6@p4&A_O4%Ycqv6A<-L?lTWZ5s?JNYRrFEG{{FZ6izG9d6dD;PrIzQm;nZry> zldQ~pGUOUXQqJZ4N(1R_Fatd-I;n#Uu?*iF)@39w$QtW{nUl{1D0u=+7k*k(6scrL z;TK$;Cwol5q2&flO9@6?6SPMBb*`+E!0H6)VGT01hyTPEEI;*Yt;@}|tlEEu(E!}p zR-+v|^A2^kDr(HN_mWKOb0<@-mPeSz>2;t%zz$kK9WMcWx)#3v0IH0cq zhfgcvChUWA<^|4>Ip&F-4@f{k&1Iu*2$=&jN-)%|Z})iBh1vCq;XLwRJ&fH4Lv!s^ zDcOr8oi)+$Nqx@e>y#dZ!0)WcFo0ZimFx&+8o=Nzb8K+o^@MF7=PG~-BT3b)!C@KG zUTYt~5J1gLAz_^vVl+@|^zb z5=^`VnzyT82J0|^VSAG%rhC?HRs!dxmh#&7tC9(fZ3EXwea=Fzygcye=sRX6kc)=n zO%#VM!sY^}P-l=of0(J_vIl5z66xaOKq<|Qw}r#~x(qV&*<2(l0^mO>R6fa%Rfn>YlyzGP@ zAOH5*bpV| zkk7O8DIIpewq>6hKrw&(H*~&*?iaUpFbigQ&|5-9EC?dAex1y0L93LkB1?mtN77V# z@CgnmQgwU4+q#N5GPwh23*3?NHC;ztffTPv#Fe{A9@EZgDN`Q~$lPfCOxY$cO^@z@ z*8^QaNGc2tH|=^hl`PaqJw>=N<79y0_f4lS54^KgG|!yps5k2<0NG)ahny3V6M7RL z>1kN9co{SmO@1C6oB$-epX6e$FAg~6Sb5kO-CGl)>Re1Xe4znt4CyV`*jhtb@ybLy zfRP11osni3;lQL!f{@^tw>ggEIE^zzcuUo#EQjnXm8xvWuS%Gd%t!s4X)Z_Gz?qW8Fl26VWN-C zSwBBs&j>nw^H1&xb_sLu;nwMS+}kC@T4eZ0+SamcB9M!mMJk1I5lMo+RCL75Tb+5H z*W^HXriqPg743?)v>sjA>0?y10i8p{SZ=otF~6QTD~8}MDQ5pJiU*oUDxq@>j=m{+ zB=1vlm&SrwTHOR8(Jy+UWbe`5EsFsZ+FhJQ9*>UaAEt9uGH%SPPg=lsYVF}g?tTJAaA7@Ut^US1$x{^xeuPd@s^7?xB53lw`pV}(vy9!!(4wHKYpn7?@Ng`I5S#txY#;Bb z&#^a4GTA&>$t708`nGS~qm4}wE>4}T|4`3OqZxq&B9xd)cJ?YC_1p>@ZAv3A@(0MD zyjS!4^|m#JgAe>wJ->yyUw~9a!Ll70M>}EM&lfzb#TZI|{)xcGtJ;n`Yj5uY#iR!L zP(7-&5{LUtSB|drBNx1YB#8}~W(+%dv%SoB2#TM7Vq9e&S9KZ5$iM%> zQ%_Hcgv;iSCKyQUiF}hr``a)TREFS~CNp*gUiB$35H;AE=3z-*8usAq16;mt$0y2VbEnVg(RYmgIUJ&t-;m=`meYY@#ahg{fjJ;2I0gZfy8n3 zgp7M?Vucfr{k!b!!F1Y4phk$Hu`{#Hyg^qG=TD2F;kQhOZR~EwHJPZF`#?7owidR5My%=P zi5}D+rS_oUgciK!apJx#{==_}>}t`WS4-l%Dt|Qc#9Iv#BIsx1z)sPr@y_#&l}4Il z*qd0d-=XPmzQxg}_2exOcXqLHm>&L_H=_XUvNbnb` z=mgo8$+V@j0j;HlePF%crc6bAqBoR)W$Xwi{z%aYDLe2#;Q&GA6mu{J8(?Sq3J+ee zTy2f4nA}nGm%Il4_wc_^hR1PEhkLv_;@HHJsCJ$(+GJK?q-TR>=$n9vw&*q=9RkQp zX0tIhh?qqzVM+$0vR6gI;)i>yoy~UVE0c>&Jm}8Lx~@uQV8dJ@9%4vB0_v-WK#h%P ziZ%2m-l)Cn*xy%SRxN_3+ZEL%85Xbya(1mM+tqnwv+FXf&!ZM1f4VTbab=W&cr@+rtFU zcRmD9jxbp5Hw(s)xOo45h*@0)|H#ImBiKR68Ntq1UiNKa1CnY~4@7y&Z799!bN*9hxavY8TMTrLf@+Q)0?UIo4j~T=JGYMx38xVEj-P4Vb zUZaSXG2^Y>EBd872H#UqjzUXJ-42pXXUyoU%b4#g-Jn>{~U^lU&~=UN^Q z8eStM7fg>!kA!zNg5$r4cOtYawsy5G_&sHGL&Iw?fJMee0D|tJg@tO( zm$~AAi8q2sh&5t*2~Y@cyN0-{dI%@vu-Zl6k;`L$7gCVwHnpG}AeZh6 z(2A#+ceo%AniE9^zamH=KczDgGN5K%8T)zGn?(OE{^{gsL@2nU(Kj@g|0Y$Uq|rtp zDrn3Ytx7SGf9%oe!w|9Wj!U;?MyDnQUdJ|e+QT<#!^uauNc#_(?>X1I^fnj$E9cU+ z3)WDBP&8hCOk-h17BbC;4U0a&{smH;H+0n=nrc@oZs_6QSN`qt^II><>+r8=G;F@N zoD{;)_Z)?VmG8=`ImAF!Skk$+Z>(kDC>S9)<1I+b{gJ6Dhb)v>XPHgtaKg`PD1G812GkH zOYN*^hhjCMQqk;!qT|KrU|S#U=`kNc+CT^dI|IXqpZ5r$Q?bb8$!i((V*X$zxQ1GDck=_PWM_9MoY_LV`%IP8oLEKp5% z6+S3q#s>@R%Aoy{&)0r5jZa^X|izejIXxk!p^i`T-fI}E{|mSX}u=%j7uBZglOufBUlX5#=UZ$4$p5klY;l+myL=uu<*kFtZp%5Dw)Dx&JU>f`&&6cE8vJdX|~ zSN*>Imo_CzbwEk^6|zsKPaIFjq zm%_dIA+C%_WzRaG(}*jrrKMy*gWRR6^T|+wK1D7lIUn`^+{nC`IPoxRH z@cM71Q~n!rv)}$C-~YWCCdygD99XT3m6n~4!`wRbEO%C5!;6l?V(qY( z{T4M77a%sZr?n&zH|6qy+}6>cQg%R^m)DybYb*>{Bx`@c%r}1lj{DiL;h|}+XfRQ@ z9YGMqq=zr+$DaX_9Qc?qbVfTCP?b3EZr(rg*CM@}zf|>b0B-2%E6qf5Tj#<4513)p zK_exZ34Ap^Fqv%uM12rUdl{kr2|TLT`;)r@w;WirFUQNp8Ky2Yrkx=%^s}BSrLBH; zma)pq$XP_Gof$&oWYBqP$1ZmN607gO2@h1AvwlN3RMshgn`5W;aCC~+$G>6em-SEz z|H=OtuXS;d1rsO6){LaJ8pyf{N5P1fZchplIS3d8$)3z_SAxgHG!cEpsPSLCSt}gA zJJcd@8ho-nl~;~YFX^jaOv=)V~tkkCdqJUJaQ zyNPL7rRQ>4)QV%}h>`!N6-9EQh+|~zpNM^`0dbbTo&(j)<%9)VVXKLkNfIv4M;Fr&T!BQ= zC9d+<96BdUr#N_gQ7!6EqR*Vwv9YBGQz(X57#F_MxQ^M$b16OK_Z;8gWg;n831jDU3ymcjyHsA9=)-Kq&9&Kw8 zRsP!>baGlAqGuzP+PP>(biAX|)-1` zbOptMa%%W%Ol=r_5)pTxOiC*+#8A!!UqaI>|6u#fUKVCg4DUL_S~L&SA4CQpwS(H< z>B3}#)AYKNg(H<5YeN7vG#SqLC(^v^+(=`!{uFQAm;QaM%#c57`N*|4?+E4S05>ij3%*N`;DgxpkUK~S;- zPPdvMekkK(T+B}&1=QZw#AdHhMs_|Nv0{AFg-;93*Y?Iz$Dx_d%_B_8qu!2w@XKnT z7b}wBY-DYm>(rba+7{D1fk#$6TNieZusfNs-VMV7^$Hdr*3Wh|a_ok*bIqx5PvoE1b1Q|47iKs!ris;8#QW34a zt(q&G(6Es9U4k%rlAG>+*Q$K2dFcmdV8755&Q1ONSwJO!*Y&^cD%&LNkOmYpbfQUf z+bjN9*(R}HxaBQ8iBqyL@YTE+w!g@hqG(eUwOqe~1@oLsW)ZuR-i&$%Sr`8;9<`A? zFV6|hZ_);7XUD=bz6=V=;SvWM4PtmxTDvt{;&PK5F_`ZO47nJ)#|0&P1Ed0%jX7LH zjuv|x#TD;+zXz@71Vd2b@ZdG4p+)sjRYK4`>uWCs=5#<8D9zm5QjOJAh5!cW8HUrg zxH$zn#I!ld7A#E5CZ1!4ItrWPs(;lpD}AK?mpkDe0B6UWC(}}1QGZ?T0KdPe=l=WF z!Gqs22ng*U&S@=*(xD=Uc&lNkd8BA`(-Jqr3sI zq~aKm&(NtzYnJ4Rv@dHT6E&;#EjA?DxXv$+YYWI3A|K7B(1LFXCL`Y4aB%zH)I0s= zpvT2)cqO1ErT22?@Kj>?%h6)qI2)rs&)d+s>Y3MxXh%_v=)tq>NKN8Ykg0Qk3;C6- zm`X~R9Ql?TBVXb1_SJLF@8_PEtM5-sY0Hze&)mE!-Nz*i)sJlF?S}s~kr4xcOa+}1 zILh4lM`VR-$X^!j5Bk9U-P#c0s@TNg>~NglW0Jxe+Or zLkl)Pc;bO|btR2b49!exC>DX}a<1*Qkw7`k)vr8l`dja1KnW4h5AV1N?_!(tn=*9d z+W{kV)$-L32-(s3sK+0O5@B*;4Y=39LWOx>ZG=i|HRXdVhJ=(xDRQ%V?}5d!*D)gWHaXcS6)x=4DvquqC4#gXXt z-C2qI(cmcOIpH@gh9Es97cKlfMUR+I9L82R&p+6VaWXt!O#VIYe=s^KgL88o*?|7fn5uh^uPr` za(~Md>hezjND%)QUWGB&b6S_v{AT9GWCusj_^HGaNH8v{eHQ9?!vT*TN7q4`*KVgj2-o-xp5*&o9T6f!xcsLOO(K(Z4ZjHpdc5$gVzi!~f}H?Z zV*U9iUCqj4mdUB^?BkpV|I3K-L3ieiWTp$lqHTUP$HmiOMjySr^ngpOkfHPqdYU?~ z(U0Eoov>_P%)R=O^zSX*1#^i#BVz|Xa&s=V^P9-CUVScF=RIIt^FD+1*8U-hO_X_? z?ybu+7`0e`3tmXXD*wcY@ft!fFnekb$d! z564aLA86%oz-oI+<>Uc98Qhg1+V|(46#ci-Puj*x`Jtghu#Y93JFhCuyVN}Nb#7!d zT>Ixj4Bx1hrc-Gm0h{-&C1LZ*Y-xY2J|P z_P~jI4|puSMN(J!W&UKm8u@qAvvlH``y4)>ktTDrplqz43)ZV?0&P^7!0 z8_A)&J3rj#?DyLHJA40nuK79Zxu2Eyx|hBcfhig5_umoWEgp^yH{reYm3HF$_x?nI z2W>{Gqw{@qH~jB|LOV%yAnJ@n`1lrj(3+dARzL`WDq6j1>uMnX-h~j>jF!zn15ls#M1rWzAg} z#j5THayl#&4qOu)HK(SxCD&m+8r|rL_>Kdp!4l*Rh%+~Y2i>>k%d*{QULmPU0&m`( zP6j1dk#;o&P9@S_Vk1mwp^}HgRUOE+R^4XNgx5TrcDEG5IvmOjsfp6?+;Z>B#YrK2 zLH@6N|I`9_09b$IoKj$JelpO|bQ>VD<+Uwbm?<_0DgSsoZWsCX8CW`!J4y6}Tj$g8 zyjvGkH`ts;*qm|zzU%1x!Znc8uQf7$XHIjZ_zzQG=l9E@C#j$D^Ti~2tE#FHTQ&t5 z=?J+5I_5XR8VC}FW)+u#y&;A|fne5lefq;}B3iVivfK_Fe%TfRE+9u#@WVdsfrRFM zbE*q1E8W28%q5lz$;q%OjX6;G#_&2 zwhJH#DMx%`bmIOMp)a zw_~#zmTAQ2e32*ICWMYwQ}AH=Ln#7K6PSaGDvsvWOOMHN#QO)kU#r}sV?m!eSsg3{dtwlD$c4=5>v5Ti(yR(Y-R-Cm z@#MfVEs{E=HO8~d@F_-lV>v?yzn7rRYjfVrRmZ%W-9Lh}{H#GV77H~4zHv2`i$ABn zajSIc5OOWAd;w+UH&c8ZL`Crb(gE7yy!$ZTc+F)owv#`fAor6Mb{hc>Gp)Oice=aV z2`WME9$Y=3)5$US9x7g*O!2RXn)3aqBibtrqPV%KD&8p+8VXz4(?PJgHw-GPN`v(P zS*q9hh{lx`0a89Qj<6;JQ;?A9oM_KYsCaS*doJ9}bLmq=X}Mq>MyRw#%YtVH8EU-X zA4^+4$xxr`1}HU$6h}9!bpSN{ zpw=KuHLVnzK7+w@c1`Hb9EJZ-s3fFX*TnIeMN*_oe(e+YYF?!N&8!r7F76kE?Hm(7IsSHpN0UN8 zbZy)BK0T-p<)?=H;q61Uvt@%;*YH{k&!q>2eire~ui{ylRP4`*`V-Xjo;heM z#=|S%@cF7}{DkTH`E?LRhVwny#2IC=|41(9bYN{B*|yg&6Eey+%H~p#*@@}nNn|xv zN$n}tOY~Em)Lju0+`>N-J_N(_Jl~L)K{jW828&Drl2tBqU7mN%*@N211%7a1j?mmi zd~o3XK|SKa$>(LRsN7N}R3dWfl5Fkrj>clUsSNPsb80};;+p;RbT`4_L)bbUo47ia zBNLA#LP#lID5eN=bziA9OHngFe$l2@M^<>$H|BOR>*vBQnXD`&o<1pUZTr2Kf~Tqb zf@wl|K*tZN_h-5xJtxYi^W`gL1VpL4;kc4FiFh_=!m_JhUqzrJgKrP>+0VgE2u#@P zw6(Qo&u+`+^N!|Iy%Rn02wl{M9Zozmdq?4iQY& zg7-XWlT5iT^`Bx|E{i%Em*0CK=%5mt$ix;hNHf_?2FC1Rnp{RLrJo=W2UWI(eyLgT zG`&5@Cj(V=dLssoU-s#6Zg+0z7mCd?WlzZWjftx|1qm&F2NyixV7+~QUiB2N<8b;P zI>C|?77^XXdRAchmnqBbiu$#F%uA7j*V!M z`{q*Cly6Q((9X#P_t0%c)!_1;J1T!gbS$3Md_Z!^v>>&D70HL1Ge>+6a5Hw$V_QqhK%WxfxbPZDI9# zEs~5RH@1!H?T@5K+lWyD=e#<6if*`?*#{pl4x6pcW*lu~ID6(+1rA||4_^Bn@wFls z$Me~Jd6hDXq9%-KLVkb!v*v4TJX@;dP3F%k#$I3M&*fdNDYZ1paP&CJ2 zZ|+$~ZkI~}xF3@9u!Vg;Y2LPYC>c`zy!19(B^imkRqlCQPw51~ReR846KS*Z5j5Pc zIjItJ;HzdPupf&9wB4Ib>hqMF42@jY9def>>8795 zO0>sidO2PE3##mIO!u{x;Y6IrK8kw%^~TDBk0}Rm;gIz=$5YPSSip zqofzVT}`KaHee<<1=yKl34c47(Nn=gc3RWI~_W%1jwFM5n(^_ml?I&XaD&M zDS=g>8Tb4JO4nv@5blxXa+6&o*R9Kv_}Jdc3xwA-QrNCJzOPF3A35A#m+)vuoREmn z;G5a&-2Se0a}YTI-Xg2Gl*uSz`}Pp7z@d41oy+-YV2GfW4KN5&UI%a{(2mM4l}amL zoAHTMp4Tk3j&zoOcn_;cOECHco^StDjX&%CzJb%eSdCFC7&>Ac_L`ceMM+ut_{Qsx^+k{qsT-{s%sH@*_3m;LyZqQ_%&=t5$*LRp#%i@F5O zoV+LK;IQAVqDuLKIHXAxk7T8_3CEEqTAoo`~ zlfGANijzMPA2ZFk8YVStx)j?v1B98fqJ|C3Foy+n3(+0#oL+AH%_DdP(Zs4Y) zt@sqy7UWH;0CrDQu4~pr$jAaKfzQRUhMd}?v@M9U0ah^&|3*C3T076thCz?{9+EJO z8i3}J;Vr44K6rKHvX>dh+C{7tVs82)mzwfBs}d|#iq!8LLK3JHeN?o9hoML%U}ZXm zXmt77IKwNHfmfcHMCf>6cvV#%(VY8?Jn(TG@kL^v)S8-}y3@nFu%-Xl-L!V>D7L!OxkA{ex#D1Tbv}u}f6O@Q;rq0(aQ37=JzL8+2 z807BpAW&msOi}3#hRw&*JOv70DlS7lzJ(8X)-$H>I9tDdP3f{mjciE?>=Tjb&l`@m z=6L!_9ka$RrhH18G}k#)?!9VtI_Yh+H6N&F|QrQ{QAqjLDTyk9EPnTW`+2QS3 zok`ob2*il|cw3SCi3Jn7q!IwDICL?Q**C!ExLfZb-prHWPlyaU+FYPW>K7*hlYJ3* zLp;IaEB+=JJC5I1g(p}P@w)~)O7J}9oT+7e-7O+LVyCnR-61EtMp{ubtROHBUI+A3 zK&_oiz^^5n>ipVyNF#rFYBsxa5(deB)}!L2Km>k1c7$UfdaTC2H}GFyGs)lAT)M_( z{rH+?%tBptzMlFcgc&nsG+qbZ+l&qtteM%oJQp;9-8U9%-bOcf?JUCFTw$@jFTNGL zMbaE^H$RBST+zt&C@T>H(Ozy0Qd5)Thatx;=`l-%KoLI|gV<~Oa#xRid=djpV-HR< zYz5Lah0A(Q`(p}D>|h}-QAuT+(xfpvP&@-L-srCe>{(fc;M~`n^3pQlz$fLRU>1wv z!r1ejogGA2%*-!gsD1GW9lA=#MxH0sP+{22+=XQe#VxoaqGRkZaI5crzuf<9E%i7F zKPZ%Wi;OX;RqM18-lddB&>pPvnBv}fJOvdxwG?9q;GN@3;b|9Wvn}f=kX+NNkdx#K z_Ku7s?&iNlchCNq`9T{Gh`l~|r3KfbKDJ1!+Kw*1k%n%yGLMcq#j$A9C~=%c;ls@r zBAlvn>%KHWpADDC|6(<66X-JnE{pvNal?C;l=Z8rVUnmCd8wR{Gi;9hGW{MJzSDay zHn)FBWZYPBR1*k2e+!ZKtDDR}D9@ydhitN#PmOfdp14Io>}HSfoU%+-EM~A&OIlm-^V!o3)kpZbO;_|8nX9f# z*>^3KaJ5LR>A5yH6=Mc=c+^qdc46Rkq&dLw<4eGA^#BVl?~G9O5TxJQ|0_fwe<9MX z!=3pE5h<`mf7tVQQde&YoPw~jwFs^@FWnSrqNS4c>o0Hd7g8sN9v!mj0~Jgxprk|o z_Ab6KTnx(8N&d&faa06BTePIP_OsPl)oh*+On3k%6YZnQ>Ow zKCG&0A-W;U{el1=NAH9;j!yQQ&k$^<(=4Pfh$5zBzZ!gaJQV9In%rl7ww*&Lin|;f zAWB|3VL=!EfVHk3b^%&*eM2OyrDg5yY(-yO=9yz@+M z{?Wvw$YO}%db~Ts`@B?EjWU7QlQieYhF$Gy&W7N zYe@ME_NF>S4ej#B61{AdFP;@9W-RG?|F8kn{QG9Qs?BgYz1G;6Ud4~?u1X6XvsM9$ z)0H`;reWT9wDelTkXT{SL{vH$MH;vPB>_DSf8?2b?6dNV`hh^k8(gMKbV(#?A*~r@B21m0)4lYB7snkAAi~P@B-5QXOn`;HGkInNv5=*I zUKS6Bv{Moi|Db1r{z6Q5G@?dwmAxa9HTF#QzdNdS+s za%Xkc2}6|Jo$xE1laWdrTQ%dJAQuiCLd5{q=#$<;Hv(k}N5+fkIXYVg{iXEK2x8ow zJrgR2v5~WUhG*_4FpELgiEO{52%AyTD#ze@*xYO0VD zBJgOjHdiEK_xr!yiLcENGUU_}fP-*C7_Jf%#CoT2A}23V7G+NX6at6hkKN4wmp%Od zatRzk}F$tRTKa7l2zAzMzdOU zA8?@^Ea3Q~%EtR+t<%znfd_U6(;)nO!I%mAhy2#`S7s7h`#7QXqN2wGQ>GzGn=O|Q z2DnpvGQ3Z9h`QDo#K3M`O!h)0Utf~DBF|7{Im98`in!!QhW6Eq3x5#r-aXL|xYlmh zz1zYMl3Fd!dRD>l`-Cs1oohS^ycq(_@lvWWKt&ye7k5gCv7WE>jxpPF1!Aiu&;?y; z;7)LwG--cF`C<1_zLt}+f}LyiAk>OpLtXOAixMMEOUa!dKYyAfIKLptV#WD=w%tuf zsK5?Uld>v6cFM?lkO}SW?e&rcUF+_t9pLtPpKRB>X$Zh>`~0QLhlrp;qw8C7F>(uF zc{|l&N9%5Nlm92tLM}`c^HaRUJ*ZpXGaU=Bh!h;S36!EcJAFRNcnkXy?M~opnA)=$EK%l{k1Ez@$vBA zIwFP>ziS>9^tY#5I_~2@MKIK_3Z_BX7xzQ;|K*#p+B9A_6p>645q?@jN+Bjt76EacidrR6q z5Q^SNsCPd9bFr5?W~Gp!fz_;~XiC0nA$dO2cm^X;${Bvp{9qFMn{Pd-#T%IdLeg z%hT7UtgM{D>J=WelYJs2H&ZD%p*Gj6gQvmD4HQ7Kl622i^wTW3xTzx0pV9qP9W{y@ zH$RXN+BSFF@GQhE$B5`z#u$fNI^Pog@xskPsd}75Rd;OJ;KCU zaN&y$Mx#c`BZJ~T-MRTmD+&PMt}JsowdkL3r5pmqclk`C^8vgKwCW;^jGX_IOT^+q zfUdHj+JH5!COLE`gGuiDarnlXX2nCgHrHS?M4Cpz`vGkpAIjf!z5SwuI;0^lgu+2y zEh(OeE<`E#0_}8WX11$gssJzay#tKMu}BQkdx@dR5qyb4cyw2KkSO|E5i<=4Lh;>7 z5X+C~T{bfKLBArJ;7a8uIxT4IZCgM}wx`3?+?#!!g#`BAO-Q+1vtDe^dN) z!H;uo>sBjf3{f+{e|2;gKiZNur%oL~%WJgwMvPezth-Rwtg#$wLY16IZwIJjsEIKm z?2UQz#<3^8W=dIIgGv0uE8SOXHgthZzvN6zDjE?}dTPt9V%$)o)D2SToeAJX!Gv}f zdq2#1(LaKJI?07<*2LVl^^WQbJe@Z&d5u|dT*`*Jkz8(}2 zOaF9ypM;+ffw5qxhmWB3{4cQq-f}1NI54@Xp)HD~cY%ODo8wK2+hm8)KPuo(leJs! zm*6ZUc1!P&N^=Qy^pm(XYv1Erv0NvfW{E4G5 zwhw7y&ie)8-f9}{{79TZFh>UWn(){!V^G2xj947qk$z`^c3nw(tt>|`B&wA>KIJ*z4C!xS)Rw~rmus;)O4MoaG#PALkMZcWfT zbz)gpKHN`B)%^LDD#kBH*jRJ;!xe#&>W6O<;yq@Am!Y8z`aV>Wux`b+IDhW;F;$>FThboa~b z()$*bOmn)dyC*!6p+rf;mUP9#%<(>h=0>$Hn^^@3I6WdiVCHkE>tgT3D}nt&YQEtv zbk^W{5Fp-!;+qUiBJe0{-_N(Gc1THO{o6xTi)55=MQBG)NJH)hv8zTKXnHV2s<*vr zsk4vxBYH^3*^&fuqZT-n>;v}+Q$;J=V3Wj-1pd%s{k=}#khJt|T%M&`F3?~~RMqRr zsjOB8nr!33(gI%SraCBRB;A})0{fDl;%8(1o|xoiW^sL=2d^{!tlYn6Isg3iZ-BN0 z4JQl~H(j0b;1-^a4i~SP3qQ{*1Lix>(MP70dlA#ezuu-}XuZOQg=P$+(Fcft8NWPS z;vb(sTvupbO>shBIVw9j5q5xNPFaq)zewQDL#fjY^9POSxVU(=@lO<=zJEeqLAZ`Z zUqX%-6^`2eVnV9!kR|Xo>g~qSTge_YB4WO0qrn4WIR0(fZg$~C{Hbc+-2=s#%~XmS z5%41l^3*N!Ha7$X)b(=QAD5N^%AZCR+I2GUlgi$^m?QZmAQTz189OW`j!(HDj1Ef> ztXS;PBA>)o(Z-v<0rir^dyt66$;z1Fo978-`!`{?2Vw#hiA_j62nhP6zZae$lWwd) znz|~TAbFJ z>gt${CFB#W3j59CHf_whc2Q8(HrV;etZS?r%Zp%Oj|~&|Kw>I!h}zPxB7#xW{Y2F2b!$@*JouG zds|y5YPi)~7V)Eo3}M3V5&gjlW`Qwl6#K?!5$elq_~I>g;9VU9(jo#AY#_QvvHw1Q z)-OR#@UyfHb3#X~l4lJcl;S$5KZXhPH@E)y^+r?qx6iz2-1sJ%T0cguI^F)x+&HyN z4@os{R4mj4n7HDWncdIPr|I(wM))KC8}*4wh|2ODxr?38Yt-JK(L9FFVFwW@&|i+< zoNGz1^}A={9+@O4t}fZU{^^h_qwkk2ipvHw_5a%7`zKug(XS>0#$48NvYY#o1Ad00 z^x~5r9j@bSalL2YRHQ{;9!EBf6HMAr!S{^`s5u3LAip2FISWt6)T9Dis?7Xk*&a?M zt@oO5vyWGTZs@oa+Wk-#@L=S(7*LGUC_BoC_As?$-tG=M$p<5M4X$s(?czr{(iw1b z$_9#UThfk*b$%%-+OeK`4Vg3+1Zsc0w53?PcA}iw@u5UkUIb2T)P)`U8`baT+8BLla>Y!o^c(&F4!vsGBMm_AWS@887?3>jB)+a zEbr|)o6r676O$pGioLIn6PZ>Z818nbx;X^__E46%uG-V}hXiMg;}g?cfG`UwawZWj z;hY$>OyDDA)aJgu@Xian-T5oSQ$13slnqU8%P3eqp(?cEX&_}IoOdvc+N_q3Hp=Q1 z7L0t|l@8-BczpR9tr;UZn59+i6K1{5SON-zTmUCQ-5_dUX4=+_IrvM*}f%!hRou%xYQTUe{OIcL4Z#gRftLl-aT~9BARq zC@~?~SPSL_P4NnfRsgWT66CaYSbN)GHYJ%#aoh$@vtj1kqxAuYtMhv2Q<#q);)4*Y zMFW1|G4Vi^6vMl&1=IU&-9K5cVS|QAvh88P-F@5dZ+AB&#~cDaWp%lqn)5hFv}R){ z1l`RBRX{NtnQSj_C!7Pn9!oqt-0O=oekWHHXOsdYK(8JX2&8b^uucvNKaw$$~^*PNV%Hu(k(5$W81@-7STCP=%Kp}W^zAJzOA=p&NW z9uBK7;XOfct&%kI^?~0jx1<79Fsz<5VtyA6HwVnf5W#=F-1L!ZTb*jY!oCuGI8W7< z-sm$TS0hl^8Oy%cPD+0)S`&*#$V4g$H;_tbY2k^W3_f7cThm-78Z`$hMkXmsmqnjj zpUyH&F|iVY?uA^Hg)vB&q^v%7If-AG7?MgX+5145>s3saWO?|V@yp8Y8U-nDDLN(S zJLI;pa~yKbe3RPk@3@VgAujBqSgvNv*AtCSA$>LSi1XtTc@eqw+L z%)iYA78FO9t_UTXj?D21HB{$DkW@xsN5XINY;eSV7J|-0tkA(S7W!w`!Lv%$%osZQ zY>q5kEZ@g4K?E#iw3R!bBhtHv`Mt6ui0cf#{a4p10w65y`x@_v_Bcpsp`l+=@#HI8 z!Ri{-qk|<;>A-0BmEO}5b9GDx3L(O}5>I~$tZm{qr~dIW?Lq3ADqVkmr!MIoN{jx7 z+>QNkD}eIxBBS^C`%l5$fOesh4LOc5e+C@LYMZLC3<|m_`TT?}em+AKx-aC=1?hu+ zc-qqzxgXQd*EQx{f$mL?{C#Mk_e4Whf4=Djb!J#9MkC!Ot8|!z^|4tw2JM0rEOQQxTtoyNeG-IfCfzZrmLjlt7GjjS;`RZ~_DBY#{o^ z%e+tw@Wi*f%U0XZ^b~D}uy;8$?lF&X8uL>YeA2$HK5T)a|EPs5ii&AF3$+)a*i%_D zSY{!W@7uJ~rmex@N>3pZ;62PPPyEaBd&#)Al-{qymmTcB!}qEuVz76>%8|1r5ey;t zbrKjfiD7mW5pm(YR0DbHy~f4-vW;ft`q%j%xF43(yFFv)snDq;eAA&Ss_cXPIPp{E zh&TlGGmq;_0qGYDw4&1n=@|1F{-&Gh5ru!!mVX^G)3l832!ESUdQhLrtqq3eny^J& zA|rg95oqeXP}SOpX(zdO%f3}*(iZd(|c}!2tjR@I$<6BI_2ONUip&7Ti|rIr!gessSg3> zx0XxXVtlBaBEr7r&+$u67f-kjrTNF|PYP$i9#pvgax0hSo2{5lG)6qL0WXDvoLKlq z$hXA3v~WM$w?!zME&enr34_3qhgzOyzxsa z^Aw|SjM&TMPIW^qB^Gf}!HVyFAoCh2HLP*1A4FnMvO_FPJd#|v4ga=m(-))%CeCR8 zTFx~xE9$qf>H1SM3K(9hUWQuwNl9R;Z3YnbSVw}ry}6FO0e2K}_TFY+mHO2c1CHs= z?(o`#TfKjWIV=@R?6x0ozFZYi7u;;ml2XP!%-4)uJZk^&T^zTUuPfrK5W@j%F@x{g zHEM*2`FC&5GjZ^H-6p5%M(1_~LSt2O6T_RjoKgr$o@ST>{&@J8%19ZOVQg#%xbFMC zLk>5>t*{qPI=*c5_Lm*t>xtOY;_?ZGao)qqI354rLWM` ziJh2V?x#2X2N8*?o|gZuLFpA6Oi1U|2oPwZcfkM&`7uBD^8GOm|Cq-Nc=Ne3+lvY;itums#*+yqQrHc;N9VCsWg_H4`6i8zPRqCM zXVEhAAR9YJV)#TiSswCzMI|)ECEkTspZv6H3w-s+B*wt&$|0wwj>eofHVV`&S}R)- zYE?Int1sZg^VtMxbVD zUk}YO0)PO|Y{i`GE{Ct2taVGXJfjVyZlv(j3c{(T3+{IVAwOAWh@Gt@+bo9MOb*8LBhET}HH!W(3?Od?j`WZV3W@kr zZB2%wV|Kbkr_}!%$BF;OapKRPRAiU3AX52Tkre!ubEB05)F8}PZAybXPh;AysBr>V zDQ~4cgQ>Sh&IiK>Y?YkjE%6I6;8rx2Ryn-E8nb20^0v2%HayS805tOh-XRdIYCLqa zAf_3@_D1F>n~8*jV$Zy2n406s$4c;5xm$$>wz=UW%SLx;PYE0GXl5uI{G`H3y&?exeFiu2bKw3GGZ_TOg2CZ^j` z-6tbNWJwa3*vhrlS(|=uW{p(})16;FiL$Zc9A*DJy92HeW^1&G-)~Hpx?3;yPKAW; z&?UXDqUVP{w0kZ2+o5LZoHLIbmp?A~{AY}2z=Q89?)cu84H9?GIPF zR^I{Al?%)SN$vz1BeaRA{wEmg*Ol#;+(lu!Bg72l@$59`*~1YxAv@w*X+|O?Yctle z`XPAjH&yiu-qAM&FNE}MYe*&Z%9#wB(h1vSvc=3cUB`2m5@VJQzB4W%jo2lX#-u8cdINFMru?4eB6YBAsp9* zBr&*tg$Ewnm}^2pm7>4_fE7oQ)3A?Dm?}_xre=Plx9f4Zr#9v_{is#Gy`e(sS|Ik-P@oRJn2KK=$ZE5@u@tr?j=WXyk{U!E@cb=|H zfQ}eW0?Tj$2l;$|9Gmq?q|GmEXZitQ+2wZGvK!KiUCVA3Ku5R`?le4K+K{F@ z+SvMX(6=v}>+SSr3_HzASqM`P`N$PDRz`kQRhq)vk*knG zn^K1pY@ys&Gh;&^yM3sGI41|Y3352o^OFdi@R03)dM=1%BPCPf=#+zV(zs^-!2tR< z%F6$O!7KW&0iv5@oj`L~01Y>3$85rMW4Z!G45Zsco;<8FHr}gSgaYg7m%x)G{4qZZ^-$NHttU9DgwX zX8gZ2w0|v^{_)YYJcpQdbU#OPYNr5PV56dIhjuS^Ne9!eCTyDDfFr_9(_uTy z-6tEE%QCH=9vZ;${4hH7C93YarzecP-R}``ttSw;j@&Q9Y|vri@94M-mOmJmE{0?E zXxb44Nvyr=-w}fa#+O{$*UxD>!>!SspAyy!{AU`C6W!m53!OXF2tlno&^DQBJwb^c zI(XYq@ak28;9a5i&r(FuT3pxY(i#zCgniPbEs}7P2`7jq!%#f+MNWi^J~HG`1R2{G zy^!U(_hxf*@BUYj0ePZO1GPy87?JdArTyh5kkLt_xhm(FGA~nr<_qZ-Ie}R}&B&Xd z1ru9J9NAi7H^W%{fr%U@WtkOZs4^-QXqE8|>PV=x$o!A$!a@_wC~ZyRY==D;@fkwS zDfye3*EHDNhW0qRusBjD#9+ViFR5Dfd%NZ=dMM@B+R{U|-m10D@I?D82tIcgbqU`d6PcXh|s-FuLw*tG@qLEbj@396SR+NGnw z8J(=`B<((CQ#!50y~dbtZ1s%*Ku9WyBuU(f)IN>B!e&5C)lbOLLP&oKnN^@YY8G8< zg|DOkJ8n9yDYItw{+6#1*%lO8d~1LoCsI6sWwdTCFT&;uT4D(S-GAc%{y%=yW3upw zWpPum)+6Ol6)4kAUA`<0&WGZ7|1SN0ywjZQS;bl*9nLp31s#zGK{^`Vw}07I!Vec{ z8@or7IKt=2OYd3EK-}-EHHZLfxd^Y`D0wx<2-r_nBZofX8 z3J;cvD_p0L9)NEdDg|ZJVh zTWPX2R&SPU98t*1<{QQBCjJl|6kD77YD^t&qe+-x_Giju+?WN6hT%1dTt&Im5})iy z4kCQ6Z8obHMzWfWt9P$AEQlUAwEjVU{P#yl{ogf{`qp^`e&9YzNJ~F|wHvo0MqdIk zN<8Nak>X(`AJDFHICnlTaq1j99G*{am&yfgA_0e~|xN#^@c` zQRw-$fX9w#JZQ6O698r?!0A z+c~A`Yef|N>A3SkWnUC%apXDAd-e$OKPCHEZjG+}Y$SG+ zC5PCc2E|kNeAgptR)!NxuUI<7@Q6BrP!*Mlg7W&wh%-bhfOC*HnRUA^r$^RHji$Df zv)rL5$Sn-=BhkapCaD8^&lx3Bic$))-3!7Z__2!X*Xt{22x;czTIihNeu0x+(Gi-} z><#{U1bl9yA&afd)Fx?klZz+2zg0K;ECh~>RqbB?m+o0hqtqjM{J!B7h10u?fim7q zENcw}_7vjx=12l!&8c z{qfrih-y40rR#)N?j zTnxw8%9;to!BH<}fsE0cl~B7S}w1mvcY*1s#e>@VLX zet?_pqW!!cT(PkwRxn*@baL)o>1j^t1$!D}AbSvC-h4WV^8AO$g)HTR$E}MdW-G_t zgY}$JA4ddeM}XYvaAj=8hW@Z!TJ$V6noq{;8DlI&-YDO!Eb$E4V(HLjp81AoI4;~X zTUOiq7wQ%dHL`%8j_#z)Q#PcV^HjIx$b$VB6u{k_A|2Gs7ud_eI$8H0qWj@zg2yc= zjpsjKP7(-VqBw%*O@Q^?Tg+8OO;%RpudX}Q&yzS9%r#gVJcOrP zPbbZe-6k24^C>9p#T~M%^_-*DR#P%&`HnuX% z(1dOchEykYoi<~I9a)X;olpeqrNYmNZ>=)=o*t^eVEPLslroD!hEvZSKYxFzBD zWa$Dh^{OHaU|Q~e@?nLlWig&FFmujWVcA1g!$M|?Gj%^kEuYW5+N)**ZcnqH{1(K|4s=S|}9-Yfbe$j5Z z+k+D?JoP!A?zPIs6jSUh_uc-Z&{O$KsnEmTKxHI|?d75o-9;$$y)b-7u#3{NedHn9 z?jnJaHreriI&QSWkENa1F|OH|Ah0|%_>+lQF$I2et6NRu(H_$-FWW8KCsWJC^t46m ziF#ZkC(D@MgAarkD*`GwOOL|KzpuOM#_=h?^Hi~MzB08hk2lG_0-N#3;}M8HPKi;7 zVRO(;jMtT{8`zpXYms>c%M{6V3Jvj^SjqcMq#044N|L;774RxS6bOyhR*{qwGrHFp zNMsbwqAs?_)2XnhSmLS;c&_7DAI|E$_fBW^VEB{X0~vA`FJn`bTQ0vJ_D_~8dY{*r zJPPle=nx(P$)|+Y&)ZszcT`6^4|n<}a9@cD8GF3lasCf*mz4$IE?&r{e;nw3w8}mP z0Dqq4WO&0%(lgQSv6LLdncq1pF!-w6_(w{wD2{7J82^CKt%%%#>pe>B0QgCyMa68Q zLVY1riJK}FcwBra6pM1$fjT6vg!~oj-Z=6>wV2b`JLGNU>j3gvBnY5J5Cc>rVv<*b zaw}k|-FAy?MxGcKnK zx-B+T;6IZ?GU6T!x#AVentxXLEuvv4xSR8MF)KJ8Prh1mefr}{0^Br2;tVLp!rvSm zDAg|}7DvNiYrI@45d|%mECm#`SpKiGe{6gHt%$^_7n1}iTZ8>6bU6qgRXd{2RLngR z)tKS~2&Ni%dPG))@r|cXe*aAQ=imC5B34Y`aS-eMhTZ9e|9>)kZ!XX<`u1KnpVWzq zTC^zI7m1K~1%J&9Nlzmb)D}z=KoehaqD=p{8egU!x>j&;ZfPOXp#$v=2CQNYNc|^HhLK2Www#-Zd1T~6{_NEZgot`VL zZ(3W)tzV(m{9i*HPXAr%{dRzo-b}wl2#PVhKd-L(nVmV=wf%Qx>NTM{16qnLT>cmX zcTWX-*v_kP!X8#XpJIgW!^%WRx9b@))JV7TEo19wxIOw5=+CoiJDem^PBfF;F$y~? zqW3RI>%#xZU@n~DVrBD_W6{4EZQ0V44dXFirH7<+T{H4y29TjK2z|skEO^k!dt$Mw zPI+TEs&pSY#ctQ>MY#HfjmA3&=MPtC*izbyp+3%(K(^+zyORE)ffxG62%Tj#`bury z;xI_(TQ4b{pNAvYu6I6k`)q6aaKCr7&qg3n(c!R%XLCAFv)oNZEk+4bpc2>Om*;$c zG)uLSSJFh#!U}inYWRObh}&O;tWvcUJ=7AYyOZsiX+%$YNOLjicGq#tF#Yuss!}aM zhnH58{@7A3$yi)L%-EV7YId}dgtFBSyP|%Vm^@$g2qVqLQ_A7B77}r&2;1RyX;3K#eC}QG0#7Msk zFV7mx@9nL<>^B@N;13@OIa@%3FG^dwKByB0J zJNZ*v^l}EW$6&7LUkux_4V)sOHUG0Q`fnj)iJShhG_*8uOfRKJ0ow9}IKEvKs-Ung zGn7MzE-iXD#*x@rr{YtgUUcwmkn6#IjhF$guY4}1+Z8s^Z7@FjdCO$b?Z2Dxk@f`P zb|x#;nx3@RU`iD5^<_WJ+Cr~sSj_7dWNjV`CVSM@9Y}cEhFf^_cqXpSOn@*V-6hZf z7UJJoI8bnMma?mBFuGmDm^4WLhA=W-Mk7TxwJ@Yow*c~KKBQXU3qlUW4ipX5g#mKQ z4_75+X!(g04=+E%Qspp?Lpwz5M!A*kp#%)kaJOO-yV#cCI81f46m~*1YY)y!0+059 zT*o%SuXxTMB#%yFpXN*2Y$}-foJu^yt;h>F*!LY(agt3Ra~+--W~v>nX>EGJ1Wg@k zll{z)=|pB2A2P;pt;peQi7o*D581{6(PPAIcu{IyM+uk;Z`oQ;?G20hqdUlnynU|N zO+({cJ-Gk4odoF;a!$jJ@gAS7*s#8MRAW548~dzgDTGtR%gd|eof&bIk((SWCXJ6% zGA?5Oxhd%XW9zHJ;@Y}w3GVJ%SV(XU?hXm=5F|kG;8wU6?(R@H!QI`1ySuwPT+Z!2 z=kMb$SAason&uLC%+6h?zE7ZqFE3Ox$`r9{I{H>q4qM z=n&Pg!P=B)`xN40!gmRTNd%SX=O=Nj+rrfNL!{}e4XT-6-QCCRJ5(8Fcr9s~*}js1 zl8;^1wT|DvGt=$EPWmmLvkfq-e9e_h@$*N%*>Yg#!$Gp~_s6>nOcl17eB4hx@`>5# z_2-s6bl1ausFdV+f^~MvSNrwON7n^ikrRR}Or$UGjeKO_A?(T3R!YO~LP%YC=Ma77 zK&qH`viP^Oxu|0_9Irv+ojCWMy*c9uOfCKO#>W}r-Bnxl5og6g@p%g9ICqKCAZ}m*doG*i&{gB>_HrTQUA>Dp6Qha zT2^vCy`R%MhY?#1S|uGAAZJq+AKYGz#kXP1lkLEH;F3c=!baT2nF8OD|IYNLAISBR zL>~O(rmyziT)mmxFdeaIr(o5!z9N=^W`rBe)(p?b150R%lq*TZie8BLLQ*MW2R(Qk zKfSrwL`HaEi#{?CCY><_Q6Ev4PBtW6BLR>c25 zqtW+{@rJ}0&79DrB#^5>ySI;?iX*?S#^#Y5oxfXZsPYTM$kFl;dE@hYONS4b7|A$smgFj$<7Ousfky zbQ~Ky8=fB}c}vgv*M(zgdq*5@LfVlOcDHW_G|@e2MsT_(!jg4#AUhQcK(ed$;lSBM zSa%8K0>p%(B)^C@LKz%DRLI*VPZcl|+TY>$Zp*KEA`t{{s3gSMN2li&3WRZyo3jh>)w(b~psH?`3Cg`_1m& z%*?TBL2$Pkv&*dkpp@O*&cy`~poAe|k0&C{F8~CO4+3- zTMJIHJh7Diuu-;uF%d})jgzAp?LA&_MJd00XW%cfYI~CaxR}`Yp5LF%Whs=Q3GUe$ zXq|*2n6a+UZC_H|1cwr%@?Rfym4I>9;0|m7>7C?5<{vJ6kPk9$vVZ_yOnv#7KU=Kq zzTnOI&g7~OCg9kvT1p9>hf36@qtR8@trrP5e_DgzfIqV?k=m^wk%;Gp8AVFJBFF}^ zUTGpRJ}zPy-*|GLPO?DZ?zVG5OL+uOm|Cy%-N8uH-frmn?zkUty#q=|cmC2N>B{)Gnd=V1B4i(owea+3eNS5Dc^H(L?hHkY5 zUf{;Wb#GBNmTyZ!KBy;!Ze?M_wmM1hSZ$jKKS6hyD(3z4QctP0iUPm^%FUVGySMyc zZK5c?GK%mvmT~q)__=J1ZTsz%jn-~hwrngXkJ8*2riPMv63lUNoB>6KA#XswR4~kQst99;yGh-)~@n8RqGEREeBH&79qcW*0morqs z`7en>Qm(%usdJdR0|H2L$k;FjgAZ9h|9yU+78C4?CjE=CovhRt~Aiuk@6S zM!HQ08Ah?1_t;bz`?RHJ%+cM)(pM(>eEjwlvHg72OC;?0Xy9ClQ{@{WPt@o0akz~e z*89E*zltBhnvZ6_ZK1 z1M@|^>HX`9Wq2FuN~g8CA>%R7f+88OGVdy#K5PiLCiCX5ti`JRKx-5@hcv+SLp4Xe z^L30HZn3rdm9dpG?J~M(?*+Xs7v(43$j&ZH@)J*_O~QL$a-Mx9xM`Ba9tdWOV^@^;BaI|oFaQZt`hCe}y1Gp6 zjlL+RlV%Z8_dcXHLrQWYP{KtC$hbPuSlC94AP{ zel5fi9O1x6nJlKQRLO4Vb`JNzUy}#wOMQN6<&AXT^(D#>5xq2hT52Ggi@Q?wv(~@) zNMX74r|VSi2C?G8o<{(LF54<1YDI)S)$m8)e98MxLjLh9JxcPQf@nFmf>>~5p z6iaJsS=x9dNFz^A((DSvLl_bB00MzW-!u{y{}Pe=VmUh~^52B#%Rzpx5PQOB;iQuV zcbHPU-Ymd(<|e0dNVMpX8my$i%n^nzf~ML#m;JPdeDwA3SaOL@_rMzy z9h=cTa)G|NfFIr2zH}Mb(_4Nq%oD{3H)*kYigSq0!fqkk92d?fpHlNs5uEXA$WS{T zhe_n1uQ#$dfi8e$uFhL0*@4C!?~Sf~{^>o<1^BvNSi}x;bH1E2Et}ocBikQr5rUNn zj3~WrH{U*&A8;fbD z*ubn|xq;kmDFLpkH*8`sUlkaIMVbR3P z*66Iq+Tr`?1eX=6fN^T!GSE>Fe6_)%AM`#Z^{27R)t1bGT*s|Ys7yKwdatBa&J9eu zFS?1;kA7!=gR*1i&Pm83!M(;62_aJtyX^ei(14i{_};}kgD0AP0m`0sxqpot^V)Fd zGHL4)1pF^-p-1MHW?9SA}YOo%o`J;6j zvR--L51ieh?{HouB)v!>voIeORm5e#GbI#Clh8J_83ZRDIs9z2&Zh2EIOY^EQ426^ zeEo&J=(ch2K@d4cdPhlGuP4DtKd?}S3RA{2>bg(`)gbF^@Htj<5SI;JdB*Re6@k(n z>co5i$__rp94}W=Qq+{Z8ZIM$Y)Iv`h%Zw&Ca)_d*NwmhRMEyD=@;_bS(bIaY%q0K z+YE)L`18%pRlo7};=8X0jYRDNRDEVt5 z@oM{ZoyEKA`C^NwYap78hjdYixRRn;Iuh;G#%ez}cgWU`i@3M@COZ>jSPHnlQ(TMk z5I4YZ*cwsxVpCfSLGmwJ zufz1N^*T%$AOD%DZ{UYERZ)p8=MR%InG)z!viu9###3r}FzF1E!#<7)=Td8~fn@oRxhOYYP7?}=~)+7HedkWi~EY5c45ofvZ z`1DS!yx`1D_WLxP>g??7_TVAb=fvR{5qzfkGxFZjHa+KfzxWL_G?X_OKG2B@xl1u% zZE$xsft?6NGetY*y&oiooaYCDZgFIM*8DV^hc}mrV?lo z++2BLEUE?JF}$9z7%=eL?A)9Y>``@9OU@(rCUp|stS?+JCEDU@r9gbLRszg~PA7ZfmHz zojYil4^}P2xYOi(^C6EHVac)XALM}01r=6>hBbf6{-spgfbiF31%k@A{C~`oF?5S9 zi+KVuj?5Fq*2`6+2O*s{^ZXg--Ok7or_!J9tfq>vacO3%?)wt?>h1(tL*DR)$6W5P z5#oTKa)gY@8mWP!UxKhWa*8`+H~f~dE*@2QQTp!>#<`HdOvBTu5PcfD{p%>%M$pDW z!e=Z(G2XCO$QgZieTsx@pHpQDg})@((SCU6jjIquX`c@0oBhyNQlAp#bFSbrlp#M) z=9t6=^-(?SEW<^zkP^QJ4xU`xo*_qiP_d-Uj_Vh>x(Z~Vl-(#F7ivG+ubsm0>MeH6 z5(O9C50lI&!+cVi{y_4YEI4UWQueQ4-c^i8#K7y)da*1Nd0!Z6L8bKE?I+h{S;`NO z#K?QdCIPM_vuIR;1A{UK!n(Mb18$8b@Rsq)IRUJx=SBm5@DDl9DnBQulIAR^6AN#m zeo=h*@bVyv!iAvAcC7|p6(WtHTo56R85u$0c;!rCQq-MGqxy!9W2w$7f{OVYCj3#{ zUy7HDYrO6nI-3S*F9CLSS@i3!+)6Bf-j3T}g)Sj0cFHGs&DqJx=;fq|m{cuy#!8wG zM=~`BXl*%D7e}0u!YGTmDjh;l2^y6o@rQyUj~@M*J1M4%rQclNPNV1b5|82^wv zNzfBLkEOTko{fhaTq#pqy!Wa?c2xPd*+&%mv!Vf8yfawQrSrl}gwf11;ggt$T&L=<#&jS67aWllC)C4e}vHDJYT3 z{rF$@*sK@-)!(TKUE2PS2E1<_h05YoA|(rgwIkepV0S_z57S!th`d5n1xM)!UhuBu zBfr{#N&Y-yih0_)C?LW*Q4v;fEUZGMUz6*T3ad@nTFvZm+Kul%&1FZ5Qh4T@wmx+{ z#XO2zEndW7VW&|l)#|z30tX0{pGuT9{){(d{O8g`|HCrxypOKbY8E4tY7!Qn2ImwS^ zGN$FEPIpo-2Eb`C7ekqvaW+@Aw==PO^P=J5dmKD`@MDzr86p>vMiFxFIA4pUCWzuS z^&TkdW=3sIl%-QDQqNo3mnK(>DuNa4J2idV% z*qOWpaiwHz`m)<|ZS(ObCWfR&>PYxE7q*swen}i2)%A(!S)*f%a~l9cT;EG)XB!(3 zZob{+6;k3w-CSWWg%pyARL83fMH(XpQ|BnJml}UN)V$~8ZBGuWQb3O+ShJsaUGqaZ z7;V*!?EcHn$*%T^;P>PhzViaqX?s^Q1UF0`3Ke{Qn*9Kgatff-v0)1>ydNh30o5FI zx%pu43iHA`?qT4m7;}C&ArG;KoU?v&q@HAras-Enz*8?|_k1D$Mk|X?i6WAN%9O}6 z%YaJRUgrZEAd15Ov&F(GSkNPf;=-oUa(+!z&Br}@~Ckqk7Cy- zsn_C?eMhDK-1d6CC9hJSzC!X@h{p5Q$=TW18P1I;yO-2FZFMDox0s|;GN1WQQo{^1YJm#Hkh~mBZYtn?qty=-;^d8iF8o<03W78T*u6Br{@gg)$B*fCdk-FzVjN1-s{&XR(NF;Tqi-pQy` zSj|Bl4wwOHYH1lrHgx=Dya@em=j1zD`=^;Rtrh)f&iYVF7$>uTsRL5~Ro}ALUuW}NyqYk?EV(6E_udj7&s3sZaeXsb9;g9V56^%yxt zDAt(x{rnFizp~-cFa%uNADl$%>gx=otV{0TGAC(JN$@?{2ol$P0!@dGI4%x5t6|IE zbH_zWGK=A5#H7>u#By|jz4Qa=TzmqX=Lh%zz$}DU%mhD-7*1xHvnxqM6@XWNIpP9l zHyfb=R?^W8^GZCj=J7w z@-7=?eso!?^!*W`KLA&_?vpcooDpvCBg;L<$Ebrb z%ed!E$UAsq2b*dkU28+fOkjCXDmZ2Cb;^Y#FnVBHB~g902xqSrZ)MBkT=8U(jI)8a@PLD$YpHIJ^@6N^CF9*pjIw@73Zn$Z;i)_1qi62*pmIKv>CzX{Uouu*8FzEs|o!)`|m@3MBGO@K4&){=K1;1gmxZYw%62l{vnV@M*iTWEX zH^I++31E4D8|dN9Ju>PiwgAUS;9~V>5E1$9T4u8?DMN-rXBJy3ma64Tz9U+hpU{@) zrl%2V3fk&ZFfiE?fW0ugMDj2!zh_ilUs59fGD8XVzV`jox@g#@?e>BXXu{hc@)r7z z-af&!;q$%}{e)uwHvpOpCKvTZ^3LPAxSj8IWbBz#no?124^2DP&^@Du7KA3EWvqre zP|MaGI9CXQyS;UAg?;ky9{Vm{3`pYvbnq;{&9B5|Z`9nk`oF%8qpKyw{#%s24EtAZ z4R+{16+)X*c$Y15y$i z!}!x|VqNmxgM?rMl?5u(MMlv`tKma?qtx8Z)3A|BAK4ow6-NBzJ*L=2 z!Z+F5e#R0c2N=Xjm?382K{J_VjdT}&oAi^IrV8tXp#tXH;yG!>=RqTcZCIuTs7oF` zfS7Z9A=Z&j@CAZlEq4(&($x3VjBU-|`Ctz0l4@Dd!u+E6{|pOJXgEc}!AfB&sqz4wBOS}G%A;G#rNbXECZP~$k;$3P^k*9zlJ(-^* zD7-rNPs+@Ue=yeP&rEFHEz1oBh%~_z^`IHo+XCPiTnal3!ToZ~v{MUy$-+s(0X^`A zfZQ)#{d3USvsZnNn{|tg}vq~!ylz`diLSGf5Oz0j zsqp}Tz+KUzBA<4DW?i>)jT}70?nV|B;yZS{Bo%C|YBo-ktAL8ACy6T^=pHeQZM0y@ zL$MzL&?titC~JY-mfduIt0K#Wo+u4#$xsEeqEfY}cFpV6S4KCVTe#4FAadna$PYh! zemH-Sgm)D8jg+$AsT5?9fQ1IQq65R2ds2Z~QCz~^(0zlx4p%+ftWu;g1Zj<=4Oxsj zG?*q$Yj{fcWl74(%Z8S+nEsDZS-CXW?dm@-8qI38=Y!8JWysw%1nB&r1wu90j*;gu zv_n~4kaCxk3R>8_f@7!(YAR{}rEW6%*OHoQ^eW)r@78rG*8e21drmbC@V2!WM8gg_ zd?3XiAn(L=XR#K;kWeA~Vz&F!jgP2|iN@yy7J#BZ-#1J~e+Bn6&gNfUfoAcYh=CFz zM!bQRk7dm5R$b{ssVU&@jsRaSR8!`fZCv(bYa3ACb6rSE1*fs+W{gBd)Ah>!wVAi( zgLG%*q%ocoXeY%Dus_m-9oDTJ@LA_VVI)p}g5~OuhnM_p*ps%d?od~1Yb z`dlFOz6oTJsf>PTk`;NpdVobK3vZyT2Ggo&Fxrxx)3_NH417``tVESbv70X)^1M?B zdGV0Go0^1dR3>v!P>bele-bRFEH~ z2g91g>)!(}O~1Jq_#qAMsyyl*5PV~F6AZK_Cbyg>zm#}Bf0RVA5=VnNMF_MnRw1|z zCMD9m!OzBM>loMSNW0R%r{2vn*u4BsMf!FRmY<#iv1)^?Ob2x+5U6vj06T?D!4d3y zwo+flyFuLFO)F@=aMzGe2#E>~GJO0*!!p1}NF{GNPE#ZtNgmi7;z(R1dBi`60Ni4R zUcSa|$zU!UTM~YeM)f#feUhoFh}dFr#~=IvT#t$)|B_+|YgmcapPJe&@PT0Bu-WKR z`Mha;uLfBOykhEe50UIYreiSc;k2^191TDJp~?ASG)m=9b+?7rJ@E9`sqL<@ZCtSR z#^@_sN2^>pBPp?umE)E{>v9l_za`YiaknV@OwRiTz_F&XeOQea$!99r82P>Lg5@Z8 zMYOx@6CXadm@zC8Jg|Hqrh8`?`9DJf_J3v48?&qaX(Z~fqCn^P9uax;HO|~h-7vqT zK+)aQ(0?PrAk*~NapULp!%@fe!9M2gCK)7hGB)W(1MR3Lt)F=km11F_ry#odv;qS7 z=e3Ph+KO^H6!)w2bq6HjiQO)TiO^eu&5$_>%A=w-;ZNzE4nA3roTK=l}k&pWD2AHYm&Au9~{t65#;}nIT2PN$Vb=0+Syrp zFj&(b!OO$`=zQDBpYrqMA>)L5-{+_}9U5FE&Df&p2400@uV9-_>h~ulS|$>FI%cD$ zHO(!U8#_J@!z5#$pR(|WMrh>-5%(AM%Wn7QW4KNNY*g05V!~xtm^Kvb1>Ie1z$|oD zy1pIIWCEV2LNGD@_*KG1B7KC=gUA*hOZK2z{D{#}yORuzb)7LKu*h|KIayT(g;f`ee7|5K zI7Ljs$nq?76_3s|w0?29BTGH-u3#IDg+%s+4nnU{VM9Lq(p^s>ZpjbMbzkb@^vPi% z-uKURu9RuJH^6;bIZ@NKtt2_a`aCxTw5MJFHod`zN!Tm1x?3{N!MgWQK4FL^+_y8{i@&5Cj-h4rHs_yob#I(*63l@WsWD4>`4s0%Dsg%Ojj6GyO;5K_eHmSLZoak(OP zsHv>HT%K}CF2VJZIRiU^1um-#d4E>V?$!)vM{V@gX+2Ia9PLj-<#JQ-&S+s61saa) z-8?mEgc>_dS2b`EY9GuwwsQ6hJyE&%U7cv$9+a_Cv=H3k>A7d~W1jZtJzB`#7P@8q ziMSg&ymx&w272C$Y>LsGe1_Uqkp0HtRzCT5b0V1cPK*^t`kQusbIuE@aB^!_KEsOSC9%^GL^Y;5jv zS1Hip8oN?%{>w8;GIwOl@+IjldLfAokIn5b&GbAfkXrESh@)>cSIU-IuM(-lZez$M zfy?pu=OubCGMhaw=m?L9(@TLc=x{Hs>OpLzEy&5@C})G0dT&Q>#4k)7R1oYn%gVB{ zwg>&G`DbJ&1#8cTb3=?8a%-Mpak1bkeC?=<(HIfjx&mzuRJ37%hH zb(ycv;=~b=u$|S;dN9qN{9dltH@f%xhud9~IZR$O&|PnPtCPq~Bo8POl6jv??}{g? z6fmV)u2qyF7qhF}-1Sy@m<;1z4nU^L&{#;ww@h!OpaS!pXcZ=lu+M=zCB+rby6WDVNO zGX}W-2;pDy=wm_QeQx_rp9Sf^B(nkE2h)kq`UvO&hk51UPf3CwIiK^!%9j{9y6{>k zUMi^ivQIu}hT4PvtP10CVuw5)Ju}%c`oy#)>pdUu9=G=}x;P-F=(#@fR`kXKOPBUD())goC&eI?Zwye=7A_ZL*4M{J!i%x@7X}rvx@4{gpE>6ep(E-M z)85SV+yYx3KbN-5=slugYb0`2f`u*<68IO*ERU+Gh1V5Y!~53T_`7u2Ta?2z?N8~k zaTesy*e0etvD)g+H&O(Mx9>K>P}gp--JMC+$T({1LpiT!16iyPNMB1{-HjN39sP;a z^L%jx=AaC;-UULfjk+wv&0`V}V}22Fi5*$bYfD$P%l(RJ@`1~Z+=R!{AKq|`&uaCm zYo*Z(iC}eLweSn)S$=tHyUL1$mim|AY7Y8im&Ve8h6%3L`rvATS@n3U9JlI<1`7UO zSW$&av^oO=@?8awLaqDti1Zr+j4nfB_PI&*v9`%Jf=FwK)b&#DV9rJ6&U%kA2ycwDD)1%S$4!1Szi+gXJ!0|?Mf%OGc04Qi zJbUaA6C>Bqh;v9{*jwLC(d{_4oU~6co|m0Gu5RjdI&;rk92bCp>dmc6HDem_VSBVx zwzgIkbc^oPon?8w4g=w~zwcj0i3h3<2atx7$Ve5sUuWRjnGaRw*lJ%N&~cs7M-cy+ zdu5`fV~X{AimkI6dNQi%a(+1Dxg1NKRZm z&THA2i<#;Wt)ZgkTpI~*1kS!$Z+@|Q`3B9anC6Rc+#Y14pg{5bot-X=mFq9baJsEM zE*Qf%P%za0F+bGs0Cyco(r@JdWsuY**J&X=`mMNv_VIu4eeUcjPLZG45!%t17Eh9?!TG zX<4q7aO3ne?sa~qmd|yGk#-7e!^Xziuc6LfRS@eoz*YC}9s_Z2LG2Tx2DkJU+d?nz zJxTr~Ff%2`NcCZr$mvx~8Q+)C>}{RA*W?d7?M&2+3<|@z)cFs1tH`&H4nU7;b25k% z4ZM|U@khM-db>lq3usSUOv)Fnca`V5RHx)U`0)o_&YJ8|TI*jl*~c5e;Z)=&jT@B> zr7*F9{=w*4Dx9bscCw*zm1Gk0#QdSCjuwLM4UrfHd?s~Abqkz{pLq>6co{DfElnb; zOW&OdTqF1UqP<0tM3jc*Hg2KOXEOPO)e-m0F` zCKfI9STQnha~;Z;;kw^RQpm?l|Zz`>g+7E1DQ>fhysL$Hi75z^0 zcNjlr8+j-&z0!uyZ5xBCmzE*~W3AjX1uYf_7N5B8&pmM_z`kt^#ujmax-o`e{BJMu z?UP?yU4%tx$(NCBKVUK`XT}DnU$| zMz*pfv~*5(KBs+1cDC+`7}FsinPj!)gLpVdvkn|;XC<^y*Z)qW8%#GJ$>l(l7(en!)u%Vf?mqggm{!%cajJ3p#@KB8 zv5ZwsVMRh&uu$+fM_NPJVV)Ddqon2^Ep5$jV;P>wiyjOxYA?UO+B$Vn)c>!ehkz~v zL3H)s*!0r=mz~s?fQ*eEBuE`o;1@}YP#+!NHB?8@lU1nS{hGgP>bl{K1E&3ASxwAH zw}W_1S52P4UQGJLv?BSzd~W#F2nko>*ih`|1@uh*<33qX)l)cW?B)gU3Yf(N+PKP~ zevlSM_foOWqeRVQ$k>-m>>a+GR+S)C&9{e}XsY?tC4=2m$%91HtFO9La6t^C8pNZT zr8jrW7h$k8;qff)r7EaS$Ul6?%6ZHsID8vYIrNy+otHP}`HPT821}2OSB1$^<@Q9t`9>vOhaWm7M)6B_XznSw5@aE`|S7E3-f+y_NfwW%R zd<0mB6RFq*T8*!zJ_)|OAD-sck||kHtyGl+dKi8*CxMM$eEHp~MD~B6#TEXYg^%)e z!XYDCM>IWh;f@0tF82Q)vds|!7dCJrXx;MUXNkvAC&H3yr0L}9_6rwQDCy1{rwi^& zWfluIhr=0!GwS}HrV~2PA-53U&s73?RJ1+&>5%p^G|CI(jqW807pRlR`6GPG$y<;4 z#rswy`+{G}?!iN^Ly>{?v3Lu=>XO<^2#vjCQHq~1ubr6r%2ajTi7hZ+3ChT#V`#*3_tr0hiO%{``kb&(ycYxzFH?xwd9G zk!;Vge3cR|EbewD$pT=r=V8wWWlWN<@c-mHC|eQ<~G59iQGCZJXaDoBDP#T z7oyAVp2BKAB`!r|ezjVMEV^?o5eZ7(NK$ivTGsB6X$X8Z@u4lwYd3fk8 z!||2vDhIzJvXFi`Ug8 z7yTadGHtgn+ZeiEvB{X|Ze=VulT1}e)3=CkyJ?mf`gbgG=^osxR%GM}%RRfk-&XU* zeM^n^so1cR{CX{G7d^#Bu7*n{hG+byspV^w{U6vJWePGG+ z`w4W|vjw{BDZ*12NbMUQR0Q8W>ZB_m{I5gu?tp=JXW!U@Y@3AsuNM^nXyUB*t^X}9 z02kqo?@P?XWMW^jgodgW_cD0TZZ_P}q#;*BMMcE5Ge{5tw!ORM;Pr9N_0YGHLndhPA} zyZK#{SzcoTsU_buriN?vor~sWi5-KdKKB3lI;s!;k;soG8Uyd`rOglHI8zGg@FYsj8X|zlEO!p-;FS&GF2s&+p zWw}axZk5gmeOUWuvU9^gOH;0B<@U{rsl^)Z%hQP^84c0R_L*>bBB3Pa&h-|*&1UUo zh!u}c!ku#?NzS+XgzqIDCge6MHnlDNPsHs+H-j?;BI`~qgPDj7&;I|2JE#1++qj!N zMfrEcVgD5XVxzpKTL8zNGFs;sIA`RSpLwS1o(RgrNj{lb+eD!fy}%o4HxzEe1q3o^ zbIli@QMm8VZfNXh~1dEQ22$j zuWCSF?oj4h8So>|lW}g3RU{7qGC5<7s1%pFa!daXU}bIH|Ln9#a+`#S&P1y2z zsRyY?+!obEH;9why05t~HD&l#Fp|wna_8Miwl|x0yFmiXfvoTLH+IVV9{JvwmUeji zx^B?%Q^$`EAWQy-f+teG$5Py$HG%(}!4@?3w8PgwB4Py-((<#U1#kBYdU-Fa39pE4 znVv3BhKq+MxoxjKYXnr1sOXY~H&P5OLbHm8D7RA^6Tb zCp?__^?)*`VKOk|ABE_ z67RQ;kBRu7R7WpD4e`!2S({s9PF)!p`&oWobGvM+Y{|j!Q{)tNd;ZfPOXzp7_VxzJNJd zVuNqQ&!NJg;R)#tEi`@z5(C)r!GVW=qk^8p(adbk*qN2pWFYEf< z5a$bpFCfVNRj#Jeyt0%RxkJ?1$-c>#X{%B(2_fiF1{aO{AoOZBsLKL;I`TF8g8QO~ zpg{@KCKcWbVof+zk2el?oxa2yoRzWjxmOyeDsMCqfhgJ?>KrXh3?3^h%(mQC1D=%@ zrmugt<3VFg;ykxW6G&$-e6#9vQ*(Nr>1vbaP1Wvm4KQ#g&AJPqA z%QEP3|2yn>&x5IA3f(uzq|E#NqcRlwpSzEC*okzrX!FW&i_E{A<*FLLSDl9-yQO}9 z@|h!+;En09O#*727Msx78o73Df~ut!hjz~e$V#WjJ;_!jsSbES_9V3Z{fy2DN;XD&qBFYX` z$DGp{!VVt=rY^aeaMXEbz`z@=3m3Pw_>djG;?9|VDrUz?fqcbfwzJD^{-P3P@ z{RcwUWe~OjCfm0AOwB~7Kj`KcX612t&54pE+o??x{E{{O3%`KMp6$YksmjW*O@GxG z)yG3^{YrKt36NM}*CuYi{0^;m70@PG8$#19NuwKPzS~wE9-W6pbg574gVAVP)p%KG zX>JIbG$b4==4`#`m1VGd@VK$fH6FcngIiqJ;nX^_(mdN!fNnPH?*g0YQA$emSlnE5 zc}jv)EWVbiTG&h)n{gg8S&G|!E}8i(Zcr9CXVv^W?uakpL9x95<_2Tn4W{lTDVUX{ z8@2zVt;P_{-{}8-+5PYMcyTd5#rF3zds%>FFEQe<8-5KoeaYKFbLJk;R>`W7S#A%P z{SrNJyF%NTGDXdY%W;z)`7WMe*Z#Q9_J?=Pv;(i+p4$@F!zcM+?z!ugPgE{;78z+0 z`e{XbU@ft);SyK&IWVfpH8ww1=-d?&zFfIFJ9ED5Jm@K1Rm8WsoQrF@uA?l_mGk*W zZmh>u;->7}l{M_xkv-@-6He)`@9Y#~nkdCzi1kjgrhI!C`Vy1CNC$eNe`$7ny`kq% z)Y|EcyEL$vyCJemK;uZ&(T(xm>qdfCdkaUsPVq6Dav01oMg7k$+i*am3zP*?s{IEP zi=gF@lp=nZs4`CpbKn5mLGD}~xY?6-+VScIKeBM)Mn0OuY%v6)9C_lfDVNM5R%+3id`)p9N2Y0Jw5Fwc2v_O3 z+8KLm_;B^{$v8hiM|+v~Bq{;VyliF$T^9TTc5ZmG%!9SP#l^c%zrow2B|p+P2lt&^ zRGG%+Zq`-|I2g;)gwn6Jo44G?*0c^$eodxz6mE+Y>h3KCPadRhx5DX2k>#!)MZGFePg*`qXpYK$J@ec|mP&@#A#PuJ zB$chky(ulVJ~rW)dS3ZKI~&a6e!cy2)matO!s10irc5w*+Lxiwuq__T2(HBB;SA%o zav(Gw0f*H;7XbmC{|?hh5&^7#C*lF;iturOMHg=?Ty;x>c`dxxlFN;k-0UFO=E-fp zh12R6EVtwl{MtQV?>y#qjYRj_vbX?#o?{Z3JJUQTFnBGT9)P^2^CED6wM`{N!b&viL1Z!M16p-Q$adv6Lg9qP7JsBQN#unVh*~z7puACCK)bPx9W=Cygnui0v{^Z1J$+Hl5bxaX zHeg^ZOA$(MUc=o(B=FisKA;%OmdzhIS9SB_|K}bce6HS&0~gchL*c)}C?6tn8@?QF z26&!WI#%y{7AzLpOh2K~q;WerC8T$jn903JLD_U+&eGB{35!q&YGNIcu0+qou?_Vi zrL*cd?xpU|ql7f=S*G4Hhu}HuyUC-uW;5r4#M^{kYzYVm-U4YcVHLF7+Lm}KH2!LL z43oD@DZm9&v@tf5-;6R3C`QtO#)p#rXQL=L_2z`EtZaBqWnEem$=Qu9m0~Z0>Y66? zC`54P=FEPY*Av~?)i=H{ceE!AwaYX6lZyce^*NEOjo)NN2C|r=&z|KBOnG@__Fk8~ zo($q_r%!59$P_aD1J0c}n$+sj3n!Ogw}aqy`_GlT@Ow3lD@V%ok^H$dJ# z-SFkBmCObMfH@h4`NEg@YFzj_($$5a@Mfp>dMB1i$$nf>!G*s{fEe?Z7k>f6j%9UY zbANtV6S4eA=gkANG_VH|$Mth@rrv43*W0e+gG**w(bD z*r#tHHpmuWVDwgz>6Dvt{q(pOclcPaFdn%7f@ap}mL%X-6Z87$+%DxjS2G^}WH%(m zv5QG>EoZp?I?7iZxL53!&qAB#CnRdWG$}?ZgMUOK^Q^Qe|1@fDUYG1|zYa$H+c==# ze|kR$0YoRBfPb6=ZhhRfT8P5;CPN)}zN}sIe%XRp`Wy3nkk4EtZr-K_IVV}DP;!J_ z1OZuUPvp+Rg=cGS{M>`>xK|Ol-Mjrt;Vg-bRx5f3-3v{xwdRK0#S(l$QtzfpeF`=* zoPMfTu>CZ%H8N`Om?+pH^Y#cLo4VRNt1WV+sZ#&#+R(;HbM^#2(uF50t)W!h?(P%@ zw!0;*{vsKQ=sV&Ur3!JOyn1~du4%N3dM&%4dU+A#`BopOH^GtIN3l|YQ!f0(Ar=SIDKM$U% zi9YE{p>w%sJ`VY69F@^QZNGC)=j?rjBiX5HiEX?Fwj&J-8yU@m=<()3@565g?JvXf znEbl=bJnQWJ;V03Q>|`ylaG&0w-2WIrRgiz8{Kk?icxL=TX1z#!tL$d)NSX}_15dt z^$)M8CRqza&w3?U4=#vR%ae~*sTsGeu0RuR$EKlsg$JR-;IDz}hPbw0A9{aZRYI`w zIehZi(mrBTgtUO(2@)7 zALF_k|9&hjqx4&Udywm~)a&h8WRZ*!aNLyVT)GaM8uqnVBJniXnWkZI=t+Qe=b4=T z=5(}!)V;M_wes|LcYxmN_cF;WeYv^pS*l*6o#1bqaJ&h1hZMJP>Z0k)fS~jfpM(;^ zT)*!8D&ED*()7iXotodq%}tLMuQTzE!PI0*Z{5ER&CI}_?Ip%#u$UZblfqA*ZW7QY z4YX5TJ`wc@jy~?2cVGJjCJaw{j6y5EhBi6P24O+b_Zi7wW*yD#bw}ZK@#?K$na@l| zBtNM`ZP82CWG+aVd30%#Oh0jD&xT{8DVl|OIwvGHYaJF7J#`)*ALqWV;5_)8+fv2~ z)BJ-K?-@&YGB!vs&p&$9KmZv#(KGmT1+<0nnY?lmZw;VYA8B?*yPFE-ET6j6=jLDJ znl@MJZVA-KT)@NNYs<*0OI!)@;LiUe^t`KKqkz5i!I36g?5ApbQTw{J*&E8-xL|0D zrD8MP1vs|pJA)xr?+-U^H{Rn<%2c;bQ3K$-(#N9I2rBp7yt;%Ao*2{3C>Pl|txegj z(*s7xyTdUbdu`5e9*o5A^bKB>YKM#w27q?#eZJD)xA*gT9%Eph+kJCH--Vq%SB{8z z87{2h3=*JTq?58HUwTdZnhdD*#hfX%_6}Ox)h)P^SpmvT)f(68~dGce2@Gd z=c&|$p~hVwt7-+>tTmR@=C&}LZKrw?a>^CbakbtAuk}f__9Lf_nTN@s$~kmfbNpH>213us zxH0nGdcFKpB2N$940OO5aewT>TmdP~tt5cB*3M)nAv&yfj?H*&FwLIXNC%?HBm$@&g|F)V}wrH-Q5Q zU_vUc{0$672Cc}P5m&8DFTsa04-X-5IQ-+u7(EiAx3eMMlW}C)59T59{JS!Z%Q4V| z{G4^TKu5$s)-vFPNww7-q(Z8fxOQ+~PiFrvrK9C|%c;cajnm0)Ydsq)e=?qHE83d3 zTfToi+apgyqNA+)eau=~WQi#1+@rnKFA;~NmVL+{0xm8+jr0Smt%wOFudA*&peTkK z?c{4FCT5ig2@$UEWqipyk*FJoplHq^*!KmpsC&28tX0c1l8$X9SLi){D56e=RC4J3 zatGw|qX`mpp;k(t68c_@ZJRQ|9zMt(j_U+vZ$#d(dM7P)fU$QP$PoSVXqABBmurJZ zgfogK9(b)?!q3$RemQj0Ks-Y5CSJ!ExpmzEhf#fR{ipaRJn`Q@Se|zeDR`rg58%^! z@&z_F`)EP^Zl|~62pi?bHtn{;w~STpY|=|@Arw^ajf{{SD?MG0oeGVTg9TqY$bJ1P z`?@QgfZW#|6ZmavLS-gUvbLbFC!y>G-m=`%!RoTF-C|?WN>tU+G%d5j?YtM*b3>k{ zk`>X7Np?nGP)19O1XdtF0tjd-FI{AP5b7h0Oao{qSgUNXukFl6a&TqLHgS*9jX;W0 zYa=sdBQ*@HZ|R=C^Jy0QrIcRbXkNH%S&I2(<6q8rb9A$ml#`ATZ@;(EhEs6!5f$eI z<7UBTUOn2(+Ug`XyEFE&=4_w_sPLB1yCS7#Rt3hg9dEABPIC%XGKSxTjBGR)(Z!JW z?0JpYb4*R6Ki1Ft$8xA3Cyt>a9j`h!872vF{^-hyMJ^9Ty@^Ck!o6j;tG(~qJwn1o zVeRx{4pswE!QBYkkwG;TTIR?@<&@MW@Hi>n$2(J(d7ue_Cli28(Gj^UZHh<1^lL=0 zwL+-D+43%BL=?EH)G;%c3dfSx<-0TDBKWk5&fV2;CiwaF-X4Fw?!ZNvyQs50-Df&m z@lhcI1)cfkQzvCpn!B<`<2heAcu6M>pMkBCQBq=$2=_ZxXz<04`l?~5PdixEV4?z8ZVGlKo-Ap&oFJMyy4+6Q5` zDss#Us;)xTw`V`JL*r+y9H2V^=K*XBS?vD$T6UT_C6C350!PLuL7W?iJGlFDTUc3+ zq}yqOT3l3p&~Jl@8HO`Yhf|)$*O{!Fylijr6?s4%>Eo~U+-QKI!(+;psXdgX@Vb6g zywVLwmfykUf!wRu%L4hU4mTsCVg@9-Sw4SXDD^Gke7Y9&Ei9wT_(b)D?x@WKHpY_= zqttr?zuQgp-9k^x zx+IU}$S}3$)YO!fg~gq6F$3h@LKeKLijhu3L~!T0S^ylC+>IQclIN>z7{T}{X3B{0 z^o(gqiujXV)u?aENTfr+N9}SV+2xtLudW{^kg|MuiE8e@TampUK|vca?|s7)l~?Cl zR3P*c6!n}2&qsic03+rH?xE!^-mu78TTs7O#YFjOv3C0^&`-*6w`bAobEX9EkN~*Y zy8TphOzjqhVG}ib?+1Phk@R8rdgiB-lG2MY8PA}mp>W$akmkyQK2l^W*L{||Q&+5b zy8?Y6!{ekmuu?sjSGojxvb(1xCD)S~ z*OwwMde{qn(0ezKQGk@g1jruM7|AOLUlam?z%{~wS8eQc&W{J+9R92ofR*+#cH=AIa&CfV=ARY0tF~EM19p5bidZ9XxuHTdD5DGEb_(LZ zt!WG4@%0w7Tis#rUL^Y5rs$THg*yX~vw=7+6VMvyAbN*7l+CjN(iHbNE$Z~UxkQKV z0~+2#VNuby9?jNr1rv$lFQ~p`zHZ`4mJVc?+GW<#i4qZkFu(Ew z7H})xhB8!Lik&h*PBqpxwH}ruEq}YSOpd-kb45^|#0#s>bPsifK4eF+cU*(1K94<% zzBDT0DnWK7XZ(}#6C&dF0QaCCp2QlZS*)al$A}H5C&PV*5yupXmk*A)VCLK-0{Tu6 zaHJ*Nmh&qkx9YmjN3+T*chJW`0CE`To=r|nsWe%h^1F?(J$JqSQai%eDlbV;OMiVw zLbm1HeR48RGYcUa`zCs%Uk$z3VvROFN8VibN2{m|X{$U^*Ka`qjB*aKeg_;gXVn?Q z{Q%=n85GIdG@1iTB1==8Z`w`mxofaLMtX>j=O$|6cBT>6@Lx$&kb)ug5NavCykSd1 zl}B*#`LgUu&CgRy65NL|m+kT~Y!a185Xh2XbbWM_%I zH@Y1Ax1n>_{0~75UI&kHAr13}t-^QjLrV?8`nmx@m(2s;5GKuhl9V%dV?Tdc+B@0! z7Qav9+$A#v=< z%*tWYc^{6Tc}@XMI4X-xJS^c@V=V+JuYbVbfM&Q3E1Nz%17Od25mUvP`wM+XKDwTJ z>Lv`?2AxpB@_>bqD%ZI$5x~b$F{R zLSe1^uyiD^*THI0B3?bLZbq4is$Q?Dr;6vfkRq$a^9XZC<882ys$j&1N4+9*6#cV_ zhcx_xf`TtX%N&}{1h;Lj9XFk9HYMIW;E*D>u-6&a(btb{dQtQ=VP+<6&q=ZIF~&kE z^BXIVqI=i5dp%BoOs)JA(xn*ll#yLWS1I5R5wC!Jd?7lf5KQ+**)A9hysv<%$6b|L zUQv;9z7N2He2-Qt;Ej#EuPXYK-f~+nHkN;1h=>h5M2}2Sx(beJnG49-UD#eacAQ6& zRkKcZ(Xt*$Hsc4;6vX0gCE75qjdM4)%Mm;4z^1?c+CvSR-D=eC>`1&4V`yf1IP46O zZ^0;wPU+NN(*@K&b8l7Kl?$*Z7_9^jZERSlrXd{PGof3~KP1|#QyK)g6Sl*y9~$ZF zYm5fspAkZ=Y#`hS?*lHoZ3mkG9%3r3yKwnh0q|8c;kx4(EmQZaV-z;s9hH7}(^Sk2 zp88C-N6)U9H^!|o2Ox;-*AZDWL7Juu5M}X3fHyhNk`ecF9 z9x}$FP0%?2_uy7p;&|h(Ev_;N2|rT25R#oHxe_BptoWeZ-1$m9ywH}Ilz@=>%8QA6 z!t>7&V3BV3+NSy>t@eYqkW^w5yyn*SlraZ3ziAwGQ~XJ6;vO0>_a-d_%J_*8wJVDZ z#_aKHAkO@}vFEAw5Ywj5Y=UrH`!zU4CURfk~!_IS<=%QS<4Ji^g9 zsCN;Truw)mC`W#1?+yE~5ADnxCVPvzqEa^=0$m_jF=L;xo*jn+{>9=PCv6jJDHTDCLYtq6Y`HAlox^$X)0{X_kZUC~pgP1ILhpWQHjtTU%*qi8c( zfjgV$LxxdK1?>uc*Be~PeM=tmhq;{-hjTozHhNiWpxc4YG!wE=%sN1wYz4%WuRq--IRftd)djK}MPGm(d@775%#O|^}w zAb&Vl0EZ1HIVmxTpGQM#9R5PV24)apMzCq4$horomiwJeD7jHx-s5kTZlT{d5y;-s z<2_srbodN{Vk2T`pJmjizGb8!S}OOPs=Y_^sFEhZYe)XHRCU=brvcZL13MpD-M#u< zpPn;`344k?RYdnW`0+3=`@ub`f&`?J^VgJ?=KMV~W*dA{j5xDe6*Y=JuV&z2-!QG( zRAr+NsxKm-3Fj$>eDqkzZcnaiC$}*5B-@!g_x{3d;dDG3!4uJdE1$K#6%a-a$K8QS z_TC}`+AjC?&U8JRI~DG9m}}UYSdxXB0&enkn6>&*$>gQ$VI?pwa0h&LssVI>=cNtvB-f*%ddR8VRrY9|iIBHw+7 zKc;%+?l=XJ6q4H}3uyqxAoHWymiPh4lFI34$mW|QpTUYnJ2Kwq3)zA*vri#PW-!)Z*B!lnQV`!*4$3NoHVTL(*F`_u{a!Xk_wlAfe9U|bH@JL2&<5o) zF6Kb(Ai=uZw(uOQKtxAKn3Nb&bg#6W zC1!ip8`qSGUQJnEDL&md-)4_%pSU;Yi%LtJL^I7H6LhJI`wySZGLUl8fPppBBbdeg zhmw@ZU+5DqXjuDqxFjz5vKMGW87{#Sfl^SUL%=xtRUQHG_ETn2gejm z7=0u-jG2*`9Qib{3-{EvIfn z%O#N4J^jlPhOnqJBeaA6@qNV9Onq=(uX>0EO>fnZ{Wld!h=Zu=9?pF;N@B!aqK>73 zSbD}e5U#-DCkC(UTR3_`$@sih$h#18!9k%%N0o=Qf)XByLAyMZwMCD>)#6Ur7O|r- zb(t=|w?ty0B1U@MbTCMkbHX6Qdgl@ty_qcS;2K7kt`aZv^O@R%yIUE(Xx)E4z0VEMU zJ9PceaL$02XFt3%;w2X zvpeBZ+s+i^TPBM9m6N-4#T=KXyMK+B>sLnoKi*Q@mD{=}rK6NB^FSTB>FBr5V_0|F zW3XX!L$Xx7Pj*!`=TbC8-py$tWlj_!DI}1`A_u0PON1i}^L0TKYaz$D%F+Ak9CjF+ zwU9u&BBK}tZHE3ap}ig|*i=PGqTMqpK5;u_eeV1R{~0F5$lC>;**A8>Qk$}IN>^bD zmmfyWH7eATRAEQ>7;{R}xpbOFmHg2szUVdVzUbLOb;+=cnIBm^`64iM(PDqo*#esH z&KbrhCLZ9=gEwktpOq_)^8<#M~cLpP__+v zIZ7v*&vmZ6h?|T_LNrv8)fRwN-YI)iX7)ryjj9mXS~<2KHGdJ0KYd&K-Rb$iiN^n} zs@n?(Q2!Xn?9>73IGK>rhqY|(!8UZ5)UFF-mp=$I&8Rc!7I5VS`(>u3L|A);gtLMj z%j_l$+!#>at{>+y=d%)zMO8~@du;E1J`ciQHul@kz7mazsdUWUieVLg@Ks%pfhW@K ztByhl4ew*_SfxbPcQa!Zf#zVl?W!T{$#(r=S4K7bgqo)mLl5j zayF(LRJ_jFBd)7c3)!`QX&@@<^Rdjzi!W51hE9}%MuAbZ?k0=uOEXK}C%IqMO+Xlz zkJ-6zK*fkTxq>(hoYOhCZ~5RbkM(RQ7p?l3*&#*@KJl>a=W5- zZCHhHDsef-{Vtx#jW$}47*B}Xd%rsBOh#S^F)xNKpePwo{jk>4!CAXes;nNQZ*&Ldop^7ZL=c#Cr}hq~jZ(lyKFFjQwBSJqH}#QI z69U#YYAv$Fi~4Mq4+vw}7l0JuEd8E)gX``u^=n0VVh*l%Yk93AkC>G`Z)^{s^Q&ti z+L;l^EuF+>swDPFjrJtQY!#Rnm0D9T}IpI138MSWB{P#{*zlprI6<*dE2c2im zhCfeprFV$2shd`0@e14=fWty6M0~cz?lv683EcFN;*gSRUU@xvxFT!p#VAI&pTKZ0 zxBPPa=zHfe?Rmo_R`2}YHxiRBdxkH*G`9wTj9zkQerHsV3R`oz@;R&LR-~+^TMDVo zoOF(mz%Ap_@AUL9Rm1NEWq%-_NwBWuWzov0Fl)#NhOPXdR?fQ3F4?XN5L}NSAq9M3 z(v&!-l*nHj4EaU?Gh9(S)rt99R_JFpXU1Hp>32M7*3Y@G*16D?y)&3}k8h`v%JITV z_}u;}PLW=%iWj}9X=i+@1c3C3n+VBuXvlKcE-x5Jh~RM+g&=|WD_5sw_driYSX+Js zA)J~;QH*7WM6n_@#n8(e=(0;+GcMd?8tXpYo z@Fgz#`r%m8mh~2Ir+-Bl4fZkMWdYz0a&HduLdq1lO%0xtT#;WxbsgX#Rt>tv6c<4((YoaW84`)uGEZ5^{;!thQv{Co9 zpUB@u3HuDa3-dQ=i-`Ji??`LR#c<7KM9eeaoK_<}>^*fcS&j@O``ut6ve;X6{6btQ zl!EhYCn9q3ey134gt@28_sED;L|vW>0V*9UGI!%zPSi_M6$`@C?V4Ub9PhmMj#rjp z7IjcJVDwjk5g1)5kPm~_5I-AsvNuigQrA4b( zh(6dlw^i+`38~#GpYwW9Zg5&cS9nC1GO(#@hdW)+T0i>Rl*~-%Ywj8zL$jh!&ZXsa zJ_m7dF}G?5{u3DW+T+Fm9t+N+%Dmy=XxQep-+gwt4)Enrbzr`Af`( z3t{E}o~63MEkUO@dc5P|>Bwp!pdn(2q1EspVFJF3{<{vJ2eB^&YWh3;+Oe20@Yx+W2_5Yz5r~?k#qZsV_ zj}Cns{~8N!cG?QgoW+Dh!hNF!1RCf^2E~(TV@TB8eD&h}dqwy{p3%iWcI=d*0!7i^ zDtWy|1MWV07dokwrw*KqoMc?COs+5tMs!03^tFz{DB92#mD+(7`DAu!&iDJql6;fk z4wsb~$}ATY!Qi%u(;Cg837GY?C9aq0MbcbK#a0dX)!$$Zfc}hXmmG7nf4_%E1iTbr zYO-lVcMv+k*v7aW9uyj%D6;K}-ARMjmL+Rddkjg;;cahiGD%SyYY*<2V7`#@xg>0^ z?Cuj}Zk!A4?AQjVYoUi&bWFa9k!O9s`gQ94fSTWai6x+OW!)@tWV-armJ4qK$&@st zyr`$nyBDnM>JFvwUyIyXLXK;zmI%))4rmupi`ljuc%DoMk3J;007q>(+>l93Ui?Xc zukpR|jHGo_Y5(XvKbQAc zkk>v>KkNaZu{(OeNi4f5DLhOiK|)3HK4Wi=eJ(7Bb&2g7}zy8<71TgL_L;S1GB0|RaM>HV8L=A8EriAnTM=14z zrVK_u6bE8vN)a;|eX9BpdVNKUS`NNXvr@awslHQS{-)JXUQEvLYd>S&py*SI#1yOA z2}MGP2uZBR@Q3q`heDd>U20%Gp-aZVzasAy@TE9Qq?#4fq0Xt%bG@=OqSkh#uabDu zrkgp!CqnHclr=reGR6VHx-|dE_g#&R26%fm?Iyse#I+^TYA~7F!qU0)xN?8(cBUUCDP-uFPPk; zs%vgTLuWC<^P-DwtzvQ{gRm$6{jr|EU)d&^9c6w{aY){ypaY=R!S~*hJdZ5yGE*1H zgF>^RC&;(*$sLSt7gGtZann>%{X}sQJL2=Kl%MhThRQlf2n%>#9Yc?_A8B}(*2SE+ zRg4^(Z1%v%03XxS^|!vS$4Nth=`Z(L6{)MN^__}8-Y|w#99BhmBxscnS!GuRUFCr! zphNOLK(phAlt-3IJt@mv2u68=j_ZKM&vsn;4*YLor(4HN9zG6D;l|{DOxbeTu{58G zYc%@Wi;FU^a?MU%E_=TsSmlD9{UilVfR_zLqCUHPxnM9H zMSfPZ`@LGY|D2Qh6`3g&5s)E8u59Uy88vuPFWI_i>M3+ogd{?7OSN`W|By4lcSa^@ zpsi}e?e2kY*}hIDSGVS15<_Ib%@*sN&cWF5uG6>pzO_wgk4C=6`1)Me;*!NIZet6_ z#{L{XU*05QbgA7RdnP{zOSSSAzPZId-(L3{QwT$j1t%)Rv-L9B(v+Hy*+6e}88DH9< zn;EAKMgk!%hU$V64rD)CHIDR5-3vg9x_N6ZwY&rUF1+Wp_V<0MM268^$kW2N3^$L4 z1vz|=&dhvyK%;geB{RFgkh6Uq$?;eZ>F=KpAi53~`)}$lVB!Cs00zn9vs3O+x)HyE z@mojsfAt@N!bJmQvPZR~?2ahIewV4&==R1)|);3ou zT!URVVXpi9tpCWc`o8VGO2^~F>6<2>gg&M?``!R~w}0|A3*iR0e%I5)ur;CjCYFtwI@H5` zC-&CYUDp{tzu(?K4>ekE(Rkb50io;QB?~Zy5m}7SvT1yo+Kp7Na_}tOrv;^-|Sk;t&$(@sX1Il9ygNZKbGVk&xFXhQ9ryv-lJ)i8&}gu z9NADUC#<}IyM%Dt0Ev9-_wxG?%afvtD3IX#7x(i}v!-Nwva@G69zt;}uWKH|wUk!lmxlyrnBM>FVW3mE8 zr-hE*iyq-PjlbT)+OE9!@vG~>aBnZ)*of`@r&c^!G`^7PGxTf($XA( zRYtULA6J31`+>e`T^ZLl$3y8hx1{(!fonMCSWMaGAzQQI+0#!wmbQk5Kp6+Tywx{0 zCbB-@PL%t*!Q!0z>zwVVg~jM6@zz)DVL08=Vh+?Ef6}mkh${IQG zQx?1KS1QzCTNg_d^p2zES)8#{IdHPtWo9MsAUFlW*S! z$BnxM`I_QGQBnYv@oPYdybxb;H!1P%aN_%QOjbGBbkT^&kVZxXip zrrx<_^m-Mff)w-e&pRoJNbAbc#nh^UEw+6+(Ltz)KII}tmq%@>8P*XYxPC42YvQLh zCiAX8>!b6XKOZ6F{P;o(5N=IYW14}BPxAEpgF*t=>9tj!#~zHJUP=Gnzkn$z+@1>d z{ndCOM8&-%ReE*lEJxt1cO*wZ+mqyP3^gxOJ$E_iNO6(5pa*|<82uw&@APq4a1p5_ z`=e5SK??r!veXl&KWQBLX)mDmm#_Eh%g^m`6YJgn#((ekp#L7tg)idmUDw&3`05pcZHF?pJH{H2*Wwzk%@Q+{1B9Wz+rDRH{Eys{h9?uO{NO?6fk^F4)ht`**>93GBZT_76J$h2$?)^sf&4rD6Y7`oE0bzgF^>7yGYU@hi0W f|JbcK#^MoBkrxoG3;SQf{mDx!OBFwP{`!9acmeUg diff --git a/infra/website/public/images/blog/entity_dataframe.png b/infra/website/public/images/blog/entity_dataframe.png index 586737796b141f01fb3ab4e05b22b04ce4a99ac9..5588c9260d858fca3d8b36511370dc15ccf6a3c4 100644 GIT binary patch literal 41708 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 z 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 VOuEcmV3vgVIbiExL$}7o{R3hHuonOT literal 140260 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

  • (8B~jU;iUjSr-y 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 LRPVixW7K~EvlT=6 literal 0 HcmV?d00001 diff --git a/infra/website/public/images/blog/model_metadata.png b/infra/website/public/images/blog/model_metadata.png new file mode 100644 index 0000000000000000000000000000000000000000..161723e7e0c5f3e35092a927aa7b02fb3ab4584b GIT binary patch literal 578484 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