From 100c989473eef12cd08f2e16667de1118dd33092 Mon Sep 17 00:00:00 2001 From: marcozabel Date: Tue, 24 Feb 2026 14:10:02 +0100 Subject: [PATCH 1/5] feat: Make flagd defaultVariant optional Signed-off-by: marcozabel --- .gitmodules | 4 +- .../openfeature-provider-flagd/flags/.gitkeep | 0 .../openfeature/schemas | 2 +- .../openfeature/test-harness | 2 +- .../openfeature-provider-flagd/pyproject.toml | 2 +- .../contrib/provider/flagd/config.py | 27 +- .../contrib/provider/flagd/resolvers/grpc.py | 16 +- .../provider/flagd/resolvers/in_process.py | 12 +- .../process/connector/grpc_watcher.py | 2 +- .../tests/e2e/file/conftest.py | 1 + .../tests/e2e/inprocess/conftest.py | 2 +- .../tests/e2e/rpc/conftest.py | 9 +- .../tests/e2e/step/config_steps.py | 5 + .../tests/e2e/step/event_steps.py | 2 +- .../tests/e2e/step/provider_steps.py | 5 + .../contrib/provider/ofrep/__init__.py | 6 +- uv.lock | 434 ++++++++++++------ 17 files changed, 364 insertions(+), 167 deletions(-) create mode 100644 providers/openfeature-provider-flagd/flags/.gitkeep diff --git a/.gitmodules b/.gitmodules index ad5fe10a..affa0495 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,11 +1,9 @@ [submodule "schemas"] path = providers/openfeature-provider-flagd/openfeature/schemas url = https://github.com/open-feature/schemas - branch = protobuf-v0.6.1 [submodule "providers/openfeature-provider-flagd/spec"] path = providers/openfeature-provider-flagd/openfeature/spec url = https://github.com/open-feature/spec [submodule "providers/openfeature-provider-flagd/openfeature/test-harness"] path = providers/openfeature-provider-flagd/openfeature/test-harness - url = https://github.com/open-feature/flagd-testbed.git - branch = v2.11.1 + url = https://github.com/open-feature/flagd-testbed.git diff --git a/providers/openfeature-provider-flagd/flags/.gitkeep b/providers/openfeature-provider-flagd/flags/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/providers/openfeature-provider-flagd/openfeature/schemas b/providers/openfeature-provider-flagd/openfeature/schemas index 2852d777..9f823b5b 160000 --- a/providers/openfeature-provider-flagd/openfeature/schemas +++ b/providers/openfeature-provider-flagd/openfeature/schemas @@ -1 +1 @@ -Subproject commit 2852d7772e6b8674681a6ee6b88db10dbe3f6899 +Subproject commit 9f823b5b36bf219f8ea342de006fdf5013c1bc79 diff --git a/providers/openfeature-provider-flagd/openfeature/test-harness b/providers/openfeature-provider-flagd/openfeature/test-harness index fe68e031..3bff4b7e 160000 --- a/providers/openfeature-provider-flagd/openfeature/test-harness +++ b/providers/openfeature-provider-flagd/openfeature/test-harness @@ -1 +1 @@ -Subproject commit fe68e0310fd817a8f9bc1e2559f2277fed3aed34 +Subproject commit 3bff4b7eaee0efc8cfe60e0ef6fbd77441b370e6 diff --git a/providers/openfeature-provider-flagd/pyproject.toml b/providers/openfeature-provider-flagd/pyproject.toml index 743eeea5..d5fbf60c 100644 --- a/providers/openfeature-provider-flagd/pyproject.toml +++ b/providers/openfeature-provider-flagd/pyproject.toml @@ -18,7 +18,7 @@ classifiers = [ keywords = [] dependencies = [ "openfeature-sdk>=0.8.2", - "grpcio>=1.76.0", + "grpcio>=1.78.0", "protobuf>=6.30.0,<7.0.0", "mmh3>=5.0.0,<6.0.0", "panzi-json-logic>=1.0.1", diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py index 2a21ba36..ffb24200 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py @@ -28,7 +28,7 @@ class CacheType(Enum): DEFAULT_PORT_RPC = 8013 DEFAULT_RESOLVER_TYPE = ResolverType.RPC DEFAULT_RETRY_BACKOFF = 1000 -DEFAULT_RETRY_BACKOFF_MAX = 120000 +DEFAULT_RETRY_BACKOFF_MAX = 12000 DEFAULT_RETRY_GRACE_PERIOD_SECONDS = 5 DEFAULT_STREAM_DEADLINE = 600000 DEFAULT_TLS = False @@ -42,6 +42,8 @@ class CacheType(Enum): ENV_VAR_OFFLINE_FLAG_SOURCE_PATH = "FLAGD_OFFLINE_FLAG_SOURCE_PATH" ENV_VAR_OFFLINE_POLL_MS = "FLAGD_OFFLINE_POLL_MS" ENV_VAR_PORT = "FLAGD_PORT" +ENV_VAR_SYNC_PORT = "FLAGD_SYNC_PORT" +ENV_VAR_FATAL_STATUS_CODES = "FLAGD_FATAL_STATUS_CODES" ENV_VAR_RESOLVER_TYPE = "FLAGD_RESOLVER" ENV_VAR_RETRY_BACKOFF_MS = "FLAGD_RETRY_BACKOFF_MS" ENV_VAR_RETRY_BACKOFF_MAX_MS = "FLAGD_RETRY_BACKOFF_MAX_MS" @@ -83,6 +85,7 @@ def __init__( # noqa: PLR0913 self, host: typing.Optional[str] = None, port: typing.Optional[int] = None, + sync_port: typing.Optional[int] = None, tls: typing.Optional[bool] = None, selector: typing.Optional[str] = None, provider_id: typing.Optional[str] = None, @@ -101,6 +104,7 @@ def __init__( # noqa: PLR0913 default_authority: typing.Optional[str] = None, channel_credentials: typing.Optional[grpc.ChannelCredentials] = None, sync_metadata_disabled: typing.Optional[bool] = None, + fatal_status_codes: typing.Optional[list[str]] = None, ): self.host = env_or_default(ENV_VAR_HOST, DEFAULT_HOST) if host is None else host @@ -110,6 +114,19 @@ def __init__( # noqa: PLR0913 else tls ) + self.fatal_status_codes: list[str] = ( + typing.cast( + list[str], + env_or_default( + ENV_VAR_FATAL_STATUS_CODES, + [], + cast=lambda s: [item.strip() for item in s.split(",")], + ), + ) + if fatal_status_codes is None + else fatal_status_codes + ) + self.retry_backoff_ms: int = ( int( env_or_default( @@ -161,6 +178,14 @@ def __init__( # noqa: PLR0913 else port ) + self.port = ( + int(env_or_default(ENV_VAR_SYNC_PORT, self.port, cast=int)) + if sync_port is None and port is None + else sync_port + if sync_port is not None + else self.port + ) + self.offline_flag_source_path = ( env_or_default( ENV_VAR_OFFLINE_FLAG_SOURCE_PATH, DEFAULT_OFFLINE_SOURCE_PATH diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py index 4a9dab8e..3a3a07d9 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py @@ -22,7 +22,7 @@ TypeMismatchError, ) from openfeature.flag_evaluation import FlagResolutionDetails, FlagValueType, Reason -from openfeature.schemas.protobuf.flagd.evaluation.v1 import ( +from openfeature.schemas.protobuf.flagd.evaluation.v2 import ( evaluation_pb2, evaluation_pb2_grpc, ) @@ -88,7 +88,7 @@ def _generate_channel(self, config: Config) -> grpc.Channel: { "name": [ {"service": "flagd.sync.v1.FlagSyncService"}, - {"service": "flagd.evaluation.v1.Service"}, + {"service": "flagd.evaluation.v2.Service"}, ], "retryPolicy": { "maxAttempts": 3, @@ -237,7 +237,8 @@ def listen(self) -> None: ) self.connected = True elif message.type == "configuration_change": - data = MessageToDict(message)["data"] + msg_dict = MessageToDict(message) + data = msg_dict.get("data", {}) self.handle_changed_flags(data) if not self.active: @@ -252,7 +253,7 @@ def listen(self) -> None: ) def handle_changed_flags(self, data: typing.Any) -> None: - changed_flags = list(data["flags"].keys()) + changed_flags = list(data.get("flags", {}).keys()) if self.cache: for flag in changed_flags: @@ -419,11 +420,16 @@ def _resolve( # noqa: PLR0915 C901 raise ParseError(message) from e raise GeneralError(message) from e + # When no default variant is configured, the server returns an empty/zero proto + # value with reason=DEFAULT. In that case, return the caller's code default value. + if response.reason == Reason.DEFAULT and not response.variant: + value = default_value + # Got a valid flag and valid type. Return it. result = FlagResolutionDetails( value=value, reason=response.reason, - variant=response.variant, + variant=response.variant or None, ) if response.reason == Reason.STATIC and self.cache is not None: diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/in_process.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/in_process.py index 9c6027b2..ba42653d 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/in_process.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/in_process.py @@ -5,7 +5,7 @@ ) from openfeature.evaluation_context import EvaluationContext from openfeature.event import ProviderEventDetails -from openfeature.exception import ErrorCode, FlagNotFoundError, GeneralError, ParseError +from openfeature.exception import FlagNotFoundError, GeneralError, ParseError from openfeature.flag_evaluation import FlagResolutionDetails, FlagValueType, Reason from ..config import Config @@ -132,12 +132,12 @@ def _resolve( ) if not flag.targeting: - return _default_resolve(flag, metadata, Reason.STATIC) + return _default_resolve(flag, metadata, Reason.STATIC, default_value) try: variant = targeting(flag.key, flag.targeting, evaluation_context) if variant is None: - return _default_resolve(flag, metadata, Reason.DEFAULT) + return _default_resolve(flag, metadata, Reason.DEFAULT, default_value) # convert to string to support shorthand (boolean in python is with capital T hence the special case) if isinstance(variant, bool): @@ -169,14 +169,14 @@ def _default_resolve( flag: Flag, metadata: typing.Mapping[str, typing.Union[float, int, str, bool]], reason: Reason, + default_value: typing.Any = None, ) -> FlagResolutionDetails: variant, value = flag.default if variant is None: return FlagResolutionDetails( - value, + default_value, variant=variant, - reason=Reason.ERROR, - error_code=ErrorCode.FLAG_NOT_FOUND, + reason=Reason.DEFAULT, flag_metadata=metadata, ) if variant not in flag.variants: diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py index e557466f..b5f13f6e 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py @@ -69,7 +69,7 @@ def _generate_channel(self, config: Config) -> grpc.Channel: { "name": [ {"service": "flagd.sync.v1.FlagSyncService"}, - {"service": "flagd.evaluation.v1.Service"}, + {"service": "flagd.evaluation.v2.Service"}, ], "retryPolicy": { "maxAttempts": 3, diff --git a/providers/openfeature-provider-flagd/tests/e2e/file/conftest.py b/providers/openfeature-provider-flagd/tests/e2e/file/conftest.py index 03f1332a..08e07377 100644 --- a/providers/openfeature-provider-flagd/tests/e2e/file/conftest.py +++ b/providers/openfeature-provider-flagd/tests/e2e/file/conftest.py @@ -13,6 +13,7 @@ "~caching", "~grace", "~contextEnrichment", + "~deprecated", } diff --git a/providers/openfeature-provider-flagd/tests/e2e/inprocess/conftest.py b/providers/openfeature-provider-flagd/tests/e2e/inprocess/conftest.py index d16bf517..d087b512 100644 --- a/providers/openfeature-provider-flagd/tests/e2e/inprocess/conftest.py +++ b/providers/openfeature-provider-flagd/tests/e2e/inprocess/conftest.py @@ -4,7 +4,7 @@ from tests.e2e.testfilter import TestFilter resolver = ResolverType.IN_PROCESS -feature_list = ["~targetURI", "~unixsocket"] +feature_list = ["~targetURI", "~unixsocket", "~deprecated", "~forbidden"] def pytest_collection_modifyitems(config, items): diff --git a/providers/openfeature-provider-flagd/tests/e2e/rpc/conftest.py b/providers/openfeature-provider-flagd/tests/e2e/rpc/conftest.py index de3cb850..e16f2bdd 100644 --- a/providers/openfeature-provider-flagd/tests/e2e/rpc/conftest.py +++ b/providers/openfeature-provider-flagd/tests/e2e/rpc/conftest.py @@ -4,7 +4,14 @@ from tests.e2e.testfilter import TestFilter resolver = ResolverType.RPC -feature_list = ["~targetURI", "~unixsocket", "~sync", "~metadata"] +feature_list = [ + "~targetURI", + "~unixsocket", + "~sync", + "~metadata", + "~deprecated", + "~forbidden", +] def pytest_collection_modifyitems(config, items): diff --git a/providers/openfeature-provider-flagd/tests/e2e/step/config_steps.py b/providers/openfeature-provider-flagd/tests/e2e/step/config_steps.py index 9fdd6ed9..a3b378ce 100644 --- a/providers/openfeature-provider-flagd/tests/e2e/step/config_steps.py +++ b/providers/openfeature-provider-flagd/tests/e2e/step/config_steps.py @@ -32,6 +32,11 @@ def convert_resolver_type(val: typing.Union[str, ResolverType]) -> ResolverType: "Boolean": str2bool, "ResolverType": convert_resolver_type, "CacheType": CacheType, + "StringList": lambda s: ( + [item.strip() for item in s.split(",") if item.strip()] + if s and s.strip() + else [] + ), } diff --git a/providers/openfeature-provider-flagd/tests/e2e/step/event_steps.py b/providers/openfeature-provider-flagd/tests/e2e/step/event_steps.py index 7aec3648..bbea93ac 100644 --- a/providers/openfeature-provider-flagd/tests/e2e/step/event_steps.py +++ b/providers/openfeature-provider-flagd/tests/e2e/step/event_steps.py @@ -62,7 +62,7 @@ def assert_handlers(handles, event_type: str, max_wait: int = 2): target_fixture="event_details", ) def pass_for_event_fired(event_type: str, event_handles): - events = assert_handlers(event_handles, event_type, 30000) + events = assert_handlers(event_handles, event_type, 30) events = [e for e in events if e["type"] == event_type] assert_greater(len(events), 0) for event in event_handles: diff --git a/providers/openfeature-provider-flagd/tests/e2e/step/provider_steps.py b/providers/openfeature-provider-flagd/tests/e2e/step/provider_steps.py index a2589d12..477c4a26 100644 --- a/providers/openfeature-provider-flagd/tests/e2e/step/provider_steps.py +++ b/providers/openfeature-provider-flagd/tests/e2e/step/provider_steps.py @@ -33,6 +33,7 @@ class TestProviderType(Enum): SOCKET = "socket" METADATA = "metadata" SYNCPAYLOAD = "syncpayload" + FORBIDDEN = "forbidden" @given("a provider is registered", target_fixture="client") @@ -68,6 +69,10 @@ def get_default_options_for_provider( options["cert_path"] = str(path.absolute()) options["tls"] = True launchpad = "ssl" + elif t == TestProviderType.FORBIDDEN: + launchpad = "forbidden" + options["port"] = container.get_port(9212) + options["fatal_status_codes"] = ["FORBIDDEN"] elif t == TestProviderType.SOCKET: return options, True elif t == TestProviderType.METADATA: diff --git a/providers/openfeature-provider-ofrep/src/openfeature/contrib/provider/ofrep/__init__.py b/providers/openfeature-provider-ofrep/src/openfeature/contrib/provider/ofrep/__init__.py index 69372e12..a200fe04 100644 --- a/providers/openfeature-provider-ofrep/src/openfeature/contrib/provider/ofrep/__init__.py +++ b/providers/openfeature-provider-ofrep/src/openfeature/contrib/provider/ofrep/__init__.py @@ -162,10 +162,12 @@ def _resolve( except JSONDecodeError as e: raise ParseError(str(e)) from e - _typecheck_flag_value(data["value"], flag_type) + value = data.get("value", default_value) + + _typecheck_flag_value(value, flag_type) return FlagResolutionDetails( - value=data["value"], + value=value, reason=Reason[data["reason"]], variant=data["variant"], flag_metadata=data.get("metadata", {}), diff --git a/uv.lock b/uv.lock index f9dec5f7..ccd5fb52 100644 --- a/uv.lock +++ b/uv.lock @@ -85,7 +85,8 @@ dependencies = [ { name = "frozenlist" }, { name = "multidict" }, { name = "propcache" }, - { name = "yarl" }, + { name = "yarl", version = "1.22.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "yarl", version = "1.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz", hash = "sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88", size = 7844556, upload-time = "2026-01-03T17:33:05.204Z" } wheels = [ @@ -893,62 +894,62 @@ toml = [ [[package]] name = "cryptography" -version = "46.0.4" +version = "46.0.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/78/19/f748958276519adf6a0c1e79e7b8860b4830dda55ccdf29f2719b5fc499c/cryptography-46.0.4.tar.gz", hash = "sha256:bfd019f60f8abc2ed1b9be4ddc21cfef059c841d86d710bb69909a688cbb8f59", size = 749301, upload-time = "2026-01-28T00:24:37.379Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/99/157aae7949a5f30d51fcb1a9851e8ebd5c74bf99b5285d8bb4b8b9ee641e/cryptography-46.0.4-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:281526e865ed4166009e235afadf3a4c4cba6056f99336a99efba65336fd5485", size = 7173686, upload-time = "2026-01-28T00:23:07.515Z" }, - { url = "https://files.pythonhosted.org/packages/87/91/874b8910903159043b5c6a123b7e79c4559ddd1896e38967567942635778/cryptography-46.0.4-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f14fba5bf6f4390d7ff8f086c566454bff0411f6d8aa7af79c88b6f9267aecc", size = 4275871, upload-time = "2026-01-28T00:23:09.439Z" }, - { url = "https://files.pythonhosted.org/packages/c0/35/690e809be77896111f5b195ede56e4b4ed0435b428c2f2b6d35046fbb5e8/cryptography-46.0.4-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:47bcd19517e6389132f76e2d5303ded6cf3f78903da2158a671be8de024f4cd0", size = 4423124, upload-time = "2026-01-28T00:23:11.529Z" }, - { url = "https://files.pythonhosted.org/packages/1a/5b/a26407d4f79d61ca4bebaa9213feafdd8806dc69d3d290ce24996d3cfe43/cryptography-46.0.4-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:01df4f50f314fbe7009f54046e908d1754f19d0c6d3070df1e6268c5a4af09fa", size = 4277090, upload-time = "2026-01-28T00:23:13.123Z" }, - { url = "https://files.pythonhosted.org/packages/0c/d8/4bb7aec442a9049827aa34cee1aa83803e528fa55da9a9d45d01d1bb933e/cryptography-46.0.4-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5aa3e463596b0087b3da0dbe2b2487e9fc261d25da85754e30e3b40637d61f81", size = 4947652, upload-time = "2026-01-28T00:23:14.554Z" }, - { url = "https://files.pythonhosted.org/packages/2b/08/f83e2e0814248b844265802d081f2fac2f1cbe6cd258e72ba14ff006823a/cryptography-46.0.4-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:0a9ad24359fee86f131836a9ac3bffc9329e956624a2d379b613f8f8abaf5255", size = 4455157, upload-time = "2026-01-28T00:23:16.443Z" }, - { url = "https://files.pythonhosted.org/packages/0a/05/19d849cf4096448779d2dcc9bb27d097457dac36f7273ffa875a93b5884c/cryptography-46.0.4-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:dc1272e25ef673efe72f2096e92ae39dea1a1a450dd44918b15351f72c5a168e", size = 3981078, upload-time = "2026-01-28T00:23:17.838Z" }, - { url = "https://files.pythonhosted.org/packages/e6/89/f7bac81d66ba7cde867a743ea5b37537b32b5c633c473002b26a226f703f/cryptography-46.0.4-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:de0f5f4ec8711ebc555f54735d4c673fc34b65c44283895f1a08c2b49d2fd99c", size = 4276213, upload-time = "2026-01-28T00:23:19.257Z" }, - { url = "https://files.pythonhosted.org/packages/da/9f/7133e41f24edd827020ad21b068736e792bc68eecf66d93c924ad4719fb3/cryptography-46.0.4-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:eeeb2e33d8dbcccc34d64651f00a98cb41b2dc69cef866771a5717e6734dfa32", size = 4912190, upload-time = "2026-01-28T00:23:21.244Z" }, - { url = "https://files.pythonhosted.org/packages/a6/f7/6d43cbaddf6f65b24816e4af187d211f0bc536a29961f69faedc48501d8e/cryptography-46.0.4-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3d425eacbc9aceafd2cb429e42f4e5d5633c6f873f5e567077043ef1b9bbf616", size = 4454641, upload-time = "2026-01-28T00:23:22.866Z" }, - { url = "https://files.pythonhosted.org/packages/9e/4f/ebd0473ad656a0ac912a16bd07db0f5d85184924e14fc88feecae2492834/cryptography-46.0.4-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91627ebf691d1ea3976a031b61fb7bac1ccd745afa03602275dda443e11c8de0", size = 4405159, upload-time = "2026-01-28T00:23:25.278Z" }, - { url = "https://files.pythonhosted.org/packages/d1/f7/7923886f32dc47e27adeff8246e976d77258fd2aa3efdd1754e4e323bf49/cryptography-46.0.4-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2d08bc22efd73e8854b0b7caff402d735b354862f1145d7be3b9c0f740fef6a0", size = 4666059, upload-time = "2026-01-28T00:23:26.766Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a7/0fca0fd3591dffc297278a61813d7f661a14243dd60f499a7a5b48acb52a/cryptography-46.0.4-cp311-abi3-win32.whl", hash = "sha256:82a62483daf20b8134f6e92898da70d04d0ef9a75829d732ea1018678185f4f5", size = 3026378, upload-time = "2026-01-28T00:23:28.317Z" }, - { url = "https://files.pythonhosted.org/packages/2d/12/652c84b6f9873f0909374864a57b003686c642ea48c84d6c7e2c515e6da5/cryptography-46.0.4-cp311-abi3-win_amd64.whl", hash = "sha256:6225d3ebe26a55dbc8ead5ad1265c0403552a63336499564675b29eb3184c09b", size = 3478614, upload-time = "2026-01-28T00:23:30.275Z" }, - { url = "https://files.pythonhosted.org/packages/b9/27/542b029f293a5cce59349d799d4d8484b3b1654a7b9a0585c266e974a488/cryptography-46.0.4-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:485e2b65d25ec0d901bca7bcae0f53b00133bf3173916d8e421f6fddde103908", size = 7116417, upload-time = "2026-01-28T00:23:31.958Z" }, - { url = "https://files.pythonhosted.org/packages/f8/f5/559c25b77f40b6bf828eabaf988efb8b0e17b573545edb503368ca0a2a03/cryptography-46.0.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:078e5f06bd2fa5aea5a324f2a09f914b1484f1d0c2a4d6a8a28c74e72f65f2da", size = 4264508, upload-time = "2026-01-28T00:23:34.264Z" }, - { url = "https://files.pythonhosted.org/packages/49/a1/551fa162d33074b660dc35c9bc3616fefa21a0e8c1edd27b92559902e408/cryptography-46.0.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dce1e4f068f03008da7fa51cc7abc6ddc5e5de3e3d1550334eaf8393982a5829", size = 4409080, upload-time = "2026-01-28T00:23:35.793Z" }, - { url = "https://files.pythonhosted.org/packages/b0/6a/4d8d129a755f5d6df1bbee69ea2f35ebfa954fa1847690d1db2e8bca46a5/cryptography-46.0.4-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:2067461c80271f422ee7bdbe79b9b4be54a5162e90345f86a23445a0cf3fd8a2", size = 4270039, upload-time = "2026-01-28T00:23:37.263Z" }, - { url = "https://files.pythonhosted.org/packages/4c/f5/ed3fcddd0a5e39321e595e144615399e47e7c153a1fb8c4862aec3151ff9/cryptography-46.0.4-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:c92010b58a51196a5f41c3795190203ac52edfd5dc3ff99149b4659eba9d2085", size = 4926748, upload-time = "2026-01-28T00:23:38.884Z" }, - { url = "https://files.pythonhosted.org/packages/43/ae/9f03d5f0c0c00e85ecb34f06d3b79599f20630e4db91b8a6e56e8f83d410/cryptography-46.0.4-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:829c2b12bbc5428ab02d6b7f7e9bbfd53e33efd6672d21341f2177470171ad8b", size = 4442307, upload-time = "2026-01-28T00:23:40.56Z" }, - { url = "https://files.pythonhosted.org/packages/8b/22/e0f9f2dae8040695103369cf2283ef9ac8abe4d51f68710bec2afd232609/cryptography-46.0.4-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:62217ba44bf81b30abaeda1488686a04a702a261e26f87db51ff61d9d3510abd", size = 3959253, upload-time = "2026-01-28T00:23:42.827Z" }, - { url = "https://files.pythonhosted.org/packages/01/5b/6a43fcccc51dae4d101ac7d378a8724d1ba3de628a24e11bf2f4f43cba4d/cryptography-46.0.4-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:9c2da296c8d3415b93e6053f5a728649a87a48ce084a9aaf51d6e46c87c7f2d2", size = 4269372, upload-time = "2026-01-28T00:23:44.655Z" }, - { url = "https://files.pythonhosted.org/packages/17/b7/0f6b8c1dd0779df2b526e78978ff00462355e31c0a6f6cff8a3e99889c90/cryptography-46.0.4-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:9b34d8ba84454641a6bf4d6762d15847ecbd85c1316c0a7984e6e4e9f748ec2e", size = 4891908, upload-time = "2026-01-28T00:23:46.48Z" }, - { url = "https://files.pythonhosted.org/packages/83/17/259409b8349aa10535358807a472c6a695cf84f106022268d31cea2b6c97/cryptography-46.0.4-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:df4a817fa7138dd0c96c8c8c20f04b8aaa1fac3bbf610913dcad8ea82e1bfd3f", size = 4441254, upload-time = "2026-01-28T00:23:48.403Z" }, - { url = "https://files.pythonhosted.org/packages/9c/fe/e4a1b0c989b00cee5ffa0764401767e2d1cf59f45530963b894129fd5dce/cryptography-46.0.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b1de0ebf7587f28f9190b9cb526e901bf448c9e6a99655d2b07fff60e8212a82", size = 4396520, upload-time = "2026-01-28T00:23:50.26Z" }, - { url = "https://files.pythonhosted.org/packages/b3/81/ba8fd9657d27076eb40d6a2f941b23429a3c3d2f56f5a921d6b936a27bc9/cryptography-46.0.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9b4d17bc7bd7cdd98e3af40b441feaea4c68225e2eb2341026c84511ad246c0c", size = 4651479, upload-time = "2026-01-28T00:23:51.674Z" }, - { url = "https://files.pythonhosted.org/packages/00/03/0de4ed43c71c31e4fe954edd50b9d28d658fef56555eba7641696370a8e2/cryptography-46.0.4-cp314-cp314t-win32.whl", hash = "sha256:c411f16275b0dea722d76544a61d6421e2cc829ad76eec79280dbdc9ddf50061", size = 3001986, upload-time = "2026-01-28T00:23:53.485Z" }, - { url = "https://files.pythonhosted.org/packages/5c/70/81830b59df7682917d7a10f833c4dab2a5574cd664e86d18139f2b421329/cryptography-46.0.4-cp314-cp314t-win_amd64.whl", hash = "sha256:728fedc529efc1439eb6107b677f7f7558adab4553ef8669f0d02d42d7b959a7", size = 3468288, upload-time = "2026-01-28T00:23:55.09Z" }, - { url = "https://files.pythonhosted.org/packages/56/f7/f648fdbb61d0d45902d3f374217451385edc7e7768d1b03ff1d0e5ffc17b/cryptography-46.0.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a9556ba711f7c23f77b151d5798f3ac44a13455cc68db7697a1096e6d0563cab", size = 7169583, upload-time = "2026-01-28T00:23:56.558Z" }, - { url = "https://files.pythonhosted.org/packages/d8/cc/8f3224cbb2a928de7298d6ed4790f5ebc48114e02bdc9559196bfb12435d/cryptography-46.0.4-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8bf75b0259e87fa70bddc0b8b4078b76e7fd512fd9afae6c1193bcf440a4dbef", size = 4275419, upload-time = "2026-01-28T00:23:58.364Z" }, - { url = "https://files.pythonhosted.org/packages/17/43/4a18faa7a872d00e4264855134ba82d23546c850a70ff209e04ee200e76f/cryptography-46.0.4-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3c268a3490df22270955966ba236d6bc4a8f9b6e4ffddb78aac535f1a5ea471d", size = 4419058, upload-time = "2026-01-28T00:23:59.867Z" }, - { url = "https://files.pythonhosted.org/packages/ee/64/6651969409821d791ba12346a124f55e1b76f66a819254ae840a965d4b9c/cryptography-46.0.4-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:812815182f6a0c1d49a37893a303b44eaac827d7f0d582cecfc81b6427f22973", size = 4278151, upload-time = "2026-01-28T00:24:01.731Z" }, - { url = "https://files.pythonhosted.org/packages/20/0b/a7fce65ee08c3c02f7a8310cc090a732344066b990ac63a9dfd0a655d321/cryptography-46.0.4-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:a90e43e3ef65e6dcf969dfe3bb40cbf5aef0d523dff95bfa24256be172a845f4", size = 4939441, upload-time = "2026-01-28T00:24:03.175Z" }, - { url = "https://files.pythonhosted.org/packages/db/a7/20c5701e2cd3e1dfd7a19d2290c522a5f435dd30957d431dcb531d0f1413/cryptography-46.0.4-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a05177ff6296644ef2876fce50518dffb5bcdf903c85250974fc8bc85d54c0af", size = 4451617, upload-time = "2026-01-28T00:24:05.403Z" }, - { url = "https://files.pythonhosted.org/packages/00/dc/3e16030ea9aa47b63af6524c354933b4fb0e352257c792c4deeb0edae367/cryptography-46.0.4-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:daa392191f626d50f1b136c9b4cf08af69ca8279d110ea24f5c2700054d2e263", size = 3977774, upload-time = "2026-01-28T00:24:06.851Z" }, - { url = "https://files.pythonhosted.org/packages/42/c8/ad93f14118252717b465880368721c963975ac4b941b7ef88f3c56bf2897/cryptography-46.0.4-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e07ea39c5b048e085f15923511d8121e4a9dc45cee4e3b970ca4f0d338f23095", size = 4277008, upload-time = "2026-01-28T00:24:08.926Z" }, - { url = "https://files.pythonhosted.org/packages/00/cf/89c99698151c00a4631fbfcfcf459d308213ac29e321b0ff44ceeeac82f1/cryptography-46.0.4-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:d5a45ddc256f492ce42a4e35879c5e5528c09cd9ad12420828c972951d8e016b", size = 4903339, upload-time = "2026-01-28T00:24:12.009Z" }, - { url = "https://files.pythonhosted.org/packages/03/c3/c90a2cb358de4ac9309b26acf49b2a100957e1ff5cc1e98e6c4996576710/cryptography-46.0.4-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:6bb5157bf6a350e5b28aee23beb2d84ae6f5be390b2f8ee7ea179cda077e1019", size = 4451216, upload-time = "2026-01-28T00:24:13.975Z" }, - { url = "https://files.pythonhosted.org/packages/96/2c/8d7f4171388a10208671e181ca43cdc0e596d8259ebacbbcfbd16de593da/cryptography-46.0.4-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd5aba870a2c40f87a3af043e0dee7d9eb02d4aff88a797b48f2b43eff8c3ab4", size = 4404299, upload-time = "2026-01-28T00:24:16.169Z" }, - { url = "https://files.pythonhosted.org/packages/e9/23/cbb2036e450980f65c6e0a173b73a56ff3bccd8998965dea5cc9ddd424a5/cryptography-46.0.4-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:93d8291da8d71024379ab2cb0b5c57915300155ad42e07f76bea6ad838d7e59b", size = 4664837, upload-time = "2026-01-28T00:24:17.629Z" }, - { url = "https://files.pythonhosted.org/packages/0a/21/f7433d18fe6d5845329cbdc597e30caf983229c7a245bcf54afecc555938/cryptography-46.0.4-cp38-abi3-win32.whl", hash = "sha256:0563655cb3c6d05fb2afe693340bc050c30f9f34e15763361cf08e94749401fc", size = 3009779, upload-time = "2026-01-28T00:24:20.198Z" }, - { url = "https://files.pythonhosted.org/packages/3a/6a/bd2e7caa2facffedf172a45c1a02e551e6d7d4828658c9a245516a598d94/cryptography-46.0.4-cp38-abi3-win_amd64.whl", hash = "sha256:fa0900b9ef9c49728887d1576fd8d9e7e3ea872fa9b25ef9b64888adc434e976", size = 3466633, upload-time = "2026-01-28T00:24:21.851Z" }, - { url = "https://files.pythonhosted.org/packages/59/e0/f9c6c53e1f2a1c2507f00f2faba00f01d2f334b35b0fbfe5286715da2184/cryptography-46.0.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:766330cce7416c92b5e90c3bb71b1b79521760cdcfc3a6a1a182d4c9fab23d2b", size = 3476316, upload-time = "2026-01-28T00:24:24.144Z" }, - { url = "https://files.pythonhosted.org/packages/27/7a/f8d2d13227a9a1a9fe9c7442b057efecffa41f1e3c51d8622f26b9edbe8f/cryptography-46.0.4-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c236a44acfb610e70f6b3e1c3ca20ff24459659231ef2f8c48e879e2d32b73da", size = 4216693, upload-time = "2026-01-28T00:24:25.758Z" }, - { url = "https://files.pythonhosted.org/packages/c5/de/3787054e8f7972658370198753835d9d680f6cd4a39df9f877b57f0dd69c/cryptography-46.0.4-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8a15fb869670efa8f83cbffbc8753c1abf236883225aed74cd179b720ac9ec80", size = 4382765, upload-time = "2026-01-28T00:24:27.577Z" }, - { url = "https://files.pythonhosted.org/packages/8a/5f/60e0afb019973ba6a0b322e86b3d61edf487a4f5597618a430a2a15f2d22/cryptography-46.0.4-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:fdc3daab53b212472f1524d070735b2f0c214239df131903bae1d598016fa822", size = 4216066, upload-time = "2026-01-28T00:24:29.056Z" }, - { url = "https://files.pythonhosted.org/packages/81/8e/bf4a0de294f147fee66f879d9bae6f8e8d61515558e3d12785dd90eca0be/cryptography-46.0.4-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:44cc0675b27cadb71bdbb96099cca1fa051cd11d2ade09e5cd3a2edb929ed947", size = 4382025, upload-time = "2026-01-28T00:24:30.681Z" }, - { url = "https://files.pythonhosted.org/packages/79/f4/9ceb90cfd6a3847069b0b0b353fd3075dc69b49defc70182d8af0c4ca390/cryptography-46.0.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be8c01a7d5a55f9a47d1888162b76c8f49d62b234d88f0ff91a9fbebe32ffbc3", size = 3406043, upload-time = "2026-01-28T00:24:32.236Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload-time = "2026-02-10T19:18:38.255Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload-time = "2026-02-10T19:17:08.274Z" }, + { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload-time = "2026-02-10T19:17:10.53Z" }, + { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload-time = "2026-02-10T19:17:12.388Z" }, + { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload-time = "2026-02-10T19:17:13.853Z" }, + { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload-time = "2026-02-10T19:17:15.618Z" }, + { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload-time = "2026-02-10T19:17:17.221Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload-time = "2026-02-10T19:17:18.792Z" }, + { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload-time = "2026-02-10T19:17:20.256Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload-time = "2026-02-10T19:17:21.825Z" }, + { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload-time = "2026-02-10T19:17:25.133Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload-time = "2026-02-10T19:17:26.66Z" }, + { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload-time = "2026-02-10T19:17:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ed/325d2a490c5e94038cdb0117da9397ece1f11201f425c4e9c57fe5b9f08b/cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48", size = 3028230, upload-time = "2026-02-10T19:17:30.518Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5a/ac0f49e48063ab4255d9e3b79f5def51697fce1a95ea1370f03dc9db76f6/cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4", size = 3480909, upload-time = "2026-02-10T19:17:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/00/13/3d278bfa7a15a96b9dc22db5a12ad1e48a9eb3d40e1827ef66a5df75d0d0/cryptography-46.0.5-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2", size = 7119287, upload-time = "2026-02-10T19:17:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/67/c8/581a6702e14f0898a0848105cbefd20c058099e2c2d22ef4e476dfec75d7/cryptography-46.0.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678", size = 4265728, upload-time = "2026-02-10T19:17:35.569Z" }, + { url = "https://files.pythonhosted.org/packages/dd/4a/ba1a65ce8fc65435e5a849558379896c957870dd64fecea97b1ad5f46a37/cryptography-46.0.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87", size = 4408287, upload-time = "2026-02-10T19:17:36.938Z" }, + { url = "https://files.pythonhosted.org/packages/f8/67/8ffdbf7b65ed1ac224d1c2df3943553766914a8ca718747ee3871da6107e/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee", size = 4270291, upload-time = "2026-02-10T19:17:38.748Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/f52377ee93bc2f2bba55a41a886fd208c15276ffbd2569f2ddc89d50e2c5/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981", size = 4927539, upload-time = "2026-02-10T19:17:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/3b/02/cfe39181b02419bbbbcf3abdd16c1c5c8541f03ca8bda240debc467d5a12/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9", size = 4442199, upload-time = "2026-02-10T19:17:41.789Z" }, + { url = "https://files.pythonhosted.org/packages/c0/96/2fcaeb4873e536cf71421a388a6c11b5bc846e986b2b069c79363dc1648e/cryptography-46.0.5-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648", size = 3960131, upload-time = "2026-02-10T19:17:43.379Z" }, + { url = "https://files.pythonhosted.org/packages/d8/d2/b27631f401ddd644e94c5cf33c9a4069f72011821cf3dc7309546b0642a0/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4", size = 4270072, upload-time = "2026-02-10T19:17:45.481Z" }, + { url = "https://files.pythonhosted.org/packages/f4/a7/60d32b0370dae0b4ebe55ffa10e8599a2a59935b5ece1b9f06edb73abdeb/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0", size = 4892170, upload-time = "2026-02-10T19:17:46.997Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b9/cf73ddf8ef1164330eb0b199a589103c363afa0cf794218c24d524a58eab/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663", size = 4441741, upload-time = "2026-02-10T19:17:48.661Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/eee00b28c84c726fe8fa0158c65afe312d9c3b78d9d01daf700f1f6e37ff/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826", size = 4396728, upload-time = "2026-02-10T19:17:50.058Z" }, + { url = "https://files.pythonhosted.org/packages/65/f4/6bc1a9ed5aef7145045114b75b77c2a8261b4d38717bd8dea111a63c3442/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d", size = 4652001, upload-time = "2026-02-10T19:17:51.54Z" }, + { url = "https://files.pythonhosted.org/packages/86/ef/5d00ef966ddd71ac2e6951d278884a84a40ffbd88948ef0e294b214ae9e4/cryptography-46.0.5-cp314-cp314t-win32.whl", hash = "sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a", size = 3003637, upload-time = "2026-02-10T19:17:52.997Z" }, + { url = "https://files.pythonhosted.org/packages/b7/57/f3f4160123da6d098db78350fdfd9705057aad21de7388eacb2401dceab9/cryptography-46.0.5-cp314-cp314t-win_amd64.whl", hash = "sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4", size = 3469487, upload-time = "2026-02-10T19:17:54.549Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload-time = "2026-02-10T19:17:56.267Z" }, + { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload-time = "2026-02-10T19:17:58.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload-time = "2026-02-10T19:18:00.619Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload-time = "2026-02-10T19:18:02.379Z" }, + { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload-time = "2026-02-10T19:18:03.964Z" }, + { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload-time = "2026-02-10T19:18:05.588Z" }, + { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload-time = "2026-02-10T19:18:07.167Z" }, + { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload-time = "2026-02-10T19:18:09.813Z" }, + { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload-time = "2026-02-10T19:18:11.263Z" }, + { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload-time = "2026-02-10T19:18:12.914Z" }, + { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload-time = "2026-02-10T19:18:14.375Z" }, + { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload-time = "2026-02-10T19:18:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/45/2d/9c5f2926cb5300a8eefc3f4f0b3f3df39db7f7ce40c8365444c49363cbda/cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72", size = 3010220, upload-time = "2026-02-10T19:18:17.361Z" }, + { url = "https://files.pythonhosted.org/packages/48/ef/0c2f4a8e31018a986949d34a01115dd057bf536905dca38897bacd21fac3/cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595", size = 3467050, upload-time = "2026-02-10T19:18:18.899Z" }, + { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload-time = "2026-02-10T19:18:20.687Z" }, + { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload-time = "2026-02-10T19:18:22.349Z" }, + { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload-time = "2026-02-10T19:18:24.529Z" }, + { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload-time = "2026-02-10T19:18:25.957Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload-time = "2026-02-10T19:18:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/bc/58/6b3d24e6b9bc474a2dcdee65dfd1f008867015408a271562e4b690561a4d/cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7", size = 3407605, upload-time = "2026-02-10T19:18:29.233Z" }, ] [[package]] @@ -1863,7 +1864,7 @@ wheels = [ [[package]] name = "openfeature-hooks-opentelemetry" -version = "0.3.0" +version = "0.3.1" source = { editable = "hooks/openfeature-hooks-opentelemetry" } dependencies = [ { name = "openfeature-sdk" }, @@ -1877,7 +1878,7 @@ dev = [ { name = "coverage", version = "7.13.3", source = { registry = "https://pypi.org/simple" }, extra = ["toml"], marker = "python_full_version >= '3.10'" }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest" }, ] @@ -1898,7 +1899,7 @@ dev = [ [[package]] name = "openfeature-provider-aws-ssm" -version = "0.1.0" +version = "0.1.1" source = { editable = "providers/openfeature-provider-aws-ssm" } dependencies = [ { name = "boto3" }, @@ -1919,7 +1920,7 @@ dev = [ { name = "moto", extra = ["ssm"] }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest" }, { name = "pytest-asyncio", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "pytest-asyncio", version = "1.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -1963,7 +1964,7 @@ dev = [ { name = "coverage", version = "7.13.3", source = { registry = "https://pypi.org/simple" }, extra = ["toml"], marker = "python_full_version >= '3.10'" }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest" }, ] @@ -2001,7 +2002,7 @@ dev = [ { name = "grpcio-health-checking" }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest" }, { name = "pytest-bdd" }, { name = "testcontainers", version = "4.13.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9.2'" }, @@ -2015,7 +2016,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "cachebox", specifier = ">=5.1.0,<6.0.0" }, - { name = "grpcio", specifier = ">=1.76.0" }, + { name = "grpcio", specifier = ">=1.78.0" }, { name = "mmh3", specifier = ">=5.0.0,<6.0.0" }, { name = "openfeature-sdk", specifier = ">=0.8.2" }, { name = "panzi-json-logic", specifier = ">=1.0.1" }, @@ -2054,7 +2055,7 @@ dev = [ { name = "coverage", version = "7.13.3", source = { registry = "https://pypi.org/simple" }, extra = ["toml"], marker = "python_full_version >= '3.10'" }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest" }, { name = "requests-mock" }, { name = "types-requests", version = "2.31.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -2092,7 +2093,7 @@ dev = [ { name = "coverage", version = "7.13.3", source = { registry = "https://pypi.org/simple" }, extra = ["toml"], marker = "python_full_version >= '3.10'" }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pytest" }, { name = "requests-mock" }, { name = "types-requests", version = "2.31.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -2130,7 +2131,7 @@ dev = [ { name = "coverage", version = "7.13.3", source = { registry = "https://pypi.org/simple" }, extra = ["toml"], marker = "python_full_version >= '3.10'" }, { name = "mypy" }, { name = "poethepoet", version = "0.37.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "poethepoet", version = "0.40.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "poethepoet", version = "0.42.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "psycopg2-binary" }, { name = "pytest" }, { name = "pytest-asyncio", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -2331,7 +2332,7 @@ wheels = [ [[package]] name = "poethepoet" -version = "0.40.0" +version = "0.42.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.10'", @@ -2341,9 +2342,9 @@ dependencies = [ { name = "pyyaml", marker = "python_full_version >= '3.10'" }, { name = "tomli", marker = "python_full_version == '3.10.*'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/9d/054c8435b03324ed9abd5d5ab8c45065b1f42c23952cd23f13a5921d8465/poethepoet-0.40.0.tar.gz", hash = "sha256:91835f00d03d6c4f0e146f80fa510e298ad865e7edd27fe4cb9c94fdc090791b", size = 81114, upload-time = "2026-01-05T19:09:13.116Z" } +sdist = { url = "https://files.pythonhosted.org/packages/05/9b/e717572686bbf23e17483389c1bf3a381ca2427c84c7e0af0cdc0f23fccc/poethepoet-0.42.1.tar.gz", hash = "sha256:205747e276062c2aaba8afd8a98838f8a3a0237b7ab94715fab8d82718aac14f", size = 93209, upload-time = "2026-02-26T22:57:50.883Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/bc/73327d12b176abea7a3c6c7d760e1a953992f7b59d72c0354e39d7a353b5/poethepoet-0.40.0-py3-none-any.whl", hash = "sha256:afd276ae31d5c53573c0c14898118d4848ccee3709b6b0be6a1c6cbe522bbc8a", size = 106672, upload-time = "2026-01-05T19:09:11.536Z" }, + { url = "https://files.pythonhosted.org/packages/c8/68/75fa0a5ef39718ea6ba7ab6a3d031fa93640e57585580cec85539540bb65/poethepoet-0.42.1-py3-none-any.whl", hash = "sha256:d8d1345a5ca521be9255e7c13bc2c4c8698ed5e5ac5e9e94890d239fcd423d0a", size = 119967, upload-time = "2026-02-26T22:57:49.467Z" }, ] [[package]] @@ -2821,7 +2822,7 @@ wheels = [ [[package]] name = "responses" -version = "0.25.8" +version = "0.26.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyyaml" }, @@ -2829,9 +2830,9 @@ dependencies = [ { name = "urllib3", version = "1.26.20", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0e/95/89c054ad70bfef6da605338b009b2e283485835351a9935c7bfbfaca7ffc/responses-0.25.8.tar.gz", hash = "sha256:9374d047a575c8f781b94454db5cab590b6029505f488d12899ddb10a4af1cf4", size = 79320, upload-time = "2025-08-08T19:01:46.709Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/b4/b7e040379838cc71bf5aabdb26998dfbe5ee73904c92c1c161faf5de8866/responses-0.26.0.tar.gz", hash = "sha256:c7f6923e6343ef3682816ba421c006626777893cb0d5e1434f674b649bac9eb4", size = 81303, upload-time = "2026-02-19T14:38:05.574Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/4c/cc276ce57e572c102d9542d383b2cfd551276581dc60004cb94fe8774c11/responses-0.25.8-py3-none-any.whl", hash = "sha256:0c710af92def29c8352ceadff0c3fe340ace27cf5af1bbe46fb71275bcd2831c", size = 34769, upload-time = "2025-08-08T19:01:45.018Z" }, + { url = "https://files.pythonhosted.org/packages/ce/04/7f73d05b556da048923e31a0cc878f03be7c5425ed1f268082255c75d872/responses-0.26.0-py3-none-any.whl", hash = "sha256:03ec4409088cd5c66b71ecbbbd27fe2c58ddfad801c66203457b3e6a04868c37", size = 35099, upload-time = "2026-02-19T14:38:03.847Z" }, ] [[package]] @@ -2997,15 +2998,15 @@ ssm = [ [[package]] name = "types-aiobotocore" -version = "3.1.2" +version = "3.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore-stubs" }, { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e8/99/5e2980833461c997426b1b660b7ab491dd0c54d325544c96faef4768c504/types_aiobotocore-3.1.2.tar.gz", hash = "sha256:82c19bb6fa4d70cca6beffcc49ae5f28990c9178ed5fd3ef3c86d69f062ee7c2", size = 86455, upload-time = "2026-02-06T02:34:36.735Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/4c/8010f4d975a6c9ef05760619153d20c15e1ff4bd1c52f213d065cf5f676f/types_aiobotocore-3.2.0.tar.gz", hash = "sha256:79199e9cb564352dc9ef987fa1bff753a3757fdc1cc5439ab421e6db5ee90ea6", size = 86250, upload-time = "2026-02-26T02:18:27.408Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/cd/0ddd0874f2d2df81557557fbc7d565dd76cd1593805d6d875ee569893a6a/types_aiobotocore-3.1.2-py3-none-any.whl", hash = "sha256:8372cd606c648b9f91ae065d0610e43e9f8b432e21eafe4182d139ea76ba3df8", size = 54206, upload-time = "2026-02-06T02:34:33.721Z" }, + { url = "https://files.pythonhosted.org/packages/c3/61/dd7fc266b32dd5be864aee3e993442e0fde1149a4cd1618bce1878eccab6/types_aiobotocore-3.2.0-py3-none-any.whl", hash = "sha256:07bd9bb89655109856cf26a207e07fe9256521ac82d09656961c62594edfeee3", size = 54129, upload-time = "2026-02-26T02:18:20.829Z" }, ] [[package]] @@ -3022,25 +3023,25 @@ wheels = [ [[package]] name = "types-awscrt" -version = "0.31.1" +version = "0.31.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/97/be/589b7bba42b5681a72bac4d714287afef4e1bb84d07c859610ff631d449e/types_awscrt-0.31.1.tar.gz", hash = "sha256:08b13494f93f45c1a92eb264755fce50ed0d1dc75059abb5e31670feb9a09724", size = 17839, upload-time = "2026-01-16T02:01:23.394Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/24/5497a611f32cbaf4b9e1af35f56463e8f02e198ec513b68cb59a63f5a446/types_awscrt-0.31.2.tar.gz", hash = "sha256:dc79705acd24094656b8105b8d799d7e273c8eac37c69137df580cd84beb54f6", size = 18190, upload-time = "2026-02-16T02:33:53.135Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/fd/ddca80617f230bd833f99b4fb959abebffd8651f520493cae2e96276b1bd/types_awscrt-0.31.1-py3-none-any.whl", hash = "sha256:7e4364ac635f72bd57f52b093883640b1448a6eded0ecbac6e900bf4b1e4777b", size = 42516, upload-time = "2026-01-16T02:01:21.637Z" }, + { url = "https://files.pythonhosted.org/packages/ab/3d/21a2212b5fcef9e8e9f368403885dc567b7d31e50b2ce393efad3cd83572/types_awscrt-0.31.2-py3-none-any.whl", hash = "sha256:3d6a29c1cca894b191be408f4d985a8e3a14d919785652dd3fa4ee558143e4bf", size = 43340, upload-time = "2026-02-16T02:33:52.109Z" }, ] [[package]] name = "types-boto3" -version = "1.42.44" +version = "1.42.60" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore-stubs" }, { name = "types-s3transfer" }, { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/07/f0/6e591d8ce402891e5e5357fcd99d27c16ca420e178a406bf4c1997a68b28/types_boto3-1.42.44.tar.gz", hash = "sha256:76d843765198104b62d319f64d07a642b6dcb9f879a35be4c701b786ab63db09", size = 101242, upload-time = "2026-02-06T20:40:11.545Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/99/725f7ca83f68a1227b8110d938063d0dabc515c5f8e67bc3c2d6f8a72ce0/types_boto3-1.42.60.tar.gz", hash = "sha256:7cbb56cdf1d7011675db62a62add5250a74862b59f7b5d472576c374ef2f30db", size = 101384, upload-time = "2026-03-03T21:48:47.007Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/e9/8049ee79bf08e0f097f00f264ad50852cad5b2390461dcbda5e4e2d7f60d/types_boto3-1.42.44-py3-none-any.whl", hash = "sha256:b9ac509ab7af8790e18a8f43462021cb0bfacbb419ee34eb6efbc97e012339ed", size = 69674, upload-time = "2026-02-06T20:40:07.075Z" }, + { url = "https://files.pythonhosted.org/packages/46/68/ef94f8e711c57b6f2d0a41266f0c96381a11a66d19b583af76bc111256d1/types_boto3-1.42.60-py3-none-any.whl", hash = "sha256:f47856fa995c37341e7df62a47e60107c6f5ddd8697714ffb349bc29f2a273b3", size = 69722, upload-time = "2026-03-03T21:48:43.66Z" }, ] [package.optional-dependencies] @@ -3050,14 +3051,14 @@ ssm = [ [[package]] name = "types-boto3-ssm" -version = "1.42.3" +version = "1.42.54" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/14/8a/629a61baf4711aa3a341aad40adc94c1b1a99249a595024a5f4f67193709/types_boto3_ssm-1.42.3.tar.gz", hash = "sha256:8c7e58248ac578039e1791f650f2e60212796d86556b7789d02acde4184c71c5", size = 94284, upload-time = "2025-12-04T21:13:02.554Z" } +sdist = { url = "https://files.pythonhosted.org/packages/84/82/beff9a0368158ebd53a5c89e870f487f5a46eaff9c29332796d630a67303/types_boto3_ssm-1.42.54.tar.gz", hash = "sha256:317257f38db758df1541f0c36aefa27bcd0fb744c0b0d4b57be73061d519cf8e", size = 94228, upload-time = "2026-02-20T20:49:45.757Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/0f/b0a9afa77c820b1d49b97500efe8aeca7e5d6359438672b7dce1d3ef0587/types_boto3_ssm-1.42.3-py3-none-any.whl", hash = "sha256:ac689255916976cccbaa41b02835f1e47b90b8f9ba736d50cdc6f1b6d2cde5aa", size = 95895, upload-time = "2025-12-04T21:12:58.166Z" }, + { url = "https://files.pythonhosted.org/packages/14/1e/768cbf3e3a6bfa0b8dca15f48c60d9d22bf4c15093f25c973cea750d9afe/types_boto3_ssm-1.42.54-py3-none-any.whl", hash = "sha256:4dfceadad2a982727660b4c3a30693847df123d6caf69967ab905165d3c7c472", size = 95912, upload-time = "2026-02-20T20:49:43.079Z" }, ] [[package]] @@ -3168,7 +3169,7 @@ wheels = [ [[package]] name = "unleashclient" -version = "6.5.1" +version = "6.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "apscheduler" }, @@ -3181,9 +3182,9 @@ dependencies = [ { name = "semver" }, { name = "yggdrasil-engine" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/68/496abd494d9f90c0e157ab6d2ebd421f885381431fb4ee4867360ea8651c/unleashclient-6.5.1.tar.gz", hash = "sha256:0d4a09bacbcc6a0c34a862e9c9e2a35f1d9a1b0604c238394c941a4edd40154d", size = 51079, upload-time = "2026-01-29T14:57:14.029Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/d3/2a6f38af2df814f358e59d49bf8ca80fd83462052338d404d7894f180b71/unleashclient-6.6.0.tar.gz", hash = "sha256:e0359bc9a920f7c3ea7c33b4e4c40954d02df76da7aa083307a8f098e6600ad3", size = 51314, upload-time = "2026-03-02T13:04:59.215Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/08/91/75b2e08ab24865a2241b0eac5a1277dd6c0197a0ca1801c2cb8b23652b63/unleashclient-6.5.1-py3-none-any.whl", hash = "sha256:b3d68cf4f3002d644dedda8989d9600316cc43c381ebcaa73ca051540e1aece1", size = 40725, upload-time = "2026-01-29T14:57:12.545Z" }, + { url = "https://files.pythonhosted.org/packages/bf/90/29e8c6e961285ec0543a090dc2de842d94abe13297f98b9ae23168574ccd/unleashclient-6.6.0-py3-none-any.whl", hash = "sha256:d744b71dd50c5843cd53350d04181af9c5b960d897fe468dff05df962fc0e62a", size = 40864, upload-time = "2026-03-02T13:04:57.995Z" }, ] [[package]] @@ -3213,14 +3214,14 @@ wheels = [ [[package]] name = "werkzeug" -version = "3.1.5" +version = "3.1.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5a/70/1469ef1d3542ae7c2c7b72bd5e3a4e6ee69d7978fa8a3af05a38eca5becf/werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67", size = 864754, upload-time = "2026-01-08T17:49:23.247Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/f1/ee81806690a87dab5f5653c1f146c92bc066d7f4cebc603ef88eb9e13957/werkzeug-3.1.6.tar.gz", hash = "sha256:210c6bede5a420a913956b4791a7f4d6843a43b6fcee4dfa08a65e93007d0d25", size = 864736, upload-time = "2026-02-19T15:17:18.884Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, + { url = "https://files.pythonhosted.org/packages/4d/ec/d58832f89ede95652fd01f4f24236af7d32b70cab2196dfcc2d2fd13c5c2/werkzeug-3.1.6-py3-none-any.whl", hash = "sha256:7ddf3357bb9564e407607f988f683d72038551200c704012bb9a4c523d42f131", size = 225166, upload-time = "2026-02-19T15:17:17.475Z" }, ] [[package]] @@ -3304,21 +3305,25 @@ wheels = [ [[package]] name = "xmltodict" -version = "1.0.2" +version = "1.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6a/aa/917ceeed4dbb80d2f04dbd0c784b7ee7bba8ae5a54837ef0e5e062cd3cfb/xmltodict-1.0.2.tar.gz", hash = "sha256:54306780b7c2175a3967cad1db92f218207e5bc1aba697d887807c0fb68b7649", size = 25725, upload-time = "2025-09-17T21:59:26.459Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/70/80f3b7c10d2630aa66414bf23d210386700aa390547278c789afa994fd7e/xmltodict-1.0.4.tar.gz", hash = "sha256:6d94c9f834dd9e44514162799d344d815a3a4faec913717a9ecbfa5be1bb8e61", size = 26124, upload-time = "2026-02-22T02:21:22.074Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/20/69a0e6058bc5ea74892d089d64dfc3a62ba78917ec5e2cfa70f7c92ba3a5/xmltodict-1.0.2-py3-none-any.whl", hash = "sha256:62d0fddb0dcbc9f642745d8bbf4d81fd17d6dfaec5a15b5c1876300aad92af0d", size = 13893, upload-time = "2025-09-17T21:59:24.859Z" }, + { url = "https://files.pythonhosted.org/packages/38/34/98a2f52245f4d47be93b580dae5f9861ef58977d73a79eb47c58f1ad1f3a/xmltodict-1.0.4-py3-none-any.whl", hash = "sha256:a4a00d300b0e1c59fc2bfccb53d7b2e88c32f200df138a0dd2229f842497026a", size = 13580, upload-time = "2026-02-22T02:21:21.039Z" }, ] [[package]] name = "yarl" version = "1.22.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.9.2' and python_full_version < '3.10'", + "python_full_version < '3.9.2'", +] dependencies = [ - { name = "idna" }, - { name = "multidict" }, - { name = "propcache" }, + { name = "idna", marker = "python_full_version < '3.10'" }, + { name = "multidict", marker = "python_full_version < '3.10'" }, + { name = "propcache", marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload-time = "2025-10-06T14:12:55.963Z" } wheels = [ @@ -3453,59 +3458,202 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, ] +[[package]] +name = "yarl" +version = "1.23.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "idna", marker = "python_full_version >= '3.10'" }, + { name = "multidict", marker = "python_full_version >= '3.10'" }, + { name = "propcache", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/6e/beb1beec874a72f23815c1434518bfc4ed2175065173fb138c3705f658d4/yarl-1.23.0.tar.gz", hash = "sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5", size = 194676, upload-time = "2026-03-01T22:07:53.373Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/0d/9cc638702f6fc3c7a3685bcc8cf2a9ed7d6206e932a49f5242658047ef51/yarl-1.23.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107", size = 123764, upload-time = "2026-03-01T22:04:09.7Z" }, + { url = "https://files.pythonhosted.org/packages/7a/35/5a553687c5793df5429cd1db45909d4f3af7eee90014888c208d086a44f0/yarl-1.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d", size = 86282, upload-time = "2026-03-01T22:04:11.892Z" }, + { url = "https://files.pythonhosted.org/packages/68/2e/c5a2234238f8ce37a8312b52801ee74117f576b1539eec8404a480434acc/yarl-1.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05", size = 86053, upload-time = "2026-03-01T22:04:13.292Z" }, + { url = "https://files.pythonhosted.org/packages/74/3f/bbd8ff36fb038622797ffbaf7db314918bb4d76f1cc8a4f9ca7a55fe5195/yarl-1.23.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d", size = 99395, upload-time = "2026-03-01T22:04:15.133Z" }, + { url = "https://files.pythonhosted.org/packages/77/04/9516bc4e269d2a3ec9c6779fcdeac51ce5b3a9b0156f06ac7152e5bba864/yarl-1.23.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748", size = 92143, upload-time = "2026-03-01T22:04:16.829Z" }, + { url = "https://files.pythonhosted.org/packages/c7/63/88802d1f6b1cb1fc67d67a58cd0cf8a1790de4ce7946e434240f1d60ab4a/yarl-1.23.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764", size = 107643, upload-time = "2026-03-01T22:04:18.519Z" }, + { url = "https://files.pythonhosted.org/packages/8e/db/4f9b838f4d8bdd6f0f385aed8bbf21c71ed11a0b9983305c302cbd557815/yarl-1.23.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007", size = 108700, upload-time = "2026-03-01T22:04:20.373Z" }, + { url = "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", hash = "sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4", size = 102769, upload-time = "2026-03-01T22:04:23.055Z" }, + { url = "https://files.pythonhosted.org/packages/86/65/91a0285f51321369fd1a8308aa19207520c5f0587772cfc2e03fc2467e90/yarl-1.23.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26", size = 101114, upload-time = "2026-03-01T22:04:25.031Z" }, + { url = "https://files.pythonhosted.org/packages/58/80/c7c8244fc3e5bc483dc71a09560f43b619fab29301a0f0a8f936e42865c7/yarl-1.23.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769", size = 98883, upload-time = "2026-03-01T22:04:27.281Z" }, + { url = "https://files.pythonhosted.org/packages/86/e7/71ca9cc9ca79c0b7d491216177d1aed559d632947b8ffb0ee60f7d8b23e3/yarl-1.23.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716", size = 94172, upload-time = "2026-03-01T22:04:28.554Z" }, + { url = "https://files.pythonhosted.org/packages/6a/3f/6c6c8a0fe29c26fb2db2e8d32195bb84ec1bfb8f1d32e7f73b787fcf349b/yarl-1.23.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993", size = 107010, upload-time = "2026-03-01T22:04:30.385Z" }, + { url = "https://files.pythonhosted.org/packages/56/38/12730c05e5ad40a76374d440ed8b0899729a96c250516d91c620a6e38fc2/yarl-1.23.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0", size = 100285, upload-time = "2026-03-01T22:04:31.752Z" }, + { url = "https://files.pythonhosted.org/packages/34/92/6a7be9239f2347234e027284e7a5f74b1140cc86575e7b469d13fba1ebfe/yarl-1.23.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750", size = 108230, upload-time = "2026-03-01T22:04:33.844Z" }, + { url = "https://files.pythonhosted.org/packages/5e/81/4aebccfa9376bd98b9d8bfad20621a57d3e8cfc5b8631c1fa5f62cdd03f4/yarl-1.23.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6", size = 103008, upload-time = "2026-03-01T22:04:35.856Z" }, + { url = "https://files.pythonhosted.org/packages/38/0f/0b4e3edcec794a86b853b0c6396c0a888d72dfce19b2d88c02ac289fb6c1/yarl-1.23.0-cp310-cp310-win32.whl", hash = "sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d", size = 83073, upload-time = "2026-03-01T22:04:38.268Z" }, + { url = "https://files.pythonhosted.org/packages/a0/71/ad95c33da18897e4c636528bbc24a1dd23fe16797de8bc4ec667b8db0ba4/yarl-1.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb", size = 87328, upload-time = "2026-03-01T22:04:39.558Z" }, + { url = "https://files.pythonhosted.org/packages/e2/14/dfa369523c79bccf9c9c746b0a63eb31f65db9418ac01275f7950962e504/yarl-1.23.0-cp310-cp310-win_arm64.whl", hash = "sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220", size = 82463, upload-time = "2026-03-01T22:04:41.454Z" }, + { url = "https://files.pythonhosted.org/packages/a2/aa/60da938b8f0997ba3a911263c40d82b6f645a67902a490b46f3355e10fae/yarl-1.23.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99", size = 123641, upload-time = "2026-03-01T22:04:42.841Z" }, + { url = "https://files.pythonhosted.org/packages/24/84/e237607faf4e099dbb8a4f511cfd5efcb5f75918baad200ff7380635631b/yarl-1.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c", size = 86248, upload-time = "2026-03-01T22:04:44.757Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0d/71ceabc14c146ba8ee3804ca7b3d42b1664c8440439de5214d366fec7d3a/yarl-1.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432", size = 85988, upload-time = "2026-03-01T22:04:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6c/4a90d59c572e46b270ca132aca66954f1175abd691f74c1ef4c6711828e2/yarl-1.23.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a", size = 100566, upload-time = "2026-03-01T22:04:47.639Z" }, + { url = "https://files.pythonhosted.org/packages/49/fb/c438fb5108047e629f6282a371e6e91cf3f97ee087c4fb748a1f32ceef55/yarl-1.23.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05", size = 92079, upload-time = "2026-03-01T22:04:48.925Z" }, + { url = "https://files.pythonhosted.org/packages/d9/13/d269aa1aed3e4f50a5a103f96327210cc5fa5dd2d50882778f13c7a14606/yarl-1.23.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83", size = 108741, upload-time = "2026-03-01T22:04:50.838Z" }, + { url = "https://files.pythonhosted.org/packages/85/fb/115b16f22c37ea4437d323e472945bea97301c8ec6089868fa560abab590/yarl-1.23.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c", size = 108099, upload-time = "2026-03-01T22:04:52.499Z" }, + { url = "https://files.pythonhosted.org/packages/9a/64/c53487d9f4968045b8afa51aed7ca44f58b2589e772f32745f3744476c82/yarl-1.23.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598", size = 102678, upload-time = "2026-03-01T22:04:55.176Z" }, + { url = "https://files.pythonhosted.org/packages/85/59/cd98e556fbb2bf8fab29c1a722f67ad45c5f3447cac798ab85620d1e70af/yarl-1.23.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b", size = 100803, upload-time = "2026-03-01T22:04:56.588Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c0/b39770b56d4a9f0bb5f77e2f1763cd2d75cc2f6c0131e3b4c360348fcd65/yarl-1.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c", size = 100163, upload-time = "2026-03-01T22:04:58.492Z" }, + { url = "https://files.pythonhosted.org/packages/e7/64/6980f99ab00e1f0ff67cb84766c93d595b067eed07439cfccfc8fb28c1a6/yarl-1.23.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788", size = 93859, upload-time = "2026-03-01T22:05:00.268Z" }, + { url = "https://files.pythonhosted.org/packages/38/69/912e6c5e146793e5d4b5fe39ff5b00f4d22463dfd5a162bec565ac757673/yarl-1.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222", size = 108202, upload-time = "2026-03-01T22:05:02.273Z" }, + { url = "https://files.pythonhosted.org/packages/59/97/35ca6767524687ad64e5f5c31ad54bc76d585585a9fcb40f649e7e82ffed/yarl-1.23.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb", size = 99866, upload-time = "2026-03-01T22:05:03.597Z" }, + { url = "https://files.pythonhosted.org/packages/d3/1c/1a3387ee6d73589f6f2a220ae06f2984f6c20b40c734989b0a44f5987308/yarl-1.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc", size = 107852, upload-time = "2026-03-01T22:05:04.986Z" }, + { url = "https://files.pythonhosted.org/packages/a4/b8/35c0750fcd5a3f781058bfd954515dd4b1eab45e218cbb85cf11132215f1/yarl-1.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2", size = 102919, upload-time = "2026-03-01T22:05:06.397Z" }, + { url = "https://files.pythonhosted.org/packages/e5/1c/9a1979aec4a81896d597bcb2177827f2dbee3f5b7cc48b2d0dadb644b41d/yarl-1.23.0-cp311-cp311-win32.whl", hash = "sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5", size = 82602, upload-time = "2026-03-01T22:05:08.444Z" }, + { url = "https://files.pythonhosted.org/packages/93/22/b85eca6fa2ad9491af48c973e4c8cf6b103a73dbb271fe3346949449fca0/yarl-1.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46", size = 87461, upload-time = "2026-03-01T22:05:10.145Z" }, + { url = "https://files.pythonhosted.org/packages/93/95/07e3553fe6f113e6864a20bdc53a78113cda3b9ced8784ee52a52c9f80d8/yarl-1.23.0-cp311-cp311-win_arm64.whl", hash = "sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928", size = 82336, upload-time = "2026-03-01T22:05:11.554Z" }, + { url = "https://files.pythonhosted.org/packages/88/8a/94615bc31022f711add374097ad4144d569e95ff3c38d39215d07ac153a0/yarl-1.23.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860", size = 124737, upload-time = "2026-03-01T22:05:12.897Z" }, + { url = "https://files.pythonhosted.org/packages/e3/6f/c6554045d59d64052698add01226bc867b52fe4a12373415d7991fdca95d/yarl-1.23.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069", size = 87029, upload-time = "2026-03-01T22:05:14.376Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/725ecc166d53438bc88f76822ed4b1e3b10756e790bafd7b523fe97c322d/yarl-1.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25", size = 86310, upload-time = "2026-03-01T22:05:15.71Z" }, + { url = "https://files.pythonhosted.org/packages/99/30/58260ed98e6ff7f90ba84442c1ddd758c9170d70327394a6227b310cd60f/yarl-1.23.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8", size = 97587, upload-time = "2026-03-01T22:05:17.384Z" }, + { url = "https://files.pythonhosted.org/packages/76/0a/8b08aac08b50682e65759f7f8dde98ae8168f72487e7357a5d684c581ef9/yarl-1.23.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072", size = 92528, upload-time = "2026-03-01T22:05:18.804Z" }, + { url = "https://files.pythonhosted.org/packages/52/07/0b7179101fe5f8385ec6c6bb5d0cb9f76bd9fb4a769591ab6fb5cdbfc69a/yarl-1.23.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8", size = 105339, upload-time = "2026-03-01T22:05:20.235Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8a/36d82869ab5ec829ca8574dfcb92b51286fcfb1e9c7a73659616362dc880/yarl-1.23.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7", size = 105061, upload-time = "2026-03-01T22:05:22.268Z" }, + { url = "https://files.pythonhosted.org/packages/66/3e/868e5c3364b6cee19ff3e1a122194fa4ce51def02c61023970442162859e/yarl-1.23.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51", size = 100132, upload-time = "2026-03-01T22:05:23.638Z" }, + { url = "https://files.pythonhosted.org/packages/cf/26/9c89acf82f08a52cb52d6d39454f8d18af15f9d386a23795389d1d423823/yarl-1.23.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67", size = 99289, upload-time = "2026-03-01T22:05:25.749Z" }, + { url = "https://files.pythonhosted.org/packages/6f/54/5b0db00d2cb056922356104468019c0a132e89c8d3ab67d8ede9f4483d2a/yarl-1.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7", size = 96950, upload-time = "2026-03-01T22:05:27.318Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/10fa93811fd439341fad7e0718a86aca0de9548023bbb403668d6555acab/yarl-1.23.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d", size = 93960, upload-time = "2026-03-01T22:05:28.738Z" }, + { url = "https://files.pythonhosted.org/packages/bc/d2/8ae2e6cd77d0805f4526e30ec43b6f9a3dfc542d401ac4990d178e4bf0cf/yarl-1.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760", size = 104703, upload-time = "2026-03-01T22:05:30.438Z" }, + { url = "https://files.pythonhosted.org/packages/2f/0c/b3ceacf82c3fe21183ce35fa2acf5320af003d52bc1fcf5915077681142e/yarl-1.23.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2", size = 98325, upload-time = "2026-03-01T22:05:31.835Z" }, + { url = "https://files.pythonhosted.org/packages/9d/e0/12900edd28bdab91a69bd2554b85ad7b151f64e8b521fe16f9ad2f56477a/yarl-1.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86", size = 105067, upload-time = "2026-03-01T22:05:33.358Z" }, + { url = "https://files.pythonhosted.org/packages/15/61/74bb1182cf79c9bbe4eb6b1f14a57a22d7a0be5e9cedf8e2d5c2086474c3/yarl-1.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34", size = 100285, upload-time = "2026-03-01T22:05:35.4Z" }, + { url = "https://files.pythonhosted.org/packages/69/7f/cd5ef733f2550de6241bd8bd8c3febc78158b9d75f197d9c7baa113436af/yarl-1.23.0-cp312-cp312-win32.whl", hash = "sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d", size = 82359, upload-time = "2026-03-01T22:05:36.811Z" }, + { url = "https://files.pythonhosted.org/packages/f5/be/25216a49daeeb7af2bec0db22d5e7df08ed1d7c9f65d78b14f3b74fd72fc/yarl-1.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e", size = 87674, upload-time = "2026-03-01T22:05:38.171Z" }, + { url = "https://files.pythonhosted.org/packages/d2/35/aeab955d6c425b227d5b7247eafb24f2653fedc32f95373a001af5dfeb9e/yarl-1.23.0-cp312-cp312-win_arm64.whl", hash = "sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9", size = 81879, upload-time = "2026-03-01T22:05:40.006Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4b/a0a6e5d0ee8a2f3a373ddef8a4097d74ac901ac363eea1440464ccbe0898/yarl-1.23.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e", size = 123796, upload-time = "2026-03-01T22:05:41.412Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/8925d68af039b835ae876db5838e82e76ec87b9782ecc97e192b809c4831/yarl-1.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5", size = 86547, upload-time = "2026-03-01T22:05:42.841Z" }, + { url = "https://files.pythonhosted.org/packages/ae/50/06d511cc4b8e0360d3c94af051a768e84b755c5eb031b12adaaab6dec6e5/yarl-1.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b", size = 85854, upload-time = "2026-03-01T22:05:44.85Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f4/4e30b250927ffdab4db70da08b9b8d2194d7c7b400167b8fbeca1e4701ca/yarl-1.23.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035", size = 98351, upload-time = "2026-03-01T22:05:46.836Z" }, + { url = "https://files.pythonhosted.org/packages/86/fc/4118c5671ea948208bdb1492d8b76bdf1453d3e73df051f939f563e7dcc5/yarl-1.23.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5", size = 92711, upload-time = "2026-03-01T22:05:48.316Z" }, + { url = "https://files.pythonhosted.org/packages/56/11/1ed91d42bd9e73c13dc9e7eb0dd92298d75e7ac4dd7f046ad0c472e231cd/yarl-1.23.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735", size = 106014, upload-time = "2026-03-01T22:05:50.028Z" }, + { url = "https://files.pythonhosted.org/packages/ce/c9/74e44e056a23fbc33aca71779ef450ca648a5bc472bdad7a82339918f818/yarl-1.23.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401", size = 105557, upload-time = "2026-03-01T22:05:51.416Z" }, + { url = "https://files.pythonhosted.org/packages/66/fe/b1e10b08d287f518994f1e2ff9b6d26f0adeecd8dd7d533b01bab29a3eda/yarl-1.23.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4", size = 101559, upload-time = "2026-03-01T22:05:52.872Z" }, + { url = "https://files.pythonhosted.org/packages/72/59/c5b8d94b14e3d3c2a9c20cb100119fd534ab5a14b93673ab4cc4a4141ea5/yarl-1.23.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f", size = 100502, upload-time = "2026-03-01T22:05:54.954Z" }, + { url = "https://files.pythonhosted.org/packages/77/4f/96976cb54cbfc5c9fd73ed4c51804f92f209481d1fb190981c0f8a07a1d7/yarl-1.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a", size = 98027, upload-time = "2026-03-01T22:05:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/63/6e/904c4f476471afdbad6b7e5b70362fb5810e35cd7466529a97322b6f5556/yarl-1.23.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2", size = 95369, upload-time = "2026-03-01T22:05:58.141Z" }, + { url = "https://files.pythonhosted.org/packages/9d/40/acfcdb3b5f9d68ef499e39e04d25e141fe90661f9d54114556cf83be8353/yarl-1.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f", size = 105565, upload-time = "2026-03-01T22:06:00.286Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c6/31e28f3a6ba2869c43d124f37ea5260cac9c9281df803c354b31f4dd1f3c/yarl-1.23.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b", size = 99813, upload-time = "2026-03-01T22:06:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/08/1f/6f65f59e72d54aa467119b63fc0b0b1762eff0232db1f4720cd89e2f4a17/yarl-1.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a", size = 105632, upload-time = "2026-03-01T22:06:03.188Z" }, + { url = "https://files.pythonhosted.org/packages/a3/c4/18b178a69935f9e7a338127d5b77d868fdc0f0e49becd286d51b3a18c61d/yarl-1.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543", size = 101895, upload-time = "2026-03-01T22:06:04.651Z" }, + { url = "https://files.pythonhosted.org/packages/8f/54/f5b870b5505663911dba950a8e4776a0dbd51c9c54c0ae88e823e4b874a0/yarl-1.23.0-cp313-cp313-win32.whl", hash = "sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957", size = 82356, upload-time = "2026-03-01T22:06:06.04Z" }, + { url = "https://files.pythonhosted.org/packages/7a/84/266e8da36879c6edcd37b02b547e2d9ecdfea776be49598e75696e3316e1/yarl-1.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3", size = 87515, upload-time = "2026-03-01T22:06:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/00/fd/7e1c66efad35e1649114fa13f17485f62881ad58edeeb7f49f8c5e748bf9/yarl-1.23.0-cp313-cp313-win_arm64.whl", hash = "sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3", size = 81785, upload-time = "2026-03-01T22:06:10.181Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fc/119dd07004f17ea43bb91e3ece6587759edd7519d6b086d16bfbd3319982/yarl-1.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa", size = 130719, upload-time = "2026-03-01T22:06:11.708Z" }, + { url = "https://files.pythonhosted.org/packages/e6/0d/9f2348502fbb3af409e8f47730282cd6bc80dec6630c1e06374d882d6eb2/yarl-1.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120", size = 89690, upload-time = "2026-03-01T22:06:13.429Z" }, + { url = "https://files.pythonhosted.org/packages/50/93/e88f3c80971b42cfc83f50a51b9d165a1dbf154b97005f2994a79f212a07/yarl-1.23.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59", size = 89851, upload-time = "2026-03-01T22:06:15.53Z" }, + { url = "https://files.pythonhosted.org/packages/1c/07/61c9dd8ba8f86473263b4036f70fb594c09e99c0d9737a799dfd8bc85651/yarl-1.23.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512", size = 95874, upload-time = "2026-03-01T22:06:17.553Z" }, + { url = "https://files.pythonhosted.org/packages/9e/e9/f9ff8ceefba599eac6abddcfb0b3bee9b9e636e96dbf54342a8577252379/yarl-1.23.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4", size = 88710, upload-time = "2026-03-01T22:06:19.004Z" }, + { url = "https://files.pythonhosted.org/packages/eb/78/0231bfcc5d4c8eec220bc2f9ef82cb4566192ea867a7c5b4148f44f6cbcd/yarl-1.23.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1", size = 101033, upload-time = "2026-03-01T22:06:21.203Z" }, + { url = "https://files.pythonhosted.org/packages/cd/9b/30ea5239a61786f18fd25797151a17fbb3be176977187a48d541b5447dd4/yarl-1.23.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea", size = 100817, upload-time = "2026-03-01T22:06:22.738Z" }, + { url = "https://files.pythonhosted.org/packages/62/e2/a4980481071791bc83bce2b7a1a1f7adcabfa366007518b4b845e92eeee3/yarl-1.23.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9", size = 97482, upload-time = "2026-03-01T22:06:24.21Z" }, + { url = "https://files.pythonhosted.org/packages/e5/1e/304a00cf5f6100414c4b5a01fc7ff9ee724b62158a08df2f8170dfc72a2d/yarl-1.23.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123", size = 95949, upload-time = "2026-03-01T22:06:25.697Z" }, + { url = "https://files.pythonhosted.org/packages/68/03/093f4055ed4cae649ac53bca3d180bd37102e9e11d048588e9ab0c0108d0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24", size = 95839, upload-time = "2026-03-01T22:06:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/b9/28/4c75ebb108f322aa8f917ae10a8ffa4f07cae10a8a627b64e578617df6a0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de", size = 90696, upload-time = "2026-03-01T22:06:29.048Z" }, + { url = "https://files.pythonhosted.org/packages/23/9c/42c2e2dd91c1a570402f51bdf066bfdb1241c2240ba001967bad778e77b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b", size = 100865, upload-time = "2026-03-01T22:06:30.525Z" }, + { url = "https://files.pythonhosted.org/packages/74/05/1bcd60a8a0a914d462c305137246b6f9d167628d73568505fce3f1cb2e65/yarl-1.23.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6", size = 96234, upload-time = "2026-03-01T22:06:32.692Z" }, + { url = "https://files.pythonhosted.org/packages/90/b2/f52381aac396d6778ce516b7bc149c79e65bfc068b5de2857ab69eeea3b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6", size = 100295, upload-time = "2026-03-01T22:06:34.268Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/638bae5bbf1113a659b2435d8895474598afe38b4a837103764f603aba56/yarl-1.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5", size = 97784, upload-time = "2026-03-01T22:06:35.864Z" }, + { url = "https://files.pythonhosted.org/packages/80/25/a3892b46182c586c202629fc2159aa13975d3741d52ebd7347fd501d48d5/yarl-1.23.0-cp313-cp313t-win32.whl", hash = "sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595", size = 88313, upload-time = "2026-03-01T22:06:37.39Z" }, + { url = "https://files.pythonhosted.org/packages/43/68/8c5b36aa5178900b37387937bc2c2fe0e9505537f713495472dcf6f6fccc/yarl-1.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090", size = 94932, upload-time = "2026-03-01T22:06:39.579Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cc/d79ba8292f51f81f4dc533a8ccfb9fc6992cabf0998ed3245de7589dc07c/yarl-1.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144", size = 84786, upload-time = "2026-03-01T22:06:41.988Z" }, + { url = "https://files.pythonhosted.org/packages/90/98/b85a038d65d1b92c3903ab89444f48d3cee490a883477b716d7a24b1a78c/yarl-1.23.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912", size = 124455, upload-time = "2026-03-01T22:06:43.615Z" }, + { url = "https://files.pythonhosted.org/packages/39/54/bc2b45559f86543d163b6e294417a107bb87557609007c007ad889afec18/yarl-1.23.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474", size = 86752, upload-time = "2026-03-01T22:06:45.425Z" }, + { url = "https://files.pythonhosted.org/packages/24/f9/e8242b68362bffe6fb536c8db5076861466fc780f0f1b479fc4ffbebb128/yarl-1.23.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719", size = 86291, upload-time = "2026-03-01T22:06:46.974Z" }, + { url = "https://files.pythonhosted.org/packages/ea/d8/d1cb2378c81dd729e98c716582b1ccb08357e8488e4c24714658cc6630e8/yarl-1.23.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319", size = 99026, upload-time = "2026-03-01T22:06:48.459Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ff/7196790538f31debe3341283b5b0707e7feb947620fc5e8236ef28d44f72/yarl-1.23.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434", size = 92355, upload-time = "2026-03-01T22:06:50.306Z" }, + { url = "https://files.pythonhosted.org/packages/c1/56/25d58c3eddde825890a5fe6aa1866228377354a3c39262235234ab5f616b/yarl-1.23.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723", size = 106417, upload-time = "2026-03-01T22:06:52.1Z" }, + { url = "https://files.pythonhosted.org/packages/51/8a/882c0e7bc8277eb895b31bce0138f51a1ba551fc2e1ec6753ffc1e7c1377/yarl-1.23.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039", size = 106422, upload-time = "2026-03-01T22:06:54.424Z" }, + { url = "https://files.pythonhosted.org/packages/42/2b/fef67d616931055bf3d6764885990a3ac647d68734a2d6a9e1d13de437a2/yarl-1.23.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52", size = 101915, upload-time = "2026-03-01T22:06:55.895Z" }, + { url = "https://files.pythonhosted.org/packages/18/6a/530e16aebce27c5937920f3431c628a29a4b6b430fab3fd1c117b26ff3f6/yarl-1.23.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c", size = 100690, upload-time = "2026-03-01T22:06:58.21Z" }, + { url = "https://files.pythonhosted.org/packages/88/08/93749219179a45e27b036e03260fda05190b911de8e18225c294ac95bbc9/yarl-1.23.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae", size = 98750, upload-time = "2026-03-01T22:06:59.794Z" }, + { url = "https://files.pythonhosted.org/packages/d9/cf/ea424a004969f5d81a362110a6ac1496d79efdc6d50c2c4b2e3ea0fc2519/yarl-1.23.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e", size = 94685, upload-time = "2026-03-01T22:07:01.375Z" }, + { url = "https://files.pythonhosted.org/packages/e2/b7/14341481fe568e2b0408bcf1484c652accafe06a0ade9387b5d3fd9df446/yarl-1.23.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85", size = 106009, upload-time = "2026-03-01T22:07:03.151Z" }, + { url = "https://files.pythonhosted.org/packages/0a/e6/5c744a9b54f4e8007ad35bce96fbc9218338e84812d36f3390cea616881a/yarl-1.23.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd", size = 100033, upload-time = "2026-03-01T22:07:04.701Z" }, + { url = "https://files.pythonhosted.org/packages/0c/23/e3bfc188d0b400f025bc49d99793d02c9abe15752138dcc27e4eaf0c4a9e/yarl-1.23.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6", size = 106483, upload-time = "2026-03-01T22:07:06.231Z" }, + { url = "https://files.pythonhosted.org/packages/72/42/f0505f949a90b3f8b7a363d6cbdf398f6e6c58946d85c6d3a3bc70595b26/yarl-1.23.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe", size = 102175, upload-time = "2026-03-01T22:07:08.4Z" }, + { url = "https://files.pythonhosted.org/packages/aa/65/b39290f1d892a9dd671d1c722014ca062a9c35d60885d57e5375db0404b5/yarl-1.23.0-cp314-cp314-win32.whl", hash = "sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169", size = 83871, upload-time = "2026-03-01T22:07:09.968Z" }, + { url = "https://files.pythonhosted.org/packages/a9/5b/9b92f54c784c26e2a422e55a8d2607ab15b7ea3349e28359282f84f01d43/yarl-1.23.0-cp314-cp314-win_amd64.whl", hash = "sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70", size = 89093, upload-time = "2026-03-01T22:07:11.501Z" }, + { url = "https://files.pythonhosted.org/packages/e0/7d/8a84dc9381fd4412d5e7ff04926f9865f6372b4c2fd91e10092e65d29eb8/yarl-1.23.0-cp314-cp314-win_arm64.whl", hash = "sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e", size = 83384, upload-time = "2026-03-01T22:07:13.069Z" }, + { url = "https://files.pythonhosted.org/packages/dd/8d/d2fad34b1c08aa161b74394183daa7d800141aaaee207317e82c790b418d/yarl-1.23.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679", size = 131019, upload-time = "2026-03-01T22:07:14.903Z" }, + { url = "https://files.pythonhosted.org/packages/19/ff/33009a39d3ccf4b94d7d7880dfe17fb5816c5a4fe0096d9b56abceea9ac7/yarl-1.23.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412", size = 89894, upload-time = "2026-03-01T22:07:17.372Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f1/dab7ac5e7306fb79c0190766a3c00b4cb8d09a1f390ded68c85a5934faf5/yarl-1.23.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4", size = 89979, upload-time = "2026-03-01T22:07:19.361Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b1/08e95f3caee1fad6e65017b9f26c1d79877b502622d60e517de01e72f95d/yarl-1.23.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c", size = 95943, upload-time = "2026-03-01T22:07:21.266Z" }, + { url = "https://files.pythonhosted.org/packages/c0/cc/6409f9018864a6aa186c61175b977131f373f1988e198e031236916e87e4/yarl-1.23.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4", size = 88786, upload-time = "2026-03-01T22:07:23.129Z" }, + { url = "https://files.pythonhosted.org/packages/76/40/cc22d1d7714b717fde2006fad2ced5efe5580606cb059ae42117542122f3/yarl-1.23.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94", size = 101307, upload-time = "2026-03-01T22:07:24.689Z" }, + { url = "https://files.pythonhosted.org/packages/8f/0d/476c38e85ddb4c6ec6b20b815bdd779aa386a013f3d8b85516feee55c8dc/yarl-1.23.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28", size = 100904, upload-time = "2026-03-01T22:07:26.287Z" }, + { url = "https://files.pythonhosted.org/packages/72/32/0abe4a76d59adf2081dcb0397168553ece4616ada1c54d1c49d8936c74f8/yarl-1.23.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6", size = 97728, upload-time = "2026-03-01T22:07:27.906Z" }, + { url = "https://files.pythonhosted.org/packages/b7/35/7b30f4810fba112f60f5a43237545867504e15b1c7647a785fbaf588fac2/yarl-1.23.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277", size = 95964, upload-time = "2026-03-01T22:07:30.198Z" }, + { url = "https://files.pythonhosted.org/packages/2d/86/ed7a73ab85ef00e8bb70b0cb5421d8a2a625b81a333941a469a6f4022828/yarl-1.23.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4", size = 95882, upload-time = "2026-03-01T22:07:32.132Z" }, + { url = "https://files.pythonhosted.org/packages/19/90/d56967f61a29d8498efb7afb651e0b2b422a1e9b47b0ab5f4e40a19b699b/yarl-1.23.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a", size = 90797, upload-time = "2026-03-01T22:07:34.404Z" }, + { url = "https://files.pythonhosted.org/packages/72/00/8b8f76909259f56647adb1011d7ed8b321bcf97e464515c65016a47ecdf0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb", size = 101023, upload-time = "2026-03-01T22:07:35.953Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e2/cab11b126fb7d440281b7df8e9ddbe4851e70a4dde47a202b6642586b8d9/yarl-1.23.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41", size = 96227, upload-time = "2026-03-01T22:07:37.594Z" }, + { url = "https://files.pythonhosted.org/packages/c2/9b/2c893e16bfc50e6b2edf76c1a9eb6cb0c744346197e74c65e99ad8d634d0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2", size = 100302, upload-time = "2026-03-01T22:07:39.334Z" }, + { url = "https://files.pythonhosted.org/packages/28/ec/5498c4e3a6d5f1003beb23405671c2eb9cdbf3067d1c80f15eeafe301010/yarl-1.23.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4", size = 98202, upload-time = "2026-03-01T22:07:41.717Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c3/cd737e2d45e70717907f83e146f6949f20cc23cd4bf7b2688727763aa458/yarl-1.23.0-cp314-cp314t-win32.whl", hash = "sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4", size = 90558, upload-time = "2026-03-01T22:07:43.433Z" }, + { url = "https://files.pythonhosted.org/packages/e1/19/3774d162f6732d1cfb0b47b4140a942a35ca82bb19b6db1f80e9e7bdc8f8/yarl-1.23.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2", size = 97610, upload-time = "2026-03-01T22:07:45.773Z" }, + { url = "https://files.pythonhosted.org/packages/51/47/3fa2286c3cb162c71cdb34c4224d5745a1ceceb391b2bd9b19b668a8d724/yarl-1.23.0-cp314-cp314t-win_arm64.whl", hash = "sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25", size = 86041, upload-time = "2026-03-01T22:07:49.026Z" }, + { url = "https://files.pythonhosted.org/packages/69/68/c8739671f5699c7dc470580a4f821ef37c32c4cb0b047ce223a7f115757f/yarl-1.23.0-py3-none-any.whl", hash = "sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f", size = 48288, upload-time = "2026-03-01T22:07:51.388Z" }, +] + [[package]] name = "yggdrasil-engine" -version = "1.2.2" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/ca/19b9eca0fea3eb1faea51e7a53d9bf7670515b0be4235dfbf2bf6daabb95/yggdrasil_engine-1.2.2-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:dd6a03abde93c7850b9cdde06694c17e2ad588c00d56f2a38211522bc6c76b97", size = 1933221, upload-time = "2026-01-28T16:04:26.249Z" }, - { url = "https://files.pythonhosted.org/packages/c1/7f/0426ecd952fa1eb2209eb37b926b3e1134e9ad9c7606d24f0084b9dade83/yggdrasil_engine-1.2.2-cp310-abi3-macosx_11_0_x86_64.whl", hash = "sha256:ddbb0f620bbe665283730515ad35135cc35f775c7ee474a495e17475e147066d", size = 1995334, upload-time = "2026-01-28T16:04:27.913Z" }, - { url = "https://files.pythonhosted.org/packages/6d/15/09b5e3d3ed3da9abefa2b385229e4e93cb3871442b0e1136479e0fac9b78/yggdrasil_engine-1.2.2-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:4bb7dfca34607f25332c2aebe366581194e5751742205cb9f2a7f30aaab194ee", size = 1641800, upload-time = "2026-01-28T16:04:29.852Z" }, - { url = "https://files.pythonhosted.org/packages/d1/c3/688346c04df39ea7437a52541e75c0e933358ea8d4e74efa03cba71b8ff5/yggdrasil_engine-1.2.2-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:f8a01dc4156c9ae19ae65a9333cd4eb9d0c4b925c8c2a7b0454138fee9cd08d9", size = 1824927, upload-time = "2026-01-28T16:04:31.229Z" }, - { url = "https://files.pythonhosted.org/packages/23/4e/01e3b3842b5ac307a9d6bfe32d16fa012f688358fbdd6c6ec2aad85dbf70/yggdrasil_engine-1.2.2-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:bebb46aedf94ff0cdeba2cea50174e9499d4766ab12f1fd0eff98c6c9e34e0a6", size = 1639232, upload-time = "2026-01-28T16:04:32.455Z" }, - { url = "https://files.pythonhosted.org/packages/ec/b7/2c258f405031335ebebea450efd21f1d20271ce2198cd18d302a76a3af8a/yggdrasil_engine-1.2.2-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:af62a757685cdb979de3e2176cc5be3dfe6e9d23f6e4f51be291fe322ba1bcd2", size = 1822127, upload-time = "2026-01-28T16:04:33.883Z" }, - { url = "https://files.pythonhosted.org/packages/9c/18/d4161c1f3fcabe84c174e33a2b549c159f49e841aae35fa7193e36c7cbeb/yggdrasil_engine-1.2.2-cp310-abi3-win_amd64.whl", hash = "sha256:5f7677ca0896b9ef5854070db8267784b59f47111caf0b05587fb814d448690b", size = 3698746, upload-time = "2026-01-28T16:04:35.876Z" }, - { url = "https://files.pythonhosted.org/packages/6f/86/8e73be64130dcdf8a87073fcefe7c1128614a1a6298a6c7cf6d597e356e7/yggdrasil_engine-1.2.2-cp310-abi3-win_arm64.whl", hash = "sha256:809525d483ca343f37851804ead6e8ed8fbe07e9c882048f7c047447d5f22560", size = 1454974, upload-time = "2026-01-28T16:04:37.079Z" }, - { url = "https://files.pythonhosted.org/packages/a0/9c/83190bcad247a0db55672c5940c91abaf38872a21c1ebcd0b54e9a47dc35/yggdrasil_engine-1.2.2-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:df4d6e435157a5159200283957d8efb7f293d3360acb740f2d429c9260a3473b", size = 1933221, upload-time = "2026-01-28T16:04:38.339Z" }, - { url = "https://files.pythonhosted.org/packages/a3/a9/6fde967c9da1f4a3f64ede8b57ee27f7c50b9ca331576b31eb4cae929eb6/yggdrasil_engine-1.2.2-cp311-abi3-macosx_11_0_x86_64.whl", hash = "sha256:06995ee13eb1df3bc36c6a5a28cc35df63b166b8c98a84db598e7fd397699104", size = 1995334, upload-time = "2026-01-28T16:04:40.295Z" }, - { url = "https://files.pythonhosted.org/packages/66/47/a05690deefaa9cf59d53051baf4096b2e715a41528df980c2789a62501e0/yggdrasil_engine-1.2.2-cp311-abi3-manylinux2014_aarch64.whl", hash = "sha256:6a2b8278711765394d059c81d74287420f51b9597bd1adb25d634befcb183110", size = 1641800, upload-time = "2026-01-28T16:04:41.66Z" }, - { url = "https://files.pythonhosted.org/packages/66/93/4b0d0d8f2f3215f5c258ec58fed3fa4902e19ab0b175e03234359b90705b/yggdrasil_engine-1.2.2-cp311-abi3-manylinux2014_x86_64.whl", hash = "sha256:a3492836a0869a7de2f734db9b5db7ad99c13bdcaa845af08c817bbbd79cefdc", size = 1824927, upload-time = "2026-01-28T16:04:42.969Z" }, - { url = "https://files.pythonhosted.org/packages/b4/65/68d416541194caa4a57a8c908ca0e8c3ece872cb8014083581930f48ac75/yggdrasil_engine-1.2.2-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5304a94141f1209f013afc54a665661828ca598501aaafae4cb4ebe536f97201", size = 1639232, upload-time = "2026-01-28T16:04:44.257Z" }, - { url = "https://files.pythonhosted.org/packages/2f/4e/c6622599981e796ad694738e69d40453c33b15a7aaab209584ff957da170/yggdrasil_engine-1.2.2-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e08392e23fefa98c3dfa4778a5c3a88643b4ae0bba39b7a949697220a0398333", size = 1822127, upload-time = "2026-01-28T16:04:45.587Z" }, - { url = "https://files.pythonhosted.org/packages/e8/24/9bac01a2f4534951bc6e86f37d30a88fbd28b716497aba6581d285e710e5/yggdrasil_engine-1.2.2-cp311-abi3-win_amd64.whl", hash = "sha256:5ccccdeb93ece5fccd660f20f55171a64e2a23823e0987d3dc02ea2cf14dea07", size = 3698746, upload-time = "2026-01-28T16:04:46.968Z" }, - { url = "https://files.pythonhosted.org/packages/d9/31/c741a81d1aba756425769f9669f76d740edeed8552bda5f024c690586f12/yggdrasil_engine-1.2.2-cp311-abi3-win_arm64.whl", hash = "sha256:62cfaeafc4b20a5eab62153d0ab8881f4b5e00482efe97f3c60cb40b542c9c5b", size = 1454974, upload-time = "2026-01-28T16:04:48.267Z" }, - { url = "https://files.pythonhosted.org/packages/f0/c9/d05077e5b19c8179d8442bc4368d39d1e8ebd6c16ee5c8eeb98c88789864/yggdrasil_engine-1.2.2-cp312-abi3-macosx_11_0_arm64.whl", hash = "sha256:6368398aec9cdae629b0b0fd95d7af47da2032f1b222e212e41c65c1482f0c02", size = 1933221, upload-time = "2026-01-28T16:04:49.636Z" }, - { url = "https://files.pythonhosted.org/packages/e3/74/257eb5970a63756b49e2367d76523ec38af02bc09ac851953c685df5c918/yggdrasil_engine-1.2.2-cp312-abi3-macosx_11_0_x86_64.whl", hash = "sha256:2cd35763ce30747159cb03926e439b791f674d70a247ae5ef07d3f68a44bdce8", size = 1995334, upload-time = "2026-01-28T16:04:51.036Z" }, - { url = "https://files.pythonhosted.org/packages/31/0e/a6bce3c41e9fc22b1a909f3751bd64e697ea67a875a126eb1562c4ea2b07/yggdrasil_engine-1.2.2-cp312-abi3-manylinux2014_aarch64.whl", hash = "sha256:03833d0de48b96761ed76d6607b404aaf1c1d72d7a68e4991ccc207c1b0eba39", size = 1641800, upload-time = "2026-01-28T16:04:52.998Z" }, - { url = "https://files.pythonhosted.org/packages/69/0c/ee91c578d2969d852f45c06a1196f978dce50c0fe12aaaedbdb5c752b52c/yggdrasil_engine-1.2.2-cp312-abi3-manylinux2014_x86_64.whl", hash = "sha256:c56d50b0bed3dd3c752fa0b4a73b15babdf37c27b4936243c4eae7560d2fa7d7", size = 1824927, upload-time = "2026-01-28T16:04:54.265Z" }, - { url = "https://files.pythonhosted.org/packages/cf/97/f4996280b8e4ad4a3823de9155e8fd86c4b95080181b7103bcdcd6da727d/yggdrasil_engine-1.2.2-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0bc570085490f3613ac99c227c047a5cdded66c48119fec20d81a743808e12e8", size = 1639232, upload-time = "2026-01-28T16:04:55.49Z" }, - { url = "https://files.pythonhosted.org/packages/1d/c3/fed4343d79b1c36e468d2bd4dbec62645db7e4bee174413b3eab335e3f76/yggdrasil_engine-1.2.2-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:02555e34b8300c6dccf2f219e18a11d9f0a22d40430ad1f671e4cd41524d7282", size = 1822127, upload-time = "2026-01-28T16:04:56.793Z" }, - { url = "https://files.pythonhosted.org/packages/76/2f/35fe6d6b2d24aada73258ce8fa5b7d4ab335d1369c98a7c1abecc2d6dffc/yggdrasil_engine-1.2.2-cp312-abi3-win_amd64.whl", hash = "sha256:f1e321e8e37f51db08dbdc75dd0df4b89848f2e10ec398a7931b5c533728a525", size = 3698746, upload-time = "2026-01-28T16:04:58.258Z" }, - { url = "https://files.pythonhosted.org/packages/ea/7d/dd188ed91fe309b6da15d3c6d3e7e584f10d070610d68ce574718f59fee1/yggdrasil_engine-1.2.2-cp312-abi3-win_arm64.whl", hash = "sha256:355d4471b9dd58edbb34af42fde13ebfe932b6e0ae180b88e858da7565b9270e", size = 1454974, upload-time = "2026-01-28T16:04:59.747Z" }, - { url = "https://files.pythonhosted.org/packages/d8/22/bc0342fe256e82f618b4548a4298ef9bf4a0da553d7bb9c4473b3e2eeb02/yggdrasil_engine-1.2.2-cp313-abi3-macosx_11_0_arm64.whl", hash = "sha256:37c8252abe9b1734c05cac7c41fcec595132950090d9a1b22a20a5948463e0be", size = 1933221, upload-time = "2026-01-28T16:05:01.868Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5c/84bcdaad49c7c5fedbf34761fbde18e5e99decf5f2996d64b3a05d1603c2/yggdrasil_engine-1.2.2-cp313-abi3-macosx_11_0_x86_64.whl", hash = "sha256:9c64dfa90e156844daac8b527559c056d39c889b068cff32e62fb6d8e39f1183", size = 1995334, upload-time = "2026-01-28T16:05:03.154Z" }, - { url = "https://files.pythonhosted.org/packages/82/83/f46e0d3299cb071246bd0fa532b470b494386d8d4d8f1e3a751e92738429/yggdrasil_engine-1.2.2-cp313-abi3-manylinux2014_aarch64.whl", hash = "sha256:45a0ead2d96996cf8fe3d8296fb2e347394c210d11518e1091da93893851063c", size = 1641800, upload-time = "2026-01-28T16:05:04.483Z" }, - { url = "https://files.pythonhosted.org/packages/64/d0/eff76b2365a3c712694f4c658705ac7349f86fb2ceefc70e67951d402f8d/yggdrasil_engine-1.2.2-cp313-abi3-manylinux2014_x86_64.whl", hash = "sha256:88e8791fdb2b173c02240b8d5a5c11191cbe1113024456e262e7f6f8d9da031f", size = 1824927, upload-time = "2026-01-28T16:05:05.826Z" }, - { url = "https://files.pythonhosted.org/packages/52/f2/611ac07bf60aecde4b431c8a9c3fd1e2b8e906fe9e4be1f5ece585cf4779/yggdrasil_engine-1.2.2-cp313-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fb77966d752e716de8440e35be4eae4af46445fd74643f732f72fda920d8f2b1", size = 1639232, upload-time = "2026-01-28T16:05:07.119Z" }, - { url = "https://files.pythonhosted.org/packages/b2/d9/415350471d932a5611c58cfea259d1743519b95cb10e936a373712d1f339/yggdrasil_engine-1.2.2-cp313-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ea31dad79705ce40b45dd7620b0aac0a4a425dd2480e17cb0b392dd139f85a68", size = 1822127, upload-time = "2026-01-28T16:05:14.441Z" }, - { url = "https://files.pythonhosted.org/packages/15/ff/ddffe1f3244f4133a7b974ef4071003720756610c835ee337de2124a9190/yggdrasil_engine-1.2.2-cp313-abi3-win_amd64.whl", hash = "sha256:a7506e8b34a6cce7dc2dfb4243533bd40e56db18611041450b53aaf197be9952", size = 3698746, upload-time = "2026-01-28T16:05:15.979Z" }, - { url = "https://files.pythonhosted.org/packages/e5/4e/2b0a03943e029b6faf10988fbf7088769154ac3eaa710dacfd82be130b9b/yggdrasil_engine-1.2.2-cp313-abi3-win_arm64.whl", hash = "sha256:3d8518b60a48b0209451503ee34051b9d815c0ab345b675b28156b58d41d38e6", size = 1454974, upload-time = "2026-01-28T16:05:17.441Z" }, - { url = "https://files.pythonhosted.org/packages/1f/da/f8ad1996f912551b26ea5921afaf051b382ec9120b0150a96845ef0083f9/yggdrasil_engine-1.2.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:3f6e08c1b76c6d3483efb93b5988b4afea6213edc5f334f6afa813d532527850", size = 1933221, upload-time = "2026-01-28T16:05:18.809Z" }, - { url = "https://files.pythonhosted.org/packages/ea/a0/ce6ee1fefc1f3c2406fd5100dfcdcc8cf8aa7e9bf6c6e8e66d25fff3bb65/yggdrasil_engine-1.2.2-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:0cbfe9aff88ef00cb6396ee5d95a3aebeb8d904dc6aec2ebfe94b2d21a95d0da", size = 1995334, upload-time = "2026-01-28T16:05:20.752Z" }, - { url = "https://files.pythonhosted.org/packages/e9/d7/825eccbb2be13364ede9ca7ada9b2f51103ab6666b316adc91548336d85e/yggdrasil_engine-1.2.2-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:a68bd856778698fe89554db5d40ed3bae2012bc86e8adb6fad09ff2daca78c6b", size = 1641800, upload-time = "2026-01-28T16:05:22.082Z" }, - { url = "https://files.pythonhosted.org/packages/90/4f/f10378ad6b9ee9bdc6c54113fb5c89e1a996e650b1b06e2cee0a9cda26bb/yggdrasil_engine-1.2.2-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:54050a9f3c278590b2769d52290ccbbdcbbca978bc7f6d31cb4ded29693d92b1", size = 1824927, upload-time = "2026-01-28T16:05:23.76Z" }, - { url = "https://files.pythonhosted.org/packages/3d/1a/5e78b81ff89605cdf7cdc1fd07119119be27c6311eea844ad8ec6aa57f37/yggdrasil_engine-1.2.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ac5bd913e678034dd4bfb3f76f19f7384ea3e04dc409b11f27ddda3ac5925a80", size = 1639232, upload-time = "2026-01-28T16:05:25.011Z" }, - { url = "https://files.pythonhosted.org/packages/4d/58/4b8dbefa05b767f7d90c41b2d25cd1d9fdf237a911644687373c43982274/yggdrasil_engine-1.2.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:0934ef59f2fe1233bea05346fd2e8cf05207d556fc942dc00c474b2ec0c52ac5", size = 1822127, upload-time = "2026-01-28T16:05:26.464Z" }, - { url = "https://files.pythonhosted.org/packages/e6/33/f2f0015d12865227038a7369c866bcb2c320578d29bf06a1d8979c46ca7b/yggdrasil_engine-1.2.2-cp38-abi3-win_amd64.whl", hash = "sha256:86d4c7d6c769a67dc4e7eba780e6a0bed282df0c1ebf33665047e63ec4c8de7a", size = 3698746, upload-time = "2026-01-28T16:05:28.603Z" }, - { url = "https://files.pythonhosted.org/packages/b9/a0/2018fac798f06f530acdcbbc136b966ceca8ac9697c8a103d8ec1642720c/yggdrasil_engine-1.2.2-cp38-abi3-win_arm64.whl", hash = "sha256:098a4be28fe41b26ac20210fe8b4e0125f420092d93d85f850e4461c074e766a", size = 1454974, upload-time = "2026-01-28T16:05:29.944Z" }, - { url = "https://files.pythonhosted.org/packages/47/c1/0d57fe4b7258c86eb54f7eda47cebd6a8958439589183dd3919a00e828d6/yggdrasil_engine-1.2.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:61323aea8ae373bef060250e45497da98cd24bd10e049d1fd17f7bf0d8d10df1", size = 1933221, upload-time = "2026-01-28T16:05:32.375Z" }, - { url = "https://files.pythonhosted.org/packages/f2/2e/9b40e730c17b44039e72dd5f3302e1b3310ec92294ab2b7dd8904351c087/yggdrasil_engine-1.2.2-cp39-abi3-macosx_11_0_x86_64.whl", hash = "sha256:2df7c2e215876a64439c666ebf20c820566f75257a8aba3518c50c616404cfbb", size = 1995334, upload-time = "2026-01-28T16:05:33.644Z" }, - { url = "https://files.pythonhosted.org/packages/fa/ad/8434b65e79f4c9879703c34cd42bede913380cf59429c1287b1798fab8d7/yggdrasil_engine-1.2.2-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:28e0946f4d89259d72b95d3527c8b67982f6976d213539cb0ddb4eeed997ac2d", size = 1641800, upload-time = "2026-01-28T16:05:35.057Z" }, - { url = "https://files.pythonhosted.org/packages/1d/38/d2d6aa9f90613180925a967f562ffdb28204b7d16db6fae2b29691ecf9c4/yggdrasil_engine-1.2.2-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:24fb04f96811e8a617ac7e425e482b507841f7c1724133725de8b2bc12c6fdd2", size = 1824927, upload-time = "2026-01-28T16:05:37.038Z" }, - { url = "https://files.pythonhosted.org/packages/e6/a0/0b28cd129c3eba6bf4adf0d63c3a3d610c4d90f88e84056c05663a455192/yggdrasil_engine-1.2.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1ae56838ae24094e64bc28ad8c907b94f12e2bd26b01bb62d43fd1437ece6bab", size = 1639232, upload-time = "2026-01-28T16:05:38.365Z" }, - { url = "https://files.pythonhosted.org/packages/d8/25/fe3b5859c35ac6387bb529cd2f1b7de020db67f478db768cfba9fb38d258/yggdrasil_engine-1.2.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7b31012dec3253baae6ea831cef12fe74dbdc50963bf4c3cbe2764630a7539ee", size = 1822127, upload-time = "2026-01-28T16:05:39.725Z" }, - { url = "https://files.pythonhosted.org/packages/d2/af/ce937a98ac91039ed54f25ed1900d95248e4ac71944c82d091632537c4f6/yggdrasil_engine-1.2.2-cp39-abi3-win_amd64.whl", hash = "sha256:9fd83cb3e0d947038400fc4344e443cdb1892c2c8076b5663a68ad5f0d413664", size = 3698746, upload-time = "2026-01-28T16:05:41.181Z" }, - { url = "https://files.pythonhosted.org/packages/59/5b/b5ac9a336a2c3859eac50d549400f925fce6602f33d6a44a3a97251cc75c/yggdrasil_engine-1.2.2-cp39-abi3-win_arm64.whl", hash = "sha256:2f10b7f744ba64be478f9dfb5d3d18082daafa1f745a9510ad20e51cd05dd354", size = 1454974, upload-time = "2026-01-28T16:05:42.699Z" }, +version = "1.2.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/09/ce73bef7dd503f4710930a16eb6e8c925ac05672f5baf471d6430472a4f0/yggdrasil_engine-1.2.3-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:a569b06a53d911d2d4f2404d7aa915617966c6484d6994a38554fcd4580ebd8a", size = 3654837, upload-time = "2026-03-02T11:43:40Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b6/311ef93218e1bb37b1e01f8ad27145a22e7df09e9bf4f5f2b068ae96a933/yggdrasil_engine-1.2.3-cp310-abi3-macosx_11_0_x86_64.whl", hash = "sha256:762e1bc1d7955f89663a116e3d199aac60193f41b8762fce25d58f50f6d53167", size = 3810150, upload-time = "2026-03-02T11:43:41.94Z" }, + { url = "https://files.pythonhosted.org/packages/ae/66/2f9a313276b3576ca4c66f5d989062ff2d556bd30f3e30f4470af663cd0b/yggdrasil_engine-1.2.3-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:83e47ab7a4449f462d37730303477d29720d2066d7e2bb25999c411da64feaf8", size = 3211320, upload-time = "2026-03-02T11:43:43.838Z" }, + { url = "https://files.pythonhosted.org/packages/2d/de/8e20047bebbb84fd6cf06ab7a62fdd84c2cbd9699df696b1edbf89f4bb40/yggdrasil_engine-1.2.3-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:17db2127afea023d752d877808c54247a715601b685fc20b534fe9f895a2e7b9", size = 3595215, upload-time = "2026-03-02T11:43:45.455Z" }, + { url = "https://files.pythonhosted.org/packages/45/7c/0c8ea4302102f1c0122efe23c48605fecafeffef9fe372e2020cf545e069/yggdrasil_engine-1.2.3-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1363121756e15fd47c4714e580b0bd5f6f5f348cbe4e53aff026c44603f3445c", size = 3209232, upload-time = "2026-03-02T11:43:47.13Z" }, + { url = "https://files.pythonhosted.org/packages/c3/b7/53f550dbd44fbfdadb6c1b8f845ca5f61bf190b5a5ef6a6bfc4c82eeb269/yggdrasil_engine-1.2.3-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:68747b53081a7cb349a2dc36ca64818dd3870f44c13d92ca5b4adb131f479e70", size = 3591383, upload-time = "2026-03-02T11:43:48.763Z" }, + { url = "https://files.pythonhosted.org/packages/01/5a/7c5617226aa618e5e2e9bad6d4f784b7fa64929ef4f5ac67cb94257d519a/yggdrasil_engine-1.2.3-cp310-abi3-win_amd64.whl", hash = "sha256:9fce25fab5a40d10f9e28b3fbb01c97cf16d8dca2a87fc585980f43cbbe1593b", size = 6434680, upload-time = "2026-03-02T11:43:50.641Z" }, + { url = "https://files.pythonhosted.org/packages/7a/8b/a21f4a2c70e869d7648e29d9b60958735bc4ca4336214820e2ed2713bdd0/yggdrasil_engine-1.2.3-cp310-abi3-win_arm64.whl", hash = "sha256:f433301344868b17e2ec88d33cdc76b1d182017e878c320924936f28f30a754f", size = 2837374, upload-time = "2026-03-02T11:43:52.081Z" }, + { url = "https://files.pythonhosted.org/packages/d0/61/97b24a26536f8fc767c4535975dfbce09b90982b24fd87908c30217cca1f/yggdrasil_engine-1.2.3-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:dcbb907be15cda6713f081636ce0c198fd8b7aaae8563e7c00098d7fe0f4a489", size = 3654837, upload-time = "2026-03-02T11:43:54.039Z" }, + { url = "https://files.pythonhosted.org/packages/dd/b0/dcba737cf678e7d3e7232ef26dae13f8723a55e8b0085d252f14004eb490/yggdrasil_engine-1.2.3-cp311-abi3-macosx_11_0_x86_64.whl", hash = "sha256:2b5f85e976f190026ddf5016a13f31df1cb3d17b3561f242c026132f14184b77", size = 3810150, upload-time = "2026-03-02T11:43:55.461Z" }, + { url = "https://files.pythonhosted.org/packages/55/56/1ac05ad37561d27eae20733967ff4b936dc206c4b9387d1fdf4f011a47e2/yggdrasil_engine-1.2.3-cp311-abi3-manylinux2014_aarch64.whl", hash = "sha256:e8d79d973aa7dbdf9597e2e542f7aa69c2665c2188350faf726f149ae7d6ebd9", size = 3211320, upload-time = "2026-03-02T11:43:56.701Z" }, + { url = "https://files.pythonhosted.org/packages/25/22/879d9e659806fe30374f1386cd1f1f13a0d15c44a38ce503606216a810ae/yggdrasil_engine-1.2.3-cp311-abi3-manylinux2014_x86_64.whl", hash = "sha256:775e2b097b26a5827e93f2e4f4a3da028232c65b95b178fa31281fedba3e9fe5", size = 3595215, upload-time = "2026-03-02T11:43:58.572Z" }, + { url = "https://files.pythonhosted.org/packages/a3/71/bfcdcdcb80aaac36f1348b5886854e86378d4a9b168b93b00505035f3561/yggdrasil_engine-1.2.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:78b12449163e4fe4f84b477e866b1a54f975e482cd0140fd8c15a7e7684b49a8", size = 3209232, upload-time = "2026-03-02T11:44:01.191Z" }, + { url = "https://files.pythonhosted.org/packages/ed/bf/5369d425e5fa50c547019c68a0cfdf8f9580496e33c0a60ba9469698adff/yggdrasil_engine-1.2.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:0481c5f8f79f269ed8ad2bbf2806b966c8441bdab0fa8a70588bab83c0491539", size = 3591383, upload-time = "2026-03-02T11:44:02.856Z" }, + { url = "https://files.pythonhosted.org/packages/d4/aa/6f8e784ef8147eeb70b502a4d234951c1a880be3a8be50c5343831901e9c/yggdrasil_engine-1.2.3-cp311-abi3-win_amd64.whl", hash = "sha256:4f7fdf546b880da289de8f83ceaa22124ff56b5cfc3c4451d9030dc2efd1b3c8", size = 6434680, upload-time = "2026-03-02T11:44:04.5Z" }, + { url = "https://files.pythonhosted.org/packages/b7/bb/67a7a87849bda7e7e5b42aa452c95be20a35b6ed2607340efcef5461189d/yggdrasil_engine-1.2.3-cp311-abi3-win_arm64.whl", hash = "sha256:eba9e133802ddca2ed51656c301280020ae03632c59c79578668bbd4b4c87142", size = 2837374, upload-time = "2026-03-02T11:44:06.284Z" }, + { url = "https://files.pythonhosted.org/packages/9a/0c/3d720fa5e681a039c2d0f96c4ac0664670e16b8eb35cc6900fda88c81c6e/yggdrasil_engine-1.2.3-cp312-abi3-macosx_11_0_arm64.whl", hash = "sha256:636f08c9a38f7ecae31519f747ac5efcf2125c983923fc1f5bb368562b3e9d6d", size = 3654837, upload-time = "2026-03-02T11:44:07.966Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c8/e76292dcff36794fd79b0a359b65f234b7325e066d3f2815559e37d2e66f/yggdrasil_engine-1.2.3-cp312-abi3-macosx_11_0_x86_64.whl", hash = "sha256:e540bfc81c287d3b42e18f42bbb737332b508550d522f4deec03c9afa4d81cd4", size = 3810150, upload-time = "2026-03-02T11:44:09.391Z" }, + { url = "https://files.pythonhosted.org/packages/60/9a/79adde3d8078f9e3a98ee318bab5f253072a4dfa4823c11eeddba2905056/yggdrasil_engine-1.2.3-cp312-abi3-manylinux2014_aarch64.whl", hash = "sha256:90d9ef7783bae85a245c535cec4a21e0cf3dc4d62abba1315a9640a1449e8e6f", size = 3211320, upload-time = "2026-03-02T11:44:10.665Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e6/76a2bb922d9368bfde4571f5fdbf88de7ca6062fb0cb8983d10daa5458f6/yggdrasil_engine-1.2.3-cp312-abi3-manylinux2014_x86_64.whl", hash = "sha256:f6783b69c0d225895128831d63c0fa747ef8b9c64b178b127cb473944ca55c99", size = 3595215, upload-time = "2026-03-02T11:44:12.282Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ac/9e1aad778feaf11668e425c0a7f096ffe2e2dd2d8e29ed43b91bd9721630/yggdrasil_engine-1.2.3-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e40a9f229037c502d8211496bc0836152dd90c4ba4cbaae9eeb5c7acc87a30b7", size = 3209232, upload-time = "2026-03-02T11:44:13.614Z" }, + { url = "https://files.pythonhosted.org/packages/7b/99/e8f57c68551ba994db5dfdfc1076325e65634ecfea0fbf789fd87cd981e3/yggdrasil_engine-1.2.3-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:65e4aad22bdf1c76925458e8a9f6e3e293e350e7b6abacb19e1d0061e3b2ed4b", size = 3591383, upload-time = "2026-03-02T11:44:15.049Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c8/00f4b3ae8406d3a35a8e9f93e07621e15e1b996d0640f488d37ecd9235a3/yggdrasil_engine-1.2.3-cp312-abi3-win_amd64.whl", hash = "sha256:182b586e69fe91c19381a22e776193ac2875771314075fc96fa88a625a63934a", size = 6434680, upload-time = "2026-03-02T11:44:16.553Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ec/7d0e3a39a73697b50bb151adee3230522bc5ea82e80b5057f02ee407851d/yggdrasil_engine-1.2.3-cp312-abi3-win_arm64.whl", hash = "sha256:52868beab5e84333219b04a2e523a7f51a5cc10a60c6e00d3a0dd5b430441b5a", size = 2837374, upload-time = "2026-03-02T11:44:17.801Z" }, + { url = "https://files.pythonhosted.org/packages/f7/11/435db47a751df97d6d6fc63e50472e2f93b24fd94a9af34897cf02cbf111/yggdrasil_engine-1.2.3-cp313-abi3-macosx_11_0_arm64.whl", hash = "sha256:17439f89401febeb89499e66880f2d2fd504b3c4b529dbda2a74cc6893e31e5a", size = 3654837, upload-time = "2026-03-02T11:44:19.207Z" }, + { url = "https://files.pythonhosted.org/packages/6d/c8/73e48e6e4c87ec1c8e57b44b5bb96f23b76c1cac9087e3825a860d736ef8/yggdrasil_engine-1.2.3-cp313-abi3-macosx_11_0_x86_64.whl", hash = "sha256:92927445466d0b99d1fb53f5fad8f643241406f8800f4cc6eb555a34b1390cbf", size = 3810150, upload-time = "2026-03-02T11:44:20.942Z" }, + { url = "https://files.pythonhosted.org/packages/5f/6f/4f73e9aa36b6866e0dd9912f290b7ce67afdda96e27ce36f9f63c6cd07a7/yggdrasil_engine-1.2.3-cp313-abi3-manylinux2014_aarch64.whl", hash = "sha256:d3fcbbac353c3aec62f687e092bdbe08e8afa553e99a0dd67b7edf55fbfdf4ae", size = 3211320, upload-time = "2026-03-02T11:44:22.541Z" }, + { url = "https://files.pythonhosted.org/packages/d2/9d/afa63438bb9a468199d391eda8db4ef895d34b399b1fcaebe90233d3a49f/yggdrasil_engine-1.2.3-cp313-abi3-manylinux2014_x86_64.whl", hash = "sha256:d09dc59fa95d2774812b24d9e9ba6b0a89596ab760a8ae6ac3b292b4a3f28665", size = 3595215, upload-time = "2026-03-02T11:44:25.243Z" }, + { url = "https://files.pythonhosted.org/packages/c2/fe/c126c4ec319985866f631c5f0477b2fc4103188c1d3bb9e2681332e2afd0/yggdrasil_engine-1.2.3-cp313-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e19e46cc88474a1c232671f4b2ee5ba1330f062bdeda18e802bf3d389526b210", size = 3209232, upload-time = "2026-03-02T11:44:26.62Z" }, + { url = "https://files.pythonhosted.org/packages/fe/ae/1ba513d4a1d07560097084786c801b5a72dc80f9f8a61f6c650ed97e200c/yggdrasil_engine-1.2.3-cp313-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:829077a5fab46a64f4df5984ce69d42325e9eb13c6f33eb6c5db94e298431907", size = 3591383, upload-time = "2026-03-02T11:44:28.191Z" }, + { url = "https://files.pythonhosted.org/packages/81/d2/161ff6438b3563c51a66d666614a602e753e323c20eaca22ab2687464201/yggdrasil_engine-1.2.3-cp313-abi3-win_amd64.whl", hash = "sha256:551ec5d03cd6b4e816d17ca6eb4995e44ab01e0cca25380ccb174ace91cecd49", size = 6434680, upload-time = "2026-03-02T11:44:30.121Z" }, + { url = "https://files.pythonhosted.org/packages/19/57/94f0f778dedb2451a7b2c84bb66927c72ecee3940aae96f17a6a29a103c1/yggdrasil_engine-1.2.3-cp313-abi3-win_arm64.whl", hash = "sha256:85c2c529bfc98481a3dba6421b452bf4c58ec43c60d815303490726c486ed8b5", size = 2837374, upload-time = "2026-03-02T11:44:31.884Z" }, + { url = "https://files.pythonhosted.org/packages/71/c9/a025f8077725d8d2afabb12a80c42bc65fa2ebf5926479b0d0ba0140f40d/yggdrasil_engine-1.2.3-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:be25a54337bdd4eda6de59f7ea1a43ac87013f9cb399dd02c8767be8f232d4b0", size = 3654837, upload-time = "2026-03-02T11:44:33.326Z" }, + { url = "https://files.pythonhosted.org/packages/b7/35/25c4dcb950846cfe2ee52b718af1162829e02aa1e8efa322d884f3f1d80a/yggdrasil_engine-1.2.3-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:c664694e6a62fc112a555cabb4b94afb4a8537ebaa06457a35979eace614bfa3", size = 3810150, upload-time = "2026-03-02T11:44:35.073Z" }, + { url = "https://files.pythonhosted.org/packages/3e/25/95cdbadd8991f8b6d6147bf92dafb4dd82eface42e5aeb1b65dd8347cc41/yggdrasil_engine-1.2.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b6050969f708e22afd50db1495db4e0cd28c572b34a9a1d0b94eee732d49f6ef", size = 3211320, upload-time = "2026-03-02T11:44:36.364Z" }, + { url = "https://files.pythonhosted.org/packages/58/71/6d2f3971d69a57680752eadf7dab7376ba3670427569247ebada93a0dc51/yggdrasil_engine-1.2.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:1d3302e103e25ef565e99087287ff71246a27f3036298a3567b2e3a147eb55c9", size = 3595215, upload-time = "2026-03-02T11:44:37.655Z" }, + { url = "https://files.pythonhosted.org/packages/46/1c/99cfd0607bc20c74f6a426868f5f8e51c1e1f65fd4a4e3c1f065df5e194c/yggdrasil_engine-1.2.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5a5cd256313ee97e2721511ae63c04bae80b3dff9a6ecf0c0e2b853c8ca57885", size = 3209232, upload-time = "2026-03-02T11:44:39.018Z" }, + { url = "https://files.pythonhosted.org/packages/c8/1d/d0679584f45176f2dcf9e09afb5533eb939d3ceed8e68b64e1f2926a4437/yggdrasil_engine-1.2.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50311a377982fef0e6fc768105b2206c9ed1d0e79302619d780b154768cb3d55", size = 3591383, upload-time = "2026-03-02T11:44:40.409Z" }, + { url = "https://files.pythonhosted.org/packages/98/8b/fa182ad0c6414c63197bc0621d18618cacbde61bbc72e26bbe5554ec81ad/yggdrasil_engine-1.2.3-cp38-abi3-win_amd64.whl", hash = "sha256:fce029f7db89a7d9c9711d0ee3c29ac6ae3fff708c8cec70fc005ef0befa94fa", size = 6434680, upload-time = "2026-03-02T11:44:41.744Z" }, + { url = "https://files.pythonhosted.org/packages/9b/3b/412018e38f62ae0229c462034ca3074222ed24014700aa7000ce6f5db84c/yggdrasil_engine-1.2.3-cp38-abi3-win_arm64.whl", hash = "sha256:df865ae9592d7551db9a43a5d17ed64d9f6a630094923ff944b70fc518962630", size = 2837374, upload-time = "2026-03-02T11:44:43.421Z" }, + { url = "https://files.pythonhosted.org/packages/ab/b0/1005a4eacb6806df8f6759a3d4ffc38dbd0a6620f99704ee2d786a78e450/yggdrasil_engine-1.2.3-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:c76a0e9113e343f87f2f1be68c6f806fdb0a28d80be2ba64225dbebc4b06439a", size = 3654837, upload-time = "2026-03-02T11:44:44.804Z" }, + { url = "https://files.pythonhosted.org/packages/ba/44/41a138c8945389bc61ca70989beb82fdc7ec3e26511693234b145f0b8577/yggdrasil_engine-1.2.3-cp39-abi3-macosx_11_0_x86_64.whl", hash = "sha256:bae56e2bcf6820161cf6ea185757d1104f116f63ddf5aa57d1b709cd759d0376", size = 3810150, upload-time = "2026-03-02T11:44:46.608Z" }, + { url = "https://files.pythonhosted.org/packages/33/ff/b70c6427852703a39b664e23e4e31c436aa5ece61e0a91b2ad0ed432cc20/yggdrasil_engine-1.2.3-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:f62c95ed7f3793f8babd785344c946713ecee49d7b3da0d903df20861387ce80", size = 3211320, upload-time = "2026-03-02T11:44:48.254Z" }, + { url = "https://files.pythonhosted.org/packages/c0/4e/7faac9602149bb4a57f5c74a5b36a9a2e5899e4aa820329eb7350ac0dab4/yggdrasil_engine-1.2.3-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:0ce25abee1a3764757eed160d433364a13b564a343501a7501dd2ea8e093d393", size = 3595215, upload-time = "2026-03-02T11:44:49.993Z" }, + { url = "https://files.pythonhosted.org/packages/44/4d/78b2bf81c1e6872ce4b69d293eaed0f3d4a3bdbedd8d80a477ee1cb2ec27/yggdrasil_engine-1.2.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:28976c0fee944a13a7a6401e492be2b359dce7a1c5b8d65519595888f0880c13", size = 3209232, upload-time = "2026-03-02T11:44:51.34Z" }, + { url = "https://files.pythonhosted.org/packages/cc/21/2687c61bdb4a4d52855dbffcd11a40167bbb8a5552c7b6f3976682a32fd6/yggdrasil_engine-1.2.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4f32b916f03c8544ac250251e27041727bb683614896f0e86433c086b5c51d69", size = 3591383, upload-time = "2026-03-02T11:44:53.324Z" }, + { url = "https://files.pythonhosted.org/packages/52/1e/3e8f53ad7fca17861fb36e13105b927e832e2094c002605ef4bd85877f38/yggdrasil_engine-1.2.3-cp39-abi3-win_amd64.whl", hash = "sha256:dbd9b6169eb95a7b0e7e20120c475ab4c291b47ee84682834a2635c078beb9bd", size = 6434680, upload-time = "2026-03-02T11:44:54.789Z" }, + { url = "https://files.pythonhosted.org/packages/da/08/6bbb6105a49bbadbe5d6904a2463155d44c4528711fa0c3e069d0474ac16/yggdrasil_engine-1.2.3-cp39-abi3-win_arm64.whl", hash = "sha256:60bc967bc70aa57e62de8caee832a860c2bc83e810ce054e55db64e8c7583326", size = 2837374, upload-time = "2026-03-02T11:44:56.435Z" }, ] [[package]] From 13c2df9c11b97dd7a3181a77d3bc7cdc481ab6e0 Mon Sep 17 00:00:00 2001 From: marcozabel Date: Mon, 9 Mar 2026 10:50:55 +0100 Subject: [PATCH 2/5] chore: Revert RETRY_BACKOFF_MAX Signed-off-by: marcozabel --- .../src/openfeature/contrib/provider/flagd/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py index ffb24200..05348cf5 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py @@ -28,7 +28,7 @@ class CacheType(Enum): DEFAULT_PORT_RPC = 8013 DEFAULT_RESOLVER_TYPE = ResolverType.RPC DEFAULT_RETRY_BACKOFF = 1000 -DEFAULT_RETRY_BACKOFF_MAX = 12000 +DEFAULT_RETRY_BACKOFF_MAX = 120000 DEFAULT_RETRY_GRACE_PERIOD_SECONDS = 5 DEFAULT_STREAM_DEADLINE = 600000 DEFAULT_TLS = False From db85b40328f4fd9e8b801df23052be9f1937c1b7 Mon Sep 17 00:00:00 2001 From: marcozabel Date: Mon, 9 Mar 2026 13:46:53 +0100 Subject: [PATCH 3/5] chore: update spec folder Signed-off-by: marcozabel --- providers/openfeature-provider-flagd/openfeature/spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/openfeature-provider-flagd/openfeature/spec b/providers/openfeature-provider-flagd/openfeature/spec index a3678719..eefdf439 160000 --- a/providers/openfeature-provider-flagd/openfeature/spec +++ b/providers/openfeature-provider-flagd/openfeature/spec @@ -1 +1 @@ -Subproject commit a3678719bf9f62880375ba835ebe1bb7a77de409 +Subproject commit eefdf439c5a5b69ccde036c3c6959a4a6c17e08c From 99bab73b225836b57dedae07a9ca10356d3f35d5 Mon Sep 17 00:00:00 2001 From: marcozabel Date: Mon, 9 Mar 2026 14:11:58 +0100 Subject: [PATCH 4/5] fix: use 12000 backoff like in tests Signed-off-by: marcozabel --- .../src/openfeature/contrib/provider/flagd/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py index 05348cf5..ffb24200 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/config.py @@ -28,7 +28,7 @@ class CacheType(Enum): DEFAULT_PORT_RPC = 8013 DEFAULT_RESOLVER_TYPE = ResolverType.RPC DEFAULT_RETRY_BACKOFF = 1000 -DEFAULT_RETRY_BACKOFF_MAX = 120000 +DEFAULT_RETRY_BACKOFF_MAX = 12000 DEFAULT_RETRY_GRACE_PERIOD_SECONDS = 5 DEFAULT_STREAM_DEADLINE = 600000 DEFAULT_TLS = False From d39a9150331dc7c9ce0c9976b63bcbc6199d9b48 Mon Sep 17 00:00:00 2001 From: Todd Baert Date: Mon, 9 Mar 2026 13:18:10 -0400 Subject: [PATCH 5/5] fixup: correct connection options Signed-off-by: Todd Baert --- .../contrib/provider/flagd/resolvers/grpc.py | 20 ++++--------------- .../process/connector/grpc_watcher.py | 20 ++++--------------- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py index 3a3a07d9..e4341d48 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/grpc.py @@ -88,29 +88,17 @@ def _generate_channel(self, config: Config) -> grpc.Channel: { "name": [ {"service": "flagd.sync.v1.FlagSyncService"}, + {"service": "flagd.evaluation.v1.Service"}, {"service": "flagd.evaluation.v2.Service"}, ], "retryPolicy": { "maxAttempts": 3, - "initialBackoff": "1s", - "maxBackoff": "5s", + "initialBackoff": f"{max(config.retry_backoff_ms // 1000, 1)}s", + "maxBackoff": f"{max(config.retry_backoff_max_ms // 1000, 1)}s", "backoffMultiplier": 2.0, "retryableStatusCodes": [ - "CANCELLED", - "UNKNOWN", - "INVALID_ARGUMENT", - "NOT_FOUND", - "ALREADY_EXISTS", - "PERMISSION_DENIED", - "RESOURCE_EXHAUSTED", - "FAILED_PRECONDITION", - "ABORTED", - "OUT_OF_RANGE", - "UNIMPLEMENTED", - "INTERNAL", "UNAVAILABLE", - "DATA_LOSS", - "UNAUTHENTICATED", + "UNKNOWN", ], }, } diff --git a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py index b5f13f6e..4d9d27ed 100644 --- a/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py +++ b/providers/openfeature-provider-flagd/src/openfeature/contrib/provider/flagd/resolvers/process/connector/grpc_watcher.py @@ -69,29 +69,17 @@ def _generate_channel(self, config: Config) -> grpc.Channel: { "name": [ {"service": "flagd.sync.v1.FlagSyncService"}, + {"service": "flagd.evaluation.v1.Service"}, {"service": "flagd.evaluation.v2.Service"}, ], "retryPolicy": { "maxAttempts": 3, - "initialBackoff": "1s", - "maxBackoff": "5s", + "initialBackoff": f"{max(config.retry_backoff_ms // 1000, 1)}s", + "maxBackoff": f"{max(config.retry_backoff_max_ms // 1000, 1)}s", "backoffMultiplier": 2.0, "retryableStatusCodes": [ - "CANCELLED", - "UNKNOWN", - "INVALID_ARGUMENT", - "NOT_FOUND", - "ALREADY_EXISTS", - "PERMISSION_DENIED", - "RESOURCE_EXHAUSTED", - "FAILED_PRECONDITION", - "ABORTED", - "OUT_OF_RANGE", - "UNIMPLEMENTED", - "INTERNAL", "UNAVAILABLE", - "DATA_LOSS", - "UNAUTHENTICATED", + "UNKNOWN", ], }, }